Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Mobile Computing

Similar presentations


Presentation on theme: "Introduction to Mobile Computing"— Presentation transcript:

1 Introduction to Mobile Computing
Aleksandar Kovačević, Mina Mićanović, Veljko Milutinović, Aleksandar Kovačević & Mina Mićanović

2 Wireless Mobile or Mobile Wireless?
Wireless communication systems are type of communication system Dimensions of mobility: The set of properties that distinguishes the mobile computing system from stationary computing system Aleksandar Kovačević & Mina Mićanović

3 Dimensions of Mobile Computing
Location awareness Network connectivity quality of service (QOS) Limited device capabilities Limited power supply Support for a wide variety of user interfaces Platform proliferation Active transactions Aleksandar Kovačević & Mina Mićanović

4 Mobile Development Frameworks and Tools
Aleksandar Kovačević & Mina Mićanović

5 Mobile Development Frameworks and Tools
Fully Centralized Frameworks and Tools N-Tier Client-Server Aleksandar Kovačević & Mina Mićanović

6 Fully Centralized Frameworks and Tools
Have custom-designed clients Embedded in nature Designed to do only one thing Aleksandar Kovačević & Mina Mićanović

7 Fully Centralized Frameworks and Tools
Applies: QOS Limiter power supply Active transactions Location awareness Do not apply: Platform proliferation Limited device capabilities Support for variety of user interfaces Aleksandar Kovačević & Mina Mićanović

8 Aleksandar Kovačević & Mina Mićanović
Examples Call centers Battlefield systems Grocery store Aleksandar Kovačević & Mina Mićanović

9 N-Tier Client-Server Framework and Tools
N-Tier -Any Number of Tiers – No Limits 3-Tier Client (User Agent) Application Server Database N-Tier applications mean using whatever mix of Computer Hardware and/or Software Layers you need, in order to provide a modular collection of Information Services. Any number of component-based Clients ~ Interfaces ~ Agents ~ Transactions ~ Middleware and Data Servers flexibly arranged into an infinite variety of configurations. (a bit like Software-based Lego) Programs partitioned into Tiers allow each layer or component part to be developed, managed, deployed and enhanced independently. Definition: A computer application that may be divided into any number of tiers or logical layers, using a reusable, component based approach.   These logical tiers may operate in multiple configurations, using any number of physical systems, thereby providing unlimited flexibility and scalability for dynamic business requirements. Or: A framework for providing a flexible, distributed computing environment, that can take full advantage of the infrastructure and resources you currently have, while preparing for whatever changes the future brings. ======= The N-Tier model of computing provides the ability to distribute independent components or services over as many tiers as makes sense and then link them dynamically, in order to provide unlimited application flexibility. N = Any Number of : Levels/Layers/Tiers Clients & Customers Objects & Components Servers & Services Configurations Transactions Abilities Benefits Advantages Opportunities Aleksandar Kovačević & Mina Mićanović

10 Aleksandar Kovačević & Mina Mićanović
Basic problems Code portability Mobility Aleksandar Kovačević & Mina Mićanović

11 Aleksandar Kovačević & Mina Mićanović
Needs Layer of Software Performance and system requirements Aleksandar Kovačević & Mina Mićanović

12 Selection of the Frameworks and Tools
Thin-Client Wireless Client-Server Thick-Client Wireless Client-Server Stand-alone Applications Aleksandar Kovačević & Mina Mićanović

13 Thin-Client Wireless Client-Server
Browser that loads markup code (Web-model) No concern about environment Server-side structure Example: WAP with his WML Aleksandar Kovačević & Mina Mićanović

14 Thick-Client Wireless Client-Server
Client application-custom application Using the client as a means of storing data for the offline business logic performs Does not need to be centralized Having thick clients is more difficult Aleksandar Kovačević & Mina Mićanović

