Anda di halaman 1dari 74

TM

Mobile Application
Framework

1
Mobile Application Framework
TM

and Design Overview


•Growing rapidly with many diverse applications
•Many strengths but a few weaknesses
•Different aspects of mobility:
•People (customers, suppliers, employees)
•Devices (laptops, palm pilots, PDA, sensors)
•Networks: wireless
•Mobile devices and wireless networks are not always same
Mobile Wireless Sample Applications
Devices Networks
No No Stationary workstations in office
No Yes Wireless LANs to connect office workers in an unwired building
Yes No Using a portable computer in a hotel or conference room
Yes Yes Cellular phones, Palm Pilots, portable offices,
TM

Framework for Discussion


Drivers

•Wireless Business,
Mobile Business, Government, and Life Regulations, and
Standards
Mobile Computing Applications

•Architectures and
Integration
Mobile Computing Platforms
(Wireless Middleware, Mobile IP)
•Wireless Security

Wireless Networks •Management and


(Wireless LANs, Cellular Networks, Support
Satellites, Wireless Local Loops)

Enablers
TM

Business Drivers: Evolution of e-business and M-business


HTML
Web Sites
Market + ePurchasing
differentiation + eCRM
through + eSCM
automation HTML + Mobility + self
Web Sites serve customers +
+ ePurchasing no latency + …
+ eCRM Next Generation
+ eSCM Enterprise (m-Business)
e-Business
(includes B2B)
HTML
Web Sites M-Government is
+ ePurchasing following same pattern:
from e-government to
Basic e-Commerce
(mainly C2B) m-government
HTML
Web Sites
Basic Website
TM

Business Drivers: Evolution of


e-business and M-business
• Amazon.com, and several other organizations, have and are
going through the following stages of evolution:
– Stage 1: a simple HTML Web site to display/advertise company products.
The users manually order the product.
– Stage 2: an Ecommerce (EC) site where the users can select the products
and then also buy them
– Stage 3: a virtual enterprise (VE) site that goes beyond ecommerce site by
tying services from different companies through a single user interface (a
virtual enterprise is a network or loose coalition of a variety of value
adding services in a supply chain, that unite for a specific period of time
for a specific business objective, and disband when the goal is achieved).
– Stage 4: a Next Generation Enterprise (NGE) site that goes beyond VE
sites to add mobility, self-serve customers, QoS, and other features to
become the primary source of company business.
• In each stage, the percentage of company business conducted
over the network increases
TM

Mobile Applications
Categorization

B2B
C2B, B2C B2E, E2B
Consumer Business Employees

B2G, G2B

C2G, G2C
E2G, G2E
Citizens Government Employees

G2G
TM

Mobility Issues at
Various Levels
M-Business and
Mobile Applications

Platforms for Mobile Applications


-Middleware Platforms (WAP, I-Mode, J2ME, .NET CF)
Wireless - Mobile Platform Services
Infrastructure (Mobile OS (Palm OS, Windows CE, Symbian OS), Utilities)

Wireless Networks
TM

Mobile Computing Platforms


Server
Mobile Device (Web Server, eMail server,
(Cell Phone, PDA, Pocket PC) Mainframe)

Application Application

Middleware Middleware
Services Mobile Services
Computing
Local Network Platform Local Network
Platform Transport Platform Transport
Services Services Services Services

Physical Wireless Network


(Antennas, Transceivers, Base Stations,
Cellular Networks, 802.11 LANs,
Satellites)
Mobile TM

Computing Platform (1)


• The evolution of cell phone functionality is the result of
the sophistication of supporting infrastructure running
in the phones.
• The generic mobile computing platform that includes
the building blocks shared by most existing
approaches.
• The building blocks are:
1. Mobile Operating System
2. Runtime Environment
3. Middleware
4. Applications
TM

Generic Mobile
Computing Platform (2)

Applications

Middleware

Runtime Environment

Mobile Operating System

Figure 1: Generic Mobile Computing Platform Building Blocks


TM
TM

