Privatdozent Dr.-Ing. habil. Andriy Luntovskyy

Größe: px
Ab Seite anzeigen:

Download "Privatdozent Dr.-Ing. habil. Andriy Luntovskyy"

Transkript

1 Studiengang Informationstechnik WWW: Privatdozent Dr.-Ing. habil. Andriy Luntovskyy WWW: 1

2 Verteilte Systeme und Entwicklung verteilter Anwendungen 6. Semester (36 LVS) Das Skript verwendet Lehrmaterialien von A.Schill (TU Dresden) und R.Oechsle (FH Trier) PD Dr. habil. A.Luntovskyy 2

3 Einleitung, Organisatorisches 6.Semester Periode: bis Mai

4 Aufbau und Plan der LV Verteilte Systeme 6. Studienhalbjahr (36 LVS = 24 VL + 12 Praktika) VL Vert. Systeme und Entwicklung verteilter Anwendungen Versuch 1: Socket- Kommunikation Versuch 2: WWW-Datenbankanbindung mittels serverseitiger Skripte PD Dr. habil. A.Luntovskyy 4

5 Inhalt. Verteilte Systeme und Entwicklung verteilter Anwendungen (1) 1. Einleitung 1.1 Definition und Abgrenzung 1.2. Nutzung verteilter Systeme 1.3. Transparenz 2. Kommunikation in verteilten Systemen 2.1. Client-Server-Kommunikation 2.2. Kommunikation über Sockets Kommunikation über UDP Kommunikation über TCP Nachteile der Sockets 2.3. Prozedurenaufruf (Remote Procedure Call) 2.4. Methodenfernaufruf RMI CORBA Auskunfts- und Verzeichnisdienste 2.5. Asynchrone Kommunikation 3. Entwicklung verteilter Anwendungen 3.1. Mehrschichtige Architekturmodelle 3.2. Enterprise Java Beans (EJB) Arten von Enterprise Java Beans Session Beans Clients von Session Beans Entities Funktionen eines EJB-Servers 3.3. Web basierte Anwendungen mit Servlets, Java Server Pages und Java Server Faces Java Servlets Java Server Pages (JSP) Java Server Faces (JSF) PD Dr. habil. A.Luntovskyy 5

6 Inhalt. Verteilte Systeme und Entwicklung verteilter Anwendungen (2) 4. Übersicht von Middleware- Spezifikationen 5. XML in verteilten Systemen 5.1. DTD, XSD 5.2. XML-Anwendungen (XHTML, SMIL) 6. Datenbankanbindung 6.1. SQL 6.2. ODBC, JDBC 7. SOA, Web Services 7.1. Grundlagen WS: WSDL, UDDI, SOAP, 7.2. REST, fortgeschrittene WS-* 7.3. Ausbau SOA, Forschungsfelder 8. Fortgeschrittene Verfahren der Softwaretechnik 8.1. MDA 8.2. AOP 9. Security in verteilten Systemen 9.1. Kryptographische Absicherung der Kommunikation per SSL 9.2. weitere Protokolle 10. Server- (Applikations-) Virtualisierung Klassifikation, V.-Arten Virtuelle Maschinen, Monitore, Hypervisor Netzwerk- und Speicher-V Systembeispiele PD Dr. habil. A.Luntovskyy 6

7 1. Literatur, Skripte Rainer Oechsle. Verteilte Systeme und Entwicklung verteilter Anwendungen, s , 6.Auflage, Hanser Verlag, 2007, ISBN: Alexander Schill, T.Springer. Verteilte Systeme - Grundlagen und Basistechnologien; Springer-Verlag Berlin Heidelberg 2007, ISBN: , examen.press 3. Heide Balzert. Basiswissen Web-Programmierung. XHTML, CSS, JavaScript, XML, PHP, JSP, ASP.NET, Ajax, W3L Verlag Herdecke (Taschenbuch April 2007), ISBN: Alexander Schill. Distributed Systems, Manuskript, TUD Georg Disterer, Friedrich Fels, Andreas Hausotter. Betriebliche Informationssysteme, s , 6.Auflage, Hanser Verlag, 2007, ISBN: Alexander Schill. Bürokommunikation, Manuskript, TUD Alexander Schill. Mobile Communication and Mobile Computing, Manuskript TUD, Heinz-Jürgen Spielmann. Softwaretechnik, s , 6.Auflage, Hanser Verlag, 2007, ISBN: Uwe Aßmann. Component-Based Software Engineering, Manuskript TUD, Uwe Aßmann. Softwaremanagement und Projektorganisation, Manuskript TUD, Ian Sommerville. Software Engineering. - München: Pearson Studium, Andriy Luntovskyy. Rechnernetzpraxis-1, Manuskript TUD, Andriy Luntovskyy. Rechnernetzpraxis-2, Manuskript TUD, Heide Balzert. UML2 in 5 Tagen. Der schnelle Einstieg in die Objektorientierung, W3L Verlag Herdecke, Bochum, , 184 Seiten, ISBN: Heide Balzert. Lehrbuch der Objektmodellierung - Analyse und Entwurf mit der UML 2, Elsevier Spektrum Akademischer Verlag, 2005, ISBN Helmut Balzert. Software-Technik, Manuskript von Lehrstuhl für Software-Technik, Ruhr- Universität Bochum, Helmut Balzert. Lehrbuch der Software-Technik. Band 1, 2.Auflage. Elsevier-Verlag, Unzählige Online-Quellen (Einstieg u. a. auch über Wikipedia etc.) PD Dr. habil. A.Luntovskyy 7

8 Buchstabensuppe EJB.NET CORBA.NET C-S Sockets XML RPC RMI XHTML XHTML n-tier ACID ACID JSP 2PC Web Services 2PC UMLSOA SOA AOP WAP Web Web OOA/ CASE OOD MDA MDA AOP 8

9 2PC ACID AOP Black-Box CASE CORBA C-S EJB JSP MDA OOA/OOD RMI RPC SOA UML WAP White-Box XHTML XML Abkürzungen 2-Phasen-Commit Protocol Principle ACID, Atomicity, Consistency, Isolation, Durability Aspect-oriented Programming Testfallermittlungsmethode Computer-Aided Software Engineering Common Object Request Broker Architecture Client-2-Server Communication Enterprise Java Beans Java Server Pages Model-Driven Architecture Object-Oriented Analysis and Design Remote Method Invocation Remote Procedure Call Service-oriented Architecture Unified Modeling Language Wireless Access Protocol Testfallermittlungsmethode Extensible Hypertext Mark-up Language Extensible Mark-up Language und dann viel mehr 9

10 Kommunikation in verteilten Systemen PD Dr. habil. A.Luntovskyy 10

11 Verteiltes System vs Mehrprozessorsystem Ein verteiltes System besteht aus unabhängigen, über ein Rechnernetz kommunizierenden Rechnern, wobei keine zentrale Systemsteuerung existiert und der Verteilungsaspekt für die Benutzer des Systems möglichst transparent ist. Abgrenzung: Verteilte Systeme sind lose gekoppelte Systeme ohne gemeinsamen Speicher im Gegensatz zu eng gekoppelten, parallelen Systemen mit gemeinsamem Speicher (Mehrprozessorsysteme, MIMD). Der Fokus der Betrachtung liegt auf der Entwicklung verteilter Anwendungen. Die Existenz einer funktionierenden Kommunikationsinfrastruktur, welche von den tieferen Schichten erbracht wird, wird vorausgesetzt PD Dr. habil. A.Luntovskyy 11

12 Klassifikation von Rechnerarchitekturen nach M.Flynn (1972) Unterteilung von Rechnerarchitekturen (RA) nach der Anzahl der vorhandenen Befehls- (Instruction Streams) und Datenströme (Data Streams): SISD - Single Instruction Single Data SIMD Single Instruction Multiple Data MISD Multiple Instruction Single Data MIMD Multiple Data Multiple Instruction Daten/ Befehle Single Instruction Multiple Instruction Single Data SISD MISD Multiple Data SIMD MIMD Einfachste RA: SISD (Single Instruction, Single Data) Unter SISD-Rechnern versteht man traditionelle Einprozessor-Rechner, die ihre Aufgaben sequentiell abarbeiten. SISD-Rechner sind z.b. Personal-Computer (PCs) oder Workstations welche nach der Von-Neumann- oder Harvard-Architektur aufgebaut sind. Bei erster wird für Operanden und Instruktionen der gleiche Speicher verwendet, bei letzterer sind sie getrennt PD Dr. habil. A.Luntovskyy 12

