Concerns in networking
Download
Report
Transcript Concerns in networking
Networking and Mobile
Devices
Content and goals
•
•
•
•
Introduction
Application partitioning
Concerns in networking
Sample techniques
– Web Services
– Bluetooth
• MIDP Java and web services
• Symbian OS and Bluetooth
• Summary
Introduction
• Fundamentally, mobile devices liberate from the
restrictions associated with a location -> Physical
distribution
• Issues
– Resources
– Transparency (off-line working, cost awareness, energy
consumption, travel-through time, ...)
• Can be taken as yet another resource whose accessing
can be slower
– E.g. memory
• Separate thread often needed for UI and
communications
Networking System
Station 2
transmissions
Station 3
Station 1
Adding a Proxy
Station 2
Proxy
Station 1
Fixed Wireless
domain domain
Wireless
Station
Example Proxy: Wireless Corba
Corba invocations
object
object
GIOP
GIOP
GTP
Adaptation
and
transport
Terminal
GTP
wireless
IIOP
Adaptation
and
TCP
transport
Access bridge
IIOP
TCP
fixed
Other ORB
Wireless Application Protocol
WAP
Example Proxy: WAP
WAP device
WAP gateway
Web server
WAE
WSP
WAE
WSP
HTTP
HTTP
WTP
WTP
WTLS
WTLS
SSL
SSL
WDP
WDP
TCP
TCP
Bearer
Bearer
IP
IP
(WAP Stack in Device)
Application layer: Wireless application environment (WAE)
(includes WML and WMLScript)
Session layer: Wireless session protocol (WSP)
Transaction layer: Wireless transaction protocol (WTP)
Security layer: Wireless transport layer security (WTLS)
Transport layer: Wireless datagram protocol (WDP)
Bearers (SMS, CSD, GPRS,...)
Infrastructure vs. Ad Hoc
Networks
• Infrastructure
– Managed structure; control on who is allowed to
participate
– Somewhat static
– Commonly relies on e.g. servers and registry
components
• Ad-Hoc
– Members enter and leave uncontrollably
– Dynamic in nature
– Commonly relies on e.g. dynamic service
discovery and formation rather than servers
Ad-hoc network
A B
C
A B
D
C
A
D
Stateful vs. Stateless Systems
• Stateful
– Each station can have its own state
– Global state is the combination of all local states
– Complicates e.g. testing
• Stateless
– No stored state
– Usually one control
– Eased testing
• Dilemma: Stateless can implement stateful by
carrying all state information in transmissions
– Serious communication overhead
– Needed in practice if no support from underlying
infrastructure
Design patterns for networking
environment
• Use a network wrapper
• Consider treating networking features
similar to resources
• When implementing server, keep it
separate from client
• Be prepared for loading times
• Consider proactiveness
Content and goals
•
•
•
•
Introduction
Application partitioning
Concerns in networking
Sample techniques
– Web Services
– Bluetooth
• MIDP Java and web services
• Symbian OS and Bluetooth
• Summary
Program-Oriented Approach
using Client-Server Paradigm
Client 1
Server 1
Services
Client 2
Client 3
Server 2
Services
Client-Server Architecture in a
Mobile Device Only System
Device 2
Client
App 2
Device 1
Client
App 2
Server
App 1
Server
App 2
Device 3
Client
App 2
Client
App 1
Browser-based Approach
• Only requests and replies used, stateless
protocol is enough
– WML, HTTP, XHTML, ...
• Downloading of executables that run on the
fly
• Problems
– Convenient use may require redesign of web
systems in any case
– Travel-through time can be difficult to hide
– Proxy?
Web Browsing Proxy
Mobile
device
Computer
at home
Web server
Services
Wireless access
- Screen shots
- Link information
Broadband access
- HTTP
- Java
Telephony or Data
Communications?
• Telephony
– SMS, MMS (SMIL)
– Commonly rapid connections (something may be taking
place behind the curtains however)
– Network push is ok
• Data communications
– GPRS
– Long connection time
– How to make a network initated operation?
• Some issues
– Cost, ease of use, what is expected by the user, what
facilities are available in the installation base, ...
Content and goals
•
•
•
•
Introduction
Application partitioning
Concerns in networking
Sample techniques
– Web Services
– Bluetooth
• MIDP Java and web services
• Symbian OS and Bluetooth
• Summary
Concerns in Networking
• Network resource management
– Often visible in software architecture as a dedicated
application module
– Connection to e.g. master communications facility?
• Finding suitable network components
– Know the address
– Centralized repositories
– Query protocols
• Service use
– Stateless or stateful communications?
• Graceful termination
– User initiated
– Timeouts
Content and goals
•
•
•
•
Introduction
Application partitioning
Concerns in networking
Sample techniques
– Web Services
– Bluetooth
• MIDP Java and web services
• Symbian OS and Bluetooth
• Summary
Web Service
service
lookup
UDDI
service
description
WSDL
device
service
use
Web
service
Web Service (Cont’d)
• Application model
– No particular model; offers independent services
• Finding web services
– UDDI
– WS Dynamic Discovery
• Service use
– Acts as a service, not as an object
• Bearers
– SOAP
– Bearer independent, practical implementations
commonly use HTTP
Content and goals
•
•
•
•
Introduction
Application partitioning
Concerns in networking
Sample techniques
– Web Services
– Bluetooth
• MIDP Java and web services
• Symbian OS and Bluetooth
• Summary
Bluetooth
BT HOST (Laptop, MCU)
UDP/TCP
IP
PPP
RFCOMM
app
2
app
1
SDP
L2CAP
Host Controller Interface Driver
Physical connection (USB/UART/I2C...)
BT HW
Host Controller Interface Driver
Link manager
Baseband controller
Bluetooth (Cont’d)
• Application model
– No particular model; offers independent services
– Bluetooth profiles define different applications
• Finding BT services
– SDP
• Service use
– RFCOMM, serial port emulating protocol, can be used as a
bearer for more complex protocols
– Other protocols for using certain standardized services (e.g.
OBEX)
• Bearers
– Own radio technology (frequency 2,4000-2,4835GHz)
Content and goals
•
•
•
•
Introduction
Application partitioning
Concerns in networking
Sample techniques
– Web Services
– Bluetooth
• MIDP Java and web services
• Symbian OS and Bluetooth
• Summary
MIDP Java and Web Services
1
Local
Application
1.
2.
3.
4.
Stub
Remote
Services
2
Service Provider
Interface
3
Local Client
Device
Application calls stub
Stub calls WB via SPI
SPI opens a connection to remote WS
Remote computer serves the request
4
Network
APIs and Tools
• Java API for XML processing (JAXP)
– Non-validating parser intended to parse incoming
XML documents
• Java API for XML-based RPC (JAX-RPC)
– Implementation of RPC
• Service Provider Interface (SPI)
– Stub generation in a compatible fashion
• Stub Generator
– Generation of client-side proxy that can be called
by the application to make calls to WS
Some Other Available Techniques
•
•
•
•
•
Bluetooth
Messaging
Telephony features
HTTP and browsing related features
Plain data communications using e.g.
sockets or serial port
Content and goals
•
•
•
•
Introduction
Application partitioning
Concerns in networking
Sample techniques
– Web Services
– Bluetooth
• MIDP Java and web services
• Symbian OS and Bluetooth
• Summary
Symbian Bluetooth Facilities
• Service Database
– Hosts information that can be used by other devices
– Used via Database Server API (RSdp), actual database
characterized by RSdpDatabase
• Service Discovery
– Used to find devices, services and service attributes
– Discovery agent (CSdpAgent) for configuring and starting
the search
– Notifier interface (MSdpAgentNotifier) for callbacks
• Service use
– E.g. socket communication
Some Other Available Techniques
• Messaging
– Email, SMS, MMS (targeted to human)
– BIO (targeted to device)
– Fax
•
•
•
•
Browsing protocols (e.g. HTTP, WAP)
Telephony
FTP and Telnet over a data connection
GPRS, Bluetooth, Infrared, USB
Content and goals
•
•
•
•
Introduction
Application partitioning
Concerns in networking
Sample techniques
– Web Services
– Bluetooth
• MIDP Java and web services
• Symbian OS and Bluetooth
• Summary
Summary
• Network resources form yet another layer of
facilities and resources for applications
– Longish travel-through times
– Restricted support for handovers can sometimes
cause problems (e.g. IP address change)
– Firewalls, etc.
• Two-thread pattern
– One for user, one for network
• Stateless vs. stateful applications