Serviceorientierte Architektur / Web Service
|
|
|
- Günter Hummel
- vor 10 Jahren
- Abrufe
Transkript
1 Serviceorientierte Architektur / Web Service Eine Einführung Nenad Marjanovic Institut für Verteilte Systeme Fakultät für Informatik Universität Ulm ABSTRACT Die serviceorientierte Architektur, kurz SOA (Service Orientied Architecture), stellt eine flexible und anpassbare IT-Architektur für die verteilte Datenverarbeitung dar. Das Konzept, das dahinter steht, ist die Auslagerung von Funktionen bzw. Diensten in eigene Services, die dann angesprochen werden können. Diese Seminararbeit befasst sich mit einer grundlegenden Einführung in den konzeptuellen Aufbau dieser Architektur, sowie der bereits etablierten und standardisierten Ausprägung des Web Service mit SOAP als Kommunikationsprotokoll. Stichwörter BPEL, SOAP, UDDI, Web Service, WSDL, XML 1. EINFÜHRUNG Unter serviceorientierter Architektur versteht man die Auslagerung von Funktionen oder kompletten Geschäftsprozessen auf einen internen Dienst oder externen Service eines Dienstanbieters. Es ist also keine konkrete Technik, sondern vielmehr ein Konzept, wie die Softwarearchitektur gestaltet wird. Das Kern der Idee ist dabei, die genannten ausgelagerten Geschäftsprozesse durch Dienste abwickeln zu lassen. Der Geschäftsprozess ist dabei nicht nur eine einzelne kleine Tätigkeit, sondern bezeichnet eine ganze Folge von Aktivitäten. Der Dienst kann dabei wiederum andere Dienste nutzen, um seine Tätigkeit auszuführen. 1.1 Vorteile aus Sicht des Entwicklers Um die Vorteile aus dem Blick des Entwicklers zu erkennen, muss man kurz einen kleinen Rückblick in die Entwicklung der zur Verfügungstellung von wiederverwendbaren Code machen. In der frühen Zeit der Softwareentwicklung wurden Programme meist von Grund auf neu geschrieben. Doch die Programme wurden mit der Zeit größer und komplexer. Deshalb begann man Funktionen und Prozeduren so zu schreiben, dass Sie wiederverwendbar wurden. Fand man jedoch einen Fehler in einer dieser Funktionen, so musste er in jedem Programm, das diese Funktion verwendete, behoben werden. Darum wurden häufig verwendete Funktionen in Bibliotheken mit definierten Schnittstellen gebündelt, die in den Programmen nur importiert werden mussten. Auch hier gab es den Nachteil, dass im Fehlerfall alle Bibliotheken auf verschiedenen Installationen aktualisiert werden mussten. Durch Auslagerung dieser Funktionen auf einen Dienst bekommt der Code eine zentrale Anlaufstelle. Wird der Code dort verändert, so ist diese Änderung sofort bei allen Dienstnutzern verfügbar. Dadurch spart man sich einen enormen Verwaltungsaufwand. Der Entwickler muss sich auch nicht darum kümmern, wie der Service seine Aufgabe erfüllt, sondern kann ihn einfach über fest definierte Schnittstellen nutzen. So lässt sich der Code ohne Kenntnis über die Implementierung zentral gehalten immer wieder verwenden. 1.2 Vorteile aus Sicht des Managers Durch die zentrale Speicherung des Codes wird der Aufwand für die Wartung minimiert und durch die leichte Wiederverwendbarkeit die Entwicklungszeit für neue Projekte verkürzt. Unternehmen sind meist in autonome Abteilungen gegliedert. Dies hat zur Konsequenz, dass diese meistens auch eigene IT-Infrastrukturen anlegen und nutzen. Dabei hat jede Abteilung ihren eigenen Datenbestand und Aufgaben. Die Ressourcen für gleiche Tätigkeitsbereiche in verschiedenen Abteilungen werden meist mehrfach bereitgestellt. Hier kann durch die Bereitstellung von unternehmensweiten Diensten eine Kostenersparnis und eine zentrale Verwaltung erreicht werden, ohne dass die Abteilungen ihre lokalen Strukturen und Daten preisgeben müssen. Des weiteren kann ein kompletter Geschäftsprozess mit komplexen Aufgaben, die eine große Neuentwicklung mit sich bringen würden, auf einen externen Dienstleister ausgelagert werden. Dies bringt Flexibilität und Agilität. Erschließt man neue Märkte und Geschäftspartner, so kann man dynamisch alte Services gegen evtl. kostengünstigere neue Services austauschen. Der Vorteil gegenüber erworbenen Bibliotheken liegt darin, dass man sich bei einem Dienst auch nur auf die Funktionen, die benötigt werden, beschränken kann. Bei einer Bibliothek erwirbt man gleich ein ganzes Paket, welches oft zahlreiche weitere Funktionen anbietet, die nicht benötigt werden. Außerdem muss man keine eigenen Ressourcen für die Ausführung des Services aufbringen. Doch auch wenn die Services alle intern entwickelt werden, können sich evtl. durch das Anbieten dieser an externe Kunden neue Einnahmequellen ergeben. 1.3 Nachteile von SOA Durch die Umstellung auf ein verteiltes System muss man völlig neue Sicherheitsaspekte betrachten, die bei einer lokalen Kommunikation nicht gegeben sind. So sollte man sich
2 über die Sicherheit beim Übertragen der Daten Gedanken machen, und evtl. verschlüsseln. Weitere Probleme ergeben sich, wenn ein Dienst ausfällt und keine Alternative verfügbar ist. Dann kann die Aufgabe nicht erfüllt werden. Die Serviceorientierte Architektur kann bei feingranularen Prozessen oder großen Nachrichten, die nur kleinere Aufgaben zu erledigen haben, zu Geschwindigkeitseinbußen führen. Das Generieren und Verarbeiten von XML-Dokumenten nimmt ebenfalls Zeit in Anspruch. 2. SERVICEORIENTIERTE ARCHITEKTUR In diesem Kapitel soll die serviceorientierte Architektur näher erläutert werden. Abbildung 1 zeigt die wesentlichen Komponenten sowie deren Interaktionen. Figure 1: Interaktionstruktur der serviceorientierten Architektur 2.1 Komponenten In der Serviceorientierten Architektur werden im Wesentlichen 3 Rollen eingenommen: Dienstanbieter der einen Service anbietet. Dienstnutzer der einen Service nutzt. Verzeichnisdienst in welchem die verfügbaren Dienste aufgelistet sind. Der Dienstanbieter veröffentlicht dabei zunächst seinen Service in einem Verzeichnisdienst. Ein Nutzer, der einen Dienst benutzen will, sucht in einem Verzeichnisdienst nach einem Dienst. Wenn er dort einen Dienst findet, der seine Anforderungen erfüllt, kann er diesen Dienst in Anspruch nehmen. Die Kommunikation erfolgt über Nachrichten, die als Anfrage an die Schnittstelle des Dienstes geschickt werden bzw. als Antwort vom Dienst an den Nutzer. Eine Schnittstelle wird durch die Schnittstellenbeschreibung, welche eine Menge von Kommunikationsregeln darstellt, beschrieben. Neben der Beschreibung, welche Funktionen verfügbar sind und wie sie genutzt werden können, gibt es zu der Schnittstellenbeschreibung auch noch einen so genannten Kontrakt, der die Semantik der einzelnen Funktionen näher beschreibt. Im Folgenden werden die einzelnen Komponenten näher erläutert. 2.2 Dienst Ein Dienst stellt eine gewisse Funktionalität bereit. In der Kommunikation repräsentiert er den Anbieter. Dabei ist die Funktionalität meist eine nicht triviale größere Aufgabe, die oft auch einen ganzen Teil in einem Geschäftsprozess übernimmt. Denn es macht keinen Sinn grundlegende Funktionen, wie z.b. die Addition zweier Zahlen als Service auszulagern. Hierbei würde der Aufwand für die Kommunikation mit dem Dienst mehr Zeit in Anspruch nehmen, als die Ausführung der Funktionalität. Dabei stellt der Anbieter eine genau definierte Schnittstelle bereit. Diese sollte plattform- und programmiersprachenunabhängig sein, um eine möglichst hohe Verwendbarkeit erzielen zu können. Wie auch bei Modulen hält der Betreiber meist die konkrete Implementierung verborgen (Geheimnisprinzip). Des weiteren sollte nicht nur der Algorithmus, sondern auch beispielsweise die Programmiersprache oder Architektur des Dienstes geheim gehalten werden, um keine Firmengeheimnisse preis zu geben. Auch sollten geeignete Sicherheitsmechanismen wie das Prüfen von Zugriffsberechtigungen den Zugriff auf den Service absichern. Dadurch, dass nur über diese definierte Schnittstelle kommuniziert wird, spielt die konkrete Implementierung des Service auch keine Rolle. Er kann in beliebiger Programmiersprache und auf beliebiger Hard- und Software realisiert werden, solange auf ihn zugegriffen werden kann und er sich an die Schnittstelle hält. Die Schnittstellen sollten sich auch, nachdem sie einmal veröffentlicht wurden, nicht ändern, damit die Nutzer des Dienstes sich nicht anpassen müssen. Geänderte Dienste werden meist als ein neuer Service angeboten. Ein Dienst kann nur benutzt werden, wenn die Möglichkeit besteht, ihn aufrufen zu können. Dies wird meist über das Netzwerk (lokal im Intranet oder auch im gesamten Internet) ermöglicht. Es gibt jedoch auch lokale Dienste, die nur auf einem einzelnen Rechner erreichbar sind. Wenn ein Zugriff auf einen Service erfolgt, geschieht dies durch Austausch von Nachrichten. Unterstützen zwei Dienste gleiche Schnittstellen, so heißen Sie kompatibel. Der Vorteil hierbei ist, dass sie beliebig gegeneinander ausgetauscht werden können. 2.3 Nutzer Als Nutzer bezeichnet man denjenigen, der einen Dienst in Anspruch nimmt. Dabei sucht sich ein Nutzer aktiv einen Dienst, den er verwenden will. Ein Nutzer kann auch ein Dienst sein. Wenn ein Dienst eine bestimmte Funktionalität zur Zeit oder generell nicht erfüllen kann, kann er die Aufgabe an einen anderen Dienst weiter delegieren. Ein Nutzer nimmt meist nicht nur einen Dienst in Anspruch, sondern gleich eine ganze Dienstkette. So lassen sich selbst komplexe Geschäftsabläufe durch Aneinanderreihung von Diensten schnell bewerkstelligen. 2.4 Verzeichnis Im Verzeichnisdienst registrieren die Dienstanbieter ihre Services. Er verwaltet diese, und teilt suchenden Nutzern die nötigen Informationen über die einzelnen Dienste mit, um diese verwenden zu können. Zu diesen notwendigen Informationen gehört die Funktionalität des Dienstes, der Ort wo der Dienst aufgerufen werden kann sowie Informationen über die angebotene Schnittstelle. Der Vorteil ist hierbei, dass dadurch der Nutzer in seiner Software den zu verwendenden Dienst erst über ein Verzeichnis zur Laufzeit suchen kann. Anstatt den Dienst zuvor fest in den Code zu integrieren,
3 sucht er erst beim Ausführen der benötigten Funktionalität über den Verzeichnisdienst nach einem geeigneten Service. Dadurch kann er automatisch auf evtl. günstigere Angebote ausweichen, oder im Falle des Ausfalls eines Dienstes, eine Alternative wählen. 2.5 Nachrichten Die Kommunikation zwischen Anbieter und Nutzer erfolgt über Nachrichten. Der Dienstnutzer schickt dabei dem Service eine Anfrage und erhält daraufhin vom Anbieter eine Antwort. Das Format der Nachrichten wird vom Dienstanbieter vorgegeben, und sollte nach der Veröffentlichung nicht mehr geändert werden, da dies auch fast immer eine Umstellung beim Nutzer nach sich zieht. Das Wichtigste hierbei ist das plattform- und programmiersprachenunabhängige Format der Nachricht, so dass die Nutzung bzw. auch das Anbieten eines solchen Services nicht dadurch eingeschränkt wird. In der Praxis wird XML häufig dafür verwendet, da es das Kriterium der Plattformunabhängigkeit erfüllt, relativ einfach implementiert und auch von Menschen ohne besondere Hilfen gelesen werden kann. Da XML mittlerweile weit verbreitet ist, gibt es für nahezu jede Programmiersprache eine entsprechende Bibliothek, die das Lesen und Erzeugen von XML-Dokumenten erleichtern. 2.6 Zusammenfassung Mit der serviceorientierten Architektur ist die Wiederverwendung bereits implementierter Abläufe im Vergleich zu den davor genutzten Methoden des simplen Kopierens oder Einbindens von Modulen und Bibliotheken, deutlich einfacher. Der Code wird nicht an mehreren Stellen gespeichert, sondern zentral gehalten. Dadurch minimiert sich der Verwaltungsaufwand. Zugriff zum Dienst erlangt man über das Netzwerk. Durch die Plattformunabhängigkeit der Schnittstellen und der Kommunikation wird das Zusammenführen von heterogenen Systemen im Vergleich zu vorher erleichtert. Wenn sich diese Architektur in einem Unternehmen einmal durch eine größere Anzahl von Diensten etabliert hat, lassen sich im folgenden komplexe Anwendungen durch Nutzung dieser Dienste in Dienstketten relativ einfach realisieren. Aber auch bei der Nutzung externer Dienste von anderen Unternehmen können Einsparungen durch Ressourcenschonung bei Entwicklung und Nutzung erzielt werden. Durch das Verwenden von Verzeichnisdiensten können die Dienste variabel genutzt werden und die Applikation des Nutzers kann schnell auf die Gegebenheiten reagieren. 3. XML Wie im vorangegangenen Kapitel schon angedeutet, spielt XML bei einer Serviceorientierten Architektur eine große Rolle. Doch was genau ist XML? Die Extended Markup Language - kurz XML - ist eine Metasprache, also ein Sprachkonstrukt, mit welchem Sprachen beschrieben werden können. Ursprünglich von Microsoft und IBM vorangetrieben, wird es mittlerweile vom W3C standardisiert und ist mittlerweile in der vierten Version (seit September 2006) erschienen. Die Idee hinter der Sprache ist es, die Daten von der Semantik zu trennen. Dies wurde in der Vergangeheit schon mit verschiedenen Auszeichnungssprachen versucht. So ist XML eigentlich nur eine Untermenge von SGML (Standard Generalized Markup Language), welches schon 1986 als ISO-Standard publiziert wurde. 1 <auto> 2 <marke>audi</marke> 3 < s e r i e>r8</ s e r i e> 4 <motor> 5 <hubraum e i n h e i t=" l i t e r ">4. 2</hubraum> 6 <l e i s t u n g e i n h e i t=" ps ">420</ l e i s t u n g> 7 </ motor> 8 </ auto> Figure 2: Ein geschachteltes XML-Konstrukt. 3.1 Struktur Mit XML versucht man Inhalte möglichst leicht maschinell zugänglich, erstell- und manipulierbar zu machen. Dies wird hier dadurch erreicht, dass der Inhalt über kennzeichnende Markierungen in funktionale Blöcke gegliedert wird. Diese Markierungen sind durch spitze Klammern gekennzeichnet und Tags genannt. Ein Beispiel für einen solchen Tag wäre z.b. <automarke>. Die Menge aller in einem Dokument vorkommenden Tags wird Markup genannt. Auf jedes dieser Tags muss auch ein entsprechendes schließendes Tag im Dokument folgen. Ein schließender Tag ist derselber Tag, nur das dem Tag-Namen ein / vorangestellt ist. Beim vorherigen Beispiel wäre dies also </automarke>. Der Text zwischen der Anfangs- und Endmarke entspricht dem Wert dieser Marke. In den öffnenden Tags lassen sich des weiteren auch noch Eigenschaften definieren. Eine Eigenschaft wird durch den Namen sowie dessen Wert in Anführungsstrichen nach dem Tag-Namen, aber noch innerhalb der schließenden spitzen Klammer definiert. Ein Beispiel (einheit= liter ) befindet sich in Abbildung 2. Die durch die Marken gekennzeichneten Abschnitte können ineinander geschachtelt sein. Allerdings muss man darauf achten, dass die Auszeichnungen abgeschlossen werden, bevor ein übergeordnetes Markenpaar geschlossen wird. Ein Beispiel hierfür wäre Abbildung 2. Für eine genauere Betrachtung ist die offizielle Spezifikation in [15] vom W3C zu empfehlen. 3.2 Warum XML in SOA XML liefert die geforderte Plattformunabhängigkeit. Ein XML-Dokument kann von jedem Rechner erstellt werden, welcher mindestens den ASCII-Zeichensatz unterstützt. XML ist einfach und besteht nur aus einem Satz an Regeln für die Erstellung von Textformaten zur Strukturierung von Daten. XML hat nicht die Komplexität einer Programmiersprache und man muss auch kein Entwickler sein, um es nutzen zu können. Durch sein leicht durch Maschinen lesbares Format vereinfacht XML, Daten zu generieren, zu lesen und zu modifizieren. Es sorgt durch seinen Aufbau, dass auch die Strukturierung der Daten erhalten bleibt. Es kann mit beliebigen Marken und Daten gefüllt werden. Zu guter Letzt ist XML kostenlos und wird gut unterstützt. Es gibt zahlreiche (oft kostenlose) Werkzeuge und Bibliotheken, die die Erzeugung von XML-Dokumenten unterstützen und erleichtern. Durch die Standardisierung gibt es auch Menschen, die helfen können, da allen das gleiche XML zugrunde liegt. Da die Entwicklung derzeit vom W3C vorangetrieben ist, ist es lizenzfrei, und kann beliebig in die eigene Software integriert und auch für kommerzielle Anwendungen genutzt werden, ohne jemandem etwas bezahlen zu müssen.
4 4. WEB SERVICE MITTELS SOAP Web Services sind derzeit sehr beliebt. Sie bieten eine Vielzahl von Unternehmen über Web Services eine Schnittstelle zu ihren Dienstleistungen an. Darunter findet man auch bekannte Namen wie Amazon, ebay, Yahoo und Google. Alle genannten Unternehmen betreiben ihre Web Services über das Kommunikationsprotokoll SOAP. So können über Amazon direkt die Produkte in die eigene Infrastruktur übernommen werden [21] oder über die genannten Suchmaschinenbetreiber direkt Suchanfragen gestellt und im eigenen System ausgegeben werden[22,23]. Bei ebay haben Verkäufer über die API die Möglichkeit, Auktionen in einem eigenen Programm zu verwalten, über die SOAP-Schnittstelle direkt bei ebay zu inserieren und zu verwalten. [20] 4.1 Web Service Web Services sind eine konkrete Ausprägung der serviceorientierten Architektur. Basierend auf XML wurde es von OASIS und dem W3C standardisiert [15]. Aufbauend auf vorhandenen Internetprotokollen, kann es so relativ schnell implementiert werden. Ein Web Service besteht im Wesentlichen aus drei Komponenten: Kommunikationsprotokoll Im folgenden Unterkapitel wird SOAP vorgestellt, das entfernte Prozeduraufrufe mittels XML-Nachrichten ermöglicht. Dienstbeschreibung Eine Beschreibung der Funktionalität des Dienstes sowie dessen Benutzung. Bei SOAP wird dies in der Regel mittels einer WSDL-Datei realisiert. Verzeichnisdienst Ein Verzeichnisdienst, bei dem der Dienst registriert ist, um auch aufgefunden werden zu können. Hier wird im Folgenden UDDI vorgestellt. Im Anschluss daran soll noch kurz auf BPEL eingegangen werden. Mit BPEL ist es möglich mit einer der XML ähnlichen Beschreibungssprache Service miteinander zu koppeln, und diese automatisch ausführen zu lassen. 4.2 SOAP SOAP (ursprünglich für Simple Object Access Protocol, seit Version 1.2 jedoch keine Abkürzung mehr) wurde ursprünglich von Microsoft und später zusammen mit IBM entwickelt. Mittlerweile wird es vom W3C standardisiert [16]. SOAP ist ein Kommunikationsprotokoll, über welches entfernte Prozeduraufrufe und Dateiübertragungen durchgeführt werden können. Dabei werden Nachrichten basierend auf XML ausgetauscht. SOAP ist zwar ein Protokoll, besitzt aber keinerlei Spezifikationen zur eigentlichen Datenübertragung. Das Ziel der Entwickler war es, bereits bestehende Protokolle für die Übertragung zu nutzen. So wird SOAP meistens über das HTTP-Protokoll übertragen, aber jedes Übertragungsprotokoll wie FTP oder sogar SMTP sind möglich Nachrichten Bei SOAP gibt es drei Nachrichten-Typen: Request, Response und Fault. Mit der Reuquest-Nachricht schickt der Dienstnutzer eine Nachricht an den Service, welche Operation mit welchen Parametern ausgeführt werden soll. Dieser antwortet daraufhin mit einer Antwort- (Response) oder einer Fehler-Nachricht (Fault). Figure 3: Aufbau einer SOAP-Nachricht Alle Nachrichten an sich bestehen aus einem Umschlag (envelope), welcher einen optionalen Kopf (head) sowie den eigentlichen Rumpf (body) beinhaltet. Der Kopf enthält dabei beliebige zusätzliche, evtl. auch nicht standardisierte Elemente, die vom Dienstanbieter nicht unbedingt unterstützt werden müssen. Man kann diese aber auch mit dem Attribut mustunderstand versehen, so dass der Anbieter dieses Attribut interpretieren muss. Versteht der Anbieter dieses Element nicht, so schickt er eine Fehlermeldung mit einem Hinweis auf die unbekannten Elemente zurück. Neben den Standardinhalten können auch noch Routing-Optionen und Authentifizierungen über SOAP geregelt werden. In der Praxis wird dies jedoch über das darunter liegende Internetprotokoll (HTTP) geregelt. Als weiteres Atrribut für Header-Elemente gibt es actor, welches aussagt, für wen das Header-Element gedacht ist. So kann man z.b. eine mehrschichtige Bearbeitung von Dienstanfragen erzielen, indem man Authentifizierungen seperat behandelt und die eigentliche Nachricht erst danach an den Dienst weiterleitet. Der Body enthält das eigentliche XML-Dokument. Der Inhalt ist nicht standardisiert, sondern wird vom Nutzer selbst in Abhängigkeit vom Dienst vorgegeben. Beim Nachrichtenaustausch unterscheidet man zwischen zwei Methoden: Entfernte Prozeduraufrufe (Remote Procedure Calls, RPC) sowie ein beliebiger XML- Dokumentenaustausch. Ersteres ist dabei nur ein Spezialfall von Letzterem. Ein entfernter Prozeduraufruf enthält im Rumpf den Namen der gewählten Operation, sowie dessen mit Typbezeichnung versehenen Parameter. Die Antwort des Services liefert dann den Rückgabewert der Operation, bzw. eine Fehlermeldung bei falschen Parametern oder unbekannter Operation. Beim XML-Dokumentenaustausch kann ein beliebiges XML-Dokument ausgetauscht werden. Der Web Service fungiert hierbei dann als Transformator und liefert ebenfalls ein Dokument zurück. Abbildung 4 und 5 zeigen eine Request- sowie Response- Nachricht. Die Nachrichten wurden an den Web Service BabelFish von AltaVista geschickt. BabelFish ist ein Übersetzungsdienst, der Texte mit max Zeichen in eine von 8 Sprachen übersetzen kann. Die Nachrichten entsprechen dem entfernten Prozeduraufruf ohne jegliche Header. Dieser Aufruf der Operation entspricht in Pseudocode BabelFish(String, String), welcher wiederum einen String zurück gibt. Die Rückgabe entspricht dabei der Übersetzung des zweiten Parameter. Die Quell- und Zielsprache wird über den ersten Parameter übergeben. Das Format ist vom Dienstanbieter vorgegeben. Im Beispiel ist der String car zu übersetzen. Mit en_de wird dem Service mitgeteilt, dass er aus dem Englischen ins Deutsche übersetzen soll. Im Response wird als Rückgabewert Auto zurück geliefert.
5 1 <?xml version=" 1.0 " encoding=" UTF -8 "?> 2 <SOAP:Envelope xmlns:soap=" http: // schemas. x m l s o a p. org / soap / e n v e l o p e / " x m l n s : x s i=" h t t p : // www. w3. org / / XMLSchema - i n s t a n c e " xmlns:xsd=" h t t p : // www. w3. org / 2001/ XMLSchema "> 3 <SOAP:Body> 4 <n s 1 : B a b e l F i s h xmlns: ns1=" u r n : x m e t h o d s B a b e l F i s h " SOAP:encodingStyle=" http: // schemas. x m l s o a p. org / soap / e n c o d i n g / "> 5 <t r a n s l a t i o n m o d e x s i : t y p e=" x s d : s t r i n g "> en de</ t r a n s l a t i o n m o d e> 6 <s o u r c e d a t a x s i : t y p e=" x s d : s t r i n g ">Car</ s o u r c e d a t a> 7 </ n s 1 : B a b e l F i s h> 8 </SOAP:Body> 9 </ SOAP:Envelope> Figure 4: Beispiel einer Request-Nachricht. 1 <?xml version=" 1.0 " encoding=" UTF -8 "?> 2 <SOAP:Envelope xmlns:soap ENC=" h t t p : // s c h e m a s. x m l s o a p. org / soap / e n c o d i n g / " SOAP:encodingStyle=" http: // schemas. x m l s o a p. org / soap / e n c o d i n g / " x m l n s : x s i=" h t t p : // www. w3. org / / XMLSchema - instance " xmlns:soap=" http: // schemas. x m l s o a p. org / soap / e n v e l o p e / " xmlns:xsd=" h t t p : // www. w3. org / / X M L S c h e m a "> 3 <SOAP:Body> 4 <namesp1:babelfishresponse xmlns:namesp1=" u r n : x m e t h o d s B a b e l F i s h "> 5 <r e t u r n x s i : t y p e=" x s d : s t r i n g ">Auto</ r e t u r n> 6 </ namesp1:babelfishresponse> 7 </SOAP:Body> 8 </ SOAP:Envelope> Figure 5: Beispiel einer Response-Nachricht. 4.3 WSDL Um die Plattformunabhängigkeit der Dienste zu erhalten, wird auch eine plattformunabhängige Methode benötigt, die Schnittstelle der Dienste zu beschreiben. Bei Web Services hat sich der Ansatz mit WSDL durchgesetzt. WSDL steht für Web Service Description Language [17]. Sie ist eine maschinenlesbare Beschreibung, welche es ermöglicht, automatische Codeerzeugungs-Werkzeuge zu erstellen, so dass der Programmierer den Web Service als lokale Methoden behandeln kann. WSDL ist in einem XML-Format spezifiziert. Abbildung 4.3 gibt einen Überblick. Die Inhalte sollen im Folgenden erläutert werden. In <wsdl:types/> werden die in der Schnittstelle verwendeten Datentypen aufgeführt. Um die Plattformunabhängigkeit zu erhalten, werden häufig auf Datentypen der XMLSchema-Spezifikation verwendet. Hier 1 <?xml version=" 1.0 " encoding=" UTF -8 "?> 2 <w s d l : d e f i n i t i o n s> 3 <w s d l : t y p e s /> Datentypen 4 <w s d l : m e s s a g e /> Nachrichten 5 <wsdl: porttype /> Operationen 6 <w s d l : b i n d i n g /> S c h n i t t s t e l l e n 7 <w s d l : s e r v i c e /> Z u g r i f f 8 </ w s d l : d e f i n i t i o n s> Figure 6: XML-Notation einer WSDL-Datei. 1 <complextype name=" Mensch "> 2 <element name=" Name " type=" xsd: string " /> 3 <element name=" Alter " type=" xsd: int " /> 4 </ complextype> Figure 7: Definition eines komplexen Datentyps. können jedoch auch eigene Datentypen definiert werden. Ein Beispiel für einen selbstdefinierten Typ ist in Abbildung 7 zu sehen. In diesem Beispiel wird der Typ Mensch definiert. Dieser besteht aus 2 Elementen Name und Geschlecht, welche als String bzw. Integer definiert sind. Bei <wsdl:message/> wird definiert, welcher Datentyp bei einer Nachricht übertragen wird. In <wsdl:porttype/> werden die Operationen beschrieben. Dabei werden die für die Operation eingehenden Nachrichten, sowie deren ausgehende Nachrichten definiert. Für jede Operation wird dabei die zum Aufruf versendeten Nachrichten (Name) defniert sowie in der Regel je eine für Anfrage und Antwort. In <wsdl:binding/> wird die konkrete Schnittstelle, also die Operationen die aufgerufen werden können, eines Dienstes angegeben. Bei <wsdl:service/> wird der Zugriff auf die Schnittstelle, meist über eine URL, genau angegeben. Damit erhält man eine vollständige Beschreibung des Web Service. Die WSDL-Datei ist meist über das HTTP- Protokoll auf einem Webserver erreichbar. Die Inhalte werden meist beim Dienstnutzer zwischengespeichert um nicht bei jedem Aufruf die XML-Elemente neu zu parsen. Die Adresse der WSDL-Datei wird auch, falls der Service in einem Verzeichnisdienst (siehe nächstes Unterkapitel) angemeldet wird, angegeben, damit der Dienst automatisiert gefunden und benutzt werden kann. Mittlerweile ist WSDL bereits in Version 2.0 erschienen. Ursprünglich war es die Version 1.2, aber durch grundlegende Namensänderungen wurde die Versionsnummer angehoben. Neu ist vor allem die vollständige Unterstützung von HTTP als Transportprotokoll, wodurch der Inhalts-Layer überflüssig wird. Des weiteren wurden PortTypes in interfaces und Ports in endpoints umbenannt [17]. 4.4 UDDI Für Dienstnutzer von Web Services ist es häufig wichtig, dass sie die benötigten Dienste automatisiert finden können. Bei Web Services gibt es Universal Description, Discovery and Integration, kurz UDDI [18]. Es ist ein Verzeichnisdienst bei dem sich Unternehmen, die einen Service anbieten wollen, registrieren können. Er kann von Nutzern über eine SOAP- Schnittstelle angesprochen werden und enthält alle nötigen Informationen um einen dort registrierten Dienst nutzen zu können. Dabei wird in drei Verzeichnis-Kategorien eingeteilt: White, Yellow und Green Pages. White Pages können mit einem Telefonbuch verglichen werden. Sie enthalten ein nach Namen sortiertes Namensregister, in welchem alle Anbieter mit allen
6 Detailangaben und Kontaktinformationen, wie Telefon und Fax aufgelistet werden. Yellow Pages ähneln den uns bekannten Gelben Seiten. Dabei werden die Anbieter nach Branchen geordnet. Diese Einträge werden dann mit dem zugehörigen White Pages des Anbieters verknüpft. In den Green Pages wird das Geschäftsmodell der Anbieter definiert. Dies beinhaltet die Zusicherungen an den Nutzer, sowie die Kosten für die Benutzung und das Abrechnungsmodell. In UDDI werden die Daten in den Verzeichnissen ebenfalls in XML-Notation verwaltet. Dabei gibt es im wesentlichen folgende Elemente: Im Element businessentity werden Informationen über die Organisation, Kontaktdaten, Branche und eine Liste der angebotenen Dienste gespeichert. Im businessservice ist eine allgemeine Beschreibung eines Dienstes zu finden. Die technischen Details sowie ein Verweis auf die WSDL-Datei eines Dienstes findet man im Element bindingtemplate Noch detailliertere technische Daten werden im tmodel offengelegt. Es beschreibt die Spezifikationen der Schnittstellen, die ein Web Service verwendet. Im tmodel eines Web Services ist unter anderem ein Schlüssel enthalten, der den Dienst beschreibt. Wenn zwei Services denselben Schlüssel besitzen, bedeutet dies, dass sie zueinander kompatibel sind, und gegeneinander ausgetauscht werden können. Ein UDDI-Verzeichnis ist selbst ein Web Service und wird mittels SOAP angesprochen. Für diesen Dienst wird ebenfalls ein WSDL-Dokument, das die Schnittstelle beschreibt, bereitgestellt. Dabei wird zwischen zwei Schnittstellen unterschieden: PublishSOAP ist für den Dienstanbieter gedacht, um seine Dienste im Verzeichnis zu verwalten. Es bietet Operationen zum Anlegen, Ändern und Löschen von Diensten. InquireSOAP liefert die Suche nach Diensten sowie deren Details die zur Verwendung benötigt werden. Ein Dienstnutzer wird diese Schnittstelle nutzen, um die dynamische Bindung zu einem Web Service herzustellen. 4.5 BPEL Mit den bislang kennengelernten Methoden kann man selbst die Web Services raussuchen und ansprechen. Einen Schritt weiter geht hier BPEL, mit welcher es möglich ist, Dienste miteinander interagieren zu lassen. Die Business Process Execution Language, kurz BPEL, ist eine Sprache, die zur Beschreibung der Steuerung und Koordination (Orchestration) mehrerer Web Services in einem Geschäftsprozess dient. Die einzelnen Web Services werden durch den BPEL-Prozess zusammengefasst. Dieser Prozess ist für die gesamte Abfolge verantwortlich, um verschiedene Dienste aufzurufen, die gemeinsam einen Geschäftsprozess erledigen sollen. BPEL ist von XML abgeleitet. Zunächst wird eine BPEL Prozessbeschreibung erstellt, die verschiedene Web Service verwendet. Diese Beschreibung wird auch komponierter Web Service genannt. In der Beschreibung werden die zunächst die Nachrichten (und damit auch Daten), die verschickt werden, definiert. Danach werden die gewünschten Web Services hinzugefügt. Die Nachrichten werden nun mit den Diensten in eine zeitliche Abfolge gebracht. Diese Beschreibung wird letztendlich an eine BPEL Execution Engine (wie z.b. Twister) übergeben, die die beschriebene Abfolge ausführt als BPEL Prozess ausführt. Eine genaue Spezifikation von BPEL findet man unter [19]. 5. DISKUSSION Serviceorientierte Architekturen erlauben es, leicht bestehende Funktionalitäten wiederzuverwenden. Da dabei die Implementierung nicht vervielfältigt, sondern zentral gehalten wird, ist auch die Wartung deutlich effizienter und damit günstiger. Durch die plattform- und programmiersprachenunabhängigen Schnittstellen ist auch die Zusammenführung von heterogenen Systemlandschaften leichter als Davor zu bewerkstelligen. Wenn sich eine solche Architektur erst einmal in einem Unternehmen konsequent durchgesetzt hat, lassen sich selbst komplexe Aufgaben relativ schnell und einfach durch Kombination der geeigneten internen und evtl. externen Dienste erledigen. Dabei ist auch das leichte Austauschen von Services ein großer Vorteil, wodurch leicht Kosten eingespart werden können. Es ist sogar theoretisch möglich, die Dienste erst zur Laufzeit dynamisch über einen Verzeichnisdienst auszuwählen. SOA birgt aber auch Nachteile. Zwar sind die Dienste lose gekoppelt, doch wenn ein Dienst nicht erreichbar ist und keine Alternative besteht, kann die Aufgabe nicht ausgeführt werden. Ein weiterer neuer Aspekt bei Verwendung externer Dienste ist die evtl. Datenoffenlegung firmeninterner Geheimnisse an einen Konkurrenten. Hier muss genau begutachtet werden, welche Informationen preisgegeben werden. Auch muss der Kommunikationskanal, der erst durch die Verteilung entsteht, neu behandelt werden. Zum Einen müssen die Daten sicher übertragen werden, zum Anderen entstehen neue Fehlerquellen beim evtl. Ausfall einzelner Zwischenknoten, welche bei lokalen Programmen nicht gegeben wären. Außerdem können einige Probleme nicht sinnvoll in dienstorientierten Architekturen umgesetzt werden. So lassen sich Ereignisse nicht implementieren, da die Kommunikation immer vom Nutzer ausgeht. Dies ließe sich hier nur mit Polling, also dem ständigen Abfragen, realisieren. Einen Lösungsansatz hierfür bietet die ereignisgesteuerte Architektur (eventdriven architecture, kurz EDA), welche im nachfolgenden Unterkapitel kurz behandelt werden soll. Des weiteren soll daraufhin noch auf die Diskussion eingegangen werden, ob
7 SOA nicht nur ein Zugriff auf ein entferntes Objekt ist. 5.1 Ereignisgesteuerte Architektur EDA verfolgt auch das Prinzip der serviceorientierten Architektur. Ein Dienstanbieter bietet einen Service an und veröffentlicht ihn in einem Verzeichnisdienst. Ein Nutzer sucht darüber seinen Dienst, den er verwenden will. Hat er einen Dienst gefunden, wird er in Anspruch genommen. Hier kommt nun der Unterschied. Der Nutzer schickt nun keine Nachricht an den Dienst, sondern er registriert sich bei ihm, dass er kontaktiert werden möchte, wenn ein gewisses Ereignis eintritt. Ein einfaches Beispiel hierfür könnte ein Ping-Service sein. Der Nutzer registriert sich beim Service und trägt sich in die Ereignisliste ein, sobald z.b. ein bestimmter Webserver nicht mehr erreichbar ist. Er ist nun beim Dienst registriert. Der Dienst pingt diesen Webserver an. Sollte er einmal nicht erreichbar sein, kontaktiert der Dienst alle in der Liste der für dieses Event eingetragenen Nutzer. Wie sich jedoch dieser Ansatz in Zukunft im Vergleich zur serviceorientierung entwickeln wird, ist offen. 5.2 Sind Web Services nur ein Zugriff auf ein entferntes Objekt? Was unterscheidet einen Web Service eigentlich vom Zugriff auf ein entferntes Objekt? Experten sind geteilter Meinung, ob es überhaupt einen Unterschied gibt, was auch verschiedene Publikationen zeigen [1,2]. Betrachtet man zunächst die Gemeinsamkeit beider Systeme: Sowohl Web Services als auch entfernte Objektaufrufe sind eine Ausprägung verteilter Systeme. Hier enden aber bereits die Gemeinsamkeiten. Während entfernte Objektaufrufe eher für das Intranet entworfen wurden, zielen Web Services eher auf die Reichweite des Internets ab. Betrachtet man Web Services in seiner einfachsten Art: Ein Dienstnutzer schickt ein XML-Dokument an den Service. Der Service antwortet wiederum wieder mit einem XML- Dokument. Aus dieser Sicht ist der Vorgang nur ein Dokumentenaustausch, und das ist noch weit entfernt von der Instanzierung eines entfernten Objekts. Auch Dinge wie Referenzen, Lebenszyklen oder Garbage Collection gibt es in Web Services nicht. Web Services kommt ein persistenten Objekten, welches mit dem singleton-pattern nur einmal instanziert werden kann, am nächsten, ist aber immer noch weit entfernt von reinem Dokumentenaustausch eines solchen Service. Denn Web Services sind im Normalfall ständig verfügbare, direkt ansprechbare Schnittstellen. Sie werden nicht instanziert und nach Benutzung auch nicht wieder entfernt. Der Unterschied ist damit zumindest aus der Sicht der Architektur deutlich ersichtlich. Betrachtet man das ganze jedoch aus Sicht des Entwicklers, so verwischt sich der Unterschied. In beiden Fällen wird meist ein lokales Stellvertreter-Objekt erstellt, das mit dem Web Service bzw. dem entfernten Objekt interagiert. Und in beiden Fällen ist der entfernte Prozeduraufruf der eigentliche Hintergrund. Man sollte also noch nicht Web Services mit entfernten Objekten vergleichen. Alle genannten Eigenschaften, die man aus entfernten Objektaufrufen kennt, gibt es noch nicht bei Web Services. Web Services können aber durch diese Funktionalität erweitert werden. Auch hier werden die Bedürfnisse der Dienstnutzer Einfluss darauf nehmen, wie die Entwicklung voranschreitet. 6. REFERENZEN 1. Vogels, W. Web services are not distributed objects. IEEE Internet Comput. 7, 6 (Nov.-Dec. 2003), Birman, K. Like it or not, Web Services are distributed objects. Communications of the ACM. 47, 12 (Dec. 2004), Hashimi, S. Service-Oriented Architecture Explained Weller, A., Müller, T. T-Systems SOA Blog Herrmann, W. In zehn Schritten zur SOA Herrmann, W. Gartner nennt die zwölf SOA-Todsünden Snell, J., Tidwell, D., Kulchenko, P. Webservice- Programmierung mit SOAP. O Reilly. Juli Schmidt, T. The Enterprise Service Bus: Making service-oriented architecture real.ibm Systems Journal. VOL 44, NO 4, 2005, Japs, F. Flexibilität und Kopplung von IT-Systemen am Beispiel des Schnittstellenmanagements mit Web Services. Westfälische Wilhelms-Universität Münster Hamann, K. Diensteorientierte Architektur. Universität Hamburg Schoetzau, F. Architektur und Basiskomponenten moderner Web Services mit Schwerpunkt SOAP. Wirtschaftswissenschaften der Universität Hannover Krause, T. Service Oriented Architecture: Service Lookup & Service Repository. Hochschule für Angewandte Wissenschaften Hamburg Bender, M. Service-Oriented Architecture. Universität Koblenz W3C XML W3C Web Service W3C SOAP W3C WSDL /2007.
8 18. UDDI-Spezifikationen BPEL-Spezifikationen. April ebay-application Programming Interfaces. Zugriff: Dezember Amazon Web Services. Zugriff: Dezember Yahoo! Search Web Services. Zugriff: Dezember Google SOAP Search API. Zugriff: Dezember 2007.
Serviceorientierte Architektur / Web Service
/ Web Service Hauptseminar im Institut für Verteilte Systeme Nenad Marjanovic Universität Ulm 17.12.2007 Übersicht Was ist SOA? Vorteile aus Sicht des Entwicklers Vorteile aus Sicht des Managers Nachteile
Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen
9 3 Web Services 3.1 Überblick Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen mit Hilfe von XML über das Internet ermöglicht (siehe Abb.
Verteilte Systeme: Übung 4
Verteilte Systeme: Übung 4 WSDL und SOAP Oliver Kleine Institut für Telematik https://www.itm.uni-luebeck.de/people/kleine SOAP Nachrichten Serialisierung in XML Root-Element einer SOAP Nachricht ist
Themen. Web Services und SOA. Stefan Szalowski Daten- und Online-Kommunikation Web Services
Themen Web Services und SOA Wer kennt den Begriff Web Services? Was verstehen Sie unter Web Services? Die Idee von Web Services Ausgangspunkt ist eine (evtl. schon bestehende) Software Anwendung oder Anwendungskomponente
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
Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)
Enterprise Applikation Integration und Service-orientierte Architekturen 09 Simple Object Access Protocol (SOAP) Anwendungsintegration ein Beispiel Messages Warenwirtschaftssystem Auktionssystem thats
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
Workflow, Business Process Management, 4.Teil
Workflow, Business Process Management, 4.Teil 24. Januar 2004 Der vorliegende Text darf für Zwecke der Vorlesung Workflow, Business Process Management des Autors vervielfältigt werden. Eine weitere Nutzung
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
SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik
SOA Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik Laderampen müssen passen Modularisieren Softwarearchitektur Modul A Modul B Modul C Modul D Große Anwendung im Unternehmen Modul
Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter
Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter 2 Inhaltsverzeichnis 1 Web-Kürzel 4 1.1 Einführung.......................................... 4 1.2 Web-Kürzel.........................................
1 Mathematische Grundlagen
Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.
Datensicherung. Beschreibung der Datensicherung
Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten
Suche schlecht beschriftete Bilder mit Eigenen Abfragen
Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere
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
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
ARCO Software - Anleitung zur Umstellung der MWSt
ARCO Software - Anleitung zur Umstellung der MWSt Wieder einmal beschert uns die Bundesverwaltung auf Ende Jahr mit zusätzlicher Arbeit, statt mit den immer wieder versprochenen Erleichterungen für KMU.
2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:
2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Configuring Terminal Services o Configure Windows Server 2008 Terminal Services RemoteApp (TS RemoteApp) o Configure Terminal Services Gateway
Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente
Autorisierung Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Dokumentation zum Referat von Matthias Warnicke und Joachim Schröder Modul: Komponenten basierte Softwareentwickelung
Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
PHPNuke Quick & Dirty
PHPNuke Quick & Dirty Dieses Tutorial richtet sich an all die, die zum erstenmal an PHPNuke System aufsetzen und wirklich keine Ahnung haben wie es geht. Hier wird sehr flott, ohne grosse Umschweife dargestellt
Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang
sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche
Zustandsgebundene Webservices
Zustandsgebundene Webservices Präsentation ausgewählter Problemstellungen der Informatik Markus Oertel [email protected] Universität Paderborn 25. September 2005 Zustandsgebundene Webservices Seite
Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken
Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen
Implementierung von Web Services: Teil I: Einleitung / SOAP
Implementierung von Web Services: Teil I: Einleitung / SOAP Prof. Dr. Kanne - FSS 2007 Carl-Christian Kanne, February 25, 2007 Web Services - p. 1/12 Web Services: Allgemein XML Datenaustauschformat plattformunabhängig
Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen
Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.
Der Kalender im ipad
Der Kalender im ipad Wir haben im ipad, dem ipod Touch und dem iphone, sowie auf dem PC in der Cloud einen Kalender. Die App ist voreingestellt, man braucht sie nicht laden. So macht es das ipad leicht,
Gruppenrichtlinien und Softwareverteilung
Gruppenrichtlinien und Softwareverteilung Ergänzungen zur Musterlösung Bitte lesen Sie zuerst die gesamte Anleitung durch! Vorbemerkung: Die Begriffe OU (Organizational Unit) und Raum werden in der folgenden
Installation der SAS Foundation Software auf Windows
Installation der SAS Foundation Software auf Windows Der installierende Benutzer unter Windows muss Mitglied der lokalen Gruppe Administratoren / Administrators sein und damit das Recht besitzen, Software
Objektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
OLXTeamOutlook 1.5 für Outlook 2003, 2002/XP, 2000 und 97/98
OLXTeamOutlook 1.5 für Outlook 2003, 2002/XP, 2000 und 97/98 Neue Version: Outlook-Termine, Kontakte, Mails usw. ohne Exchange-Server auf mehreren Rechnern nutzen! Mit der neuesten Generation intelligenter
Übersicht. Angewandte Informatik 2 - Tutorium 6. Teile einer WSDL-Datei. Was ist WSDL. Besprechung: Übungsblatt 5
Übersicht Angewandte Informatik 2 - Tutorium 6 Besprechung: Übungsblatt 5 Götz Bürkle ([email protected]) Übungsblatt 5: Aufgabe 4 - Webservices Institut für Angewandte Informatik und Formale Beschreibungsverfahren
Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008
Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen
Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof
Bedienungsanleitung für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof Matthias Haasler Version 0.4 Webadministrator, email: [email protected] Inhaltsverzeichnis 1 Einführung
Robot Karol für Delphi
Robot Karol für Delphi Reinhard Nitzsche, OSZ Handel I Version 0.1 vom 24. Januar 2003 Zusammenfassung Nach der Einführung in die (variablenfreie) Programmierung mit Robot Karol von Freiberger und Krško
arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek
arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek Speaker Andreas Holubek VP Engineering [email protected] arlanis Software AG, D-14467 Potsdam 2009, arlanis
Guide DynDNS und Portforwarding
Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch
DriveLock 6. DriveLock und das Windows Sicherheitsproblem mit LNK Dateien. CenterTools Software GmbH
6 DriveLock und das Windows Sicherheitsproblem mit LNK Dateien CenterTools Software GmbH 2010 Copyright Die in diesen Unterlagen enthaltenen Angaben und Daten, einschließlich URLs und anderen Verweisen
SharePoint Demonstration
SharePoint Demonstration Was zeigt die Demonstration? Diese Demonstration soll den modernen Zugriff auf Daten und Informationen veranschaulichen und zeigen welche Vorteile sich dadurch in der Zusammenarbeit
Urlaubsregel in David
Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5
1. Loggen Sie sich mit Ihrem Benutzernamen in den Hosting-Manager (Confixx) auf Ihrer entsprechenden AREA ein.
Page 1 of 7 Mailing Listen verwenden Vorwort Mailing-Listen (Mailing Lists) dienen der E-Mail Konversation zwischen mehreren Mitgliedern einer Liste. Man kann sich das wie ein Online-Forum vorstellen,
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
Das Leitbild vom Verein WIR
Das Leitbild vom Verein WIR Dieses Zeichen ist ein Gütesiegel. Texte mit diesem Gütesiegel sind leicht verständlich. Leicht Lesen gibt es in drei Stufen. B1: leicht verständlich A2: noch leichter verständlich
Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010. FHNW, Services, ICT
Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010 FHNW, Services, ICT Windisch, März 2013 Berechtigungen im Kalender 1 1 Gruppen 3 1.1 Die Gruppe/der Benutzer Standard
Zeichen bei Zahlen entschlüsseln
Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren
Objektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
Beheben von verlorenen Verknüpfungen 20.06.2005
Vor folgender Situation ist sicher jeder Solid Edge-Anwender beim Öffnen von Baugruppen oder Drafts schon einmal gestanden: Die Ursache dafür kann sein: Die Dateien wurden über den Explorer umbenannt:
Registrierung am Elterninformationssysytem: ClaXss Infoline
elektronisches ElternInformationsSystem (EIS) Klicken Sie auf das Logo oder geben Sie in Ihrem Browser folgende Adresse ein: https://kommunalersprien.schule-eltern.info/infoline/claxss Diese Anleitung
Task: Nmap Skripte ausführen
Task: Nmap Skripte ausführen Inhalt Einfache Netzwerkscans mit NSE Ausführen des Scans Anpassung der Parameter Einleitung Copyright 2009-2015 Greenbone Networks GmbH Herkunft und aktuellste Version dieses
Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.
Das ist ein Text in leichter Sprache. Hier finden Sie die wichtigsten Regeln für den Verein zur Förderung der Autonomie Behinderter e. V.. Das hier ist die Übersetzung der Originalsatzung. Es wurden nur
etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche
etutor Benutzerhandbuch Benutzerhandbuch XQuery Georg Nitsche Version 1.0 Stand März 2006 Versionsverlauf: Version Autor Datum Änderungen 1.0 gn 06.03.2006 Fertigstellung der ersten Version Inhaltsverzeichnis:
Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version 2.0.1 Deutsch 01.07.2014
Konfiguration VLAN's Version 2.0.1 Deutsch 01.07.2014 In diesem HOWTO wird die Konfiguration der VLAN's für das Surf-LAN der IAC-BOX beschrieben. Konfiguration VLAN's TITEL Inhaltsverzeichnis Inhaltsverzeichnis...
.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage
.htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess
4 Aufzählungen und Listen erstellen
4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer
Nutzung von GiS BasePac 8 im Netzwerk
Allgemeines Grundsätzlich kann das GiS BasePac Programm in allen Netzwerken eingesetzt werden, die Verbindungen als Laufwerk zu lassen (alle WINDOWS Versionen). Die GiS Software unterstützt nur den Zugriff
Software Engineering Interaktionsdiagramme
Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)
Kapitel 4 Die Datenbank Kuchenbestellung Seite 1
Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung
Übung: Verwendung von Java-Threads
Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum
SDD System Design Document
SDD Software Konstruktion WS01/02 Gruppe 4 1. Einleitung Das vorliegende Dokument richtet sich vor allem an die Entwickler, aber auch an den Kunden, der das enstehende System verwenden wird. Es soll einen
icloud nicht neu, aber doch irgendwie anders
Kapitel 6 In diesem Kapitel zeigen wir Ihnen, welche Dienste die icloud beim Abgleich von Dateien und Informationen anbietet. Sie lernen icloud Drive kennen, den Fotostream, den icloud-schlüsselbund und
1 topologisches Sortieren
Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung
Containerformat Spezifikation
Containerformat Spezifikation Version 1.0-09.05.2011 Inhaltsverzeichnis 0 Einführung... 4 0.1 Referenzierte Dokumente... 4 0.2 Abkürzungen... 4 1 Containerformat... 5 1.1 Aufbau des Container-Headers...
Software Engineering Klassendiagramme Assoziationen
Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen
Grundfunktionen und Bedienung
Kapitel 13 Mit der App Health ist eine neue Anwendung in ios 8 enthalten, die von vorangegangenen Betriebssystemen bislang nicht geboten wurde. Health fungiert dabei als Aggregator für die Daten von Fitness-
Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)
Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...
Stammdaten Auftragserfassung Produktionsbearbeitung Bestellwesen Cloud Computing
Stammdaten Auftragserfassung Produktionsbearbeitung Bestellwesen Cloud Computing Finanzbuchhaltung Wenn Sie Fragen haben, dann rufen Sie uns an, wir helfen Ihnen gerne weiter - mit Ihrem Wartungsvertrag
Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge
Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht
AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b
AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität
Einrichten der Outlook-Synchronisation
Das will ich auch wissen! - Kapitel 3 Einrichten der Outlook-Synchronisation Inhaltsverzeichnis Überblick über dieses Dokument... 2 Diese Kenntnisse möchten wir Ihnen vermitteln... 2 Diese Kenntnisse empfehlen
Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems
Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems Name: Bruno Handler Funktion: Marketing/Vertrieb Organisation: AXAVIA Software GmbH Liebe Leserinnen und liebe Leser,
Professionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
.NET Code schützen. Projekt.NET. Version 1.0
.NET Code schützen Projekt.NET Informationsmaterial zum Schützen des.net Codes Version 1.0 Autor: Status: Ablage: Empfänger: Seiten: D. Hoyer 1 / 6 Verteiler : Dokument1 Seite 1 von 1 Änderungsprotokoll
Windows Server 2008 für die RADIUS-Authentisierung einrichten
Windows Server 2008 für die RADIUS-Authentisierung einrichten Version 0.2 Die aktuellste Version dieser Installationsanleitung ist verfügbar unter: http://www.revosec.ch/files/windows-radius.pdf Einleitung
crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe
crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe crm-now/ps Webforms: Webdesigner Handbuch Copyright 2006 crm-now Versionsgeschichte Version 01 2006-08-21 Release Version crm-now c/o im-netz Neue
Fachbericht zum Thema: Anforderungen an ein Datenbanksystem
Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank
Barrierefreie Webseiten erstellen mit TYPO3
Barrierefreie Webseiten erstellen mit TYPO3 Alternativtexte Für jedes Nicht-Text-Element ist ein äquivalenter Text bereitzustellen. Dies gilt insbesondere für Bilder. In der Liste der HTML 4-Attribute
WSDL. Web Services Description Language. André Vorbach. André Vorbach
André Vorbach WSDL Web Services Description Language André Vorbach Übersicht Was ist WSDL? Dokumentenstruktur Elemente Definitions Types Messages porttype Binding Service SOAP-Bindings Beispiel Was ist
Telenet SocialCom. verbindet Sie mit Social Media.
Telenet SocialCom verbindet Sie mit Social Media. (Titelseite des Vortrags: Kurze Begrüßung bzw. Überleitung von einem anderen Thema. Die Einleitung folgt ab der nächsten Seite...) Ein Kunde ruft an...
Leichte-Sprache-Bilder
Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen
Was ist Sozial-Raum-Orientierung?
Was ist Sozial-Raum-Orientierung? Dr. Wolfgang Hinte Universität Duisburg-Essen Institut für Stadt-Entwicklung und Sozial-Raum-Orientierte Arbeit Das ist eine Zusammen-Fassung des Vortrages: Sozialräume
Containerformat Spezifikation
Containerformat Spezifikation Version 1.1-21.02.2014 Inhaltsverzeichnis 0 Einführung... 4 0.1 Referenzierte Dokumente... 4 0.2 Abkürzungen... 4 1 Containerformat... 5 1.1 Aufbau des Container-Headers...
Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java
Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte
Email Adressen und Kontaktinformationen
Email Adressen und Kontaktinformationen WEB Seiten sind von der Sache her öffentlich. Jeder sollte freien Zugang zu den veröffentlichten Informationen haben. Doch es ist Vorsicht geboten. Viele Informationen
ERSTELLEN VON INCENTIVES IM ZANOX NETZWERK
ERSTELLEN VON INCENTIVES IM ZANOX NETZWERK USER GUIDE FÜR ADVERTISER INHALTSVERZEICHNIS 1. Einführung...3 2. Incentives veröffentlichen...4 3. Weitere Funktionen...9 ZANOX.de AG Erstellen von Incentives
Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster
Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.
Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten
Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten Version 1.0 Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten In unserer Anleitung zeigen wir Dir, wie Du Blogbeiträge
OP-LOG www.op-log.de
Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server
SOA Serviceorientierte Architektur Definition, Marktpotenzial und Perspektiven
SOA Serviceorientierte Architektur Definition, Marktpotenzial und Perspektiven SO A Fraunhofer-Institut für Softwareund Systemtechnik ISST Dr. Ulrich Springer Dr. Bernhard Holtkamp Dortmund, 20.01.2009
Windows 8 Lizenzierung in Szenarien
Windows 8 Lizenzierung in Szenarien Windows Desktop-Betriebssysteme kommen in unterschiedlichen Szenarien im Unternehmen zum Einsatz. Die Mitarbeiter arbeiten an Unternehmensgeräten oder bringen eigene
Outsourcing und Offshoring. Comelio und Offshoring/Outsourcing
Outsourcing und Offshoring Comelio und Offshoring/Outsourcing INHALT Outsourcing und Offshoring... 3 Comelio und Offshoring/Outsourcing... 4 Beauftragungsmodelle... 4 Projektleitung vor Ort und Software-Entwicklung
Step by Step Webserver unter Windows Server 2003. von Christian Bartl
Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird
Handbuch Groupware - Mailserver
Handbuch Inhaltsverzeichnis 1. Einführung...3 2. Ordnerliste...3 2.1 E-Mail...3 2.2 Kalender...3 2.3 Kontakte...3 2.4 Dokumente...3 2.5 Aufgaben...3 2.6 Notizen...3 2.7 Gelöschte Objekte...3 3. Menüleiste...4
White Paper. Installation und Konfiguration der PVP Integration
Copyright Fabasoft R&D GmbH, A-4020 Linz, 2010. Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen sind Handelsnamen und/oder Marken der jeweiligen Hersteller. Diese Unterlagen sind streng
Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing
Fassade Objektbasiertes Strukturmuster C. Restorff & M. Rohlfing Übersicht Motivation Anwendbarkeit Struktur Teilnehmer Interaktion Konsequenz Implementierung Beispiel Bekannte Verwendung Verwandte Muster
PHP Kurs Online Kurs Analysten Programmierer Web PHP
PHP Kurs Online Kurs Analysten Programmierer Web PHP Akademie Domani [email protected] Allgemeines Programm des Kurses PHP Modul 1 - Einführung und Installation PHP-Umgebung Erste Lerneinheit Introduzione
Primzahlen und RSA-Verschlüsselung
Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also
Was meinen die Leute eigentlich mit: Grexit?
Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?
Corporate Design leicht gemacht. officeatwork für Microsoft Dynamics AX und Microsoft Dynamics CRM
Corporate Design leicht gemacht officeatwork für Microsoft Dynamics AX und Microsoft Dynamics CRM officeatwork Dynamics Connector Corporate Design leicht gemacht officeatwork ist die Business-Lösung für
E-Sourcing einfach, effizient und erfolgreich
E-Sourcing einfach, effizient und erfolgreich In wenigen Schritten von der Lieferanteninformation zur Auktion Die Beschaffung von Waren und Dienstleistungen ist für Unternehmen immer mit einem enormen