13 SIMD (Single Instruction, Multiple Data) RA von Großrechnern beziehungsweise Supercomputern SIMD-Computer, Array-Prozessoren oder Vektorprozessor (Cray 1970), dienen der schnellen Ausführung gleichartiger Rechenoperationen auf mehrere gleichzeitig eintreffende oder zur Verfügung stehende Eingangsdatenströme vorwiegend in der Verarbeitung von Bild-, Ton- und Videodaten eingesetzt. Beispiele: SIMD Instruction Pool PU Processor Unit 1. gängige Mikroprozessoren (wie Intel x86, AMD 3DNow!) besitzen inzwischen SIMD-Erweiterungen, das heißt spezielle zusätzliche Befehlssätze, die mit einem Befehlsaufruf gleichzeitig mehrere gleichartige Datensätze verarbeiten (jedoch nur per Assembler programmierbar!). 2. Feldrechner - mehrere Recheneinheiten berechnen parallel auf verschiedenen Daten die gleiche Operation (Prozessautaumatisierung) 3. Vektorrechner - quasi-parallele Bearbeitung mehrerer Daten durch Pipelining PD Dr. habil. A.Luntovskyy 13 Data Pool PU PU PU

14 MISD (Multiple Instruction, Single Data) Einsatz umstritten gibt es nicht? RA von Großrechnern beziehungsweise Supercomputern Jedoch kann man fehlertolerante Systeme, die redundante Berechnungen ausführen, in diese Klasse einordnen. Beispiel: Schachcomputer. Zukünftige Umsetzung: Makro-Pipelining, bei dem mehrere PU hintereinander geschaltet sind redundante Datenströme zur Fehlererkennung bzw. -korrektur. SIMD Instruction Pool MISD Data Pool Data Pool PU PU PU PD Dr. habil. A.Luntovskyy 14 Instruction Pool PU PU PU?

15 MIMD (Multiple Instruction, Multiple Data) RA von Großrechnern bzw. Supercomputern. MIMD-Computer führen gleichzeitig verschiedene Operationen auf verschieden gearteten Eingangsdatenströmen durch, wobei die Verteilung der Aufgaben an die zur Verfügung stehenden Ressourcen meistens durch einen oder mehrere Prozessoren des Prozessorverbandes selbst zur Laufzeit durchgeführt wird. Jeder Prozessor hat Zugriff auf die Daten anderer Prozessoren. Jedoch sehr allgemein definiert Multiprozessorsysteme teilen sich den vorhandenen Speicher und sind somit also ein Shared-Memory-System; Synchronisationsproblem bei Memory Access. MIMD-Klassen: eng gekoppelte Systeme Multiprozessorsysteme lose gekoppelte Systeme Multicomputersysteme (bzw. VS und Grid Computing) PD Dr. habil. A.Luntovskyy 15

16 MIMD (Fort.) PU PU PU PU PU PU Shared Memory Memory Memory Memory Data Pool Instruction Pool MIMD: enge Kopplung Multiprozessorsystem Beispiele: Transputer ( Transmit + Computer ) ist ein Parallelrechner (mehrere SISD, Von-Neumann-RA), der mit einer zusätzlichen Kommunikationshardware ausgestattet ist, um den Datenaustausch zu benachbarten Rechnern effizient zu ermöglichen (Großbritannien, , Firma Inmos). Verteilte Systeme - autonome Prozessoren die gleichzeitig verschiedene Befehle auf verschiedenen Daten bearbeiten PD Dr. habil. A.Luntovskyy 16 Data Instruction Data Instruction Memory Access Data MIMD: lose Kopplung Multicomputersystem VS Instruction

17 Merkmale verteilter Systeme Merkmale der VS: 1. Kopplung räumlich verteilter Rechner mittels Rechnernetz 2. Kooperation mit dem Ziel, eine bestimmte Anwendungsfunktionalität zu erbringen 3. Kein gemeinsamer physikalischer Speicher, keine strikt synchronisierten Uhren 4. Dezentrale Organisation und Verwaltung 5. Häufig auch Fehlertoleranz und Lastausgleich durch Replikation Realisierung von VS auf Basis des Client/Server-Modells bzw. durch verteilte Objekte und Software-Komponenten die P2P-Systeme liegen zum Teil außerhalb der Betrachtung in dieser LV PD Dr. habil. A.Luntovskyy 17

18 Nutzung verteilter Systeme Verteilte Systeme werden vor allem für folgende Zwecke eingesetzt: 1. gemeinsame Nutzung von Daten (z. B. verteilte Dateisysteme und World Wide Web), auch zur Erreichung von Fehlertoleranz durch Redundanz (z. B. Replikation von Daten einer Datenbank), 2. gemeinsame Nutzung von Geräten (z. B. Drucker und Scanner) 3. gemeinsame Nutzung von Rechenleistung (z. B. Zugriff auf Hochleistungsrechner), 4. Kommunikation der Benutzer eines verteilten Systems (z. B. elektronische Post, gemeinsamer Terminkalender einer Arbeitsgruppe, Mehrbenutzeranwendungen wie Mehrbenutzertexteditoren oder Mehrbenutzergrafikeditoren, IP-Telefonie, Audio-Video-Konferenzen). VS im Hintergrund: Neben solchen, für die Endanwender sichtbaren verteilten Anwendungen gibt es auch solche, die von anderen Komponenten intern benutzt werden und den Endanwendern verborgen bleiben wie z. B. Anwendungen zur Berechnung von Wegewahltabellen (OSPF, RIP, BGP usw.), Namensdienste (DNS), Konfigurationsdienste (DHCP) und Netzmanagement-Dienste (SNMP) PD Dr. habil. A.Luntovskyy 18

19 Transparenz Da die Nutzung verteilter Systeme in der Regel komplizierter ist als die Nutzung eines einzelnen Rechners, wurden auf unterschiedlichen Ebenen (Programmierebene, Benutzerebene usw.) Mechanismen eingeführt, die den Aspekt der Verteilung verbergen Ein verteiltes System erscheint wie ein zentrales System. Man spricht von Verteilungstransparenz. Sie bemerken allenfalls eine Leistungseinbuße. Folgende Arten der Verteilungstransparenz lassen sich unterscheiden: 1. Zugriffstransparenz: Der Zugriff auf lokale und ferne Ressourcen erfolgt in derselben Weise. 2. Ortstransparenz: Der Zugriff auf Ressourcen ist ohne Kenntnis des Orts, an dem sich die Ressourcen befinden, durchführbar. 3. Namenstransparenz: Der Name einer Ressource ist für alle Rechner des verteilten Systems gleich. (DNS, URL, URi) 4. Skalierungstransparenz: Die Erweiterung des Systems um weitere Rechner ist möglich, ohne dass die Gesamtstruktur oder die Anwendungsprogramme geändert werden müssen 5. Replikationstransparenz: Falls das verteilte System zur Erhöhung der Verfügbarkeit und Fehlertoleranz mehrere Kopien von einer Ressource hält, so bleibt dies den Anwendungsprogrammen bzw. Benutzern verborgen PD Dr. habil. A.Luntovskyy 19

20 Transparenz (Fort.) 6. Nebenläufigkeitstransparenz: Mehrere Anwendungsprogramme bzw. Benutzer können nebenläufig auf dieselben Ressourcen zugreifen, ohne dass es dabei zu Problemen kommt. 7. Ausführungs- bzw. Migrationstransparenz: Es ist für die Anwendungsprogramme bzw. Benutzer nicht erkennbar, auf welchem Rechner ein angeforderter Dienst ausgeführt wird. Es ist sogar möglich, dass ein laufendes Anwendungsprogramm während der Ausführung eines Dienstes auf einen anderen Rechner bewegt wird (Migration). 8. Leistungstransparenz: Bei sich ändernden Belastungen kann das System umkonfiguriert werden, um die Leistung zu verbessern, ohne dass die Anwendungsprogramme bzw. Benutzer dies bemerken. 9. Ausfalltransparenz: Der Ausfall von Software- oder Hardwarekomponenten bleibt Anwendungsprogrammen bzw. Benutzern weitgehend verborgen PD Dr. habil. A.Luntovskyy 20

21 Transparenzkonzept: VS vs. Grid Computing In einem verteilten System können unterschiedliche Transparenzaspekte mehr oder weniger stark ausgeprägt sein. Ein Beispiel für verteilte Systeme, bei denen besonders großer Wert auf Transparenz - insbesondere auf Ausführungstransparenz - gelegt wird, stellt das dar. Während die ersten Einsatzgebiete für das Grid Computing wissenschaftlicher Natur waren, wird es mittlerweile verstärkt auch im kommerziellen Umfeld eingesetzt. Eine scharfe Abgrenzung zwischen Grid Computing und anderen verteilten Systemen gibt es nicht PD Dr. habil. A.Luntovskyy 21