Mobile Application
Platforms
• - Mobile Operating System
• Symbian OS
• Palm OS
• IOS
• Windows CE/Mobile • Blackberry
• Embedded Linux • Android
• Qualcomm BREW
- Runtime Environment
• J2ME (JVM-Java Virtual Machine)
• .NET CF (CLR-Common Language Runtime)
• Dalvik ( Android VM)
- Middleware
• Java 2 Micro-Edition (J2ME)
• Microsoft .NET Compact Framework (.NET CF)
• Wireless Application Protocol (WAP)
• I-mode
TM

Mobile Operating
System (1)
• It is the software responsible for managing, exporting and
arbitrating the hardware resources provided by terminals.

• It is vital component that hides the underlying hardware


complexity and heterogeneity and enables the construction of
software.

• It is similar to the desktop operating system with restricted


components.

• It is including low memory footprint, low dynamic memory


usage, efficient power management framework, real-time support
for telephony and communication protocols and reliability.
TM

Mobile Operating
System (2)
1. Symbian OS
2. Palm OS
3. Windows CE .NET OS
4. Embedded Linux
5. Qualcomm BREW

• Note: All the OS above follow the architecture


presented in Figure1 except BREW
TM

Mobile OS: Examples

PalmOS PocketPC Symbian OS


/Windows Mobile Classic
(A subset of Windows CE)
Symbian OS TM

• Symbian OS is licenced to a large number of handset


manufacturers, which account for over 80% of annual worldwide
mobile phone sales (Symbian 2003).
• The version 8 is the first version that provides a real-time OS
kernel and supports the following features:
– 1) Rich suite of application services, including services for contacts,
schedule, messaging, browsing and system control
– 2) Java support, Real time, Hardware Support (different CPUs,
peripherals, and memory types), messaging with support for
MMS[Multimedia Messaging Service], EMS[Enhanced Messaging
Service], SMS[Short Messaging Service], POP3[Post Office Protocol
version 3], SMTP[Simple Mail Transfer Protocol], and MHTML[MIME
HTML]
– 3) Graphics with a graphic accelerator API, Mobile Telephony,
International Support, Data Synchronization, Device Management,
Security, wireless connectivity, including Bluetooth and 802.11b
• The latest version as of March 2007 is Symbian OS version 9.5
TM

Symbian OS v8
TM

Symbian OS v9
Palm OS TM

• Palm OS is the popular software platform for PDAs,


which has been extended with functionality for telephony.
• Features includes:
– multimedia,
– wireless connectivity,
– security with different encryption algorithm and SSL,
– built-in support for ARM (Advanced Reduced Instruction Set Machine)
processors,
– PIM (Personal Information Management) programs built in,
– large collection of software
– one of the largest software
– one of the largest software development communities,
– PC synchronization.
• Compared to Windows CE, .NET and Symbian OS, Palm OS
v5.0 is probably the less sophisticated terminal software
platform, both in term of OS design and Programming
TM

Windows CE (Embedded Compact)


.NET
• The Windows CE .NET platform is a new version of the popular
Windows OS specifically customized to embedded devices.

• Windows CE .NET is part of the Windows Mobile initiative,


which includes a built-in bundle providing PIM (Personal
Information Management) functionality, email and browsing
capabilities.

• It supports the following features:


– Support for small-footprint optimization, Hard real-time kernel, Robust
memory management, Advanced power management, open
communications platform (such as TCP/IP, IPv6, and OBEX), Remote
and systems manageability, Standards support (UPnP[Universal Plug and
Play], Bluetooth, XML[Extensible Markup Language] and SOAP [Simple
Object Access Protocol], and USB[Universal Serial Bus])
– Extensive storage and file systems
TM

Embedded Linux
• Use of the Linux operating system in embedded systems such as
cell phones, PDAs, media player handsets, and other consumer
electronics devices.

• Advantages:
– Open source
– Small footprint
(Windows CE takes 21MB compared to 2MB for Embedded Linux)
– No royalty costs
– Mature and stable (over ten years of age and used in many devices)
– Well supported

• Mobile Phones running Linux


– Motorola A760, A768, A780, E680
– Panasonic P901i,NEC N901ic, Samsung SCH-i519
TM

QUALCOMM BREW

• http://ww.qualcomm.com/brew/

• Binary Runtime Environment for Wireless (BREW) is a platform


from QUALCOMM that offer a methods to run software
application on mobile device.

