T-110.455 Network Application Frameworks and XML
Download
Report
Transcript T-110.455 Network Application Frameworks and XML
T-110.5140 Network Application
Frameworks and XML
Mobile Middleware
18.3.2008
Sasu Tarkoma
Contents
Mobile Middleware
Motivation
Examples
Summary
Mobile Middleware I
Middleware is typically designed and
implemented for fixed-network hosts
High bandwidth, low latency, reliable
communication
Persistent storage and sufficient computing
power
No mobility
Mobile environment requires new
solutions
Existing middleware services do not scale
Previous lectures: mobility is challenging
Small devices / embedded systems pose
totally different challenges
Mobile Middleware II
Goals for middleware:
fault-tolerance, adaptability,
heterogeneity,scalability, resource sharing
Mobile middleware
dynamically changing context
decoupled
events, tuple spaces
Basic solution for wireless
Use a proxy
Reflection
In general, middleware provides
transparency to the underlying conditions
In mobile environments this is not always
desired
Location transparency in RPC/RMI
Sometimes we need to know about location
changes, QoS changes, etc.
Requirement for reflective middleware
Should expose APIs for querying / changing
important parameters
Under development
WAE
Middleware
.NET
Objects
IPv6
mobility,
HIP
XML
J2ME
Symbian
Wireless
CORBA
Plain
IPv4 MIP
NAF
Mobility
Secure
mobile XML
routing
Security
Examples
WAE
J2ME
Symbian
MAEMO
Android
Wireless CORBA
Mobile Web Server
Pervasive Computing Middleware
Fuego
WAE
Wireless Application Environment (WAE)
A suite of protocols and specifications for
optimizing data transfer for wireless
communication
WAP stack
Focus on binary transmission
Protocols
WSP (Wireless Session Protocol)
• HTTP replacement, “compressed”
WTP (Wireless Transaction Protocol)
• Request/response, more efficient than TCP
WTLS (Wireless Transport Layer Security)
• Based on TLS, may not be end-to-end with a
gateway
WDP (Wireless Datagram Protocol)
• UDP replacement
Programming model
Client
Web
Browser
encoded
request
wireless
encoded
response
Gateway
Server
request
Encoders
Decoders
Protocol
Gateways
HTTP
Server
response
CGI,..
Web Access
Data transformation
Data compression
User profile and device characteristics are stored
in the WAP gateway
Security
Technique are used for dealing with images and
other graphics
Adaptability
WAP gateway performs data transformation
between WML (or XHTML) and HTML
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
Comparison
HTML/JS
WAE
Other
Session Layer (WSP)
HTTP
TLS - SSL
TCP/IP
UDP/IP
Transaction Layer (WTP)
Security Layer (WTSL)
Transport Layer (WDP,UDP)
Bearers: SMS,CDMA,..
WAE: current status
WAP Forum now in OMA (Open Mobile Alliance)
WAP 2.0, is a re-engineering of WAP using a cutdown version of XHTML with end-to-end HTTP
Gateway and custom protocol suite is optional.
WAP used by many handsets
1.2 version introduced WAP Push (typically using
an SMS message)
Typically versatile networking stacks with also
IPv6 support
Java 2 Platform Micro Edition
(J2ME)
Java for consumer electronics and
embedded devices
A virtual machine and a set of APIs
Configurations and profiles
Configurations
two-low level APIs and optimized VMs
• CDC, CLDC
Profiles
API specification on top of a configuration for
complete runtime
CLDC: MIDP
CDC: Foundation, Personal Basis, Personal
Specify both APIs and Configurations
Profiles defined using Java Community
Process (JCP)
Source: http://developers.sun.com/techtopics/mobility/getstart/articles/survey/
J2ME optional packages
JSR 172: J2ME Web Services Specification
Content Handler API (CHAPI) JSR 211
Security and Trust Services JSR-177
J2ME Client Provisioning JSR-124
allows the invocation of J2ME platform applications
from native applications and vice versa
J2ME Client Provisioning Specification defines a
server partitioning standard for provisioning
applications.
Mobile Media API JSR-135
CLDC Technology
Connected Limited Device Configuration (CLDC); JSR 30,
JSR 139
Mobile Information Device Profile (MIDP); JSR 37, JSR 118
Information Module Profile, (IMP); JSR 195
Java Technology for the Wireless Industry, (JTWI); JSR 185
Wireless Messaging API (WMA); JSR 120, JSR 205
Mobile Media API (MMAPI); JSR 135
Location API for J2ME; JSR 179
SIP API for J2ME; JSR 180
FileConnection and PIM API (JSR-75)
Security and Trust Services API for J2ME, (SATSA); JSR-177
Mobile 3D Graphics; JSR-184
J2ME Web Services APIs, (WSA); JSR 172
Bluetooth API (JSR-82, Motorola, Java Partner Site)
J2ME Content Handler API, (CHAPI); JSR 211
CDC Technology
Connected Device Configuration (CDC); JSR 36,
JSR 218
Foundation Profile, (FP); JSR 46, JSR 218
Personal Basis Profile, (PBP); JSR 129, JSR 217
Personal Profile, (PP); JSR 62, JSR 216
J2ME RMI Optional Package, (RMI OP); JSR 66
JDBC Optional Package for CDC/Foundation
Profile API; JSR 169
Java TV API; JSR 927
Java Secure Socket Extension for Connected
Device Configuration (JSSE)
Symbian
OS for handheld devices with limited
resources
User interface framework
APIs (C++)
Tools
Operating System
Pre-emptive, multitasking, multithreading,
memory protection
Event-based, active objects
Memory conservation, reliability, CPU
optimizations
Software Components
Kernel
Application
Program with a user interface
Runs in user mode in its own process
Server
Manages and controls access to hw
Hw-supported privileges, kernel mode
Program without a user interface
Manages resources, provides interface to clients
File server, window server, comms, ..
Engine
Application part that manipulates data, typically
separate DLL
Symbian architecture
UI Framework
Java J2ME
Application Services
Generic OS
Services
Comms
Services
Multimedia & ConnecGraphics Srv. tivity Srv.
Base Services
Kernel Services & Hardware Abstraction
MAEMO
Open Source development platform for
Nokia Internet Tablets and other Linuxbased devices
Maemo SDK
www.maemo.org
Android
Mobile OS and application platform from Google
Open Handset Alliance
Linux kernel
Open Source (not yet available)
Uses Java to build applications (Java SE class
library parts from Apache Harmony project)
Optimized virtual machine called ”Dalvik”
Runs .dex files (derived from .class or .jar)
Relies on underlying system for process isolation,
memory mng, and threading
Independent of Sun and JCP
Java APIs for basic comms, location, SQLite,
OpenGL, SyncML
Wireless CORBA
CORBA does not support accessing
mobile objects or wireless
communication
Three basic requirements
Wireless CORBA specification
Invocations from mobile objects
Invocations to mobile objects
Wireless communication
Home bridge
Access bridges
Tunnelling over wireless
Handoff protocols
Mobile IP vs. WCORBA
MIP addresses host mobility, not object
mobility
MIP does not specifically support
wireless protocols
MIP hides all handoff events
location-aware services difficult to implement
• Redirects requests for
Architecture
services on the terminal
• Abstract transport-independent
• Keeps
track of the current
• Encapsulates,
forwards
or ignores
tunnel
for
GIOP
messages
• Other side end of the Access Bridge
access bridge
incoming
GIOP
messages
•
Concrete
tunnels
for
TCP/IP,
• Encapsulate/decapsulates msgs
• Decapsulates
andWDP.
forwards
UDP/IP
andevents
WAP
• Generates
mobility
messages
from reliable
the GIOP
tunnel
• Protocol
requires
and
• Generates
mobility events
ordered
delivery
• Lists available services
Handoffs
Network initiated handoff
Terminal initiated handoff
started by an external application
optional to support make-before-break
terminal discovered a new Access Bridge
make-before-break is required
Access recovery
The Home Location Agent is updated
Old Access Bridges are informed
Mobility events are generated in the
visited domain and the terminal domain
Network Initiated Handoff
Mobile Web Server
Port of Apache web server to Symbian
S60
Custom gateway to connect mobile
servers with the Internet
The firewall/NAT problem
Link
http://research.nokia.com/research/projects/m
obile-web-server/index.html
Overview
Webserver
2
Browser
1
3
2.5/3G
Operator
Firewall
DNS
Gateway
By courtesy of Johan Wikman
Presented in EuroOSCON 2006
Internet
Pervasive computing middleware
Projects
Key Issues
UIC
Heterogeneity of devices and networks: It helps users to specialize to the particular
properties of different devices and network environments
X-Middle
Disconnected operations in mobile applications: It allows mobile users to share data
when they are connected, or replicate the data and perform operations on them off-line
when they are disconnected; data reconciliation takes place when user gets reconnected
Gaia
Dynamic adaptation to the context of mobile applications: It supports the
development and execution of portable applications in active spaces
Lime
Programming constructs which are sensitive to the mobility constraints: It explores
the idea by providing programmers with a global virtual data structure and a tuple space
(Tspace), whose content is determined by the connectivity among mobile hosts
Tspaces
Asynchronous messaging-based communication facilities without any explicit
support for context-awareness: It explores the idea of combination of tuple space
(Tspace) and a database that is implemented in Java. Tspace targets nomadic
environment where server contains tuple databases, reachable by mobile devices
roaming around
L2imbo
QoS monitoring and control by adapting applications in mobile computing
environment: It provides the facilities of multiple spaces, tuple hierarchy, and QoS
attributes
Aura
Distraction-free pervasive computing: It develops the system architecture, algorithms,
interfaces and evaluation techniques to meet the goal of pervasive computing
Fuego Core (HIIT)
Mobile and wireless environments have
different requirements than desktop
systems
Vision: A service application is distributed
among various application servers,
network elements and terminals
Three year Tekes project (2002-2004)
User mobility, terminal mobility, connectivity,
device characteristics, dynamic environments
Industrial partners: Nokia, TeliaSonera, Elisa,
Ericsson, Movial
Open source software
Demonstration at WMCSA 2004
Fuego Architecture
The Fuego middleware service set for
mobile computing
Data communication
Data synchronization
Efficient wireless SOAP
Efficient content-based routing (asynchronous
events)
3-way XML document merging
XML-aware distributed file system
Applications
Presence service, mobile ticker, image-album
Ubiquitous and Pervasive software
MobileServices
Services
Mobile
MobileApplications
Applications
Mobile
PresenceService
Service
Presence
PresenceClient
Client
Presence
Sync. File
System
Sync.Filesystem
system
Sync.File
Event Service
Filter Service
Event Bus
Filter Service
Jetty
Jetty
WirelessSOAP
SOAP
Wireless
HTTP1.1
1.1
HTTP
BEEP
BEEP
Servlets
Servlets
ApacheAxis
Axis
Apache
Jetty
Jetty
WirelessSOAP/SOAP
SOAP/SOAP
Wireless
HTTP1.1
1.1
HTTP
BEEP
BEEP
TCP
Host Identity Protocol (HIP)
IP
IP
Mobile Clients
Distributed Servers
Automatic reconciliation of XML documents
Ubiquitous and Pervasive software
Optimized storage of
XML
Expressive
async. communication
MobileServices
Services
Mobile
Ad-hoc file sharing
Content-based
routing
using
filters
Presence service based on events
Integrates
with
existing file systems
(NFS) / mobility support
Event attribute
buffering
MobileApplications
Applications
Control of presence
visibility
Mobile
PresenceService
Service
Presence
Support for context-aware
operation
PresenceClient
Client
Presence
Sync. File
System
Event Service
Efficient sync/async messaging
Sync.File
system
Filter Service
Sync.File systemEfficient XML serialization
Bus
Persistent Event
connections
across mobility
Servlets
ApacheAxis
Axis
Reliable messaging
Filter Service
Servlets
Apache
Multiplexing multiple connections on TCP
Prioritization
of connections
Jetty
Jetty
Wireless
SOAP of hosts
WirelessSOAP/SOAP
SOAP/SOAP
Jetty
Jetty
SOAP
Wireless
End-to-endWireless
authentication
Encryption of network traffic using IPsec
HTTPMobility
1.1
BEEP
HTTP1.1
1.1
BEEP
HTTP
1.1
BEEP
HTTP
BEEP
and multihoming
support
Resilient sockets
TCP
Host Identity Protocol (HIP)
IP
IP
Mobile Clients
Distributed Servers
FUEGO DEMO
Summary
Mobile middleware
Desktop middleware not usable on small,
mobile devices
Special solutions are needed
J2ME, WAE, Wireless CORBA, ..
Current trend
Flexibility, decoupled nature
Convergence / unification