Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 2013
Rechnerkommunikation und Vernetzung Teil 6 – Anwendungen auf mobilen Geräten
Stephan Rupp
Nachrichtentechnik
www.dhbw-stuttgart.de
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 20132
Inhalt
Anwendungen auf mobilen Geräten
• Intra-Prozess Kommunikation
• Organisation von Angebot und Nachfrage
• Bluetooth
• Anwendungsentwicklung
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 20133
Kommunikation
Austausch von Nachrichten
Sender
Zur Interpretation der Nachrichten: Kontext?Zur Interpretation der Nachrichten: Kontext?
EmpfängerAnfrage
Antwort
System A System B
Kommunikation durch Austausch von NachrichtenKommunikation durch Austausch von Nachrichten
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 20134
Kommunikation im System
…
Benutzer
Privilegien
Kernel Executive Routine
Server-ThreadClient-Thread
Kernel
Privilegien
Server
AntwortAnfrage
Client Interface
Inter-Thread read/write
Nachricht
Kernel
Was ist der Kontext der Kommunikation?
Was ist der Kontext der Kommunikation?
Beispiel: Symbian Service Framework
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 20135
Beispiel: Aufruf von Server-Funktionen
Anfragef1 a b c
ServerClient
x = f1(a,b,c)
Service (Message)
Message.Complete (x)
x
AntwortKontext: Nachrichtentyp für Funktionsaufrufe mit Datentypen der Übergabevariablen und des Rückgabewertes
Kontext: Nachrichtentyp für Funktionsaufrufe mit Datentypen der Übergabevariablen und des Rückgabewertes
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 20136
Client und Server Klassen
SessionBase
CreateSession()
SendReceive()
Session
Service()
Message
Function()
Complete()
Read()
Write()
Kernel
1..n
„hat“
Legende:
Server
Kontext: Ist durch die Programmierumgebung festgelegt (Framework API)
Kontext: Ist durch die Programmierumgebung festgelegt (Framework API)
ServerClient
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 20137
Kommunikation zwischen Systemen
Client,
User Agent
System A System B
Server,
User Agent
Systeme enthalten Software für verteilte
Anwendungen wie z.B. Clients, Server bzw.
User Agents.
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 20138
Kommunikation und Kontext
Kommunikation innerhalb des Systems:
• Der Kontext ist festgelegt durch die Programmierumgebung.
• Kontext: Nachrichten mit Datentypen für die Übergabevariablen und
Rückgabewerte, sowie weitere Abstraktionen (Klassen) für die
Kommunikation mit Server-Bibliotheken.
Kommunikation über Systemgrenzen hinaus:
• Eine Festlegung des Kontextes ist erforderlich, damit die Systeme sich
verstehen, und kann z.B. durch eine Protokollspezifikation erfolgen.
• Außerdem ist die Lokalisierung der Serverschnittstelle über das Netz
erforderlich, genauer eine Referenz auf das Server-Objekt. Beispiele: URL,
IP-Socket (IP Adresse plus Port Nummer), Verbindung aus J2ME.
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 20139
Abstraktion einer Verbindung
Beispiel: Java Generic Connection Framework (J2ME CLCD)
6. Semester, Nachrichtentechnik, 2012
Connection
StreamConnectionNotifier
InputConnection
OutputConnection
DatagramConnection
StreamConnection
ContentConnection
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201310
Inhalt
Anwendungen auf mobilen Geräten
• Intra-Prozess-Kommunikation
• Organisation von Angebot und Nachfrage
• Bluetooth
• Anwendungsentwicklung
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201311
Anatomie eines Benutzer-Agenten
User Agent
Angebot
Angebot:
• User Agent (UA)
• UA Gruppe
• Module
• Inhalte
• Endpunkte
Module:
• Dienste
• Anwendungen
UA_ID
Endpunkte der Kommunikation
lokale Information über andere User Agents
Für Vermittler: lokale Information über die Angebote anderer User Agents
Inhalte
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201312
Interaktionen und Beziehungen
Beziehungen
(Kenntnis der anderen, erlischt mit der Zeit, wenn nicht erneuert)
Local User
Agent
Ang.
Neues Angebot lokal ankündigen
Ang.
lokales Angebot löschen
Angebot beim Vermittlungsagenten publizieren (erlischt mit der Zeit, wenn nicht erneuert)
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201313
Kontakt aufnehmen
lokaler User
Agent
Ang.
1. Angebot über Kommunikations-schnittstelle publizieren
entfernter
User
Agent
2. Schnittstelle finden und Endpunkt anbinden
3. Nachrichten über die Verbindung austauschen
in out
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201314
Angebot und Nachfrage im Netz
Organisation durch Verzeichnisdienste
User Agent
Meta-Information
(Wo?)
Betriebsmittel(CPU, Speicher)
Semantische Modelle
(Was?)
Web-Service
Semantik-Verarbeitung
Werkzeuge und
Methoden
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201315
Inhalt
Anwendungen auf mobilen Geräten
• Intra-Prozess-Kommunikation
• Organisation von Angebot und Nachfrage
• Bluetooth
• Anwendungsentwicklung
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201316
Bluetooth Service Discovery
Service Discovery Protokoll (SDP)
Client Anwendung
Server Anwendung
SDP
ClientSDP
Server
SDP Anfrage
SDP Antwort
SDP: Service Discovery Protocol
UUID: Universally Uniform Identifier (als Dienstattribut genutzt)
UUID
Service
Discovery
Anwendung
UUIDUUID
UUID
Service
Record
Ang.
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201317
Bluetooth Dienstverzeichniss
Service Record (Liste der Dienstattribute)
ServiceRecordHandle
ServiceClassIDList
ServiceRecordState
ServiceID
ProtocolDescriptionList
BrowseGroupList
LanguageBasedAttributeIDList
ServiceInfoTimeToLive
ServiceAvailability
BluetoothProfileDescriptorList
DocumentationURL
ClientExecutionURL
IconURL
ServiceName
ServiceDescription
ProviderName
ID Value.........
z.B. Wert =
oder Wert =
Liste von UUIDs
UUID
Dienstattribute sind als
Wertepaare (ID, Wert)
durch UUIDs (Wert)
gekennzeichnet
Dienstattribute sind als
Wertepaare (ID, Wert)
durch UUIDs (Wert)
gekennzeichnet
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201318
Bluetooth Geräteprofile
Standardisierung der Dienste
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201319
Bluetooth Frequenzen
Kanalsprungverfahren (Frequency Hopping)
Quelle: Harald Orlamünder
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201320
Netzkonfigurationen
Master organisiert die Sequenz der Kanäle (Hopping-Sequence)
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201321
Zeitliche Nutzung der Kanäle
Im Detail unterschiedliche Paketlängen
Quelle: Harald Orlamünder
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201322
Bluetooth IP Stack
Que
lle: H
aral
d O
rlam
ünde
r
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201323
Bluetooth Paketformate
Quelle: Harald Orlamünder
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201324
Systemzustände
Quelle: Harald Orlamünder
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201325
Network Access Point
Internet Zugang per Bluetooth
Quelle: Harald Orlamünder
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201326
Inhalt
Anwendungen auf mobilen Geräten
• Intra-Prozess-Kommunikation
• Organisation von Angebot und Nachfrage
• Bluetooth
• Anwendungsentwicklung– Abstraktionen für Verbindungen– Daten relational und objektorientiert– Vorgehensweise mit UML
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201327
Beispiel: Socket Server API
RSocketServ
<<active>>
CSocketEngine
RHostResolver RSocket
<<active>>
CSocketWriter
<<active>>
CSocketReader
CSocketsAppView
MTimeoutNotifier MEngineNotifier
MUINotifier
Beispiel: Symbian Service Framework
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201328
Socket Verbindung aufbauen
:CSocketEngine :CTimeOutTimer :CSocketReader :RSocket
:FrameworkENotConnected
EConnecting
1. ConnectL(TUint32 aAddr)
2. Open()
3. Connect()
4. ChangeStatus()
5. After()
6. SetActive()
EConnected
8. Cancel()
9. ChangeStatus()
7. RunL()
10. Read()
11. Start()
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201329
Beispiel: Bluetooth Message Server
Realisierung über Sockets
RSocketServ RSocket
CMessageServerAdvertiser
RBTMan
CBTPointToPointAppUIRBTSecuritySettings
TBTServiceSecurity
RSdp
RSdpDatabase
CMessageServer
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201330
Bluetooth Verbindung aufsetzen
:CBTPointToPointAppUI :CMessageServiceAdvertiser
:CListeningSocket
:Framework
EWaitingForConnect
1. HandleCommandL()
:CMessageServer
:CAcceptedSocket
2. StartL()3. StartAdvertising()
4. Open()
5. RunL()
EWaitingForMessage
6. RequestData()
7. RecvOneOrMore()
8. RunL()
9. RequestData()
10. RecvOneOrMore()
User starts Receiver
Sender requests a connection
Receiver is receiving a message
Configure settings for entries in the service data records
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201331
Dienstverzeichnis (Service Record)
Zur Verbindung
Service Record (Bluetooth Punkt-zu-Punkt Verbindung)
ServiceClassIDList
ProtocolDescriptionList
ServiceName
ServiceDescription
Service Availability
Serial Port Services Class UUID
L2CAP UUID
RFCOMM UUID
Channel Number
“Serial Port”
“Simple P-T-P Data Tranfer”
True
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201332
Nachrichten Server
Messaging Framework
Data Format of Messages
UI Data MTM Application UI User Interface
MTM
Client Side
MTM
Message ServerServer Side
MTM
Transport of Messages
Session
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201333
Speichern von Nachrichten
Index Liste
Index
Body
Anlagen
Nachricht
Attachment Flag
Complete Flag
Connected Flag
Deleted Flag
Description
Details:
sender/receiver
name of attachment
name of folder
name of service
Identifier within Index
MTM associated
New Flag (new Msg.)
Owner Flag (is parent)
Parent ID of index entry
Priority
Read Flag (Msg. read)
Related folder
Sending State
Service (Transport Service)
Size
Standard Folder Flag
Time
Type ID
Visibility Flag
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201334
Datenhaltung
.
Anwendung
DBMS
RDBMS ODBMS
Objekte
persistente
Objekte
Relationen
Object TransferTransformation
Relationale oder
objektorientierte
Darstellung sind
transformierbar
DBMS: Datenbank Management System
RDBMS: Relationales DBMS
ODBMS: Objekzorientiertes DBMS
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201335
Beispielanwendung
Mobiltelefon als Fernbedienung
Broadcast
Netz
IP-Netz PPV System
Select movie
Pay movie
Play movie
Mobiltelefon
TV &
Set-Top-BoxPPV: Pay per View
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201336
Anwendungsfälle und Komponenten
Media Control CentreSelect movie
Pay movie
Play movie
User Update user
account
Authenticate
user <<include>>
<<include>>
<<actor>>
AAA-Server
<<actor>>
Media-Gateway
PPV-Control
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201337
Aktivitäten
Log in check user identity
Generate selection of movies
Prepare for play out
Select movie
Pay movie
Selection
Movie object in selected state
Select media format Start Media-
Controller
Start media player
[user log in not successful][user log in successful]
User object: entry in user account
User object: identity and privileges
User object: media channel
User Media Control Centre
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201338
Benutzerschnittstelle
<<entity>>
Channel
Status
Channel()store()delete() ...
<<boundary>>
B_Channel
B_Channel(c:Channel)
check()
start()
<<control>>
C_Channel
C_Channel(c:Channel)
C_Channel()
start()
close()
1
1
<<control>>
MediaControlCenter
<<instantiate>><<instantiate>>
administers
B_Texttitle
play
stop
mute
B_Radio_Button
B_Radio_Button
...
process
1
B_Radio_Button
1
Rechnerkommunikation und Vernetzung, Teil 6, S. Rupp 5. Semester, Nachrichtentechnik, 201339
Rechnerkommunikation und Vernetzung
ENDE Teil 6 – Anwendungen auf mobilen
Geräten