• BREW is a full terminal software platform.

• BREW is a complete solution that includes both technical and


business elements.
TM

BREW
• QualComm created the BREW to address a specific problem.
– Nearly every cell phone sold today is expected to be
thrown away.
– Handset manufacturers must load each phone's
applications onto the handset at the factory.
– Each application must be custom-built for each individual
handset.
– How can the applications installed on your current phone
be transferred to your new one quickly
• BREW is intended to simplify application development on CDMA
handsets (from QualComm)

• End users can download new applications as binary code.


TM

Runtime Environment
• It provides a safe and managed execution environment and
contributes to the development of portable applications.

• Most existing runtime environments are based on sandbox model


that prevents applications from accessing unauthorized
resources.

• Applications that execute in the runtime environment are coded


in an intermediate language (for example, Java byte code or
Microsoft Intermediate Language (MSIL)) and are interpreted or
compiled on demand before execution.

• Furthermore, the use of an intermediate language allows


execution of the same applications in heterogeneous
environments.

• Example: J2ME, .NET CF


TM

OUTLINE
(Middleware)

• Overview of middleware
• Middleware for wireless and mobile wireless
applications
• Example mobile middleware
– Wireless Access Protocol (WAP)
– Java 2 Micro-Edition (J2ME)
– Microsoft .NET Compact Framework (.NET CF)
TM

Middleware (1)

• Middleware comprises a collection of services that provide


functionality to simplify the construction of applications that
execute across heterogeneous platforms.

• It supports the remote communication (for example, remote


procedure calls and object request brokers), synchronization,
caching, event notification, multimedia, security and graphics.

• Middleware can leverage the execution runtime or it can interact


directly with the operating system for improved performance.
Middleware (2) TM

• Middleware is a somewhat overloaded term


• Generally speaking, middleware provides software
services for application programs above the basic
operating system and networking services
• Accessed via an application program interface (API),
but more than an API

Application Programs
API
Middleware

Operating System
and Networking Services
TM

Middleware (3)
• Goal is to simplify development effort and
increase application functionality and robustness
– Allow code to run across different platforms
– Provide higher level abstractions of services
• Example functions
– Messaging
– Distributed object management
– Directory services
– Location services
– User-defined and composite data types
– Remote procedure calls (RPC)
– Alternate communication abstractions
TM

The Role of Wireless


Middleware
• Middleware is a layer between the operating system and
applications that provides a set of services
• Middleware presents an abstract interface to the
application that provides the application developer with
a uniform view of lower-level operating systems and
networks
• In wireless mobile environments, middleware must be
flexible to enable adaptation to changes in…
– the underlying operating systems and networks, and
– application requirements
The Role of TM

Wireless Middleware (cont.)

• Transformation: Convert between two contents (HTML to WML)

• Detection and adjustment: Wireless middleware products can detect different


devices and can optimize the wireless data output according to device
attributes.

• Compression. Middleware products can use various data-compression


algorithms to minimize the amount of data being sent over the wireless link.

• Security: Wireless middleware should ensure end-to-end security from


handheld devices to application servers.

• Message delivery: Middleware can perform message storage and forwarding


should the user get disconnected from the network.

• Operation support: Middleware should offer utilities and tools to allow MIS
personnel to manage and troubleshoot wireless devices.
Middleware for TM

Mobile Computing
Applications
• "information hiding” wireless middleware
– attempts to smooth over the mobile computing issues
– the same applications can run on wired as well as wireless
networks.
– This goal is met through specialized APIs
– Example: WAP

• "information providing" wireless middleware


– provides as much information about the underlying
environment to the application as possible.
– exploits the network quality of service, cost, and location
information for optimum performance
– Many specialized middleware systems
Desirable Middleware
TM

Functionality (1)
• Optimization – data compression
• Transformation – data format transformation to suit
various device specifications
– HTML pages to WML (for WAP 1.0 devices) and vice versa
– SOAP/XML for web services
• From XML to xHTML (for WAP 2.0 and future i-mode devices)
• From XML to cHTML (for existing i-mode phone devices)
• Support for security and privacy
• Support for mobility
– Location transparency (ad hoc communication) versus
awareness
TM

