Bauinformatik Vertiefte Grundlagen Graphentheorie

36
Bauinformatik Bauinformatik Vertiefte Grundlagen Graphentheorie 6. Semester Webservice - Orchestrierung Webservice Orchestrierung Prof. Dr.-Ing. RJSh Nürnberger Str. 31a 2 OG R 204 TU Dresden - Institut für Bauinformatik 1 R. J. Scherer 2. OG, Raum 204

Transcript of Bauinformatik Vertiefte Grundlagen Graphentheorie

Page 1: Bauinformatik Vertiefte Grundlagen Graphentheorie

BauinformatikBauinformatik Vertiefte Grundlageng

Graphentheorie6. Semester

Webservice - OrchestrierungWebservice Orchestrierung

Prof. Dr.-Ing. R J S h

Nürnberger Str. 31a2 OG R 204

TU Dresden - Institut für Bauinformatik 1

R. J. Scherer 2. OG, Raum 204

Page 2: Bauinformatik Vertiefte Grundlagen Graphentheorie

Vom Konzept zum ausführbaren ProzessAusführbarer Prozess

Softwaretechnische Umsetzung der Prozesslogik

SystemmodellTop-Down von der

obersten Ebene bis ins

ProzessmodellLogische Abhängigkeiten zwischen Ereignissen und

Input

obersten Ebene bis ins Detail

Informationsfluss

gFunktionenProzesslogik

Webservice

Webservice

TU Dresden - Institut für Bauinformatik

Output

2

Page 3: Bauinformatik Vertiefte Grundlagen Graphentheorie

Servicekomposition• Für eine Vielzahl von Problemen werden von unterschiedlichen Herstellern

Services entwickelt• Ein wesentlicher Mehrwert wird dann erreicht, wenn diese einzelnen Services

flexibel zu einer größeren Anwendung kombiniert werden könnenDi K iti f d t di K di ti d S i• Die Komposition erfordert die Koordination der Services

• Zwei Arten der Servicekomposition:– OrchestrierungOrchestrierung – Choreographie

TU Dresden - Institut für Bauinformatik 3

Page 4: Bauinformatik Vertiefte Grundlagen Graphentheorie

Orchestrierung= Prozessorientierte Komposition verschiedener Services zu einem ausführbaren Prozess• Beschreibt, wie mehrere Services durch Nachrichten miteinander interagieren• Orchestrierte Services können an einer beliebigen (öffentlichen) Stelle in einem Netzwerk

liegen (intern und extern)• Der Prozessfluss (zeitliche Reihenfolge), die Prozesslogik (Bedingungen der Serviceaufrufe)

und die Kommunikation (Übergabe und Zwischenspeicherung von Daten zwischen Services) werden zentral durch ein Prozessmodell gesteuertg

• Die Aktivitäten (Anwendungslogik) der benutzten Services bleiben verborgen (Blackbox)• Der orchestrierte Prozess ist selbst wieder ein Service kann als Subprozess in einen

größeren Prozess eingebettet werden• Kann auf einer Workflowmaschine zum Einsatz gebracht (engl deployed) und ausgeführt• Kann auf einer Workflowmaschine zum Einsatz gebracht (engl. deployed) und ausgeführt

werden• Beispiel für Orchestrierungssprache: BPEL (Business Process Execution Language)

Webservice

ProzesssteuerungProzesssteuerung

TU Dresden - Institut für Bauinformatik4WebserviceWebservice

4

Page 5: Bauinformatik Vertiefte Grundlagen Graphentheorie

Choreographie= Interaktion von „gleichberechtigten“ Services

• jeder Dienst beschreibt seine eigene Aufgabe in der gesamten Komposition• Es gibt keinen zentralen Punkt, der die Korrektheit und Aufgabenerfüllung kontrolliert. • Dezentrale Prozesssteuerung muss letzten Endes die gleiche Lösung wie zentrale

Prozesssteuerung ergeben• Der Fokus liegt auf dem Nachrichtenaustausch zwischen den Diensten. • Services können an einer beliebigen (öffentlichen) Stelle in einem Netzwerk liegen• Die Aktivitäten (Anwendungslogik) der benutzten Services bleiben verborgen (Blackbox)

Webservice