22 Grid Computing: weitere Details Grid-Computing ist eine Form des verteilten Rechnens, bei der ein "virtueller Supercomputer" aus einem Cluster lose gekoppelter Computer erzeugt wird. Es wurde entwickelt, um rechenintensive wissenschaftliche insbesondere mathematische Probleme zu lösen. Heute wird Grid-Computing in vielen zum Teil auch kommerziellen Bereichen eingesetzt: in der Pharmaforschung in den Wirtschaftswissenschaften, beim elektronischen Handel bei Web Services (Webdiensten). zum Risikomanagement in der Baudynamik im Bereich Finanzmanagement. Von typischen Computerclustern unterscheidet sich Grid-Computing in der wesentlich loseren Kopplung, der Heterogenität und der geographischen Zerstreuung der Computer. Des Weiteren ist ein Grid meistens bestimmt für eine spezielle Anwendung und nutzt häufig standardisierte Programmbibliotheken, Middleware und Web Services Quelle: Wikipedia PD Dr. habil. A.Luntovskyy 22

23 Kommunikationsarten in VS Verteilte Systeme unterteilen sich nach der Art der Kommunikation: 1. Client-Server-Kommunikation Kommunikation über Sockets (Transport: TCP/UDP) Prozedurenaufruf (RPC, Remote Procedure Call) Methodenfernaufruf (RMI, Remote Method Invocation, und CORBA, Common Object Request Broker Architecture) Asynchrone Kommunikation (MQ, Message Queuing) 2. Peer-to-Peer-Kommunikation (gleichberechtigte Partner, P2P) Dies sind hauptsächlich VS zur Realisierung von Tauschbörsen für Dateien (File-Sharing wie z. B. Napster, KaZaa usw.), mit denen vorwiegend Musik- und Videodateien (MP3, AVI, MPEG usw.) (nicht selten illegal) getauscht werden PD Dr. habil. A.Luntovskyy 23

24 P2P-Systeme P2P-Systeme lassen sich in unstrukturierte und strukturierte P2P-Systeme unterteilen. Unstrukturierte P2P-Systeme unterteilen sich nochmals nach der Art ihres Aufbaus. Man unterscheidet Zentralisierte P2P-Systeme (Beispiel: Napster), welche einen zentralen Server zur Verwaltung benötigen, um zu funktionieren Reine P2P-Systeme ohne zentrale Instanz (Beispiele: Gnutella 0.4, Freenet) Eine spezielle Art eines reinen, dezentralen Netzwerkes bildet das Friend-2- Friend- oder Web-of-Trust-Netzwerk, bei dem keinerlei Verbindungen zu unbekannten IP-Adressen unterhalten werden, sondern ausschließlich Verbindungen zu Freunden (trusted friends) etabliert werden. (Beispiel: RetroShare) Hybride P2P-Systeme, welche dynamisch mehrere zentrale Server zur Verwaltung bestimmen (Beispiele: Gnutella 0.6, JXTA) Zentralisierte und reine P2P-Systeme bezeichnet man auch als Systeme erster Generation und dezentrale Systeme als Systeme zweiter Generation. Systeme, die Dateien über nicht-direkte Verbindungen weiterreichen, sind Systeme dritter Generation (File Sharing) PD Dr. habil. A.Luntovskyy 24

25 C-S-Kommunikation SW C-S-Kommunikation SW BS mit TCP/IP API MW Sockets RPC, RMI, MQ API MW BS mit TCP/IP HW Transportsystem TCP, UDP HW BS mit Unterstützung des TCP/IP- Protokollstack API Application Programming Interface C-S-Kommunikation über:(client-server-kommunikation) Sockets (TCP, UDP Transportprotokolle) Prozedurenaufruf (RPC, Remote Procedure Call) Methodenfernaufruf (RMI, Remote Method Invocation, und CORBA, Common Object Request Broker Architecture) Asynchrone Kommunikation (MQ, Message Queuing) Erscheinen von MW, einer Zwischenschicht MW-Spezifikationen CORBA, weitere Spezifikationen EJB (Enterprise Java Beans),.NET PD Dr. habil. A.Luntovskyy 25

26 Mehrstufige Architektur Client Server Kasse Geldautomat Server (z.b. Kontenserver) Server (z.b. Datenbank) Client (z.b. Homezugang) Benutzerschnittstelle, ggf. Vorverarbeitung Anwendungslogik 3-tier: 2-tier: Datenverwaltung dreistufige Struktur; bei komplexen Anwendungen zu bevorzugen zweistufige Struktur (Benutzerschnittstelle Host); einfacher, aber weniger flexibel PD Dr. habil. A.Luntovskyy 26

27 2-tier: Thin Client vs. Thick Client Thin-Client nur die Benutzerschnittstelle auf dem Client-System Ähnlich zu zentralem System, aber oft Download-Mechanismen Vorteil: kostengünstige Clients Nachteil: Überlastsituationen wenn zu viele Clients auf denselben Server zugreifen, begrenzte Skalierbarkeit Thick-Client (auch Fat- Client) Teile oder gesamte Fachlogik auf dem Client- System Hauptfunktion des Servers: Datenhaltung Vorteil: Entlastung des Servers Nachteil: Zusätzliche Anforderungen an Clients: Softwareinstallation +Wartung), Entwicklungsaufwand PD Dr. habil. A.Luntovskyy 27

28 Verteilte Anwendungen: Techniken der Verteilung Time Sharing Distr. Presentation Remote Processing Distr. Processing Remote DB Distr. DB Stand Alone Processing Server DB DB DB DB DB DB DB DB DB DB DB DB DB DB Logik Logik Logik Logik Logik Logik Logik Logik Logik Logik Logik Logik Logik Logik GUI GUI GUI GUI GUI GUI GUI GUI GUI GUI GUI GUI GUI GUI PD Dr. habil. A.Luntovskyy 28 Client

29 Verteilte Anwendungen: Techniken der Verteilung Time Sharing Distr. Presentation Remote Processing Distr. Processing Remote DB Distr. DB Stand Alone Processing Server DB DB DB DB DB DB TCP/IP- Netzwerk DB DB Logik Logik Logik Logik Logik Logik Logik Logik GUI TCP/IP- Netzwerk GUI GUI GUI GUI GUI GUI GUI PD Dr. habil. A.Luntovskyy 29 Client

30 Sockets PD Dr. habil. A.Luntovskyy 30

31 IP-Adressen und Ports Kommunikation per TCP oder UDP Jeder Host hat max. 65,536 Ports (2^16-1) Manche Ports sind reserviert für spez. Internet-Services 21: FTP 23: Telnet 80: HTTP Socket bietet eine Schnittstelle zum Paar: (IP- Address ; Port) Besteht aus Byte folgende Funktionalität ist notwendig: Spezifizieren lokale und entfernte Dienstzugangspunkte für Kommunikation zwischen Applikationen Verbindungsaufbau bzw. -abbau initiieren Daten senden und empfangen Sockets erzeugen/beenden Port 0 Port 1 Port PD Dr. habil. A.Luntovskyy 31

32 Threads - "leichtgewichtige" Prozesse (1) Prozess P1 Threads Prozess P2 Threads ProzessP3 Threads T1a T1b T2a T2b T2с T3a Anwendungen/Prozesse Px mit mehreren Threads Txy Wegen ihres umfangreichen Kontextes sind Prozesse oft "schwergewichtig" (z. B. in UNIX). Um feinere Parallelität, auch innerhalb einer Anwendung zu erreichen, wurden "leichtgewichtige" Prozesse bzw. Threads entwickelt. Ein Thread ist ein Aktivitätsträger (sequenzieller "Ausführungsfaden") mit minimalem Kontext (Stack und Register) innerhalb einer Ausführungsumgebung (Prozess). Jeder Prozess besitzt in diesem Fall mindestens einen (initialen) Thread. Alle Threads, die zu ein und demselben Prozess gehören, benutzen denselben Adressraum sowie weitere Betriebsmittel dieses Prozesses gemeinsam PD Dr. habil. A.Luntovskyy 32

33 Threads - "leichtgewichtige" Prozesse (2) In der Praxis eignen sich viele Anwendungen und Systemprozesse für eine Implementierung in Form paralleler Threads. So können z.b. Textverarbeitungsprogramme wie etwa MS Word verschiedene Bearbeitungsfunktionen innerhalb desselben Textes (z.b. Texterfassung, Textumbruch, Rechtschreibprüfung) durch verschiedene Threads parallel ausführen. Auch Anwendungen, die viele unabhängige Anfragen bearbeiten müssen, z. B. Datenbanksysteme oder Web-Server, lassen sich effizient mittels Multithreading implementieren. Die Implementierung von Threads kann erfolgen in Form von: User-Level-Threads: Threads aus der Sicht einer Anwendung bzw. des Programmierers. Kernel-Level-Threads (auch Kernel-Threads): Threads aus der Sicht des Betriebssystems zum Ablauf auf einer CPU, z.b. in MS Windows NT/2000/XP/Vista/Win PD Dr. habil. A.Luntovskyy 33