Desirable Middleware
Functionality (2)
• Support for service discovery
• Support for disconnected operation
• Context-aware adaptability
– Status of the host device, the user, the surrounding
environment, and the interactions between the host
device and other devices
– Essential for pervasive (ubiquitous) computing
• Platform independence
– Same program can be run on a wide variety of
devices and platforms
Example “Mobile” TM

Middleware (1)
• Client-server model
– Wireless Application Protocol (WAP)
– Web services
• Server
– Microsoft’s Mobile Internet Toolkit (MIT)
• Client
– Microsoft’s eMbedded Visual Toolkit (eVT)
– Microsoft’s .NET Compact Framework (.NET CF)
– Sun’s Java 2 Micro Edition (J2ME)

• Peer-to-peer and ad hoc model


– Intel/Microsoft Universal Plug and Play (UPnP)
– Jinit/J2ME
– Service Location Protocol (SLP)
TM

WAP – Objectives
• Enable wireless terminals, especially digital cellular
phones, to access Internet content and advanced data
services
• Specify a protocol that will work across differing global
wireless network systems
• Enable creation of content and applications that scale
across different networks and devices
• Where possible, use and extend existing standards and
technologies
Internet WAP Wireless
TM

WAP – Programming Model


encoded
Client Gateway Server
request request
Web Encoders HTTP
Browser wireless Decoders Server

Protocol CGI,
encoded
Gateways response etc.
response

• WAP gateway or proxy


– Content encoders and decoders
– Protocol gateways, e.g. for WAP protocols to
HTTP and TCP/IP
WAP and Wireless TM

Web Access (1)


• Data transformation
– WAP gateway performs data
transformation between WML (or Encoded
Encoded Response
XHTML) and HTML request (WML)
• Data compression
WAP Gateway
– Technique are used for dealing
with images and other graphics
Request Response
• Adaptability (e.g., HTTP) (e.g., HTML)
– User profile and device
characteristics are stored in the Web
WAP gateway Server
TM

WAP and Wireless Web


Access (2)
• Security
– Secure Enterprise Proxy (SEP) using 128-bit
encryption in WAP 1.2
• Service discovery and mobility support
– WAP’s “walled garden” – WAP gateways are
provided by ISP such as AOL
TM

Java Platforms
Wireless Java TM

and J2ME
Wireless Java
J2ME JavaCard

Applications Applets MIDlets Java card Applets

Profiles GSM
Personal MIDP, PDA

Configurations CDC
(Connected Device CLDC (Connected Java Card API
Configuration) Limited Device Configuration)

Runtime Consumer Virtual Kilo Virtual Machine JavaCard Virtual


Environments Machine (CVM) (KVM) Machine

High end Handheld devices,


Devices devices cell phones Smart cards

Wireless Java = J2ME + other Java Technologies (e.g., Java Cards)


TM

Java 2 Micro Edition


Architecture
Configurations
 Device classes
Profiles
 Market segment

• An J2ME compliant application consists of


– Configuration
– Profile (e.g. Personal, Mobile Information Device Profile (MIDP))
– Application code
TM

Sun Java – J2ME


• The most popular runtime environment for mobile phones, ODAs,
TV set-top boxes, and in-vehicle telematics system.
• It consists of 3 layers:
– Java Virtual Machine (JVM), configuration and profile.
• J2ME provides a subset of the functionality offered by J2EE and J2SE,
and it is customized to devices with limited resources.
• The most popular J2ME configurations:
– Connected Limited Device Configuration, CLDC
– Connected Device Configuration, CDC
• CLDC is designed for devices with intermittent network connection,
slow processors, and limited memory.
• CDC is designed for devices that have more memory, faster processors
and greater bandwidth.
• CDC uses the same JVM as J2EE and J2SE, while CLDC relies on a
virtual machine (KVM) customized to devices with limited resources.
J2ME – Java TM

for Hand-Held Devices (1)


• Platform independence
– The same byte-code Java
application can be
downloaded and executed by
all Java-enabled devices Byte-code Java
Applications
• For example, a MIDlet created (e.g., MIDlets)
based on the MIDP (Mobile
Information Device Profile)
API
– Pre-verification at compile
time to verify if an application
can run with J2ME’s Kilobyte
Virtual Machine (KVM)
J2ME – Java for Hand-
TM

