Date post: | 30-Jan-2016 |
Category: |
Documents |
View: | 220 times |
Download: | 1 times |
© sebis 1Mobile Information Access by Manuel Schröder
Mobile Information Access
Manuel Schröder
Software Engineering betrieblicher Informationssysteme (sebis)Ernst Denert-StiftungslehrstuhlLehrstuhl für Informatik 19 Institut für InformatikTU München
wwwmatthes.in.tum.de
© sebis 2Mobile Information Access by Manuel Schröder
Mobile Information Access
Agenda
Motivation
Mobile Technologies
Mobile Development
Design Considerations
Application Scenario: Dürer Weg
© sebis 3Mobile Information Access by Manuel Schröder
1. Motivation
Overview
A tourist's vision
Context based information
Constraints of Mobility
© sebis 4Mobile Information Access by Manuel Schröder
1.1. A tourist's vision (1/2)
A tourist in the future
Sightseeing per guided walking tour
Guide is an electronic mobile device
Tourist chooses a route from the map on the display
Indications of items of interest on the virtual map
Short video describing the unique historical and architectural features of the current site is seen.
Passing a shopping district, translated advertisements of sales pop up on the display.
Bought goods are paid electronically and delivered to the correct gate for the flight home.
How does this scenario really work today?
© sebis 5Mobile Information Access by Manuel Schröder
1.1. A tourist's vision (2/2)
Current state
We already have the proper mobile hardware
What lacks is the software support
Content has to be created
Content has to be provided in the right context
Definition
Context is the set of suitable environmental states and settings concerning a user, which are relevant for a situation sensitive application in the process of adapting the services and information offered to a user.
© sebis 6Mobile Information Access by Manuel Schröder
1.2. Context based information
User Context
Task Context Social Context Personal Context Spatio-TemporalContext
Environmental Context
Physiological Context Mental Context
User surroundings like: things, services, light,
people and information accessed by the user
Social aspects of the user: friends, relatives and colleagues
What is the user doing? Time, location and
movement
Mood, expertiseDisabilities, weight
© sebis 7Mobile Information Access by Manuel Schröder
1.3. Constraints of Mobility
Constraints of Mobility
Mobile elements are resource-poor relative to static elements.
Considerations in weight, power, size and ergonomics
Limitations in computational resources like processor speed, memory size and disk capacity
Limitations in display and visualization
Mobility is inherently hazardous
Loss
Damage
Mobile connectivity is highly variable in performance and reliability
Mobile elements rely on a finite energy source
© sebis 8Mobile Information Access by Manuel Schröder
2. Mobile Technologies
Overview
Mobile Devices
Network Technologies
© sebis 9Mobile Information Access by Manuel Schröder
2.1. Mobile Devices (1/2)
Available mobile-devices are
Cell-phones
PDAs
Solutions with PalmOS (Palm Inc.)
Pocket P200x – Series from Microsoft Inc.
Smartphones
Devices with SymbianOS (Nokia, Ericsson, Motorola) are ahead
SmartPhone 200x from Microsoft. These devices are using WindowsCE
© sebis 10Mobile Information Access by Manuel Schröder
2.1. Mobile Devices (2/2)
PalmOS PocketPC Symbian OS
© sebis 11Mobile Information Access by Manuel Schröder
2.2. Network Technologies
Available network-standards are
Wireless LAN
IEEE 802.11 (WLAN)
Bluetooth
Infrared
Wireless WAN
Global System for Mobile Communications (GSM)
General Packet Radio Service (GPRS)
Universal Mobile Telecommunication System (UMTS)
© sebis 12Mobile Information Access by Manuel Schröder
3. Mobile Software (1/2)
Overview
General considerations
Mobile-Development with Java
J2ME Cues
J2ME Specifications
J2ME Deployment
Live Demo
.NET Compact Framework Development
.NET Roadmap
.NET CF in the .NET World
Software Architecture
Standard APIs
.NET CF 1.0 vs. 2.0
© sebis 13Mobile Information Access by Manuel Schröder
3. Mobile Software (2/2)
Further Overview
.NET Compact Framework Development
Deployment with ActiveSync
J2ME vs. .NET CF
© sebis 14Mobile Information Access by Manuel Schröder
3.1. General considerations (1/4)
Ver
tical
mar
ket s
egm
ent
Horizontal market segment
• Cellular telephones, communicator, organizer
• Automobile embedded devices
• Intercommunicating electronic toys
• Washing machines, fridges
© sebis 15Mobile Information Access by Manuel Schröder
3.1. General considerations (2/4)
Requirements for mobile software
Specification
Software has to match device's capabilities
Runtime
Abstraction
Homogeneous Software Environment
Portability
Rich set of APIs
Tools
CreationCompilation, Verification
Test, Cross-Debugging
Deployment
© sebis 16Mobile Information Access by Manuel Schröder
3.1. General considerations (3/4)
Examples of useful portability
I would expect that my cool mobile-game would run on every cell phone I own.
My new grape-juice-stain-removing wash-cycle app which ran on my old brand-X washer should run on a new brand-Z washer too.
A new toy-robot should „play“ with my electronic teddy bear.
Portability is only useful in a horizontal market segment.
© sebis 17Mobile Information Access by Manuel Schröder
3.1. General considerations (4/4)
Design
Implementation
Debugging
Test
Debugging
Test
Deployment
© sebis 18Mobile Information Access by Manuel Schröder
3.2. Mobile-Development with Java
Available Java-Platforms
J2EE – Java 2 Enterprise Edition
solid, complete and scalable Internet business server solutions
J2SE – Java 2 Standard Edition
The Java-Edition, familiar and well-established desktop computer market
J2ME – Java 2 Micro Edition
consumer embedded device manufacturers
service providers
content providers for small, resource-constrained devices
© sebis 19Mobile Information Access by Manuel Schröder
3.2.1. J2ME Cues (1/4)
J2ME Features
Addresses range of devices from tiny commodities from pagers to TV set-top boxes.
Runnning anywhere, any time, any device
High-level object-oriented programming language
Portability of code
Safe network delivery
Upward scalability with J2SE and J2EE
© sebis 20Mobile Information Access by Manuel Schröder
3.2.1. J2ME Cues (2/4)
ServerWorkstation
PC / Laptop
NC
set-top box,net TV
screen-phone
Communicator
Smartphone cardCell phone
pager
POS
10MB64 Bit
512kB32 Bit
32kB16 Bit 8 Bit
Memory:
© sebis 21Mobile Information Access by Manuel Schröder
3.2.1. J2ME Cues (3/4)
J2ME
CDC (Connected Device Configuration)
• Shared, fixed, connected information devices
• Large range of user-interface capabilities
• Memory budgets from 2-16MB• Persistent, high bandwith
network connections.
Examples are: TV set-top boxes, Internet TVs, Internet enabled screenphones, high-end com-municators, automobile entertain-ment-/navigation- systems
CLDC (Connected, Limited Device
Configuration)
• Very simple user-interfaces• Minimum memory
budgets (>=128kB)• Low bandwith, intermittent
network connections
Examples are: Cell phones, pagersand personal organizers.
© sebis 22Mobile Information Access by Manuel Schröder
3.2.1. J2ME Cues (4/4)
Classes outside J2SE may not use the java.* namespace
© sebis 23Mobile Information Access by Manuel Schröder
3.2.2. J2ME Specifications (1/2)
© sebis 24Mobile Information Access by Manuel Schröder
3.2.2. J2ME Specifications (2/2)
Definitions
Configuration is a kind of contract between a profile implementer and a device's Java VM. It specifies:
The Java programming language features
The Java VM features
Basic Java libraries and APIs
Profile is a kind of contract between an application and a device family. MIDP 1.0 or MIDP 2.0
© sebis 25Mobile Information Access by Manuel Schröder
3.2.3. J2ME Deployment
© sebis 26Mobile Information Access by Manuel Schröder
3.2.4. J2ME Demo (1/3)
Live Demo in Eclipse with J2ME
© sebis 27Mobile Information Access by Manuel Schröder
3.2.4. J2ME Demo (2/3)
What we actually need:
Class derived from MIDlet
3 overwritten methods
startApp
pauseApp
destroyApp
© sebis 28Mobile Information Access by Manuel Schröder
import java.util.Date;
import javax.microedition.lcdui.Alert;import javax.microedition.lcdui.Display;import javax.microedition.midlet.MIDlet;
public class HelloJ2ME extends MIDlet {
Alert timeAlert;
public HelloJ2ME () {
timeAlert = new Alert("Time");timeAlert.setString(new Date().toString());
}
public void startApp() {
Display.getDisplay(this).setCurrent(timeAlert);}public void pauseApp() {}public void destroyApp(boolean unconditional) {}
}
3.2.4. J2ME Demo (3/3)
© sebis 29Mobile Information Access by Manuel Schröder
3.3.1. .NET Roadmap
Richer Platform Capabilities
.NET CF 2.0
MFC 8.0, ATL 8.0Broad managed code support Notifications Broker, Location, Camera, Watson, D3DM
.NET CF SP2
VGA (PPC)QVGA (SP)SquareLandscape
ATL 4.2, .NET CF Enhanced Emulator Configuration Mgr,Bluetooth, SMS
MFC, ATL
Active SyncConnection MgrMAPIOBEXTelephony
MFC
Win32, POOM
BetterDevelopment
Visual Studio 2005(C#, VB.NET, C++)
eVC 3 (C++)eVC 4 (C++)
VS.NET 2003 (C#, VB.NET)
eVC 3 (C++)eVC 4 (C++)
VS.NET 2003(C#, VB.NET)
eVC 3 (C++)eVB 3 (VB)
eVC 3 (C++)eVB 3 (VB)
Core OS WinCE 5.0WinCE 4.2WinCE 4.2WinCE 3.0 WinCE 3.0
MoreDevice Choices
FutureWindows Mobile
Platform2003Second Edition
200320022000
[Source: Microsoft]
© sebis 30Mobile Information Access by Manuel Schröder
3.3.2. .NET CF in the .NET World
Code
SOAP
Webservices
Visual Studio.NET
Developer-machine User-device
.NET CompactFramework
Device OS
Smart Device Extensions
Visual Studio.NET
.NET Compact Framework"Desktop-Version"
Windows
Smart Device Extensions
[Source: Microsoft]
© sebis 31Mobile Information Access by Manuel Schröder
3.3.3. Software Architecture
DisplayDisplayUSB or SerialUSB or Serial
ProcessorProcessorMemoryMemory
GSM/GPRSGSM/GPRSCDMA/1xRTTCDMA/1xRTT
Device Device HardwareHardware
WiFiWiFiBluetoothBluetooth
RadioRadio
DriversDrivers
Windows MobileWindows Mobile CE DBCE DBActiveSyncActiveSyncSQL MobileSQL Mobile
Pocket OutlookPocket OutlookPocket Internet ExplorerPocket Internet ExplorerWindows Media PlayerWindows Media Player
WindowsWindows CECE
** = Managed wrappers = Managed wrappers
NativeNative
Win32Win32
MFCMFC ATLATLManagedManaged
.NET Compact.NET CompactFramework 2.0Framework 2.0
Server sideServer sideASP .NETASP .NET
Mobile ControlsMobile Controls
Home ScreenHome ScreenUser Interface/ShellUser Interface/ShellHTML ControlHTML ControlDOMDOM
GAPIGAPICameraCameraD3DMD3DM
Remote APIRemote APIConfiguration*Configuration*BluetoothBluetoothNot. BrokerNot. BrokerPocket WatsonPocket Watson
Connection ManagerConnection Manager
TAPI*TAPI*SMS* SMS* MAPI* MAPI* POOM*POOM*
MultimediaMultimediaCommunicatioCommunicationn
Device ManagementDevice Management PresentationPresentation
SQL MobileSQL MobileADO CEADO CEXMLXMLCE DBCE DBOLE DBOLE DB
Data AccessData Access
Software Platform (APIs)Software Platform (APIs)
Visual Studio 2005Visual Studio 2005
[Source: Microsoft]
© sebis 32Mobile Information Access by Manuel Schröder
3.3.4. .NET CF Standard APIs
SystemSystem
System.DataSystem.Data System.XmlSystem.Xml
System.WebSystem.Web
GlobalizationGlobalization
TextText
SecuritySecurity
CollectionsCollections
ResourcesResources
ReflectionReflection
NetNet
IOIO
ThreadingThreading
DiagnosticsDiagnostics
ADO.NETADO.NET
SqlServerCeSqlServerCe
SqlClientSqlClient XmlDocumentXmlDocument
commoncommon languagelanguage runtimeruntime
InteropServicesInteropServicesRemotingRemotingSerializationSerialization
SecuritySecurity
ServicesServicesDescriptionDescription
DiscoveryDiscovery
ProtocolsProtocols System.DrawingSystem.Drawing
Drawing2DDrawing2D
TextText
ServiceProcessServiceProcess
ConfigurationConfiguration
DesignDesign Xslt/XPathXslt/XPath
SerializationSerialization
ConfigurationConfiguration SessionStateSessionState
CachingCaching
UIUIHtmlControlsHtmlControls
WebControlsWebControls
ImagingImaging
PrintingPrinting
System.WinFormsSystem.WinForms
DesignDesign ComponentModelComponentModel
Reader/WritersReader/Writers
availableavailable
not not supportedsupported
[Source: Microsoft]
© sebis 33Mobile Information Access by Manuel Schröder
3.3.5. .NET CF 1.0 vs. .NET CF 2.0 (1/2)
Compatibility and Performance
Compatible with full .NET Framework
Interoperability, protocols
Compatible with .NET CF 1.0
Side-by-side execution
Application compatibility
Enhanced performance
Unified JIT
Improved string handling
XML improvements
Improved ADO.NET with SQL Mobile
.NET CF .NET CF 1.01.0
.NET CF .NET CF 2.02.0
[Source: Microsoft]
© sebis 34Mobile Information Access by Manuel Schröder
3.3.5. .NET CF 1.0 vs. .NET CF 2.0 (2/2)
DesktopDesktop
PPCPPC SPSP CF 2.0CF 2.0
© sebis 35Mobile Information Access by Manuel Schröder
3.3.6. .NET Deployment
ActiveSync provides following tasks
Connectivity for program installation
All the applications for the PPC are installed by running an installer on the host desktop
File browsing on PPC device
My Documents folder
All parts of the PPC including storage cards (explore function)
Backup/Restore
Data/File Synchronization
Calendar, contacts, tasks, inbox
IE favorites
Notes, files
Network connectivity for docked PPC device
[Source: Microsoft]
© sebis 36Mobile Information Access by Manuel Schröder
3.3.7. .NET CF Demo (1/2)
Live Demo with VisualStudio.NET2003 with CF
© sebis 37Mobile Information Access by Manuel Schröder
using System.Windows.Forms;...
public class Form1 : Form {
private System.Windows.Forms.Button button1;private System.Windows.Forms.MainMenu mainMenu1;
... // Designer-Code
static void Main() {
Application.Run(new Form1());}
private void button1_Click(object sender, System.EventArgs e){
MessageBox.Show("Hello WindowsCE");
}}
3.3.7. .NET CF Demo (2/2)
© sebis 38Mobile Information Access by Manuel Schröder
3.4. .NET CF 1.0 vs. J2ME (1/2)
DeviceRequirements
.NETCompact Framwork
J2MECDC
J2MECLDC
Powerful,expensive
Powerful,expensive
cheap,pervasive
Cost High High Medium
Market focus Enterprise Enterprise Consumer and Enterprise
Languagesupport
C#, VB .net Java Java
PlatformsPocketPC,Windows CE
Major mobileplatforms except PalmOS
All mobile platforms
Code compa-tibility
Standard .NET CLR
Standard Java2 Not compatible with J2SE or CDC
PlatformsSubset of.NET
Subset of J2SEplus standard optional packages
Partial compatibility with CDC, with additional standard optional packages
© sebis 39Mobile Information Access by Manuel Schröder
3.4. .NET CF 1.0 vs. J2ME (2/2)
Native APIs
.NETCompact Framwork
J2MECDC
J2MECLDC
P/Invoke; consistent acrossupported devices
JNI; device- and OS- specific
N/A
DevelopmentTools
VS.NET 2003 Command line,vendor SDKs,CodeWarrior
Command line, vendor SDKs,all major java IDEs
Specificationprocess
Single company Community Community
Security modelSimplified .NET model
Full Java Security manager
Limited Java2 model supplemented by OTA specification
ClientInstallation
ActiveSync,Internet Explorerdownload
Sync, download Formal OTA specification
© sebis 40Mobile Information Access by Manuel Schröder
4. Design Considerations
Overview
Display Constraints
Connection Problems
Context
© sebis 41Mobile Information Access by Manuel Schröder
4.1. Display Constraints (1/2)
Problems
Tiny, Small Displays
Low resolution (e.g. 240x320 pixels)
Different GUI-Technics
Single Window (PalmOS, PocketPC)
Multiple Windows (Windows CE)
Windows CE Apps
Pocket PC
© sebis 42Mobile Information Access by Manuel Schröder
4.1. Display Constraints (2/2)
J2ME with J2ME Polish
J2ME Polish provides
Highlevel GUI using simple CSS text-files
Device Database in XML-Format
Preprocessing before compiling
//#if polish.midp2 || polish.api.mmapi// ok the audio-playback of the MMAPI can be usedPlayer player = ...
//#endif
© sebis 43Mobile Information Access by Manuel Schröder
4.2. Connection Problems (1/2)
Bandwidth 2 / 11 / 54 MBit 1 MBit 4 MBit
InfraredBluetoothIEEE 802.11Technology
Distance 300m 10m 10m
Frequency 2,4 / 5 GHz 2,4 GHz N/A
Bandwidth 9,6 kbps 115 kbps 2 Mbps
UMTSGPRSGSMTechnology
© sebis 44Mobile Information Access by Manuel Schröder
4.2. Connection Problems (2/2)
Problems
Heterogeneous network technologies
No compatibility between these technologies
Availability of proper net technology
Low signal quality
Possible Suggestions
Processing in offline mode
Buffering of data before transmitting
If possible, reducing amount of data (e.g. Audio, Video)
© sebis 45Mobile Information Access by Manuel Schröder
4.3. Context Considerations (1/2)
For context based information we need
Context Middleware
Provided through different sources
- Mobile users (via user interface)
- Other clients
- Applications
- Software agents
- Sensors
Offers
- Context representation and validation (Context-Template)
- Context storage and retrieval
Context TemplatesA pattern for context representation in a context domain.
© sebis 46Mobile Information Access by Manuel Schröder
4.3. Context Considerations (2/2)
User Context
Task ContextTask: (Shopping,Eating)
Context Template
User Context
Task ContextTask: Shopping
Valid Context instance A
User Context
Task ContextTask: Relaxing
Invalid Context instance B
© sebis 47Mobile Information Access by Manuel Schröder
5. Application Scenario: Dürer Weg
Overview
Introduction of the project
Historical Sightseeing in Nuremberg
Tourist's vision review
Outlook
© sebis 48Mobile Information Access by Manuel Schröder
5.1. Introduction of the project
© sebis 49Mobile Information Access by Manuel Schröder
5.2. Historical sightseeing in Nuremberg
© sebis 50Mobile Information Access by Manuel Schröder
5.3. Tourist's vision review
What have been achieved?
Sightseeing per guided walking tour
Guide is a electronic mobile device
Tourist chooses a route from the map on the display
Indications of items of interest on the virtual map
Short video describing the unique historical and architectural features of the current site is seen.
Passing a shopping district, translated advertisements of sales pop up on the display.
Bought goods are paid electronically and delivered to the correct gate for the flight home.
Lack of context-based information !
© sebis 51Mobile Information Access by Manuel Schröder
Mobile Information Access
Thank you for your attention !!!!
© sebis 52Mobile Information Access by Manuel Schröder
References
Overview
[MS05] „Device Development with Visual Studio 2005 and future Windows Mobile Platforms“. Microsoft. 2005
[Pr05] Prengel, F: „Neue Mobilität - .NET Framework 2.0 & SQL Server 2005 Mobile Edition“. Microsoft. 2005
[GK05] Gruber, F;Kurschel, W.: „Building Mobile Applications. Comparing The Java and .NET approach”. Uni Linz. URL: www.uni-linz.ac.at [08.03.2005]
[SUN00] „J2ME Building Blocks for Mobile Devices“. Sun Microsystems. 2000
© sebis 53Mobile Information Access by Manuel Schröder
5.4. Outlook
What can we do to achieve these goals?