• Die Aktivitäten (Anwendungslogik) der benutzten Services bleiben verborgen (Blackbox)• Beispiel für Choreographiesprache: WS-CDL (Web Services Choreography Description

Language)Webservice

WebserviceWebservice

Kollaboration

TU Dresden - Institut für Bauinformatik 5

WebserviceWebservice

Page 6: Bauinformatik Vertiefte Grundlagen Graphentheorie

Vorteile der komponentenbasierten verteilten Softwareentwicklung

• Modularisierbarkeit (Bildung von Systemen und Sub-Systemen)• Schnellere Modifizierbarkeit komplexer Anwendungen

L f i i R d i K• Langfristig Reduzierte Kosten• Qualitätssteigerung• Reduktion der KomplexitätReduktion der Komplexität• Mehr Flexibilität (Anpassung an die Unternehmensprozesse)

TU Dresden - Institut für Bauinformatik 6

Page 7: Bauinformatik Vertiefte Grundlagen Graphentheorie

Nachteile und Risiken der komponentenbasierten verteilten Softwareentwicklung

• zu Beginn erhöhte Entwicklungskosten• höherer Zeitaufwand

ä li h P l h l• zusätzliche Personalschulungen • kurzfristig keine Kosteneinsparung• bei engen Zeitplänen keine Entwicklung aufbei engen Zeitplänen keine Entwicklung auf

Bausteinbasis möglich

TU Dresden - Institut für Bauinformatik 7

Page 8: Bauinformatik Vertiefte Grundlagen Graphentheorie

WS-BPEL Einführung• Web Services Business Process Execution Language