34 Threads und Parallelablauf Software Quelle / OpenMP API Parallelle Sektion Parallelle Sektion T1 Tn T2 Tn+1 HT FORK JOIN HT FORK JOIN HT Sequentielle Sektion Sequentielle Sektion Sequentielle Sektion Struktur einer Anwendung: HT Hauptthread Ti Thread Fork-Join-Modell für Threads in OpenMP API (Application Programming Interface) Runtime

35 Socket als SW-Struktur (1) Das Socket ist eine Software-Struktur, die eindeutig einen TSAP (Transport Layer Service Access Point) zu einem Anwendungsprozess in einem Knoten eines Netzes charakterisiert Jeder Anwendungsprozess wird durch die Sockets eindeutig definiert Socket dient für Aufbau einer logischen Verbindung zwischen Netzanwendungen Kennung durch zwei IDs: Portnummer 2 Byte und IP-Netzadresse - 4 Byte Die Portnummern werden von Internet Assigned Numbers Authority (IANA) nach RFC 1700 festgelegt Manche Dienste haben feste Portnummer, z.b. Telnet, FTP, DNS usw PD Dr. habil. A.Luntovskyy 35

36 Socket als SW-Struktur (2) Schnittstelle zwischen Anwendung und Netzwerk bzw. Internet Anwendung kann Daten senden und empfangen Unterstützt durch Socket-APIs zu bekannten Programmiersprachen durch alle Betriebssysteme (bspw. durch UNIX seit 1970er) Anwendung Socket User Kern Anwendung Socket-API Protokoll A Protokoll B Protokoll C TCP/UDP IP (Netzwerk) PD Dr. habil. A.Luntovskyy 36

37 Thread Multiplexing IANA Internet Assigned Numbers Authority, IANA ist verantwortlich für die Zuordnung der Ports Portsnummer werden von IANA reserviert und verwaltet, z.b. die Hauptanwendungsdienste haben feste Nummer: FTP (#21), TFTP (#69) DNS (#53) Telnet (#23) SMTP (#25) WWW (#80) Übrige Ports kann man dynamisch für Anwendungsprozesse zuordnen ( ) Untermenge ( ) ist temporär ( ephemeral ) in Interessen der Internet- Gemeinschaft reserviert Thread-Konzept: Netzwerkanwendungen bestehen aus einem oder mehreren Threads Jedem Thread wird eine Prozessorzeiteinheit zugeteilt Threads werden mittels TCP/UDP umgeschaltet Prozess FTP Prozess DNS Prozess Telnet Port21 Port53 Port23 Eingehende Segmente TCP - Multiplexing IP Netzwerkinterface (NIC) Ausgehende Segmente PD Dr. habil. A.Luntovskyy 37

38 Socket 1: DNS = aa.inf.tu-dresden.de IP = bb.cc Port = SOCK_STREAM request Sockets: Beispiel Client 1 reply TELNET Port 23 Client 2 Socket 2: DNS = xx.inf.tu-dresden.de IP = yy.zz Port = SOCK_STREAM Port 21 FTP Server DNS = nn.inf.tu-dresden.de IP = qq.pp PD Dr. habil. A.Luntovskyy 38

39 Socket-Programmierung: Socket-APIs Socket API besteht aus 4 Gruppen der Programmierfunktionen für Kommunikation zwischen zwei Netzwerkpartnerprozessen: Funktionen für lokale Verwaltung F. für Verbindungsaufbau F. für Datentransfer F. für Verbindungsabbau Socket-Programmierung ist möglich mit Einsatz mehrerer Programmiersprachen, wie z.b. C, C++, Java Jeder Socket bekommt eine eindeutige ID: IP- Adresse/Portnummer Socket kann eine verbindungsorientierte (TCP) oder verbindungslose (UDP) Kommunikation erzeugen PD Dr. habil. A.Luntovskyy 39

40 Socket als Schnittstelle Application Application Protocol Application Socket Socket TCP/UDP IP TCP/UDP IP TCP/UDP IP Physical Protocol PD Dr. habil. A.Luntovskyy 40

41 Sockets: verbindungslose Kommunikation 1. Client und Server fordern jeweils mit dem Systemaufruf einen Socket an. Dabei wird als Transportprotokoll UDP angeben. socket() 2. 1 Der Server bindet eine Portnummer an den erstellten Socket. 3. Durch den Aufruf von recvfrom blockiert der Server-Prozess und 1 socket() bind() 2 wartet auf eingehende Daten auf dem erstellten Socket Der Client versendet unter Angabe 4 sendto() recvfrom() 3 der Adressinformationen (die zuvor in eine sockaddr_in-struktur gefüllt wurden) mit Hilfe von sendto Daten an den Server, die durch recvfrom von diesem entgegengenommen werden. Implizit wird dabei 5 ebenfalls in eine sockaddr_inrecvfrom() sendto() Struktur, die recvfrom als Parameter übergeben wurde, die Absenderadresse bzw. der Absenderport eingetragen, so dass 6 close() dem Client geantwortet werden kann. Client Server 5. Der Server antwortet dem Client. 6. Der Socket auf Client-Seite wird nach abgeschlossener Kommunikation geschlossen PD Dr. habil. A.Luntovskyy 41

42 Sockets: verbindungsorientierte Kommunikation 1. Sowohl Client, als auch Server fordern einen Socket an, der daraufhin als Schnittstelle zur Transportschicht 1 socket() connect() send() recv() close() 5 socket() bind() listen() accept() recv() send() close() 8 8 Client 6 Server verwendet werden kann. Bereits an dieser Stelle wird das zu verwendende Transportprotokoll, hier TCP, angegeben. 2. Der Server bindet eine lokale Adresse (eine Portnummer) an den erstellten Socket, über die der Prozess in der Folge verfügbar ist. 3. Daraufhin wird durch den Aufruf von listen auf eingehende Verbindungen gelauscht. 4. Die Möglichkeit eingehende Verbindungen anzunehmen wird durch den Aufruf von accept erreicht. 5. Der Client initiiert eine Verbindung auf dem unter 1. angelegten Socket. Dabei werden alle notwendigen Daten, wie IP- Adresse und Portnummer spezifiziert. Bei dem Verbindungsvorgang handelt es sich um einen 3-Wege-Handshake. 6. Auf Server-Seite wird eine eingehende Verbindung zunächst in eine Warteschlange eingehängt. Der vorherige Aufruf von accept bewirkt, dass diese Warteschlange abgearbeitet wird. Für jede eingegangene Anfrage wird dazu ein neuer, verbundener Socket erstellt. Damit ist zwischen den beiden Endpunkten ein Kommunikationskanal hergestellt. 7. Auf diesem Kanal können nun mit Hilfe entsprechender Systemaufrufe Daten geschrieben bzw. gelesen werden. 8. Nachdem alle Daten übertragen wurden PD Dr. habil. A.Luntovskyy können die Sockets geschlossen werden.

43 Socket-Programmierung: Analogie für Socket-Begriffe Telefonlinie Telefonnummer (Zentrale) Erweiterung (Apparat) auf den Anruf warten Vorwählen Antwort Sprechen/Hören Hörer auflegen socket(); IP-Adresse Portnummer bind(); listen(); connect(); accept(); send() / recv(); close(); PD Dr. habil. A.Luntovskyy 43

44 TCP/IP-Programmierung Basis: Sockets als Dienstzugangspunkt Prozess A socket() => Socket connect (Socket, Prozeß B) send (Socket, data) receive (Socket, data) close(socket) Prozess B socket() => Socket bind (Socket, Name) - Benennt Socket listen (Socket) - Erzeugt Pufferplatz accept (Socket) - Wartet auf Verbindungsanforderung receive (Socket,data) send (Socket,data) zusätzlich: "Select" zum Warten an mehreren Sockets, ODER-verknüpft Stream-Sockets: Realisierung auf Basis von TCP für Datenströme Datagram Sockets: UDP-basiert, einfache Datagramme PD Dr. habil. A.Luntovskyy 44

45 Java Sockets: Beispiel für Server- Seite ServerSocket serversocket = new ServerSocket(port); // generiere neuen Socket mit bestimmter Portnummer while (true) { Socket clientsocket = serversocket.accept(); // warte auf Nachrichten } InputStream input = clientsocket.getinputstream(); // Datenstrom empfangen int data = input.read(); // Daten auslesen clientsocket.close(); // Verbindung schließen PD Dr. habil. A.Luntovskyy 45

46 Nachteile der Sockets Die Nutzung von Sockets zur Realisierung verteilter Anwendungen besitzt folgende Nachteile: 1. Da UDP unzuverlässig ist, müssen die obigen Programmstrukturen für den UDP-Server und -Client um Maßnahmen zur Erhöhung der Zuverlässigkeit (befristetes Warten auf eine Antwort, wiederholtes Senden des Auftrags usw.) erweitert werden. 2. Bei der Nutzung von TCP muss der Verbindungsauf- und -abbau jeweils explizit programmiert werden. 3. Da die Server von vielen Clients beauftragt werden, ist es ratsam, einen Server durch mehrere parallele Prozesse zu realisieren. Dies muss explizit programmiert werden. 4. Die übertragenen Daten müssen unter Umständen vor und/oder nach der Übertragung gewandelt werden, insbesondere bei der Übertragung von Binärdaten (Big-Endian- vs. Little-Endian-Darstellung ganzer Zahlen, Länge von int-zahlen: 2, 4 oder 8 Byte, Layout von Datenstrukturen usw.). 5. Beim Software-Entwurf wird ein zu entwickelndes System in Module oder Objekte von Klassen aufgeteilt. Die Module interagieren über Prozeduraufrufe, die Objekte über Methodenaufrufe. Die Kommunikation über Sockets passt nicht zu diesem Paradigma PD Dr. habil. A.Luntovskyy 46

Verteilte Systeme - 1. Übung

Verteilte Systeme - 1. Übung Verteilte Systeme - 1. Übung Dr. Jens Brandt Sommersemester 2011 1. Rechnerverbünde Kommunikationsverbund: Beispiele: E-Mail (SMTP, POP/IMAP), Instant Messaging (XMPP, IRC, ICQ,...), Newsgroups (NNTP)

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2013/2014 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Kommunikations-Middleware Bietet höhere Kommunikations-Dienste

Mehr

Client/Server-Systeme

Client/Server-Systeme Fachbereich Informatik Projektgruppe KOSI Kooperative Spiele im Internet Client/Server-Systeme Vortragender Jan-Ole Janssen 26. November 2000 Übersicht Teil 1 Das Client/Server-Konzept Teil 2 Client/Server-Architekturen

Mehr

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007 Systemprogrammierung Projekt: Java RMI Wintersemester 2006 / 2007 Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 2 1. Einleitung

Mehr

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Ziele Common Object Request Broker Architecture CORBA Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Object Management Group Spezifiziert den CORBA-Standard

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation spezielle Technik aus dem Java-Umfeld Ausführung der Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VM s Aufruf

Mehr

Java RMI Remote Method Invocation

Java RMI Remote Method Invocation Java RMI Remote Method Invocation Ziel: Aufruf von Instanzmethoden entfernter Objekte basierend auf Java. Paket: java.rmi und Unterpakete Topologie: RMI Registry RMI Server RMI Client Der Server registriert

Mehr

Java-Programmierung. Remote Method Invocation - RMI

Java-Programmierung. Remote Method Invocation - RMI Java-Programmierung Remote Method Invocation - RMI Entwicklungsmethoden Sockets Entwurf verteilter Anwendungen ist relativ aufwändig, da zunächst ein Kommunikationsprotokoll entwickelt werden muss aufwändig

Mehr

Verteilte Systeme. Verteilte Objektorientierte Systeme I. Prof. Dr. Oliver Haase

Verteilte Systeme. Verteilte Objektorientierte Systeme I. Prof. Dr. Oliver Haase Verteilte Systeme Verteilte Objektorientierte Systeme I Prof. Dr. Oliver Haase 1 Überblick Verteilte Objektorientierte Systeme 1 RPC verteilte objektorientierte Architekturen Java RMI Verteilte Objektorientierte

Mehr

VS3 Slide 1. Verteilte Systeme. Vorlesung 3 vom 22.04.2004 Dr. Sebastian Iwanowski FH Wedel

VS3 Slide 1. Verteilte Systeme. Vorlesung 3 vom 22.04.2004 Dr. Sebastian Iwanowski FH Wedel VS3 Slide 1 Verteilte Systeme Vorlesung 3 vom 22.04.2004 Dr. Sebastian Iwanowski FH Wedel Inhaltsverzeichnis für die Vorlesung Zur Motivation: 4 Beispiele aus der Praxis Allgemeine Anforderungen an Verteilte

Mehr

Multiuser Client/Server Systeme

Multiuser Client/Server Systeme Multiuser /Server Systeme Christoph Nießner Seminar: 3D im Web Universität Paderborn Wintersemester 02/03 Übersicht Was sind /Server Systeme Wie sehen Architekturen aus Verteilung der Anwendung Protokolle

Mehr

Softwareentwicklung in verteilten Umgebungen Middleware Case Studies (Coulouris et al., Kapitel 5 und 19) Dieter Schmalstieg Jens Grubert

Softwareentwicklung in verteilten Umgebungen Middleware Case Studies (Coulouris et al., Kapitel 5 und 19) Dieter Schmalstieg Jens Grubert Softwareentwicklung in verteilten Umgebungen Middleware Case Studies (Coulouris et al., Kapitel 5 und 19) Dieter Schmalstieg Jens Grubert Partly based on material by Victor García Barrios and Paul Krzyzanowski

Mehr

CORBA. Systemprogrammierung WS 2006-2007

CORBA. Systemprogrammierung WS 2006-2007 CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA

Mehr

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010 Gerald.Ehmayer@borland.com

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010 Gerald.Ehmayer@borland.com Web Services Java Praktikum SS 2010 Gerald.Ehmayer@borland.com 1 Web Services Einführung Definition, Eigenschaften, Anwendungen... JAX-RPC Überblick, Architektur... JAX Übersicht, Architektur Java Praktikum

Mehr

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition)

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition) Ein Prozess kann unmittelbar vom Zustand 1. Running in den Zustand Ready 2. Running in den Zustand Blocked 3. Ready in den Zustand Running Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition) Der Adressraum