15 Aleksandar Kovačević & Mina Mićanović
Difficulties??? Restricted resources Deployment and provision problem Operating system or virtual machine Programming environment The platforms that allow thick-client development for mobile devices address this in two ways: Some provide an operating system or a virtual machine that provides the application programmers with a platform that lessens the number of permutations for writing code. Hardware manufacturers, such as Qualcomm and Texas Instruments, provide programming environments directly on top of the hardware. Aleksandar Kovačević & Mina Mićanović

16 Aleksandar Kovačević & Mina Mićanović
Examples Operating system Windows CE Symbian Virtual Machine J2ME Aleksandar Kovačević & Mina Mićanović

17 Stand-alone Applications
They do not need networking components Needs of synchronization with some external system periodically Aleksandar Kovačević & Mina Mićanović

18 Aleksandar Kovačević & Mina Mićanović
Some products Connectivity Platform Stand-alone Networked Wired Wireless Mobile Platforms WAP Symbian BREW Java .NET Aleksandar Kovačević & Mina Mićanović

19 Aleksandar Kovačević & Mina Mićanović
JAVA - features Object oriented language Complete code mobility Weak mobile agent ability It is a platform Aleksandar Kovačević & Mina Mićanović

20 Aleksandar Kovačević & Mina Mićanović
J2ME Addresses the needs of two categories of devices: Personal, mobile, connected information devices (CLDC) Shared, fixed, connected information devices (CDC) Aleksandar Kovačević & Mina Mićanović

21 Aleksandar Kovačević & Mina Mićanović
CLDC/MIDP Features(1) Providing: a virtual machine for providing language features a security framework for tasks such as downloading MIDlets (J2ME CLDC/MIDP applications) *MIDP - Mobile Information Device Profile Aleksandar Kovačević & Mina Mićanović

22 Aleksandar Kovačević & Mina Mićanović
CLDC/MIDP Features(2) Providing: a reasonable amount of functionality for input and output some internationalization capabilities a reasonable amount of networking capabilities Aleksandar Kovačević & Mina Mićanović

23 Aleksandar Kovačević & Mina Mićanović
KVM Does not provide: Floating point arithmetic Support for JNI Thread grouping Full-blown exception Automatic garbage collection of unused objects Weak references Aleksandar Kovačević & Mina Mićanović

24 Aleksandar Kovačević & Mina Mićanović
CLDC/MIDP features Providing a security framework for tasks such as downloading MIDlets (J2ME CLDC/MIDP applications) Aleksandar Kovačević & Mina Mićanović

25 Aleksandar Kovačević & Mina Mićanović
CLDC/MIDP features Providing a reasonable amount of functionality for input and output Aleksandar Kovačević & Mina Mićanović

26 Internationalization capabilities
Provides I/O stream readers that can handle different character encoding schemes Two ways of internationalization: Dynamic Static Aleksandar Kovačević & Mina Mićanović

27 Aleksandar Kovačević & Mina Mićanović
Profiles The areas addressed by profiles are the following: Download and installation of application Life-cycle management of application User interface feature Database functionality Event handling Aleksandar Kovačević & Mina Mićanović

28 Aleksandar Kovačević & Mina Mićanović
CLDC profiles MIDP (Mobile Information Device Profile) Widely known and accepted Personal Digital Assistant Profile (PDAP) etc. Aleksandar Kovačević & Mina Mićanović

29 Aleksandar Kovačević & Mina Mićanović
MIDP Designed for devices with assumed characteristics Small displays (96x24,1:1 shaped pixels, depth 1bit) Min 128kB of nonvolatile memory (for storing application itself) Wireless connection to the internet Min of 8kB of nonvolatile memory (for use by the application) ITU-T phone keypad Aleksandar Kovačević & Mina Mićanović

30 Overview of the CLDC and MIDP Java APIs
J2SE-like APIs – inherited from the J2SE environment java.lang.* java.io.* java.util.* CLDC-specific APIs javax.microedition.io (connector class) Aleksandar Kovačević & Mina Mićanović