Version 2.0, ehemals BPEL4WS (BPEL for

Input

(Webservices)

• Verbindung der Ideen der kalkülbasierten Sprache XLANG von Microsoft und der Graph basierten Sprache

Webservice

XLANG von Microsoft und der Graph-basierten Sprache WSFL von IBM.

• baut auf dem Dienstmodell von WSDL aufWebservice

• Weitere benutzte Standards: XMLSchema, XPath und WS-Adressing

• Ziel: Programmieren im Großen“ mit verteilten

Webservice

• Ziel: „Programmieren im Großen mit verteilten Ressourcen

• Spezifikation siehe:Output

http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html

Output

TU Dresden - Institut für Bauinformatik 8

Page 9: Bauinformatik Vertiefte Grundlagen Graphentheorie

BPEL Historie• 2002: BPEL4WS 1.0 von Microsoft, IBM & BEA• IBM: Web Services FlowLanguage WSFLIBM: Web Services FlowLanguage WSFL• Microsoft: XLANG• 2003: Beitritt von SAP und Siebel Systems• Weiterentwicklung von OASIS• Offizieller offener Standard

2007 WS BPEL 2 0• 2007: WS-BPEL 2.0• Stand 2009: WS-BPEL Extension for People (BPEL4People) befindet sich bei

OASIS Technical Committee zur Standardisierung

TU Dresden - Institut für Bauinformatik 9

Page 10: Bauinformatik Vertiefte Grundlagen Graphentheorie

BPEL Sprachelemente• Prozessdefinition

– Prozess & ImportV i bl– Variablen

– Partner Links• Basis-Aktivitäten

i l– Receive & Reply– Invoke– Throw– Assign

• Strukturierende Aktivitäten– Sequence & Flow– if elseif else– ForEach

• Ausnahmebehandlung– Fault-Handler– Event-Handler– Compensation Handler

TU Dresden - Institut für Bauinformatik 10

Page 11: Bauinformatik Vertiefte Grundlagen Graphentheorie

Basis-Prozessstruktur

StartAusführung der Aktivitäten

sequenziell parallel

viele Aktivitäten

sequenziellsequence

parallelflow

E dEnde

TU Dresden - Institut für Bauinformatik 11

Page 12: Bauinformatik Vertiefte Grundlagen Graphentheorie

Das BPEL Prozess Datenmodellhttp://docs.oasis-open.org/wsbpel/2.0/OS/process/executable/ws-bpel_executable.xsd

Attribute, die den Prozess b h ib d t S hbeschreiben, verwendete Sprachen festlegen und globale Einstellungen setzen

Dokumentation des Prozesses

Import von BPEL-Spracherweiterungen und externer Referenzen (z B WSDL der zuexterner Referenzen (z.B. WSDL der zu orchestrierenden Webservices)

Kommunikationspartner

Prozessvariablen

Menge von Eigenschaften, die durch mehrere Nachrichten (messages) genutzt werdenNachrichten (messages) genutzt werdenFehler- und Ereignisbehandlung: Aktivität, die bei Fehler oder best. Ereignisausgeführt werden soll

TU Dresden - Institut für Bauinformatik 12

werden soll

Aktivitäten

Page 13: Bauinformatik Vertiefte Grundlagen Graphentheorie

Standardattribute für AktivitätenJoin Condition Eine “join condition” erlaubt die Definition komplexer

Ausführungsbedingungen auf Basis des Linkstatus. Wenn eine odermehrere Links mit einer Aktivität verbunden sind, kann die Join Condition so gesetzt werden, dass die Ausführung der Aktivität vomZustand der eingehenden Links abhängig ist.

Wenn die Auswertung der “Join Condition” den boolschen Wert “true” ib i d d l f ib di dergibt, wird der Prozess normal fortgesetzt. Ergibt die Auswertung den

boolschen Wert “false”, kann eine Fehlermeldung ausgegeben und derProzess abgebrochen oder eine zuvor festgelegte Fehlerbehandlungausgeführt werden.

Suppress Join Failure Wenn das Attribut “suppressJoinFailure” auf “yes” gesetzt ist, wird auchim Fall einer “Join Condition”, die den Wert “false” ausgibt, keineFehlermeldung ausgegeben und der Prozess normal fortgesetzt.

Comment Optionales Attribut zum Hinzufügen von html-Annotationen zu einem<process> Element, sowie zu einer Aktivität, einem Link oder einemContainer.

i l ib i f i iDocumentation Optionales Attribut zum Hinzufügen von Annotationen zu einem<process> Element, sowie zu einer Aktivität, einem Link oder einemContainer.

Extension Attributes und Elements Erweiterungen der Basis-BPEL-Sprache auf mehereren Wegen, inklusive

TU Dresden - Institut für Bauinformatik

Extension Attributes und ElementsErweiterungs-Elemente und Erweiterungsattribute für BPEL-Konstrukte

13

Page 14: Bauinformatik Vertiefte Grundlagen Graphentheorie

Basis-AktivitätenReceive: Eingehende Kommunikation erwartet eingehenden

Webserviceaufruf

Attribute− createInstance: legt fest, ob beim Empfang eines Webservice-

Aufrufs eine Prozessinstanz erstellt werden soll, oder nicht,− Operation: SOAP-Aktion, die das Gegenüber verwenden wird− partnerLink: Kommunikationspartner, von dem empfangen wird− portType: Service, der angeboten wird− Variable: Prozessvariable, in die die empfangenen Daten

geschrieben werden sollen

<bpel:receive

geschrieben werden sollen

<bpel:receive createInstance="yes" operation="EinSpann" partnerLink="EinfSpannProcessPLT" portType="ns1:EinfSpannBPEL" variable="EinSpannRequest"/>

TU Dresden - Institut für Bauinformatik 14

Page 15: Bauinformatik Vertiefte Grundlagen Graphentheorie

Basis-AktivitätenReply: Ausgehende Kommunikation beantwortet offenen Webserviceaufruf

A ibAttribute− Operation: SOAP-Aktion, die das Gegenüber verwendet hat− partnerLink: Kommunikationspartner, von dem empfangen wurde− portType: Service den der Prozess angeboten hatportType: Service, den der Prozess angeboten hat− Variable: Prozessvariable, aus der die zu sendenden Daten gelesen werden

sollen− faultName: Definition der Fehlermeldung, die im Fall eines Fehlers ausgegeben

werden sollwerden soll

<bpel:reply operation="EinSpann" partnerLink="EinfSpannProcessPLT" portType="ns1:EinfSpannBPEL" variable="EinSpannResponse"/>

TU Dresden - Institut für Bauinformatik 15

Page 16: Bauinformatik Vertiefte Grundlagen Graphentheorie

Basis-AktivitätenInvoke: Externen Webservice aufrufen

Attribute

− partnerLink: definiert, WAS bei WELCHEM Kommunikationspartner aufgerufen werden sollwerden soll

− portType: Service, den der Kommunikationspartner anbietet− Operation: SOAP-Aktion, die verwendet werden muss− inputVariable: Variable, aus der die zu sendenden Daten gelesen werden

outputVariable: Variable in die die zurückkommenden Daten geschrieben− outputVariable: Variable, in die die zurückkommenden Daten geschrieben werden

<bpel:invoke<bpel:invoke inputVariable="momentRequest" name="BiegeMoment" operation="moment" outputVariable="momentResponse" partnerLink="Momentenberechnung" portType="ns3:MomentenberechnungServicePortType"/>

TU Dresden - Institut für Bauinformatik 16

Page 17: Bauinformatik Vertiefte Grundlagen Graphentheorie

Basis-AktivitätenAssign: Aktualisiert den Inhalt von Variablen:• Kopiert Daten von einer Variablen in eine anderep• Erzeugt neue Daten durch Xpath-Ausdrücke oder andere Sprachen• Erzeugt neue Daten durch erweiterte WS-BPEL-Funktionen

Attribute

− copy: definiert, welche Daten kopiert werden sollen, sowie Quell- und Zielvariabley− Weitere optionale Attribute

<bpel:assign><bpel:copy>

<bpel:from>$momentResponse.parameters/ns3:return div $fltmResponse.parameters/ns4:return * ($fltmRequest.parameters/ns4:h * 0.5)</bpel:from>

<bpel:to part="parameters" variable="EinSpannResponse"><bpel:query>sigma</bpel:query>p q y g / p q y

</bpel:to></bpel:copy>

</bpel:assign>

TU Dresden - Institut für Bauinformatik 17

Page 18: Bauinformatik Vertiefte Grundlagen Graphentheorie

Basis-AktivitätenWait: Warten für eine Zeitdauer oder auf einen Zeitpunkt.

Attribute

− Wait Expression: Wert für Zeitpunkt (Datum) oder DauerWait Type: Wahlmöglichkeiten zwischen den Optionen “Duration” (for) und− Wait Type: Wahlmöglichkeiten zwischen den Optionen Duration (for) und “Deadline” (until)

− Weitere optionale Attribute

<bpel:wait><bpel:until>2010-12-12T12:00</bpel:until>

</bpel:wait>

TU Dresden - Institut für Bauinformatik 18

Page 19: Bauinformatik Vertiefte Grundlagen Graphentheorie

Strukturierende Aktivitäten

Sequence: Ein Sequence-Container arrangiert Aktivitäten i i d t Li t d füh t i i llin einer geordneten Liste und führt sie sequenziell aus.

AttributeAttribute

− Nur Optionale Attribute

<bpel:sequence><bpel:assign name="Assign_Receive_BiegeMoment">

… </bpel:assign>

<bpel:invoke inputVariable="momentRequest" name="BiegeMoment" operation="moment„

…</bpel:sequence>

TU Dresden - Institut für Bauinformatik 19

Page 20: Bauinformatik Vertiefte Grundlagen Graphentheorie

Strukturierende Aktivitäten

Flow: Ein Flow-Container arrangiert Aktivitäten parallel und führt sie nebenläufig aus.

Attribute

− Nur Optionale Attribute

<bpel:flow><bpel:assign name="Assign_Receive_BiegeMoment">

… </bpel:assign>

<bpel:assign name="Assign_Receive_FLTM">

… </bpel:assign>

</bpel:flow>

TU Dresden - Institut für Bauinformatik 20

Page 21: Bauinformatik Vertiefte Grundlagen Graphentheorie

Strukturierende Aktivitäten

Scope: Sichtbarkeitsbereich von Variablen, lokale Umgebung zur Blockstrukturierung

• bündelt Aktivitäten und fasst sie zu einer transaktionalen Einheit zusammen• Möglichkeit zur Einführung lokaler Variableng g• Assoziation von Fehlerbehandlung (Fault Handler), Kompensationsbehandlung

(Compensation Handler) und Ereignisbehandlung (Event Handler)

Att ib tAttribute

− Isolated: YES oder NO. Bestimmt, ob von mehreren Scopes gleichzeitig auf eine gemeinsam genutzte Variable zugegriffen werden darfgemeinsam genutzte Variable zugegriffen werden darf.

− Nur Optionale Attribute

TU Dresden - Institut für Bauinformatik 21

Page 22: Bauinformatik Vertiefte Grundlagen Graphentheorie

Strukturierende Aktivitäten

Pick: Triggern enthaltener Aktivitäten durch Nachricht oder AlarmPick: Triggern enthaltener Aktivitäten durch Nachricht oder Alarm• Aus Prozesssicht nicht-deterministische Wahl durch externe Ereignisse

(Messages, Zeitpunkt oder Zeitspanne)

Attribute

Bei Trigger durch onMessage:Partner LinkOperationVariable or From Part

Bei Trigger durch onAlarm:Alarm ExpressionAlarm TypeAlarm Type

TU Dresden - Institut für Bauinformatik 22

Page 23: Bauinformatik Vertiefte Grundlagen Graphentheorie

Strukturierende Aktivitäten

Validate: Validierung von Variablen anhand der XML und WSDL Daten-DefinitionErzeugung einer Fehlermeldung (bpel:invalidVariables), falls eine Variable einen

falschen Wert enthält

Att ib tAttribute

− variables: Definition der Variablen, die validiert werden sollen

<validatevariables="BPELVariableNames" standard-attributes>

standard-elements</validate>

TU Dresden - Institut für Bauinformatik 23

Page 24: Bauinformatik Vertiefte Grundlagen Graphentheorie

Strukturierende Aktivitäten

While: Wiederholtes Ausführen von Aktivitäten solange eine boolesche Bedingung füllt i terfüllt ist

Attribute

− condition: Definition der Bedingung

<while><condition>

$orderDetails > 100</condition><scope>

...</scope>

</while>

TU Dresden - Institut für Bauinformatik 24

Page 25: Bauinformatik Vertiefte Grundlagen Graphentheorie

Strukturierende Aktivitäten

repeatUntil: Die “repeatUntil” Aktivität führt Aktivitäten wiederholt aus, bis ihre B di “t ” i t I G t Whil Akti ität füh t di S hl if diBedingung=“true” ist. Im Gegensatz zur While-Aktivität führt die Schleife die enthaltenen Aktivitäten mindestens 1 mal aus.

Attribute

<repeatUntil>

Attribute

− condition: Definition der Bedingung<repeatUntil>

<conditionexpressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:

xpath1.0">$counter &gt; 0</condition>

<sequence><assign name="IncrementCounter"><copy><from>$counter + 1</from><to variable="counter"/></copy></assign><wait name="WaitTwoSeconds"><for expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">'PT2S'

</for></wait>

</sequence></repeatUntil>

TU Dresden - Institut für Bauinformatik 25

</repeatUntil>

Page 26: Bauinformatik Vertiefte Grundlagen Graphentheorie

Strukturierende Aktivitäten

If: Ausführung von Aktivitäten auf der Basis einer oder mehrerer Bedingungen, die d h i if“ d fi i t i d d ti l d h i l if“ f l t idurch ein „if“ definiert sind oder optional durch ein „else if“, gefolgt von einem optionalen „else“-Element

Attribute

− if-condition: Definition der Bedingung

<if standard-attributes> standard-elements<condition expressionlanguage=”anyURI”?>

g g

bool-expr</condition>

activity<elseif>*

<condition expressionlanguage=”anyURI”?>b lbool-expr

</condition>activity

</elseif><else>?

ti it

TU Dresden - Institut für Bauinformatik 26

activity</else>

</if>

Page 27: Bauinformatik Vertiefte Grundlagen Graphentheorie

Strukturierende AktivitätenforEach: Die forEach-Aktivität enthält einen Scope, der mit einer

definierten Anzahl an Durchläufen ausgeführt wird.Die iterative Ausführung kann parallel oder sequenziell erfolgen. DieDie iterative Ausführung kann parallel oder sequenziell erfolgen. Die Anzahl der Iterationen wird durch Ausdrücke mit Start- und Endwertfestgelegt. Diese Werte sind inklusiv, d.h. bei einem Startwert=1 und Endwert=10 wird der Scope 10 mal ausgeführt.

Attribute

− Counter Name: Zählvariable− Start Counter Value: Startwert− Final Counter Value: Endwert− Parallel Execution Flag: Parallele Ausführung ja/nein<forEach counterName="counter" parallel="no">

<startCounterValue>1</startCounterValue><finalCounterValue>100</finalCounterValue><completionCondition>

<branches countSuccessfulBranchesOnly "yes"><branches countSuccessfulBranchesOnly="yes">10</branches>

</completionCondition><scope>...</scope>

</forEach>

TU Dresden - Institut für Bauinformatik 27

Page 28: Bauinformatik Vertiefte Grundlagen Graphentheorie

Beispielprozess: Berechnung der Biegespannung eines EinfeldträgersEinfeldträgers• Ressourcen:

– Webservice „Flächenträgheitsmoment“– Webservice „Biegemoment“

Gleichlast qA Querschnitt A-A

Gleichlast q

hA

L

b

A

b• Strategie:

• Berechnung des Flächenträgheitsmoments und des Biegemoments parallel mit jeweils einem Service

• Zusammenführung der Ergebnisse und Berechnung der Biegespannung über Xpath-Expression in BPEL

• Erzeugen eines BPEL-Webservices, der beide Services aufruft, die Parameter übergibt,

TU Dresden - Institut für Bauinformatik

g gzuordnet, verarbeitet und zurückgibt

28

Page 29: Bauinformatik Vertiefte Grundlagen Graphentheorie

Schematische Darstellung der Prozesslogik

q bhL Variablen des Pro esses

INPUTBPEL-Prozess

q bhL

q bhL Variablen des Prozesses

Variablen der WebservicesWebservice Webservice

M=q*L2/8 Iy=b*h3/12

q

M Iy Response der Webservices

Zuordnung einer Response-Expression aus

Sigma=M/Iy*h/2Response-Variablen der WS zur Response-Variable des Prozesses

sigma Response des Prozesses

OUTPUT

TU Dresden - Institut für Bauinformatik 29

Page 30: Bauinformatik Vertiefte Grundlagen Graphentheorie

Webservice „Flächenträgheitsmoment“public class ftm {

public double fltm(double b, double h){double fltm = b*Math.pow(h, 3)/12;

fl }

Java-Klasse:

return fltm;};}

http://141.30.165.8:9762/axis2/services/FTMService?wsdl

Webservice-WSDL:

TU Dresden - Institut für Bauinformatik 30

<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:ns0="http://ws.apache.org/axis2" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://ws.apache.org/axis2"> <wsdl:documentation>FTMService</wsdl:documentation> <wsdl:types> <xs:schema xmlns:ns="http://ws.apache.org/axis2" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://ws.apache.org/axis2"> <xs:element name="fltm"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" name="b" type="xs:double"/>

<xs:element minOccurs="0" name="h" type="xs:double"/> </xs:sequence>

/ l T

Page 31: Bauinformatik Vertiefte Grundlagen Graphentheorie

Webservice „Biegemoment“public class momentenber{

public double moment(double q, double l){double moment = q*Math.pow(l, 2)/8;

t t }

Java-Klasse:

return moment;};}

