Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Fritz Zahner Geändert vor über 10 Jahren
1
Kommunikationssysteme Teil 2.4 Anwendungsdesign
Stephan Rupp Informatik Masterstudium
2
Inhalt Anwendungsdesign Intra-Prozess Kommunikation Organisation von Angebot und Nachfrage Beispiel: Bluetooth Anwendungsentwicklung
3
Austausch von Nachrichten
Kommunikation Austausch von Nachrichten Anfrage Sender Empfänger System B System A Antwort Kommunikation durch Austausch von Nachrichten Zur Interpretation der Nachrichten: Kontext?
4
Kommunikation im System
… Client-Thread Server-Thread Inter-Thread read/write Was ist der Kontext der Kommunikation? Anfrage Antwort Server Client Interface Benutzer Privilegien Nachricht Kernel Privilegien Kernel Executive Routine Kernel Beispiel: Symbian Service Framework
5
Beispiel: Aufruf von Server-Funktionen
Client Server x = f1(a,b,c) f1 a b c Anfrage Service (Message) Message.Complete (x) x Antwort Kontext: Nachrichtentyp für Funktionsaufrufe mit Datentypen der Übergabevariablen und des Rückgabewertes
6
Client und Server Klassen
Message Function() Complete() Read() Write() Server SessionBase CreateSession() SendReceive() Session Service() 1..n Kontext: Ist durch die Programmierumgebung festgelegt (Framework API) Legende: Kernel „hat“
7
Kommunikation zwischen Systemen
Client, User Agent Server, User Agent Systeme enthalten Software für verteilte Anwendungen wie z.B. Clients, Server bzw. User Agents. System A System B
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.
9
Abstraktion einer Verbindung
Beispiel: Java Generic Connection Framework (J2ME CLCD) Connection StreamConnectionNotifier InputConnection StreamConnection OutputConnection ContentConnection DatagramConnection 6. Semester, Nachrichtentechnik, 2012
10
Inhalt Anwendungsdesign Intra-Prozess-Kommunikation Organisation von Angebot und Nachfrage Beispiel: Bluetooth Anwendungsentwicklung
11
Anatomie eines Benutzer-Agenten
Angebot Angebot: • User Agent (UA) • UA Gruppe • Module • Inhalte • Endpunkte Inhalte Module: • Dienste • Anwendungen UA_ID Endpunkte der Kommunikation User Agent lokale Information über andere User Agents Für Vermittler: lokale Information über die Angebote anderer User Agents
12
Interaktionen und Beziehungen
Angebot beim Vermittlungsagenten publizieren (erlischt mit der Zeit, wenn nicht erneuert) Ang. Neues Angebot lokal ankündigen Local User Agent Beziehungen (Kenntnis der anderen, erlischt mit der Zeit, wenn nicht erneuert) Ang. lokales Angebot löschen
13
Kontakt aufnehmen Ang. 1. Angebot über Kommunikations- schnittstelle publizieren 2. Schnittstelle finden und Endpunkt anbinden out lokaler User Agent in entfernter User Agent 3. Nachrichten über die Verbindung austauschen
14
Angebot und Nachfrage im Netz
Organisation durch Verzeichnisdienste Werkzeuge und Methoden User Agent Web-Service Semantik-Verarbeitung Semantische Modelle (Was?) Meta- Information (Wo?) Betriebsmittel (CPU, Speicher)
15
Inhalt Anwendungsdesign Intra-Prozess-Kommunikation Organisation von Angebot und Nachfrage Beispiel: Bluetooth Anwendungsentwicklung
16
Bluetooth Service Discovery
Service Discovery Protokoll (SDP) Ang. UUID UUID UUID UUID Service Discovery Anwendung Client Anwendung Server Anwendung Service Record SDP Anfrage SDP: Service Discovery Protocol UUID: Universally Uniform Identifier (als Dienstattribut genutzt) SDP Client SDP Server SDP Antwort
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
18
Bluetooth Geräteprofile
Standardisierung der Dienste
19
Kanalsprungverfahren (Frequency Hopping)
Bluetooth Frequenzen Kanalsprungverfahren (Frequency Hopping) Quelle: Harald Orlamünder
20
Netzkonfigurationen Master organisiert die Sequenz der Kanäle (Hopping-Sequence)
21
Zeitliche Nutzung der Kanäle
Im Detail unterschiedliche Paketlängen Quelle: Harald Orlamünder
22
Bluetooth IP Stack Quelle: Harald Orlamünder
23
Bluetooth Paketformate
Quelle: Harald Orlamünder
24
Systemzustände Quelle: Harald Orlamünder
25
Internet Zugang per Bluetooth
Network Access Point Internet Zugang per Bluetooth Quelle: Harald Orlamünder
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
27
Beispiel: Socket Server API
RSocketServ <<active>> CSocketEngine RHostResolver RSocket CSocketWriter CSocketReader CSocketsAppView MTimeoutNotifier MEngineNotifier MUINotifier Beispiel: Symbian Service Framework
28
Socket Verbindung aufbauen
:CSocketEngine :CTimeOutTimer :CSocketReader :RSocket ENotConnected :Framework 1. ConnectL(TUint32 aAddr) 2. Open() 3. Connect() 4. ChangeStatus() EConnecting 5. After() 6. SetActive() 7. RunL() 8. Cancel() 9. ChangeStatus() EConnected 10. Read() 11. Start()
29
Beispiel: Bluetooth Message Server
Realisierung über Sockets RSocketServ RSocket CMessageServerAdvertiser RBTMan CBTPointToPointAppUI RBTSecuritySettings TBTServiceSecurity RSdp RSdpDatabase CMessageServer
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
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
32
Nachrichten Server Messaging Framework Data Format of Messages
UI Data MTM Application UI User Interface MTM Client Side MTM Message Server Server Side MTM Transport of Messages Session
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
34
Datenhaltung Relationale oder objektorientierte Darstellung sind
transformierbar Anwendung DBMS RDBMS ODBMS Objekte persistente Relationen Object Transfer Transformation DBMS: Datenbank Management System RDBMS: Relationales DBMS ODBMS: Objekzorientiertes DBMS .
35
Mobiltelefon als Fernbedienung
Beispielanwendung Mobiltelefon als Fernbedienung IP-Netz PPV System Select movie Mobiltelefon Pay movie Broadcast Netz Play movie TV & Set-Top-Box PPV: Pay per View
36
Anwendungsfälle und Komponenten
PPV-Control Media Control Centre Select movie <<include>> Authenticate user Pay movie User <<include>> Update user account Play movie <<actor>> Media-Gateway <<actor>> AAA-Server
37
Aktivitäten User Media Control Centre Log in check user identity
User object: identity and privileges Log in check user identity [user log in not successful] Movie object in selected state [user log in successful] Generate selection of movies Selection Select movie Pay movie Prepare for play out User object: entry in user account Start Media- Controller User object: media channel Select media format Start media player
38
Benutzerschnittstelle
<<control>> C_Channel <<boundary>> B_Channel title 1 B_Text C_Channel(c:Channel) C_Channel() start() close() B_Channel(c:Channel) check() start() play 1 B_Radio_Button stop B_Radio_Button mute B_Radio_Button ... <<instantiate>> <<instantiate>> process administers 1 <<control>> MediaControlCenter <<entity>> Channel 1 Status Channel() store() delete() ...
39
Kommunikationssysteme
ENDE Teil 2.4 Anwendungsdesign
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.