31 Networking Capabilities
J2SE assumes the availability of a TCP/IP connection CLDC defines a connection framework in its Java API example – WAP-style connections (WDP/UDP) Aleksandar Kovačević & Mina Mićanović

32 Aleksandar Kovačević & Mina Mićanović
Review of MIDP APIs Timers java.util.Timer java.util.TimerTask Networking HTTP implementation javax.microedition.io.* holds HttpConnection Timers: Two classes, java.util.Timer and java.util.TimerTask, allow developers to wite MIDlets that are started, one time or at some specified interval, at a given time. Aleksandar Kovačević & Mina Mićanović

33 Aleksandar Kovačević & Mina Mićanović
Review of MIDP APIs Storage javax.microedition.rms.* (RMS-Record Management System) – for storing and retrieving data User Interface javax.microedition.lcdui.* user interface APIs to build interfaces for MIDlets Timers: Two classes, java.util.Timer and java.util.TimerTask, allow developers to wite MIDlets that are started, one time or at some specified interval, at a given time. Aleksandar Kovačević & Mina Mićanović

34 Aleksandar Kovačević & Mina Mićanović
Hello MIDP example For a J2ME class to qualify as a MIDlet, it has to do the following: Extend the MIDlet class Implement the following methods: startApp() pauseApp() destroyApp(boolean b) Aleksandar Kovačević & Mina Mićanović