Mehr

Client/Server-Systeme

Client/Server-Systeme Frühjahrsemester 2011 CS104 Programmieren II / CS108 Programmier-Projekt Java-Projekt Kapitel 3: /Server-Architekturen H. Schuldt /Server-Systeme Ein zweischichtiges /Server-System ist die einfachste Variante

Mehr

Musterlösung Übungsblatt 1 Netzprogrammierung WS 05/06

Musterlösung Übungsblatt 1 Netzprogrammierung WS 05/06 Musterlösung Übungsblatt 1 Netzprogrammierung WS 05/06 Block Verteilte Systeme und Middleware 1. Beschreiben Sie die Entwicklung verteilter Systeme von einer Zentralisierung bis zu Peer-to-Peer. Nicht

Mehr

-Testen verteilter Anwendungen

-Testen verteilter Anwendungen -Testen verteilter Anwendungen Seminar Simulation und Bildanalyse mit Java im SS04 Konstantin Tjo, Urs Pricking Testen verteilter Anwendungen 1 Übersicht Einführung in verteilte Anwendungen RMI (Remote

Mehr

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg COMMON OBJECT REQUEST BROKER ARCHITECTURE Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg Gliederung Motivation Was ist CORBA? Object Management Architecture (OMA ) Interface Definition Language

Mehr

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste Hauptseminar Internet Dienste Sommersemester 2004 Boto Bako Webservices 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung Was sind Web Services? Web Services sind angebotene

Mehr

Client-Server mit Socket und API von Berkeley

Client-Server mit Socket und API von Berkeley Client-Server mit Socket und API von Berkeley L A TEX Projektbereich Deutsche Sprache Klasse 3F Schuljahr 2015/2016 Copyleft 3F Inhaltsverzeichnis 1 NETZWERKPROTOKOLLE 3 1.1 TCP/IP..................................................

Mehr

FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1)

FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1) 1 FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1) In dieser Kurseinheit geht es um verteilte Anwendungen, bei denen wir sowohl ein Client- als auch ein

Mehr

TCP/UDP. Transport Layer

TCP/UDP. Transport Layer TCP/UDP Transport Layer Lernziele 1. Wozu dient die Transportschicht? 2. Was passiert in der Transportschicht? 3. Was sind die wichtigsten Protkolle der Transportschicht? 4. Wofür wird TCP eingesetzt?

Mehr

Transmission Control Protocol (TCP)