Held Devices (2)


• Data compression
– A MIDlet application comes with a Java Application
Descriptor (JAD) metafile containing instructions for
uncompressing the application in compressed Java Archive
(JAR) format
• Security
– Java Card technology using public key
– A downloaded Java program must have a legal digital
signature to execute
• Service discovery
– JINI based on Java service objects (distributed computing)
TM

J2ME Architecture (1)

From S. Helal, “Pervasive Java,” IEEE Pervasive Computing, Vol. 1, No. 1, Jan.-March 2002, pp. 82-85.
TM

J2ME Architecture (2)

• Profile layer
– Minimum set of APIs available for the specified
underlying configuration
• Configuration layer
– Defines a minimum set of JVM features and core
Java class libraries available on a particular category
of devices
• JVM layer
– Virtual machine layer (bottom layer)
J2ME/MIDP TM

Runtime on a PocketPC
• Sun Microsystems has
released JVM with MIDP J2ME applications
(Mobile Information Device (MIDP)
Profile) for PalmOS PDAs,
but is not continuing ME4SE
(J2ME emulator)
development of JVM for
PocketPC
Jeode JVM
• J2ME can be run on a (Personal Java)
PocketPC
– Jeode JVM provides Personal
Java 1.2 support. PocketPC
– ME4SE emulates MIDP devices
using Personal Java
TM

Microsoft .NET
Compact Framework
• .NET CF, which provides a subset of the .NET framework functionality
customized to mobile terminals.
• .NET CF is similar to the standard framework but removes certain services
and libraries that are not considered essential for mobile devices.
• The Common Language Runtime (CLR) provides a secure and robust
execution environment.
• The CLR composed 2 components:
– Common Type System (CTS): CTS defines the types supported by executive
environment.
– Execution Engine (EE): EE handles garbage collection, handles exceptions,
enforces code access security and handles verification.
• The .NET framework defines a common language specification (CLS) that
is supported by all .NET language.
TM

Microsoft’s .NET CF
• .NET Compact Framework (.NET CF) is part of Microsoft’s
larger .NET Framework
– Targets PocketPC, WindowsCE, Windows Mobile, etc.
• .NET CF is based on Microsoft’s Common Language
Infrastructure (CLI) standard
– Source code and complied binaries in Microsoft Intermediate Language
(MSIL) can run across CLI-based heterogeneous devices
– Microsoft’s Common Language Runtime (CLR), like Sun’s JVM, has the
objective of platform independence
• NET CF allows small form-factor devices to easily access remote
(server) data using the Internet standard protocols
– XML-based Simple Object Access Protocol (SOAP)
– Web Service Description Language (WSDL)
– XML web services are central to Microsoft’s .NET framework
TM

.NET Component Framework (1)

 CLI-compliant base class


libraries provide building block
functionality for all applications
(basic file I/O, networking, XML
handling)

 CLR runs MSIL (Microsoft


Intermediate Language) and
uses a just-in-time (JIT)
compiler to convert MSIL to
native code

 Platform adaptation layer (PAL)


tailored for a specific platform

C. Neable, “The .NET Compact Framework,” IEEE Pervasive Computing, Vol. 1, No. 4, Oct.-Dec. 2002, pp. 84-87.
TM

.NET Component Framework (2)

 Available to applications in
.NET CF
 Windows forms library
 XML web services
 ADO.NET (Active Data
Object for remote data-
access)

C. Neable, “The .NET Compact Framework,” IEEE Pervasive Computing, Vol. 1, No. 4, Oct.-Dec. 2002, pp. 84-87.
Mobile Data TM

Access in .NET CF
• Active Data Object (ADO) .NET
– Mobile applications can access
Microsoft SQL Server 2000 on
SQL Server CE
remote servers or access a SQL
• Caching Server CE locally on the device
• Synch
• Disconnected mode support
Internet – SQL Server CE lets applications
cache large volumes of data (tens of
Internet megabytes), read, and update in
Information disconnected mode
Server (IIS)
• SQL Server CE provides
synchronization mechanisms for
SQL Server
changes made upon reconnection
TM

.NET CF Functionality (1)


