Proseminar: Die Zukunft der Softwareentwicklung: Komponentensysteme/s Vortrag 1 am 07.06.2006 1 Betreuer: Dipl.-Inform. Andreas Both Lehrstuhl Softwaretechnik und Programmiersprachen, Institut für Informatik Martin-Luther-Universität Halle-Wittenberg http://swt.informatik.uni-halle.de/ A
Inhaltsverzeichnis Grundlagen 1 Grundlagen Prorokolle XML 2 3 Vorteile Nachteile Fazit
OSI-Schichtmodell Grundlagen Protokolle XML Schichten Jede Schicht ist für die Lösung eines trivialen Problems(zentral, dezentral,..) verantwortlich und bietet diese der darüberliegenden Schicht als Dienstleistung an Anwendungsschicht (entspricht OSI-Layer 5-7) HTTP, SMTP, TELNET,... Transportschicht (entspricht OSI-Layer 4) TCP, UDP,... Internetschicht (entspricht OSI-Layer 3) IP, ICMP,... Netzwerk Zugangsschicht(entspricht OSI-Layer 1-2) WLAN, PPP,...
URI Grundlagen Protokolle XML Uniform Resource Identifier,engl. einheitlicher Bezeichner für Ressourcen Ist eine Zeichenfolge, die zur Identifizierung einer abstrakten oder physikalischen Ressource dient
Protokolle XML URL Uniform Resource Locator, engl. einheitlicher Ortsangeber für Ressourcen Unterart von Uniform Resource Identifiern (URIs) Identifizieren eine Ressource über ihren primären Zugriffsmechanismus (häufig http oder ftp) und den Ort (engl. location) der Ressource in Computernetzwerken Der Name des URI-Schemas ist daher in der Regel vom hierfür verwendeten Netzwerkprotokoll abgeleitet Sind erste und häufigste Art von URIs deshalb, werden die Begriffe häufig synonym verwendet
Protokolle XML HTTP HyperText Transfer Protocol HTTP ein zustandsloses Protokoll zur Übertragung von Daten über ein Netzwerk, nach erfolgreicher Datenübertragung wird Verbindung zwischen den beiden Kommunikationspartnern nicht aufrecht erhalten Eingesetzt, um Webseiten und andere Daten aus dem World Wide Web (WWW) in einen Webbrowser zu laden Sollen dann weitere Daten übertragen werden, muss zunächst eine weitere Verbindung aufgebaut werden ein zuverlässiges Mitführen von Sitzungsdaten kann erst auf der Anwendungsschicht, z. B. durch Cookies, implementiert werden Durch Erweiterung seiner Anfragemethoden, Header-Informationen und Statuscodes ist das HTTP allerdings nicht auf Hypertext beschränkt, sondern wird zunehmend zum Austausch beliebiger Daten verwendet. Zur Kommunikation ist HTTP auf ein zuverlässiges Transportprotokoll angewiesen, meist TCP
Protokolle XML TCP Transmission Control Protocol Ist eine Vereinbarung (Protokoll) darüber, auf welche Art und Weise Daten zwischen Computern ausgetauscht werden sollen Alle am Datenaustausch beteiligten Computer kennen diese Vereinbarungen und befolgen sie TCP stellt einen virtuellen Kanal zwischen zwei Endpunkten einer Netzwerkverbindung (Sockets) her, dort können in beide Richtungen Daten übertragen werden TCP setzt in den meisten Fällen auf das IP (Internet-Protokoll) auf, weshalb häufig (und oft nicht ganz korrekt) auch vom TCP/IP-Protokoll die Rede ist Vorteile : Datenverluste werden erkannt und automatisch behoben Datenübertragung ist in beiden Richtungenmöglich Netzwerküberlastung wird verhindert, und viele andere mehr TCP als (fast) ausschliesliches Transportmedium für das WWW, E-Mail, Daten in Peer-to-Peer-Netzwerken und viele andere popuälre Netzwerkdienste verwendet
Protokolle XML IP Internet Protocol Weit verbreitetes Netzwerkprotokoll Mittels IP-Adresse und Subnetzmaske werden Computer innerhalb eines Netzwerkes in Subnetze gruppiert Dadurch möglich Computer in größeren Netzwerken zu adressieren und Verbindungen aufzubauen Stellt die Grundlage des Internets dar
Protokolle XML XML 1/4 Extensible Markup Language,engl. für erweiterbare Auszeichnungs-Sprache Ist ein Standard zur Erstellung maschinen- und menschenlesbarer Dokumente in Form einer Baumstruktur XML definiert dabei die Regeln für den Aufbau solcher Dokumente Details der jeweiligen Dokumente werden individuell spezifiziert Nur zwei Regeln müssen beachtet werden Elemete treten immer paarweise auf, ein öffnendes und ein korrespondierendes schließendes Elementpaare dürfen sich nicht überlappen Soll XML für den Datenaustausch verwendet werden, ist es von Vorteil, wenn das Format mittels einer Grammatik (z. B. einer Dokumenttypdefinition (DTD) oder eines XML-Schemas) definiert ist
XML 2/4 Grundlagen Protokolle XML Begriffe Wohlgeformtheit Fals die zwei Regeln beachtet werden Gültigkeit Fals das XML-Dokument die durch die Grammatik beschriebenes Format besitzt Parser Programme oder Programmteile, die XML-Daten auslesen, interpretieren und ggf. auf Gültigkeit prüfen
Protokolle XML Example <?xml version=" 1.0" encoding=" UTF-8"?> <firma> <abteilung name=" einkauf" > <mitarbeiter geschlecht=" m" > <name>raff</name> <telefon>1234</telefon> </mitarbeiter> <abteilung name=" vertrieb" > <mitarbeiter geschlecht=" w" > <name>forsch</name> <telefon>3145</telefon> </mitarbeiter> </abteilung> </firma> Aufbau Kopf (Informationen für Parser: Version, Zeichensatz) <?xml version=" 1.0" encoding=" UTF-8"?> Rumpf (eigentlichen Daten)
Protokolle XML DTD (Document Type ) Beschreibung wie XML-Dokument aussehen soll wichtig bei Datenaustausch Example <!ELEMENT firma (abteilung*)> <!ELEMENT abteilung (mitarbeiter*)> <!ELEMENT mitarbeiter (name, telefon)> <!ELEMENT name (PCDATA)> <!ELEMENT telefon (PCDATA)> <!ATTLIST abteilung name CDATA REQUIRED> <!ATTLIST mitarbeiter geschlecht (m w) REQUIRED> Example <?xml version=" 1.0" encoding=" UTF-8" standalone=" no"?> <!DOCTYPE firma SYSTEM " DTD/firma.dtd" >
Protokolle XML XML-RPC XML-Remote Procedure Call. Ist eine Spezifikation, die es Software auf verschiedenen Systemen und unter verschiedenen Umgebungen erlaubt, miteinander über ein TCP/IP-basiertes Netzwerk zu kommunizieren Es werden beinahe alle heute bekannten Programmiersprachen unterstützt Kommuniziert wird, wie der Name bereits sagt mit einem Remote Prozeduren-Aufruf über HTTP, oder in der objektorientierten Welt: ein Aufruf einer Remote Methode Der Unterschied zum herkömlichen RPC ist, dass bei XML-RPC die Parameter der Methode und das Ergebnis, also der Rückgabewert der Methode, intern über XML übertragen werden Übertragener Wert nicht fest (z.b. int, double) kann auch nach oben offenes abstraktes Array sein
XML-Signature Grundlagen Protokolle XML Service-orientierte Architekturen mit s / Dostal, Jeckle, Melzer und Zengler
XML-Encryption Grundlagen Protokolle XML Die XML Encryption-Spezifikation definiert eine Reihe von Möglichkeiten, wie XML-Dokumente ver- und entschlüsselt werden Was verschlüsselt wird : gesamtes XML-Dokument einzelne Elemente und seine Unterelemente Inhalte eines XML-Elementes
Grundlagen Es gibt keine konkrete
Die Antwort für Theoretiker WebServices sind Serviceleistungen bei denen eine Integration stattfindet. Dabei wirken Standard-Technologien zusammen und ermöglichen die Zusammenarbeit zwischen heterogenen Systemen. Die Antwort für IT-Fachleute Mit s kann man Anwendungen Web-fähig machen, so dass sie mit anderen Anwendungen dynamisch kommunizieren, die wiederum entsprechend den Web Service-Standards webfähig sind. Per arbeiten s nach denselben Standards wie SOAP und XML für die Funktionalität, Publikation, Lokalisierung und den Datenaustausch. Die Antwort für Ökonomen Computerleistungen und Ressourcen lassen sich mittels der s unabhängig von Anwendungen und Plattformen auf (weit) verteilten Systemen nutzen und zwar effizient, kostengünstig und flexibel. Produktivitätssteigerungen für bestehende IT-Lösungen werden erst durch s in beachtlichem Umfang ermöglicht, da sie eine einfache und schnelle Integration der einzelnen Systeme ermöglichen. Dies gilt gleichermaßen für Inter-, Intra- oder Extranets sowie für deren vertikale Integration.
Die Antwort für Theoretiker WebServices sind Serviceleistungen bei denen eine Integration stattfindet. Dabei wirken Standard-Technologien zusammen und ermöglichen die Zusammenarbeit zwischen heterogenen Systemen. Die Antwort für IT-Fachleute Mit s kann man Anwendungen Web-fähig machen, so dass sie mit anderen Anwendungen dynamisch kommunizieren, die wiederum entsprechend den Web Service-Standards webfähig sind. Per arbeiten s nach denselben Standards wie SOAP und XML für die Funktionalität, Publikation, Lokalisierung und den Datenaustausch. Die Antwort für Ökonomen Computerleistungen und Ressourcen lassen sich mittels der s unabhängig von Anwendungen und Plattformen auf (weit) verteilten Systemen nutzen und zwar effizient, kostengünstig und flexibel. Produktivitätssteigerungen für bestehende IT-Lösungen werden erst durch s in beachtlichem Umfang ermöglicht, da sie eine einfache und schnelle Integration der einzelnen Systeme ermöglichen. Dies gilt gleichermaßen für Inter-, Intra- oder Extranets sowie für deren vertikale Integration.
Die Antwort für Theoretiker WebServices sind Serviceleistungen bei denen eine Integration stattfindet. Dabei wirken Standard-Technologien zusammen und ermöglichen die Zusammenarbeit zwischen heterogenen Systemen. Die Antwort für IT-Fachleute Mit s kann man Anwendungen Web-fähig machen, so dass sie mit anderen Anwendungen dynamisch kommunizieren, die wiederum entsprechend den Web Service-Standards webfähig sind. Per arbeiten s nach denselben Standards wie SOAP und XML für die Funktionalität, Publikation, Lokalisierung und den Datenaustausch. Die Antwort für Ökonomen Computerleistungen und Ressourcen lassen sich mittels der s unabhängig von Anwendungen und Plattformen auf (weit) verteilten Systemen nutzen und zwar effizient, kostengünstig und flexibel. Produktivitätssteigerungen für bestehende IT-Lösungen werden erst durch s in beachtlichem Umfang ermöglicht, da sie eine einfache und schnelle Integration der einzelnen Systeme ermöglichen. Dies gilt gleichermaßen für Inter-, Intra- oder Extranets sowie für deren vertikale Integration.
Software-Anwendung, die mit einem URI eindeutig identifizierbar ist Schnittstellen sind als XML-Artefakte definiert, können beschrieben und gefunden werden Unterstützt die direkte Interaktion mit anderen Software-Agenten unter Verwendung XML-basierter Nachrichten Ein ist keine : Middleware - es fehlt die Vermittlungskomponente und (die Gewährleistung von Transaktionssicherheit) Enterprise Application Integration - jedoch können s bei EAI Verwendung finden
Software-Anwendung, die mit einem URI eindeutig identifizierbar ist Schnittstellen sind als XML-Artefakte definiert, können beschrieben und gefunden werden Unterstützt die direkte Interaktion mit anderen Software-Agenten unter Verwendung XML-basierter Nachrichten Ein ist keine : Middleware - es fehlt die Vermittlungskomponente und (die Gewährleistung von Transaktionssicherheit) Enterprise Application Integration - jedoch können s bei EAI Verwendung finden
Motivation Grundlagen B2B (Buisnes to Buisnes) CORBA brauch zentrale Strucktur, in B2B werden aber meist unterschiedliche Platform genutzt und jeder will sich selbst verwalten Man brauchte also Platformunabhängigkeit, Dezentralesierung Also Entwickelte man s unter diesen Kreterien
Architektur hat sehr hohen Komplexitätsgrad erreicht Deshalb wird WS aus verschiedenen Perspektieven beschrieben Jede Perspektive hat ein Modell, die miteinander in Beziehung stehen Service-orientierte Architekturen mit s / Dostal, Jeckle, Melzer und Zengler
Nachichten-Modell Definiert Aufbau einer Web-Service-Nachicht Beschreibt Beziehung zwischen Agent und Nachicht Z.B. SOAP muss nicht kann aber Nachichtenformat sein Service-Modell Defeniert Konzepte, welche ein Service ausmacht Beschreibung des Service mithilfe von Service-Interfaces (wird z.b. in WSDL zur Verfügung gestellt) Service wird mittels eines Agenten realesiert und gehöhrt einer Person oder Organisation
Ressourcen-Modell Definiert eine Ressource in einer Web-Service-Architektur Typische Ressource in W-S-A ist ein Festlegung das jede Ressource eindeutig über URI identifizirt ist ( über HTTP ist dann URL) Richtlinien-Modell Defeniert Aufbau einer Richlinie Richtlinien sind alles was Einschränkungen und Bedingungen definieren Sind z.b. Sicherheitsaspekte oder Qualitätsmerkmale Richtlinien werden meist als XML-Erweiterung(DTD) hinzugefügt
Resourcen-Modell Grafik Service-orientierte Architekturen mit s / Dostal, Jeckle, Melzer und Zengler
Grundlagen Client-Server Architektur Standardisierte Schnittstellen und Protokolle verinfachene die Technik s - Kompakt / Kuschke, Wölfel
UDDI Grundlagen Universal Description, Discovery and Integration Bezeichnet einen Verzeichnisdienst, der die zentrale Rolle in einem Umfeld von dynamischen s spielen soll Besitzt eine SOAP-Schnittstelle. Enthält Unternehmen, ihre Daten und ihre Services. Drei Arten der Informationen zu unterscheiden: den White Pages, einer Art Telefonbuch den Yellow Pages, also die elektronische Entsprechung der gelben Seiten den Green Pages
WSDL - Description Language Ist eine Metasprache Angebotenen Funktionen, Daten, Datentypen und Austauschprotokolle werden beschrieben Es werden im Wesentlichen die Operationen definiert, die von außen zugänglich sind, sowie die Parameter und Rückgabewerte dieser Operationen Im einzelnen beinhaltet ein WSDL-Dokument funktionelle Angaben zu: der Schnittstelle Zugangsprotokoll und Details zum Deployment alle notwendigen Informationen zum Zugriff auf den Service, in maschinenlesbarem Format
Transport Grundlagen Übertragen wird der XML-Code als ASCII Dokument Der Text wird dann an ein bestimmtes Transportprotokoll gebunden und versendet Im Internet ist das Protokoll HTTP, welches ja über TCP/IP sendet Im Intranet ist es direkt TCP/IP
Bsp für Grundlagen Script Turtorial: von Bad Honnef
Kompatibilität durch Schnittstellen Perspectives on s /Zimmermann, Tomlinson, Peuser
Anwendung s stellen neue Ansätze im Rahmen von Enterprise Application Integration (EAI) und Grid-Computing dar. Das geplante Haupteinsatzgebiet liegt im Business-to-Business-Bereich (B2B). Geschäftsprozesse sollen problemlos über Unternehmensgrenzen hinweg abgewickelt werden. aber auch im alltäglichen Leben z.b. Suchmaschienen
Vorteile Nachteile Fazit Vorteile Offenen Standards vermeiden jegliche Lizenzkosten Wegen HTTP-Protokoll zur Datenübertragung treten nur selten Probleme mit Firewalls auf, im Gegensatz zu vergleichbaren Technologien (CORBA, DCOM, Java RMI) Durch die Verwendung von bereits bestehenden und weit verbreiteten Internet-Standards (HTTP, XML etc.) entsteht eine offene und flexible Architektur, die unabhängig von den verwendeten Plattformen, Programmiersprachen und Protokollen ist.
Vorteile Nachteile Fazit Nachteile Sicherheitsaspekte, es gibt Ansätze (XML Signature, XML-Encryption oder SAML) Der Verwaltungsaufwand nimmt bei stark verteilten Systemen zu. Der Overhead ist teilweise erheblich. Es ist mehr Know-How erforderlich als z. B. mit Remote Procedure Call (RPC). Programmiersprachen, mit denen man s einbinden will, brauchen spezielle Bibliotheken (z. B. DOM). Schnittstellen müssen genau definiert werden - das ist viel Arbeit.(Lösungsansatz: Schreiben eines eigenen Compiler)
Vorteile Nachteile Fazit Fazit Platformunabhängig, dezentral, vielseitig, flexibel Es ist ein weitere Schritt die Service Orientierte Programmierung zu Implementieren - aber noch nicht das Optimum
Quellen Quellen Studienarbeit von KarstenHarstedt Turtorial: von Bad Honnef s - Kompakt / Kuschke, Wölfel Service-orientierte Architekturen mit s / Dostal, Jeckle, Melzer und Zengler Understanding web services : XML, WSDL, SOAP, and UDDI / Newcomer Perspectives on s /Zimmermann, Tomlinson, Peuser Understanding SOA with Web services / Newcomer, Lomow www.wikipedia.org www.service-architecture.com/web-services/articles/webservices_ explained.html