http://141.30.165.8:9762/axis2/services/MomentenberechnungService?wsdl

Webservice-WSDL:

TU Dresden - Institut für Bauinformatik 31

<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:ns0="http://example.gerald" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://example.gerald"> <wsdl:documentation>MomentenberechnungService</wsdl:documentation> <wsdl:types> <xs:schema xmlns:ns="http://example.gerald" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://example.gerald"> <xs:element name="moment"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" name="q" type="xs:double"/>

<xs:element minOccurs="0" name="l" type="xs:double"/> </xs:sequence>

</xs:complexType>

Page 32: Bauinformatik Vertiefte Grundlagen Graphentheorie

EinfSpannProcess.bpelFührt die enthaltenen AktivitätenFührt die enthaltenen Aktivitäten sequenziell aus

Erwartet eingehenden Webservice-

Führt die enthaltenen Aktivitäten parallel aus

Aufruf

aus

Zuordnung der Request-Variablen des Prozesses zu den Request-Variablen

Webservices zur Berechnung von Flächenträgheitsmoment und Bi t

der Webservices

Berechnet aus den Response-Variablen der Webservices (Flächenträgheitsmoment und

Biegemoment

(Flächenträgheitsmoment und Biegemoment) die Biegespannung und ordnet den Wert der Response-Variablen des Prozesses zu

TU Dresden - Institut für Bauinformatik

Beantwortet offenen Webservice-Aufruf

32

Page 33: Bauinformatik Vertiefte Grundlagen Graphentheorie

EinfSpannProcess.bpel

TU Dresden - Institut für Bauinformatik 33

<?xml version="1.0" encoding="UTF-8"?><!--BPEL Process DefinitionEdited using ActiveBPEL(r) Designer Version 4.1.0 (http://www.active-endpoints.com)--><bpel:process xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:ext="http://www.activebpel.org/2006/09/bpel/extension/query_handling" xmlns:ns1="http://www.gerald.faschingbauer/EinfSpannBPEL/" xmlns:ns2="gerald.faschingbauer" xmlns:ns3="http://example.gerald" xmlns:ns4="http://ws.apache.org/axis2" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ext:createTargetXPath="yes" name="EinfSpannProcess" suppressJoinFailure="yes" targetNamespace="http://EinfSpannProcess"> <bpel:extensions> <bpel:extension mustUnderstand="yes" namespace="http://www.activebpel.org/2006/09/bpel/extension/query_handling"/> </bpel:extensions> <bpel:import importType="http://schemas.xmlsoap.org/wsdl/" location="../WSDL/EinfSpannBPEL.wsdl" namespace="http://www.gerald.faschingbauer/EinfSpannBPEL/"/> <bpel:import importType="http://schemas.xmlsoap.org/wsdl/" location="file:/C:/SVN/Bauinformatik/Gerald Faschingbauer/Prototypen/EinfSpannBPEL/WSDL/partnerlinksEinfSpannBPEL.wsdl" namespace="gerald.faschingbauer"/> <bpel:import importType="http://schemas.xmlsoap.org/wsdl/" location="../WSDL/Momentenber.wsdl" namespace="http://example.gerald"/> <bpel:import importType="http://schemas.xmlsoap.org/wsdl/" location="../WSDL/FTMService.wsdl" namespace="http://ws.apache.org/axis2"/> <bpel:partnerLinks> <bpel:partnerLink myRole="EinfSpannProc" name="EinfSpannProcessPLT" partnerLinkType="ns2:EinfSpannProcessPLT"/> <bpel:partnerLink name="Momentenberechnung" partnerLinkType="ns2:Momentenberechnung" partnerRole="MomberService"/> <bpel:partnerLink name="FTMPLT" partnerLinkType="ns2:FTMPLT" partnerRole="FTMService"/> </bpel:partnerLinks> <bpel:variables> <bpel:variable messageType="ns1:EinSpannRequest" name="EinSpannRequest"/> <bpel:variable messageType="ns1:EinSpannResponse" name="EinSpannResponse"/> <bpel:variable messageType="ns3:momentRequest" name="momentRequest"/> <bpel:variable messageType="ns3:momentResponse" name="momentResponse"/> <bpel:variable messageType="ns4:fltmRequest" name="fltmRequest"/> <bpel:variable messageType="ns4:fltmResponse" name="fltmResponse"/> </bpel:variables> <bpel:sequence> <bpel:receive createInstance="yes" operation="EinSpann" partnerLink="EinfSpannProcessPLT" portType="ns1:EinfSpannBPEL" variable="EinSpannRequest"/>

<bpel:flow>

Page 34: Bauinformatik Vertiefte Grundlagen Graphentheorie

EinfSpannBPEL.wsdlDiese WSDL wurde nach dem Contract-First-Ansatz manuell erzeugt. Dieser Ansatz vereinfacht bei der Erstellung von BPEL-Prozessen die Definition von Ein- und Ausgangsparametern. Diese WSDL wird beim Deployment in eine ergänzende WSDL die insbesondere das Service-Binding enthält importiertDeployment in eine ergänzende WSDL, die insbesondere das Service Binding enthält, importiert.

TU Dresden - Institut für Bauinformatik 34

<?xml version="1.0" encoding="UTF-8" standalone="no"?><wsdl:definitions xmlns:esp="http://www.gerald.faschingbauer/EinfSpannBPEL/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="EinfSpannBPEL" targetNamespace="http://www.gerald.faschingbauer/EinfSpannBPEL/"> <wsdl:types> <xsd:schema targetNamespace="http://www.gerald.faschingbauer/EinfSpannBPEL/"> <xsd:element name="EinSpann"> <xsd:complexType> <xsd:sequence> <xsd:element name="q" type="xsd:double" /> <xsd:element name="L" type="xsd:double"></xsd:element> <xsd:element name="b" type="xsd:double"></xsd:element> <xsd:element name="h" type="xsd:double"></xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="EinSpannResponse"> <xsd:complexType> <xsd:sequence> <xsd:element name="sigma" type="xsd:double"/> </xsd:sequence> </xsd:complexType> </xsd:element>

Page 35: Bauinformatik Vertiefte Grundlagen Graphentheorie

partnerlinksEinfSpannBPEL.wsdl

Ein partner link ist die exakte Beschreibung der Beziehungen (der Kommunikation) zweier Partner untereinander (des BPEL-Prozesses zu anderen Webservices). Ein Partner Link definiert die Rolle des Prozesses und die Rolle des Partnerservice für einen bestimmten Austausch von Daten.Der Partner Link wird über einen Partner Link Type definiert. Ein partner link type beschreibt die Art des Nachrichtenaustauschs, den zwei WSDL Services vollziehen sollen. Er charakterisiert diesen Austausch durch die Definition der Rollen, die jeder Service einnimmt und durch die Spezifikation des port types, der durch den Service angeboten wird, um für den Austausch taugliche Nachrichten

TU Dresden - Institut für Bauinformatik

p yp g gzu emfangen.

35

<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions name="partnerlinksEinfSpannBPEL" targetNamespace="gerald.faschingbauer" xmlns:tns="gerald.faschingbauer" xmlns:ns1="http://www.gerald.faschingbauer/EinfSpannBPEL/" xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" xmlns:ns3="http://ws.apache.org/axis2" xmlns:ns2="http://example.gerald" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><plnk:partnerLinkType xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype" name="EinfSpannProcessPLT"> <plnk:role name="EinfSpannProc" portType="ns1:EinfSpannBPEL"/></plnk:partnerLinkType><plnk:partnerLinkType xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype" name="Momentenberechnung"> <plnk:role name="MomberService" portType="ns2:MomentenberechnungServicePortType"/></plnk:partnerLinkType><plnk:partnerLinkType xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype" name="FTMPLT"> <plnk:role name="FTMService" portType="ns3:FTMServicePortType"/></plnk:partnerLinkType> <wsdl:import namespace="http://ws.apache.org/axis2" location="project:/EinfSpannBPEL/WSDL/FTMService.wsdl"/> <wsdl:import namespace="http://example.gerald" location="project:/EinfSpannBPEL/WSDL/Momentenber.wsdl"/> <wsdl:import namespace="http://www.gerald.faschingbauer/EinfSpannBPEL/" location="project:/EinfSpannBPEL/WSDL/EinfSpannBPEL.wsdl"/></wsdl:definitions>

Page 36: Bauinformatik Vertiefte Grundlagen Graphentheorie

EinfSpannProcessPLTService.wsdlWSDL des aufrufbaren Prozesses. Erweiterung der EinfSpannBPEL.wsdl

http://141.30.165.8:9762/active-bpel/services/EinfSpannProcessPLTService?wsdl

TU Dresden - Institut für Bauinformatik 36

<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions name="partnerlinksEinfSpannBPEL" targetNamespace="gerald.faschingbauer" xmlns:ns1="http://www.gerald.faschingbauer/EinfSpannBPEL/" xmlns:ns2="http://example.gerald" xmlns:ns3="http://ws.apache.org/axis2" xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="gerald.faschingbauer" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">

<wsdl:import location="http://141.30.165.8:9762/active-bpel/catalog/project:/EinfSpannBPEL/WSDL/EinfSpannBPEL.wsdl" namespace="http://www.gerald.faschingbauer/EinfSpannBPEL/"/>

<wsdl:import location="http://141.30.165.8:9762/active-bpel/catalog/project:/EinfSpannBPEL/WSDL/Momentenber.wsdl" namespace="http://example.gerald"/>

<wsdl:import location="http://141.30.165.8:9762/active-bpel/catalog/project:/EinfSpannBPEL/WSDL/FTMService.wsdl" namespace="http://ws.apache.org/axis2"/>

<wsdl:binding name="EinfSpannProcessPLTServiceBinding" type="ns1:EinfSpannBPEL">

<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>

<wsdl:operation name="EinSpann">

<soap:operation soapAction="" style="document" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>

< sdl inp t>