• Platform independence
– The same .NET MSIL-
code application can be
downloaded and executed MSIL-code
.NET Applications
by CLR enabled devices dynamically delivered
to CLR-enabled devices
• Optimization
– Proxy protocols can be
designed to optimize
performance using
techniques such as forms
differencing
TM

.NET CF Functionality
(2)
• Data Transformation
– XML transformed automatically to HTML,
XHTML, cHTML, or WML (at the server end)
• Disconnected operations
– Data caching, pre-fetching, and synchronization
available using Microsoft SQL Server 2000 on the
remote server and SQL CE on the local device
TM

PocketPC User
Interface Design (1)
• User Interface design constraints
– A small, portrait-oriented, touch-sensitive screen
– User input with an input panel and the stylus (pointer)
• Single-tap opens an item
• A tap and hold displays a pop-up menu or a tip
• Normally no “Close” button is necessary
– PocketPC automatically closes idle applications as more
memory is needed
• Normally no “Save” button is necessary
– PocketPC relies on application’s “autosave” to retain user
data
PocketPC User TM

Interface Design (2)


• System-level and
navigation actions at
the top of the screen
– Start Menu
– Navigation Bar (top)
• Application-level and
editing actions at the
bottom of the screen
– Menu bar (also called
command bar)
– Input Panel Button
Pocket PC User TM

Interface Controls
• Buttons • Combo boxes
• Check boxes • Up/Down controls
• Option buttons • Date/Time pickers
• Command bars • MonthCal controls
• Tool bars
• List views
• ToolTips
• Header controls
• Menus
• Pop-up menus • Tree views
• Message boxes • Group Line Separators
• Property sheets • Scroll bars
• Tabs • Sliders
• Text boxes • Status bars
• List boxes • Progress bars
TM

.NET CF and VS .NET

• NET Compact Framework – add-in for Visual


Studio .NET 2003
• Uses C#
• Write managed .NET code
Java and .NET TM