Transmission Control Protocol (TCP) Transmission Control Protocol (TCP) Verbindungsorientiertes Protokoll, zuverlässig, paketvermittelt stream-orientiert bidirektional gehört zur Transportschicht, OSI-Layer 4 spezifiziert in RFC 793 Mobile

Mehr

Konzepte von Betriebssystem-Komponenten Middleware RMI

Konzepte von Betriebssystem-Komponenten Middleware RMI Konzepte von Betriebssystem-Komponenten Middleware RMI Mario Kiefer 21. Januar 2005 1 Einführung RMI (Remote Method Invocation) ermöglicht es mit relativ einfachen Mitteln verteilte Anwendungen zu erstellen.

Mehr

TCP/IP-Protokollfamilie

TCP/IP-Protokollfamilie TCP/IP-Protokollfamilie Internet-Protokolle Mit den Internet-Protokollen kann man via LAN- oder WAN kommunizieren. Die bekanntesten Internet-Protokolle sind das Transmission Control Protokoll (TCP) und

Mehr

Message Oriented Middleware am Beispiel von XMLBlaster

Message Oriented Middleware am Beispiel von XMLBlaster Message Oriented Middleware am Beispiel von XMLBlaster Vortrag im Seminar XML und intelligente Systeme an der Universität Bielefeld WS 2005/2006 Vortragender: Frederic Siepmann fsiepman@techfak.uni bielefeld.de

Mehr

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen?

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen? SOAP Integrationstechnologie für verteilte Middlewarearchitekturen? Großer Beleg Christian Wurbs Zwischenbericht http://www.inf.tu-dresden.de/~cw6 cw6@inf.tu-dresden.de Überblick 2 Aufgabenstellung CORBA

Mehr

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

Übungen zu Softwaretechnik

Übungen zu Softwaretechnik Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 11 Dr. H. Ehler, S. Wagner 23. Januar 2004 Übungen zu Softwaretechnik Aufgabe 16 Qualitätseigenschaften Broker-Pattern Beurteilen Sie das in Aufgabe 15 benutzte

Mehr

Praktikum Verteilte Anwendungen

Praktikum Verteilte Anwendungen Technische Informatik (Info II) -Sommersemester 2006 - Folie 1 / 27 0 Gliederung 1.) Kurze Wiederholung/ Einleitung 2.) RPC/ RMI 3.) Praktisches Beispiel 4.) Aufgabenblatt Folie 2 / 27 Wiederholung/ Einleitung

Mehr

Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06

Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06 Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06 Aufgabe 1 Bitte schreiben Sie ein RMI Objekt, das eine Person repräsentiert. Es soll die folgende Schnittstelle implementieren: public interface Person

Mehr

Szenario 3: Service mit erweiterter Schnittstelle

Szenario 3: Service mit erweiterter Schnittstelle 2. Hintergrundverarbeitung in Android: Services und Notifications Szenarien für lokale Services Szenario 3: Service mit erweiterter Schnittstelle Ein Service bietet zusätzliche Methoden an, über die sich

Mehr

Prüfungsprotokoll der mündlichen Prüfung Verteilte Systeme 1678 (Bachelor Informatik)

Prüfungsprotokoll der mündlichen Prüfung Verteilte Systeme 1678 (Bachelor Informatik) Prüfungsprotokoll der mündlichen Prüfung Verteilte Systeme 1678 (Bachelor Informatik) Prüfer: Prof. Dr. Haake Semester der Prüfung: WS 10/11 Datum der Prüfung: 02.05.2011 Dauer: ca. 25 min Note: 2.0 Hier

Mehr

Microsoft.NET und SunONE

Microsoft.NET und SunONE Microsoft.NET und SunONE, Plattformen und Application Service Providing Agenda Einordnung.NET und SunONE Kurzvorstellung Gegenüberstellung Zusammenfassung ASP (Application( Service Providing) ) und Ausblick

Mehr

Java 2, Enterprise Edition Einführung und Überblick

Java 2, Enterprise Edition Einführung und Überblick Universität aiserslautern AG Datenbanken und Informationssysteme Seminar Datenbank-Aspekte des E-Commerce Java 2, Enterprise Edition Einführung und Überblick m_husema@informatik.uni-kl.de Vortragsinhalte

Mehr

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server Einsatz von Applikationsservern Untersucht am Beispiel des Sybase Enterprise Application Server Architektur von Datenbanksystemen Client / Server Modell (2 Schichten Modell) Benutzerschnittstelle Präsentationslogik

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation Aufruf von Methoden über die Grenzen der VM hinweg. Javaprozesse der rufenden und gerufenen Methode können auf verschiedenen Hosts laufen. Eine RMI-Applikation besteht aus dem

Mehr

Einführung. Internet vs. WWW

Einführung. Internet vs. WWW Einführung Bernhard Plattner 1-1 Internet vs. WWW "the Internet is the entirety of all computers which are interconnected (using various physical networking technologies) and employ the Internet protocol

Mehr

PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker

PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker Netzwerkprogrammierung PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker Steffen Helke, Marcus Mews Technische Universität Berlin Fachgebiet Softwaretechnik 17. Juni 2013 Übersicht Grundlagen

Mehr

Java und XML 2. Java und XML

Java und XML 2. Java und XML Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik Java und XML Hauptseminar Telematik WS 2002/2003

Mehr

CORBA. Beispiel einer Middleware-Plattform. Christian Fass WS 2013/14 Software Engineering: Basistechnologien

CORBA. Beispiel einer Middleware-Plattform. Christian Fass WS 2013/14 Software Engineering: Basistechnologien CORBA Beispiel einer Middleware-Plattform Christian Fass WS 2013/14 Software Engineering: Basistechnologien Allgemeines Common Object Request Broker Architecture Middleware: Vermittelt zwischen Obekten/Prozessen

Mehr

Java Remote Method Invocation (RMI)

Java Remote Method Invocation (RMI) Java Remote Method Invocation (RMI) Alexander Petry 13. Mai 2003 engl.: Entfernter Methodenaufruf 1 Übersicht 1. Einleitung 2. RMI Interfaces und Klassen 3. Parameterübergabe 4. Dynamisches Nachladen von

Mehr

VS12 Slide 1. Verteilte Systeme. Vorlesung 12 Sebastian Iwanowski FH Wedel

VS12 Slide 1. Verteilte Systeme. Vorlesung 12 Sebastian Iwanowski FH Wedel VS12 Slide 1 Verteilte Systeme Vorlesung 12 Sebastian Iwanowski FH Wedel Mögliche Plattformen für Web Services VS12 Slide 2 VS12 Slide 3 Java-Software für verteilte Systeme J2EE: Java 2 Enterprise Edition

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 2 05.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: Das

Mehr

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. WebSphere Application Server Teil 4

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. WebSphere Application Server Teil 4 UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 WebSphere Application Server Teil 4 Leistungsverhalten el0100 copyright W. G. Spruth,

Mehr

3 Programmiermodelle für parallele und verteilte Systeme

3 Programmiermodelle für parallele und verteilte Systeme 3 Programmiermodelle für parallele und verteilte Systeme Das vorherrschende Programmiermodell für parallele und verteilte Systeme ist das Client Server Modell. Das Client Server Modell ist unabhängig von

Mehr

Internetprotokoll TCP / IP

Internetprotokoll TCP / IP Internetprotokoll TCP / IP Inhaltsverzeichnis TCP / IP - ALLGEMEIN... 2 TRANSPORTPROTOKOLLE IM VERGLEICH... 2 TCP / IP EIGENSCHAFTEN... 2 DARPA MODELL... 3 DIE AUFGABEN DER EINZELNEN DIENSTE / PROTOKOLLE...

Mehr

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu CORBA Common Object Request Broker Architecture Eine kurze Einführung Ying Lu Verlauf der Präsentation Was ist CORBA CORBA-Architektur Ein Beispiel CORBA im Einsatz CORBA im Vergleich Was ist CORBA Begriffe

Mehr

Modul Software Komponenten 10 Komponentenarchitektur

Modul Software Komponenten 10 Komponentenarchitektur Modul Software Komponenten 10 Komponentenarchitektur Teil 3 Peter Sollberger Eine erste CORBA Anwendung Inhalt Dienstag, 4. November Object Request Broker CORBA Architektur und Komponenten (Teil 1) Übung:

Mehr

Verteilte Systeme. Verteilte Objektorientierte Systeme II. Prof. Dr. Oliver Haase

Verteilte Systeme. Verteilte Objektorientierte Systeme II. Prof. Dr. Oliver Haase Verteilte Systeme Verteilte Objektorientierte Systeme II Prof. Dr. Oliver Haase 1 Überblick Verteilte Objektorientierte Systeme 1 RPC verteilte objektorientierte Architekturen Java RMI Verteilte Objektorientierte

