Date post: | 05-Apr-2015 |
Category: |
Documents |
Upload: | fritz-zahner |
View: | 107 times |
Download: | 3 times |
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp
Kommunikationssysteme Teil 2.4 Anwendungsdesign
Stephan Rupp
Informatik Masterstudium
www.dhbw-stuttgart.de
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 2
Inhalt
Anwendungsdesign
• Intra-Prozess Kommunikation
• Organisation von Angebot und Nachfrage
• Beispiel: Bluetooth
• Anwendungsentwicklung
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 3
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
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 4
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
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 5
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
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 6
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
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 7
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.
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 8
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.
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 9
Abstraktion einer Verbindung
Beispiel: Java Generic Connection Framework (J2ME CLCD)
6. Semester, Nachrichtentechnik, 2012
Connection
StreamConnectionNotifier
InputConnection
OutputConnection
DatagramConnection
StreamConnection
ContentConnection
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 10
Inhalt
Anwendungsdesign
• Intra-Prozess-Kommunikation
• Organisation von Angebot und Nachfrage
• Beispiel: Bluetooth
• Anwendungsentwicklung
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 11
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
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 12
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)
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 13
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
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 14
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
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 15
Inhalt
Anwendungsdesign
• Intra-Prozess-Kommunikation
• Organisation von Angebot und Nachfrage
• Beispiel: Bluetooth
• Anwendungsentwicklung
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 16
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.
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 17
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
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 18
Bluetooth Geräteprofile
Standardisierung der Dienste
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 19
Bluetooth Frequenzen
Kanalsprungverfahren (Frequency Hopping)
Quelle: Harald Orlamünder
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 20
Netzkonfigurationen
Master organisiert die Sequenz der Kanäle (Hopping-Sequence)
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 21
Zeitliche Nutzung der Kanäle
Im Detail unterschiedliche Paketlängen
Quelle: Harald Orlamünder
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 22
Bluetooth IP Stack
Que
lle: H
aral
d O
rlam
ünde
r
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 23
Bluetooth Paketformate
Quelle: Harald Orlamünder
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 24
Systemzustände
Quelle: Harald Orlamünder
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 25
Network Access Point
Internet Zugang per Bluetooth
Quelle: Harald Orlamünder
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 26
Inhalt
Anwendungsdesign
• Intra-Prozess-Kommunikation
• Organisation von Angebot und Nachfrage
• Beispiel: Bluetooth
• Anwendungsentwicklung– Abstraktionen für Verbindungen– Daten relational und objektorientiert– Vorgehensweise mit UML
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 27
Beispiel: Socket Server API
RSocketServ
<<active>>
CSocketEngine
RHostResolver RSocket
<<active>>
CSocketWriter
<<active>>
CSocketReader
CSocketsAppView
MTimeoutNotifier MEngineNotifier
MUINotifier
Beispiel: Symbian Service Framework
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 28
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()
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 29
Beispiel: Bluetooth Message Server
Realisierung über Sockets
RSocketServ RSocket
CMessageServerAdvertiser
RBTMan
CBTPointToPointAppUIRBTSecuritySettings
TBTServiceSecurity
RSdp
RSdpDatabase
CMessageServer
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 30
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
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 31
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
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 32
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
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 33
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
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 34
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
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 35
Beispielanwendung
Mobiltelefon als Fernbedienung
Broadcast
Netz
IP-Netz PPV System
Select movie
Pay movie
Play movie
Mobiltelefon
TV &
Set-Top-BoxPPV: Pay per View
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 36
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
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 37
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
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 38
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
Informatik Master, PM2100.1, 2013Kommunikationssysteme, Teil 2.4, S. Rupp 39
Kommunikationssysteme
ENDE Teil 2.4
Anwendungsdesign