Philosophies
• .NET is ...
– Language independent (VB, C#)
– Platform dependent
(Windows CE, PocketPC, Smartphone)
– Company driven

• Java is ...
– Language dependent
– Platform independent
– Community driven
TM

J2ME Vs .NET CF (1)


J2ME
.Net J2ME Connected
Connected
Compact Limited Device
Device
Framework Configuration
Configuration
Device Powerful, Powerful,
Cheap, pervasive
requirements expensive expensive
Cost High High Medium
Consumer and
Market focus Enterprise Enterprise
enterprise
Language
C#, VB.Net Java Java
support
Pocket PC, Major mobile
All mobile
Platforms Windows platforms except
platforms
CE Palm OS
Byte code Standard Not compatible
Standard Java 2
compatibility .Net CLR with J2SE or CDC
Partial
Subset of J2SE
compatibility with
API Subset of plus standard
CDC with
compatibility .Net optional
additional standard
packages
optional packages

http://www.javaworld.com/javaworld/jw-02-2003/jw-0221-wireless.html
TM

J2ME Vs .NET CF (2)


J2ME Connected J2ME Connected
.Net Compact
Device Limited Device
Framework
Configuration Configuration
P/Invoke;
JNI; device- and OS-
Native APIs consistent across N/A
specific
supported devices
Command line,
Command line,
Development vendor SDKs,
VS.Net 2003 vendor SDKs, all
tools CodeWarrior, and
major Java IDEs
WebSphere
Specification
Single company Community Community
process
Limited Java 2
Security Simplified .Net Full Java security model
model model manager supplemented by
OTA specification
ActiveSync,
Client Formal OTA
Internet Explorer Sync, download
installation specification
download
I-Mode
TM

•Very popular in Japan (around 20 Million users)


•Competitor to WAP
•Very heavy graphics oriented
•WAP and I-mode may combine
Cellular
Phone
with I-Mode Web
I-Mode Gateway Server
Browser cHTML
over
Packet Switching
Network Web
Content

•NTT Docomo runs I-mode


•Always on service (use GPRS)
•9.6 Kbps at present - 3G later
•Need a special I-mode phone, larger screens
•I-mode sites have pre-fabricated content
TM

Mobile Application Servers


TM

Client-Server vs.
Peer-to-Peer (1)
Client-Server Computing Peer-to-Peer Computing

Server

• Client initiates • Any participant can


communications initiate communication
• Client issues request • Any device can
to a server generate a request
• Server replies or • Any device may
performs some service provide a response
TM

Client-Server vs.
Peer-to-Peer (2)
Client-Server Computing Peer-to-Peer Computing

• Centralized resources • Decentralized


sharing information or
resources sharing

• Server oriented • No server

• Middleware might be • Small network –


needed less than 10 nodes
normally
TM

Client-Server Models
for Middleware
• Client-server

• Client-agent-server

• Client-intercept-server models
TM

Client-Server Model
(1)
• Communication models
– Message passing with queuing
– Remote procedure call (RPC)

• Client-server synchronization
– Synchronous
• Inadequate – Client is blocked if disconnected
– Asynchronous
• Client requests are queued locally and control is returned immediately
to the client
• When the mobile is connected, the queue is drained in the background
and any queued messages or calls are forwarded to the server
TM

Client-Server Model (2)


Wireless Fixed
Network Network
Mobile Host
Application
Application Server
Client

• Optimization for mobile/wireless involves changes at


both the client and server
• Example (worst-case)
– Standard web browser accessing an HTTP server over a
wireless link
TM

Client-Agent-Server
Model (1)
• Computation is split into two units
– Client-agent: optimized for mobile environment
– Agent-server: traditional (non-mobile) design

• Dealing with disconnection


– Clients submit requests to the agent and retrieve responses from the agent
upon reconnection
– The agent can employ optimization and transformation techniques to the
data to be transmitted depending, based on
• Type of data
• Type of devices
• Application-specific requirements
Client-Agent-Server
TM

Model (2)
Wireless Fixed
Network Network
Mobile Host
Application
Application Agent
Server
Client

• Optimization for mobile/wireless involves


client and agent
• Single application server to support both fixed
network clients and mobile clients
TM

Client-Agent-Server Example
• Wireless Application Protocol (WAP)
– Mobile device runs the client
– The gateway acts as the agent
– Standard HTTP server can be used
encoded
Client Gateway Server
request request
Web Encoders HTTP
Browser wireless Decoders Server

Protocol CGI,
encoded
Gateways response etc.
response
TM

Client-Intercept-
Server Model (1)
• Inter-agent optimization protocols can be used between
the client-side agent and the server-side agent
– Minimize communication cost via…
• Caching
• Differencing
• Header reduction
• One-HTTP connection per session
• Caching/prefetching at the client agent to allow
disconnected operations
– For example, ADO .NET/SQL server CE
TM

Client-Intercept-Server
Model (2)
Wireless Fixed
Network Network
Mobile Host

Client Application
Agent
Client Side Server
Agent

• Example – IBM Web Express


– Web Browser (client)  HTTP  Client-side
agent  TCP/IP connection  Server side agent
 HTTP  Web server
TM

Resources
• Amjad Umar, “Mobile Computing and Wireless Communications”, NGE
Solutions, Publication, 2004
(http://books.google.com.my/books?id=27cSWnW86oEC&pg=RA1-
PA423&lpg=RA1-PA423&dq=Wireless+MAS& source=
web&ots=5RVuKkR8TH&sig=L6-xgfz5WuqrcjCjVsJp0hgEbeo &hl =
en&sa=X&oi=book_result&resnum=1&ct=result#PRA1-PA618,M1)
• S. Helal, “Pervasive Java,” IEEE Pervasive Computing, Vol. 1, No. 1, Jan.-
March 2002, pp. 82-85.
• S. Helal, “Pervasive Java, Part II,” IEEE Pervasive Computing, Vol. 1, No. 2,
April-May 2002, pp. 85-89.
• C. Neable, “The .NET Compact Framework,” IEEE Pervasive Computing,
Vol. 1, No. 4, Oct.-Dec. 2002, pp. 84-87.
• A. Tripath, “Challenges in designing next-generation middleware systems,”
Communications on the ACM, Vol. 45, No. 6, June 2002, pp. 39-42.
• Open Mobile Alliance, http://www.openmobilealliance.org/, 2003.

Anda mungkin juga menyukai