Mehr

Wiederholung: Beginn

Wiederholung: Beginn B) Webserivces W3C Web Services Architecture Group: "Ein Web Service ist eine durch einen URI eindeutige identifizierte Softwareanwendung, deren Schnittstellen als XML Artefakte definiert, beschrieben

Mehr

Enterprise JavaBeans Überblick

Enterprise JavaBeans Überblick Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5. Java Persistence: Entity Manager 6.

Mehr

Inhaltsverzeichnis. Zusammenfassung CORBA

Inhaltsverzeichnis. Zusammenfassung CORBA Inhaltsverzeichnis 1 Was und wofür ist CORBA?... 2 1.1 Problematik in Verteilten Systemen... 2 1.2 Entwurfszeile... 2 2 Zweck und Ziele von OMG?... 2 3 Was ist eine Schnittstellenarchitektur?... 2 3.1

Mehr

Warum EJB Technologie (1)?

Warum EJB Technologie (1)? Datenbanken und Informationssysteme 2 SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS 2004 Folie EJB - 1 Warum EJB Technologie

Mehr

.NET-Networking 2 Windows Communication Foundation

.NET-Networking 2 Windows Communication Foundation .NET-Networking 2 Windows Communication Foundation Proseminar Objektorientiertes Programmieren mit.net und C# Fabian Raab Institut für Informatik Software & Systems Engineering Agenda Grundproblem Bestandteile

Mehr

[11-4] https://de.wikipedia.org/wiki/lightweight_directory_access_protocol

[11-4] https://de.wikipedia.org/wiki/lightweight_directory_access_protocol Literatur [11-1] http://www.syn-wiki.de/lan-wan- Analysis/htm/ger/_0/Namensdienst.htm [11-2] https://de.wikipedia.org/wiki/remote_method_invocation [11-3] https://de.wikipedia.org/wiki/verzeichnisdienst

Mehr

Nebenläufige Programmierung

Nebenläufige Programmierung Nebenläufige Programmierung Perspektiven der Informatik 27. Januar 2003 Gert Smolka Telefon-Szenario Eine Telefonzelle Mehrere Personen wollen telefonieren Immer nur eine Person kann telefonieren Ressource

Mehr

Softwareentwicklung mit Enterprise JAVA Beans

Softwareentwicklung mit Enterprise JAVA Beans Softwareentwicklung mit Enterprise JAVA Beans Java Enterprise Edition - Überblick Was ist J2EE Java EE? Zunächst mal: Eine Menge von Spezifikationen und Regeln. April 1997: SUN initiiert die Entwicklung

Mehr

Autor: Peter Seemann Seminar: Softwarearchitekturen Betreuer: Benedikt Meurer

Autor: Peter Seemann Seminar: Softwarearchitekturen Betreuer: Benedikt Meurer Autor: Peter Seemann Seminar: Softwarearchitekturen Betreuer: Benedikt Meurer *Was sind Web Services? *Beispiele für Web Services *Web Service Architektur *Web Services Technologien *Fazit 2 *Übertragungsstandard

Mehr

Ein Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse?

Ein Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse? Ein Beispiel Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse? Dipl.-Kfm. Claus Häberle WS 2015 /16 # 42 XML (vereinfacht) visa

Mehr

9. Remote Method Invocation Grundlagen der Programmierung II (Java)

9. Remote Method Invocation Grundlagen der Programmierung II (Java) 9. Remote Method Invocation Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung

Mehr

Hauptseminar Management von Softwaresystemen. Techniken der System-Integration EAI, Middleware, SOA, CORBA

Hauptseminar Management von Softwaresystemen. Techniken der System-Integration EAI, Middleware, SOA, CORBA Hauptseminar Management von Softwaresystemen Techniken der System-Integration EAI, Middleware, SOA, CORBA Betreuerin: Referent: Ulrike Hammerschall Alexey Krivoborodov Agenda Motivation Arten der Verteilung

Mehr

VS7 Slide 1. Verteilte Systeme. Vorlesung 7 vom 27.05.2004 Dr. Sebastian Iwanowski FH Wedel

VS7 Slide 1. Verteilte Systeme. Vorlesung 7 vom 27.05.2004 Dr. Sebastian Iwanowski FH Wedel VS7 Slide 1 Verteilte Systeme Vorlesung 7 vom 27.05.2004 Dr. Sebastian Iwanowski FH Wedel Inhaltsverzeichnis für die Vorlesung Zur Motivation: 4 Beispiele aus der Praxis Allgemeine Anforderungen an Verteilte

Mehr

Kommunikation und Kooperative Systeme

Kommunikation und Kooperative Systeme Kommunikation und Kooperative Systeme Teil II Verteilte Dienste und Anwendungen Nik Klever FB Informatik - FH klever@fh-augsburg.de Einführung Begriffsbestimmung Kommunikation: Austausch, Übermittlung

Mehr

Themen. Web Service - Clients. Kommunikation zw. Web Services

Themen. Web Service - Clients. Kommunikation zw. Web Services Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur

Mehr

Aufgaben: (dazugehörige Kapitel / Seitenangaben in Kursiv: Kapitel Seite Seitennummern)

Aufgaben: (dazugehörige Kapitel / Seitenangaben in Kursiv: Kapitel Seite Seitennummern) Klausur Verteilte Systeme 15.6. R120A 8:00-9:30 5 Aufgaben, 50 Punkte (8 12 pro Aufgabe) 45-50 1.0 44 1.1 35 2.0 25 3.0 15 4.0 http://www.bts.fh-mannheim.de Aufgaben: (dazugehörige Kapitel / Seitenangaben

Mehr

Internettechnologien

Internettechnologien Internettechnologien Vorlesung für Master-Studierende Geoinformation und -management Sommersemester 2011 Prof. Dr.-Ing. habil. Peter Sobe Fakultät Informatik / Mathematik Dieser Foliensatz basiert z.t.

Mehr

Client/Server-Systeme

Client/Server-Systeme Client/Server-Systeme Prof. Dr.-Ing. Wilhelm G. Spruth WS 2003/2004 Teil 2 Sockets cs 0200 ww6 wgs 09-96 Literatur Socket-Schnittstelle J. Martin, J. Leben: TCP/IP Netzwerke. Prentice Hall, 1994, Kapitel

Mehr

Kommunikation. Björn und Georg

Kommunikation. Björn und Georg Kommunikation Björn und Georg CORBA CORBA (Common Object Request Broker Architecture) Entwicklung der OMG ( Object Management Group) Zusammenschluss von 800 Firmen Hardware- und Progammiersprachen-unabhängiges

Mehr

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS... 2. XML Programmierung - Grundlagen... 3. PHP Programmierung - Grundlagen...

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS... 2. XML Programmierung - Grundlagen... 3. PHP Programmierung - Grundlagen... Inhalt HTML- Grundlagen und CSS... 2 XML Programmierung - Grundlagen... 3 PHP Programmierung - Grundlagen... 4 Java - Grundlagen... 5 Java Aufbau... 6 ASP.NET Programmierung - Grundlagen... 7 1 HTML- Grundlagen

Mehr

Praktikum aus Softwareentwicklung 2, Stunde 8

Praktikum aus Softwareentwicklung 2, Stunde 8 Praktikum aus Softwareentwicklung 2, Stunde 8 Lehrziele/Inhalt 1. Remoting Remoting Über Remoting können Objekte über JavaVMs hinweg miteinander kommunizieren. Das ist auch mit Socket-Programmierung möglich.

Mehr

Anwendung eines Enterprise Java Beans

Anwendung eines Enterprise Java Beans Anwendung eines Enterprise Java Beans EJB Server EJB Container Remote Interface Home Interface EJB Object Der EJB Container kümmert sich um die Kommunikation des Beans mit anderen Komponenten, wobei er

Mehr

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Entwicklung von Web-Anwendungen auf JAVA EE Basis Entwicklung von Web-Anwendungen auf JAVA EE Basis Java Enterprise Edition - Überblick Prof. Dr. Bernhard Schiefer Inhalt der Veranstaltung Überblick Java EE JDBC, JPA, JNDI Servlets, Java Server Pages

Mehr

Client/Server-Systeme

Client/Server-Systeme Client/Server-Systeme Prof. Dr.-Ing. Wilhelm G. Spruth SS 2005 Teil 16 RMI, DCOM, Webservices cs 1100 ww6 sch 05-97 Remote Method Invocation (RMI) JVM JVM Client Server Stub Java Remote Skeleton Method

