390 likes | 519 Vues
Rechnerkommunikation und Vernetzung Teil 6 – Anwendungen auf mobilen Geräten. Stephan Rupp Nachrichtentechnik. www.dhbw-stuttgart.de. Inhalt. Anwendungen auf mobilen Geräten Intra -Prozess Kommunikation Organisation von Angebot und Nachfrage Bluetooth Anwendungsentwicklung.
E N D
Rechnerkommunikation und VernetzungTeil6 – Anwendungen auf mobilenGeräten Stephan Rupp Nachrichtentechnik www.dhbw-stuttgart.de
Inhalt Anwendungen auf mobilenGeräten • Intra-Prozess Kommunikation • Organisation von Angebot und Nachfrage • Bluetooth • Anwendungsentwicklung
Anfrage Antwort Kommunikation • Austausch von Nachrichten Sender Empfänger System B System A KommunikationdurchAustausch von Nachrichten Zur Interpretation der Nachrichten: Kontext?
Inter-Thread read/write Kommunikation im System • … Client-Thread Server-Thread Was ist der Kontext der Kommunikation? Anfrage Antwort Server Client Interface Benutzer Privilegien Nachricht Kernel Privilegien Kernel Executive Routine Kernel Beispiel: Symbian Service Framework
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: NachrichtentypfürFunktionsaufrufemitDatentypen der Übergabevariablen und des Rückgabewertes
SessionBase CreateSession() SendReceive() Client und Server Klassen Client Server Message Function() Complete() Read() Write() Server Session Service() 1..n Kontext: Istdurch die Programmierumgebungfestgelegt (Framework API) Legende: Kernel „hat“
System A KommunikationzwischenSystemen Client, User Agent Server, User Agent Systemeenthalten Software fürverteilteAnwendungenwiez.B. Clients, Server bzw. User Agents. System B
Kommunikation und Kontext Kommunikationinnerhalb des Systems: • Der Kontextistfestgelegtdurch die Programmierumgebung. • Kontext: NachrichtenmitDatentypenfür die Übergabevariablen und Rückgabewerte, sowieweitereAbstraktionen (Klassen) für die Kommunikationmit Server-Bibliotheken. KommunikationüberSystemgrenzenhinaus: • EineFestlegung des Kontextesisterforderlich, damit die Systemesichverstehen, und kannz.B. durcheineProtokollspezifikationerfolgen. • Außerdemist die Lokalisierung der Serverschnittstelleüber das Netzerforderlich, genauereineReferenz auf das Server-Objekt. Beispiele: URL, IP-Socket (IP Adresse plus Port Nummer), Verbindungaus J2ME.
AbstraktioneinerVerbindung • Beispiel: Java Generic Connection Framework (J2ME CLCD) Connection StreamConnectionNotifier InputConnection StreamConnection OutputConnection ContentConnection DatagramConnection 6. Semester, Nachrichtentechnik, 2012
Inhalt Anwendungen auf mobilenGeräten • Intra-Prozess-Kommunikation • Organisation von Angebot und Nachfrage • Bluetooth • Anwendungsentwicklung
Angebot: •User Agent (UA) • UA Gruppe • Module • Inhalte • Endpunkte Inhalte Module: •Dienste • Anwendungen Angebot Endpunkte der Kommunikation FürVermittler: lokale Information über die Angeboteanderer User Agents lokale Information überandere UserAgents AnatomieeinesBenutzer-Agenten UA_ID User Agent
NeuesAngebotlokalankündigen AngebotbeimVermittlungsagentenpublizieren (erlischtmit der Zeit, wennnichterneuert) Ang. Ang. Beziehungen (Kenntnis der anderen, erlischtmit der Zeit, wennnichterneuert) lokalesAngebotlöschen Interaktionen und Beziehungen Local User Agent
1. AngebotüberKommunikations-schnittstellepublizieren 2. Schnittstellefinden und Endpunktanbinden Ang. out 3. Nachrichtenüber die Verbindungaustauschen Kontaktaufnehmen lokalerUser Agent in entfernter User Agent
User Agent Werkzeuge und Methoden Web-Service Semantik-Verarbeitung SemantischeModelle (Was?) Meta-Information (Wo?) Betriebsmittel (CPU, Speicher) Angebot und Nachfrage im Netz • Organisation durch Verzeichnisdienste
Inhalt Anwendungen auf mobilenGeräten • Intra-Prozess-Kommunikation • Organisation von Angebot und Nachfrage • Bluetooth • Anwendungsentwicklung
Ang. UUID UUID UUID UUID SDP Anfrage SDP Antwort Bluetooth Service Discovery • Service Discovery Protokoll (SDP) Service Discovery Anwendung Client Anwendung Server Anwendung Service Record SDP: Service Discovery Protocol UUID: Universally Uniform Identifier (alsDienstattributgenutzt) SDP Client SDP Server
ID Value UUID Bluetooth Dienstverzeichniss Service Record (Liste der Dienstattribute) ServiceRecordHandle ServiceClassIDList ServiceRecordState ServiceID ProtocolDescriptionList BrowseGroupList LanguageBasedAttributeIDList ServiceInfoTimeToLive ServiceAvailability BluetoothProfileDescriptorList DocumentationURL ClientExecutionURL IconURL ServiceName ServiceDescription ProviderName ... ... ... z.B. Wert = oder Wert = Listevon UUIDs DienstattributesindalsWertepaare (ID, Wert) durch UUIDs (Wert) gekennzeichnet
Bluetooth Geräteprofile • Standardisierung der Dienste
Bluetooth Frequenzen • Kanalsprungverfahren (FrequencyHopping) Quelle: Harald Orlamünder
Netzkonfigurationen • Master organisiert die Sequenz der Kanäle (Hopping-Sequence)
ZeitlicheNutzung der Kanäle • Im Detail unterschiedliche Paketlängen Quelle: Harald Orlamünder
Bluetooth IP Stack Quelle: Harald Orlamünder
Bluetooth Paketformate Quelle: Harald Orlamünder
Systemzustände Quelle: Harald Orlamünder
Network Access Point • Internet Zugang per Bluetooth Quelle: Harald Orlamünder
Inhalt Anwendungen auf mobilenGeräten • Intra-Prozess-Kommunikation • Organisation von Angebot und Nachfrage • Bluetooth • Anwendungsentwicklung • Abstraktionen für Verbindungen • Daten relational und objektorientiert • Vorgehensweise mit UML
MTimeoutNotifier MEngineNotifier MUINotifier <<active>> CSocketWriter <<active>> CSocketEngine CSocketsAppView <<active>> CSocketReader RHostResolver RSocket RSocketServ Beispiel: Socket Server API Beispiel: Symbian Service Framework
EConnecting EConnected Socket Verbindungaufbauen :CSocketEngine :CTimeOutTimer :CSocketReader :RSocket ENotConnected :Framework 1. ConnectL(TUint32 aAddr) 2. Open() 3. Connect() 4. ChangeStatus() 5. After() 6. SetActive() 7. RunL() 8. Cancel() 9. ChangeStatus() 10. Read() 11. Start()
RSocketServ RSocket RBTMan CMessageServer CBTPointToPointAppUI RBTSecuritySettings TBTServiceSecurity CMessageServerAdvertiser RSdp RSdpDatabase Beispiel: Bluetooth Message Server • Realisierung über Sockets
:CMessageServer :CListeningSocket :CBTPointToPointAppUI :CMessageServiceAdvertiser :CAcceptedSocket :Framework 1. HandleCommandL() Configure settings for entries in the service data records 2. StartL() User starts Receiver 3. StartAdvertising() 4. Open() EWaitingForConnect 5. RunL() 6. RequestData() Sender requests a connection 7. RecvOneOrMore() EWaitingForMessage 8. RunL() 9. RequestData() Receiver is receiving a message 10. RecvOneOrMore() Bluetooth Verbindungaufsetzen
Service Record (Bluetooth Punkt-zu-PunktVerbindung) Serial Port Services Class UUID L2CAP UUID RFCOMM UUID Channel Number “Serial Port” “Simple P-T-P Data Tranfer” True ServiceClassIDList ProtocolDescriptionList ServiceName ServiceDescription Service Availability Dienstverzeichnis (Service Record) • Zur Verbindung
UI Data MTM Application UI User Interface MTM Client Side MTM Data Format of Messages Session Message Server Server Side MTM Transport of Messages Nachrichten Server • Messaging Framework
Nachricht Index Liste 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 Index Body Anlagen Speichern von Nachrichten
DBMS Datenhaltung Anwendung • Relationale oder • objektorientierte • Darstellung sind • transformierbar Objekte Transformation Object Transfer Relationen persistente Objekte DBMS: Datenbank Management System RDBMS: Relationales DBMS ODBMS: Objekzorientiertes DBMS RDBMS ODBMS • .
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
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
Aktivitäten User Media Control Centre User object: identity and privileges Log in check user identity [user log in not successful] [user log in successful] Movie object in selected state 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
Benutzerschnittstelle <<control>> C_Channel <<boundary>> B_Channel title B_Text 1 C_Channel(c:Channel) C_Channel() start() close() B_Channel(c:Channel) check() start() play B_Radio_Button 1 stop B_Radio_Button mute B_Radio_Button ... <<instantiate>> <<instantiate>> process administers 1 <<control>> MediaControlCenter <<entity>> Channel 1 Status Channel() store() delete() ...
Rechnerkommunikation und Vernetzung • ENDE Teil6 – Anwendungen auf mobilenGeräten