35 Aleksandar Kovačević & Mina Mićanović
Hello MIDP example import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class HelloMIDP extends MIDlet implements CommandListener { public static final String HELLO = “Hello MIDP”; private DIsplay mDIsplay; private Command mExit; public HelloMIDP() { mDisplay = Display.getDIsplay(this); mExit = new Command(“Exit”, Command.SCREEN, 1); } Aleksandar Kovačević & Mina Mićanović

36 Aleksandar Kovačević & Mina Mićanović
Hello MIDP example public void startApp() { TextBox myMessage = new TextBox(HELLO, HELLO, 256, 0); myMessage.addCommand(mExit); myMessage.addCommand((CommandListener) this); mDisplay.setCurrent(mDIsplay); } public void pauseApp() {} public void commandAction(Command aCommand, Displayable aDisplayHandle) { if (aCommand == mExit) { destroyApp(false); public void destroyApp(boolean b) { notifyDestroyed(); Aleksandar Kovačević & Mina Mićanović

37 Aleksandar Kovačević & Mina Mićanović
Sun’s Development Kit Offers following components: KToolbar (GUI) Preverifier Compiler Emulators Emulation of Performance Preverifier: Preverifier of classes allows J2ME to offload some work from the device Aleksandar Kovačević & Mina Mićanović

38 Dimensions of Mobility by CLDC and Profiles
Location awareness no treatment javax.microedition.location Network QOS Limited Device Capabilities Limited Power Supply Management Support for a Large Variety of User Interfaces Platform proliferation Active Transactions Aleksandar Kovačević & Mina Mićanović

39 Aleksandar Kovačević & Mina Mićanović
XML & J2ME Types of parsers: Model Parsers Push Parsers Pull Parsers Aleksandar Kovačević & Mina Mićanović

40 Using UML to Model J2ME Applications
Class Diagrams State Diagrams Component Diagrams Sequence Diagrams Aleksandar Kovačević & Mina Mićanović

41 Aleksandar Kovačević & Mina Mićanović
CDC Targeted at environments where more than 512kB (usually about 2MB) of memory is available for the Java environment CDC Profiles are built on top of the Foundation Profile CDC has his own virtual machine (CVM-C Virtual Machine) CVM supports all of the features that the J2SE VM does Aleksandar Kovačević & Mina Mićanović

42 Aleksandar Kovačević & Mina Mićanović
Java Card Smart cards – embedded processor or electronic memory device Java Card API – allows interoperability between different card readers/writes and cards regardless of the manufacturer and Java Card API implementer Aleksandar Kovačević & Mina Mićanović

43 Aleksandar Kovačević & Mina Mićanović
Java Card Aleksandar Kovačević & Mina Mićanović

44 Three Types of Smart Cards
IC (Integrated Circuit) Memory Cards IC Microprocessor Cards Optical Memory Cards IC (Integrated Circuit) Memory Cards: This is the most common type of smart card. These types of cards hold a small amount of data (less than 4kB) and have no processing power. These cards are used as debil cards, security cards, and others IC Microprocessor Cards: These cards typically have 16kB or less or read-only memory and half of kilobyte of random-access memory. Java card falls into this family. These types of cards provide a very small amount of processing power Optical Memory Cards: These cards provide the largest amount of storage of all smart cards. They do not provide any processing power, they can be very useful since they hold up to 4MB of data. Aleksandar Kovačević & Mina Mićanović

45 Aleksandar Kovačević & Mina Mićanović
JINI Java Intelligence Network Infrastructure – a base technology for ad-hoc networking Basic transaction that JINI provides: Lookup Discovery Events Leasing Joining Transaction Management Lookup – This is a JINI service that maps interfaces indicating the functionality offered by a service to sets of objects that implement the service. Discovery – Before a given process begins using a service found by the lookup process, it must find that service. The act of finding lookup services is called discovery. This is typically done by the underlying infrastructure that offers the JINI implementation Events – The various JINI participants can register to listen to the various events emitted by the other JINI participants. Any so called JINI device can register events with any other JINI device. In this way, the architectural communication model is more like peer-to-peer than it is client-server. Leasing: JINI devices share resources through a process called leasing. The term leasing is used because the amount of time for which the service is available to the lessee is known at the time of the lease, this time can be dictated by the leaser (the device whose service is being used) or through a negotiated process between the leaser and the lessee. Joining: for a JINI device to offer its services to other devices, it first has to join the JINI federation. This is done through a process called joining. Transaction Management: Interaction between the various JINI devices may be compound, being made of several simple atomic interactions. Because of this, transaction management is needed to ensure the proper semantics are provided to avoid partial results and bad data. Aleksandar Kovačević & Mina Mićanović

46 Aleksandar Kovačević & Mina Mićanović
JINI Specification Most today’s implementations are not designed for mobile devices There are some that offer “mobilized JINI” PSINaptic Most implementations that exit today are not designed for mobile devices because they take up too many resources; however, There are some that offer “mobilized JINI” PSINaptic, for example, offers an implementation of JINI suitable for mobile devices in its JMatos. clear Advantage (that offer JINI and other ad-hoc technologies) – allow mobile devices to roam through a variety of networks. Aleksandar Kovačević & Mina Mićanović

47 Java-based Peer-to-Peer Protocol
JXTA – peer-to-peer protocol Implementation on J2ME Direct Implementation (JXTA APIs - provided on J2ME device) Indirect Implementation (JXTA through proxies) Aleksandar Kovačević & Mina Mićanović

48 Aleksandar Kovačević & Mina Mićanović
BREW BREW (Binary Run-time Environment for Wireless) It is built directly on hardware Software Development Kit (SDK) Aleksandar Kovačević & Mina Mićanović

49 Aleksandar Kovačević & Mina Mićanović
BREW SDK Overview register as a developer download BREW SDK offered only as a integrate set of components with MS Visual C++ 6.0 You get this applications BREW MIF Editor BREW Device Configurator BREW Emulator BREW Image Authoring Tool BREW ARM Compiler Image Converter BREW Resource Editor BREW Pure Voice Converter BREW AppLoader BREW Grinder BREW TestSig Generator and AppSigner Aleksandar Kovačević & Mina Mićanović

50 Building and Deploying a BREW Application
Download the SDK and get started Obtain a Verisign Class 3 certificate Get a BREW phone Register as a BREW developer Obtain a Class ID for your application Perform a unit test and send it to a testing lab Perform a pricing and carrier evaluation Aleksandar Kovačević & Mina Mićanović

51 Obtain Class 3 Certificate from Verisign Get a BREW Phone
Download SDK and Start Unit Test Obtain Class 3 Certificate from Verisign Get a BREW Phone Pricing and Carrier Evaluation True BREW Test Get a Class ID Develop Done No Yes Aleksandar Kovačević & Mina Mićanović

52 Aleksandar Kovačević & Mina Mićanović
Hello BREW AEEClsCreateInstance BREW Run-time environment HelloBREW_HandleEvent EventHandler Aleksandar Kovačević & Mina Mićanović

53 Architectural Concerns About BREW Application
Everything in BREW is event driven (tight coupling to the hardware platform) Two groups of APIs you can use: those provided by qualcomm those provided by third-party vendors BREW API is still developing in C Aleksandar Kovačević & Mina Mićanović

54 Aleksandar Kovačević & Mina Mićanović
Windows CE Different flavors of the Windows CE OS, depending on hardware platform. Pocket PC Windows CE .NET Pocket PC 2002 Aleksandar Kovačević & Mina Mićanović

55 Tools to build Applications
Embedded Visual C++ separate from Visual Studio Emulators and a debugger is provided exception handling, run-time debugging Embedded Visual Basic can be developed faster no ability to be tuned and optimized for resource-starved mobile devices Smart Device Extensions for .NET Microsoft Mobile Internet Toolkit Aleksandar Kovačević & Mina Mićanović

56 Aleksandar Kovačević & Mina Mićanović
eMbedded Visual C++ Compilers available for: ARM MIPS Intel’s x86 PowerPC Hitachi processors Aleksandar Kovačević & Mina Mićanović

57 Aleksandar Kovačević & Mina Mićanović
eMbedded Visual C++ Provides: a subset of the Win32 APIs for building Windows CE applications a subset of the MFC (Microsoft Foundation Classes) libraries a set of classes specific to the Windows CE platform Aleksandar Kovačević & Mina Mićanović

58 Things You Should keep in mind
Graphics are expensive Use events instead of polling when possible Economize with your memory (saving power) Provided functionality of getting the status of the Power Consumption useful for testing application useful to change behavior of application Clean up memory resources whenever you get WM_HIBERNATE event Aleksandar Kovačević & Mina Mićanović

59 Databases on Windows CE
Three ways to store data: MS SQL Server Windows CE Edition most functionality takes the most resources offers only subset of its desktop/server version views stored procedure CEDB small and simple database it’s not relational database File System fewer resources increases the application Aleksandar Kovačević & Mina Mićanović

60 Windows CE and Web Services
Importance of XML-based Web Service .NET has Web Service-based functionality based on two key technologies: WSDL (Web Service Definition Language) SOAP (Simple Object Access Protocol) Aleksandar Kovačević & Mina Mićanović

61 Aleksandar Kovačević & Mina Mićanović
Microsoft Smart Phone Microsoft Smart Phone 2002, Microsoft's attempt to enter the mobile technology market It can host custom applications written using smart phone SDK. SDK is provided as a plug-in for eVC Aleksandar Kovačević & Mina Mićanović

62 Aleksandar Kovačević & Mina Mićanović
WAP WAP – Wireless Application Protocol Installed on almost every mobile phone Basics about WAP: WAP is intended for thin clients all logic calculated on the server simple display instructions in some markup language are done by the client WAP is built on its own lower level communication protocol Typical deployment of WAP includes a proxy or a gateway WAP is a complete framework for a mobile applications Aleksandar Kovačević & Mina Mićanović

63 Aleksandar Kovačević & Mina Mićanović
WAP Architecture It’s a client-server Architecture Implementation standards for client to interpret content communication mechanisms between the clients and the servers additional required features in the server (particulary proxy servers) Communication functionality between clients and server: Handling of Telephony on the Device Push Aleksandar Kovačević & Mina Mićanović

64 Basic Communication Architecture in WAP
WAP Client WAP Proxy / Gateway Application Server HTTP/ HTTPS WSP,WTP,WTLS,WDP Aleksandar Kovačević & Mina Mićanović

65 Aleksandar Kovačević & Mina Mićanović
WAP UI Developing WML pages WML – Mark-up language rendered by the WAP micro browsers Advantages over HTML WML tag is smaller WML is XML compliant WML is designed for small monochrome screens allows breaking a page into a deck of cards allows client-side navigation between the cards WML has mark-up tags that allow interacting with the telephony Disadvantages Most content on Internet is in HTML Conversion of HTML to WML is not easy process WAP 2.0 fixes that using XHTML that is well-formed and using XML techniques like XSLs to convert XHTML to WML Aleksandar Kovačević & Mina Mićanović

66 WAP Proxies and Gateways
A server that supports WAP and HTTP Difference between the proxy and the gateway: user can determine will he use proxy Aleksandar Kovačević & Mina Mićanović

67 Aleksandar Kovačević & Mina Mićanović
WAP Gateways (1) Features of WAP Gateways: Security Handoff point between WTLS (Wireless Transport Layer Security) to external security mechanisms (SSL) Network Access Access point Controlled access by Network Provider Protocol Conversions Converting WSP (Wireless Session Protocol) to HTTP Protocol conversions: allows WAP to be on a non-TCP/IP application protocol WDP, and yet interact with HTTP-based Internet Aleksandar Kovačević & Mina Mićanović

68 Aleksandar Kovačević & Mina Mićanović
WAP Gateways (2) Caching Extremely aggressive caching cache expire must be set manually reduces the pervasiveness of content Preparation of Content and Scripts Gateway encodes WML into Compiled WML (WMLC) WMLScript must be compiled before being sent to client Functionality offered through WAP 2.x offering model of connectivity that puts increasingly less functionality into the proxy Aleksandar Kovačević & Mina Mićanović

69 Aleksandar Kovačević & Mina Mićanović
MMS MMS - Multimedia Messaging Services WAP MMS is a standard Overview: Presentation handled through SMIL (Synchronized Multimedia Integration Language) Addressing two addresses: address of the MMS Proxy-relay address of the recipient user and terminal Delivery is possible through variety of interfaces. These include the following: MMS proxy-relay Standard interface (supports any protocol) Legacy wireless messaging systems Aleksandar Kovačević & Mina Mićanović

70 Aleksandar Kovačević & Mina Mićanović
WAP Push Based on Push Access Protocol (PAP) Push operation WAP push event do the following: The mobile device connects and registers to Master Pull Proxy Application Server establishes a connection to PPG through PAP protocol The content being pushed can be a multipart document following the MIME format The user agent profile is accessed. The message is then sent to PPG The devices receives the message The user agent profile, through the implementation of UAProf, of the device receiving the push is accessed This profile specifies the behavior of the push such as whether the user should be interrupted or not. This profile specifies the behavior of the push such as whether the user should be interrupted or not. Aleksandar Kovačević & Mina Mićanović

71 Aleksandar Kovačević & Mina Mićanović
Security WAP does not have application authorization Offers guaranteed authentication of user devices Offers guaranteed integrity of transactions Does not have application authorization – this make sense as WAP depends on applications that are running on servers and probably connect through HTTP, on a network running some protocol other than WAP Aleksandar Kovačević & Mina Mićanović

72 Aleksandar Kovačević & Mina Mićanović
Symbian EPOC Symbian OS 7.0 supports: MMS, HTTP, SyncML, SMS, Mobile IP, IrDA, and Bluetooth It has free SDK (supported languages: C++ and Java) Designed more as a PDA OS Aleksandar Kovačević & Mina Mićanović

73 Publishing Frameworks
Presenting content in several different formats Matching the type of document requested with the type of document available (or one that may need to be generated at run time) Modularized infrastructure that separates the various components of the framework, the processing components, and the content Aleksandar Kovačević & Mina Mićanović

74 Publishing Frameworks
Examples: Apache’s Cocoon best known publishing framework today written in Java, supports ASP, Java and XSL (and many other) IBM’s Wireless Transcoding Publisher They treat the user interface problems presented by the following: Proliferation of mobile devices Localized and Internationalized user interfaces Selection of segments of multichannel content Selection and composition of content based on device information Aleksandar Kovačević & Mina Mićanović

75 Aleksandar Kovačević & Mina Mićanović
Cocoon Open-source – widely accepted Got his name from the movie Cocoon’s Architecture aim to separate: content style (the formatting of content) logic (how content is generated or chosen) management of content (creating content) Aleksandar Kovačević & Mina Mićanović

76 Cocoon’s Architecture
XHTML PDF VXML WML XML Binary Java Transformers Generators Serializers Generators – these components provide us with a method to feed data into our black box. Generators give us a hook to pull the raw content into cocoon Transformers – These components transform the raw content into other content. Serializers – These components provide the output for our black box from the transformed content provided to them by the transformers Aleksandar Kovačević & Mina Mićanović

77 Aleksandar Kovačević & Mina Mićanović
Generators Take static/dynamic content Generate XML in the form of SAX events There are series of generators: File generator Server pages generator JSP generator Request generator File generator – This generator can read an XML file and create SAC events from it Server pages generator – This particularly important generator creates another generator; at compile time, which knows what type of scripting language is used in the XSP page (if one is used if generation) so that it compiles the XSP page properly JSP generator – The JSP generator allows usage of JSP pages as the source of dynamic data Request generator – This generator is peculiar in that it creates a series of SAX events with the data encapsulated in the incoming HTTP request Aleksandar Kovačević & Mina Mićanović

78 Aleksandar Kovačević & Mina Mićanović
Transformers Xalan – XSL transformation engine XSLs are not platform dependent or language dependent Aleksandar Kovačević & Mina Mićanović

79 Aleksandar Kovačević & Mina Mićanović
Serializer Responsible for publishing to the client through HTTP response FOPSerializer (Converts HTML to PDF) SVG Serializer Aleksandar Kovačević & Mina Mićanović

80 IBM Wireless Transcoding Publisher
Focusing on product, IBM Wireless Everyplace Suite Integrated environment with IBM’s Websphere Application Server Our focus is on pervasive and mobile aspects of this suite and comparison with Cocoon Aleksandar Kovačević & Mina Mićanović

81 Overview of IBM Everyplace Suite
Addresses issues like: wireless connectivity content management for wireless clients wireless security provisioning and device management Aleksandar Kovačević & Mina Mićanović

82 Comparison of the WTP and Cocoon
WTP offers better functionality in converting HTML to any other markup language than Cocoon WTP offers custom transformers that convert variety of image formats WTP offers a set of WAP devices that allow very simple publishing of HTML and XML content to WML-enabled devices Very rich set of tools for developers Aleksandar Kovačević & Mina Mićanović

83 Aleksandar Kovačević & Mina Mićanović
Other Tools Asynchronous Messaging Systems UML Tools Aleksandar Kovačević & Mina Mićanović

84 XML for Mobile Computing
Aleksandar Kovačević & Mina Mićanović

85 XML and Mobile Applications
Mobile applications should understand and be able to manipulate XML content Mobile applications use XML to facilitate their implementations Aleksandar Kovačević & Mina Mićanović

86 Key XML Technologies for Mobile Computing
XHTML VXML designed for voice user interfaces allows specification of a command-based voice dialog through a markup language WML XForms CCXML XML Pipeline WBXML SSML RDF XForms allows us to build user interfaces with a focus on the interactions and data exchanges between the user and the user interface as opposed to specific types of user interface. Aleksandar Kovačević & Mina Mićanović

87 Aleksandar Kovačević & Mina Mićanović
CCXML Call Control Extensible Markup Language Application of XML for managing voice calls It focuses on routing the calls and connecting calls (in contrast to VXML) It is based on Java Telephony APIs (JTAPI) Aleksandar Kovačević & Mina Mićanović

88 Aleksandar Kovačević & Mina Mićanović
XML Pipeline It specifies how to process various XML resources It can be thought in two different contexts: It specifies the flow of processing instructions that are applied to one or more given documents residing on the host It specifies the flow of processing instructions that are applied to a variety of XML documents, residing at a variety of hosts Aleksandar Kovačević & Mina Mićanović

89 Sample XML Pipeline Document
<?xml version=“1.0”> <pipeline xmlns=“http://www.w3.org/2002/02/xml-pipeline” xml:base=“http://www.cienecs.com/Examples/XMLPipeline”> <param name=“target” select=“’result’” /> <!– This section defines the processes and links them to their definitions (typically some hint to the controller on where and how to start off the processes). We chose Java for our examples, so the definition is in terms of Java classes. --!> <processdef name=“selector” definition=“com.cienecs.mobile.http.get_content_selector” /> <processdef name =“selector_content” definition=“com.cienecs.mobile.http.get_content_generator” /> <processdef name=“authenticator” definition=“com.cienecs.mobile.security.authenticator ($username) ($password)” /> <processdef name=“transformer” definition=“com.cienecs.mobile.transformer.xslt” /> <!– For our example, we chose a set of processes that select some content based on the user’s request. SO, the first thing to do is to find the content that the user requested. --!> <process id=“3” type=“selected_content” > <input name=uti_param_1” label=“content_finder_param_1” /> <input name=“uri_param_2” label=“content_finder_param_2” /> <output name=“cresult” label=“generic_content_URI” /> </process> Aleksandar Kovačević & Mina Mićanović

90 Sample XML Pipeline Document
<!– For our example, we want to transform the content based on the device that the user is using. SO, we need to fire off a process that finds out the user’s device type.. --!> <process id=“1” type=“selector” > <input name=“deviceId” label=“unique_device_id” /> <input name=“ccpp_header_string” label=“ccpp_header_string” /> <output name=“result” label=“device_type” /> </process> <!– Now, based on the user’s device type and the selected content, we can find the right type of transformer and transform the content properly. --!> <process id=“2” type=“transformer” > <input name=“device_type” label=“device_type” /> <input name=“generic_specific_URI” label=“generic_content_URI” /> <input name=“authenticated” label=“authenticated” /> <output name=“device_specific_content” label=“device_specific_content” /> </pipeline> Aleksandar Kovačević & Mina Mićanović

91 Aleksandar Kovačević & Mina Mićanović
XML Pipeline Recognize type of processes: Constructive processes produce new information Augmenting processes add new types (definitions) of information Inspection processes look at the content of a document Extraction processes copy a part of the document that they look into Packaging processes are distributed processes that address the processing of distributed resources Aleksandar Kovačević & Mina Mićanović

92 Aleksandar Kovačević & Mina Mićanović
WBXML WAP Binary Extensible Markup Language Defines a way to represent XML in 0’s and 1’s instead of text KXML (parse WBXML) Aleksandar Kovačević & Mina Mićanović

93 Aleksandar Kovačević & Mina Mićanović
SSML Synthetic Speech Markup Language It is used for the infrastructure of the voice user interface Aleksandar Kovačević & Mina Mićanović

94 Aleksandar Kovačević & Mina Mićanović
RDF Resource Description Framework Created specifically: to allow discovery of various resources indexing them creation of resources that are made up of other RDF resources by simply nesting the RDF descriptions RDF is part of Semantic Web. Aleksandar Kovačević & Mina Mićanović

95 Thank You for Your Attention
Aleksandar Kovačević & Mina Mićanović


Download ppt "Introduction to Mobile Computing"

Similar presentations


Ads by Google