Mehr

Komponententechnologien Winter 2016/17. Komponenten. 2. Die Anfänge. Peter Sturm, Universität Trier 1

Komponententechnologien Winter 2016/17. Komponenten. 2. Die Anfänge. Peter Sturm, Universität Trier 1 Komponenten 1 2. Die Anfänge 3 Peter Sturm, Universität Trier 1 Selbstzufrieden Anwendung Hardware 4 Oh? Da gibt es noch jemanden? Anwendung Anwendung TCP/IP Hardware Hardware 5 Peter Sturm, Universität

Mehr

B Java RMI B.2 B.4. 1 Java. 1.2 Methoden. 1.1 Objekte (2) 1.1 Objekte. Objektorientierte Sprache. Klassenbeschreibung. Methode ist eine Art Funktion

B Java RMI B.2 B.4. 1 Java. 1.2 Methoden. 1.1 Objekte (2) 1.1 Objekte. Objektorientierte Sprache. Klassenbeschreibung. Methode ist eine Art Funktion 1 Java 1.1 e B Java RMI orientierte Sprache e beschrieben in Klassendefinitionen und andere Datentypen: int, float, boolean, etc. referenzen Verweise auf e keine Zeiger, Adressen o.ä. B.1 B.2 1.1 e (2)

Mehr

E.1 Object Request Brokers

E.1 Object Request Brokers E Überblick über die 4. Übung E Überblick über die 4. Übung 1 Komponenten eines ORBs Lösungsskizze Aufgabe 2 RPC und ORB Aufrufsemantiken Hinweise Aufgabe 3 Kommunikationsschicht: tauscht Daten zwischen

Mehr

1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells.

1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells. Übung 7 1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells. 2.) Charakterisieren Sie kurz das User Datagram Protokoll (UDP) aus der Internetprotokollfamilie

Mehr

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014) Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite

Mehr

ObjectBridge Java Edition

ObjectBridge Java Edition ObjectBridge Java Edition Als Bestandteil von SCORE Integration Suite stellt ObjectBridge Java Edition eine Verbindung von einem objektorientierten Java-Client zu einer fast beliebigen Server-Komponente

Mehr

Middleware. im Schweinsgalopp

Middleware. im Schweinsgalopp Middleware im Schweinsgalopp 1 Szenario Unternehmen verwendet SAP als ERP-System wickelt Versand über Dienstleister, hier UPS ab UPS bietet Verfolgung der Lieferung über Web- Schnittstelle Daten im ERP

Mehr

Projektgruppe 453: Entwurf eines Managementwerkzeugs zur Verwaltung von Sicherheitsdiensten für komplexe eingebettete Dienstesysteme

Projektgruppe 453: Entwurf eines Managementwerkzeugs zur Verwaltung von Sicherheitsdiensten für komplexe eingebettete Dienstesysteme Titel CORBA Eine Middleware-Plattform für objektorientierte Technologien von Martin Villis 6. Mai 2004 Projektgruppe 453: Entwurf eines Managementwerkzeugs zur Verwaltung von Sicherheitsdiensten für komplexe

Mehr

Web Services: Inhalt

Web Services: Inhalt Web Services Fachseminar Verteilte Systeme 8. April 2002 - Marco Steiner Assistent: Thomas Schoch Professor: Dr. F. Mattern Web Services: Inhalt Bedeutung Gegenwart Architektur SOAP WSDL UDDI Vergleich

Mehr

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013. WebSphere MQ Teil 3

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013. WebSphere MQ Teil 3 UNIVERSITÄT LEIPZIG Enterprise Computing Einführung in das Betriebssystem z/os Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013 WebSphere MQ Teil 3 Trigger el0100 Copyright W. G. Spruth,

Mehr

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. Java Connection Architecture Teil 3

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. Java Connection Architecture Teil 3 UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 Java Connection Architecture Teil 3 CICS Transaction Gateway el0100 copyright W. G. Spruth,

Mehr

7 Assemblies. Anwendungen (.exe) bzw. Anwendungskomponenten (.dll) für.net Portable Execution (PE) Files

7 Assemblies. Anwendungen (.exe) bzw. Anwendungskomponenten (.dll) für.net Portable Execution (PE) Files 7 Assemblies 8 Virtual Execution System VES Anwendungen (.exe) bzw. Anwendungskomponenten (.dll) für.net Portable Execution (PE) Files Teil der CLR Class Loader Metadaten (Manifest) zur Selbstbeschreibung

Mehr

Remote Methode Invocation (RMI) ETIS SS05

Remote Methode Invocation (RMI) ETIS SS05 Remote Methode Invocation (RMI) ETIS SS05 Motivation Ablauf der Kommunikation Erstellung Remote-Service Zusammenfassung Gliederung 2 Motivation I RMI: Remote Method Invokation Möglichkeit verteilte Java-Anwendungen

Mehr

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,

Mehr

Kapitel 4: Design von Client/Server-Software. Middleware in Java vieweg 2005 Steffen Heinzl, Markus Mathes

Kapitel 4: Design von Client/Server-Software. Middleware in Java vieweg 2005 Steffen Heinzl, Markus Mathes Kapitel 4: Design von Client/Server-Software Definition: Client und Server Client Ein Client ist ein Dienstnutzer, der von einem Server aktiv einen Dienst anfordert und anschließend darauf wartet, dass

Mehr

Grid-Systeme. Betrachtung verschiedener Softwareplattformen zur Realisierung von Grids und Vorstellung des Globus Toolkit. 07.06.2002 Grid Systeme 1

Grid-Systeme. Betrachtung verschiedener Softwareplattformen zur Realisierung von Grids und Vorstellung des Globus Toolkit. 07.06.2002 Grid Systeme 1 Grid-Systeme Betrachtung verschiedener Softwareplattformen zur Realisierung von Grids und Vorstellung des Globus Toolkit 07.06.2002 Grid Systeme 1 Gliederung Vorstellung verschiedener Plattformen Globus

Mehr

Web 2.0 Software-Architekturen

Web 2.0 Software-Architekturen Web 2.0 Software-Architekturen Servlets als Controller einer MVC Web Architektur Prof. Dr. Nikolaus Wulff HTTP und HTML Das HyperText TransferProtokoll (HTTP) beschreibt eine einfache verbindungslose Kommunikation,

Mehr

Enterprise Application Integration Erfahrungen aus der Praxis

Enterprise Application Integration Erfahrungen aus der Praxis Enterprise Application Integration Erfahrungen aus der Praxis Teil 4: EAI und.net, EAI und J2EE Tutorial NODs 2002, Wolfgang Keller and Generali 2001, 2002, all rights reserved 1 Überblick EAI und....net

Mehr

Web-Services Implementierung mit Java

Web-Services Implementierung mit Java Web-Services Implementierung mit Java J. Heinzelreiter WS 2004/05 Java-APIs für Web-Services (1) Anwendungs-Code JAXR JAXM JAX-RPC SAAJ SOAP/SwA JWSDL WSDL XML/XML-Schema Web-Services/Java - 2 Java-APIs

Mehr

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de EJB Beispiel JEE Vorlesung 10 Ralf Gitzel ralf_gitzel@hotmail.de 1 Stundenkonzept Gemeinsame Übung Stoff der letzten Stunde wird gemeinsam in einem Beispiel umgesetzt Details werden nochmals erklärt bzw.

Mehr

30 Jahre Server Von Transaktionssystemen zu Web-Services

30 Jahre Server Von Transaktionssystemen zu Web-Services 30 Jahre Server Friedrich-Alexander-Universität Erlangen-Nürnberg Institut für Informatik Lehrstuhl für Informatik 6 (Datenbanksysteme) Anlass! "Java (EJB,. ) ist ja so langsam!"! "Aber CICS ist inzwischen

Mehr

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Eclipse Equinox als Basis für Smart Client Anwendungen Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Übersicht Definition / Architektur Smart Client Smart Client mit RCP / Equinox Gesamtfazit

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2010/2011 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Java Remote Method Invocation (RMI) Realisierung

Mehr

Thread-Erzeugung kostengünstiger als Prozesserzeugung Thread-Umschaltung kostengünstiger als Prozessumschaltung

Thread-Erzeugung kostengünstiger als Prozesserzeugung Thread-Umschaltung kostengünstiger als Prozessumschaltung 1.5 Threaded Server Server als ein Prozess mit mehreren Threads Threads Thread als Aktivitätsträger virtueller Prozessor eigener Programmzähler eigener Stackbereich eingebettet in den Kontext eines Prozesses

Mehr

Smartphone Entwicklung mit Android und Java

Smartphone Entwicklung mit Android und Java Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter

Mehr