Die Ringvorlesung "Informatik in der Praxis: Wirtschaft und Industrie" 2012 bringt die regionale IT-Wirtschaft mit Masterstudenten der Informatik und Wirtschaftsinformatik durch Zusammenarbeit in konkreten Praxisprojekten direkt zusammen. Das Community Management ITmitte.de organisiert diese Veranstaltung und begleitet sie kommunikativ.
Lassen Sie sich empfehlen zu über 100 IT, Informatik, Software - Jobs, Stellen, Praktika, Ausbildungen in Leipzig, Halle, Jena, Bitterfeld-Wolfen, Leuna, Zeitz, Gera, Zwickau, Plauen, Erfurt und Magdeburg.
2. Praxisbeispiel
NSN
Telekom
T-HOME Ticket-
Interface System
Einsatz-
planung
Oracle SOA
NSN Suite
Services
Dokumentation
SAP R3
Auftragnehmer
Portal
Ringvorlesung ITmitte.de 2
3. Service (Dienst)
Ein Service ist eine IT-Repräsentation einer fachlicher Funktionalität.
Ein Service ist in einem Netzwerk verfügbar.
Ein Service ist plattformunabhängig und die zugrunde liegende
Implementierung ist transparent.
Ringvorlesung ITmitte.de 3
4. Web-Service
Austausch von in XML serialisierten Nachrichten zwischen Services.
Transport-Protokoll ist in der Regel HTTP(S). Die Einbettung der Daten in die
Transport-Schicht wird durch SOAP beschrieben.
Funktionale Servicebeschreibung durch WSDL (1.1 oder 2.0 – unterstützt
semantische Erweiterungen).
Lose Kopplung von Services wird ermöglicht (sync./async., homog./heterog.
Daten-typen, stat./dyn. Bindung, Transaktion/Kompensation).
Ringvorlesung ITmitte.de 4
7. Einführung in WSDL
Die Struktur eines WSDL Dokuments
<definitions>
<types>
data type definitions....
</types>
<message>
definition of the data being communicated....
</message>
<portType>
set of operations and the messages that are involved....
</portType>
<binding>
protocol and data format specification for each port type....
</binding>
</definitions>
Ringvorlesung ITmitte.de 7
9. Binding to SOAP
Ein Beispiel
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
<binding type="glossaryTerms" name=„anyName">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation>
<soap:operation soapAction=„anyURI"/>
<input><soap:body use="literal"/></input>
<output><soap:body use="literal"/></output>
</operation>
</binding>
• Das style Attribut kann die Werte "rpc" oder "document“ besitzen.
• Als Transport Protokoll wird SOAP über HTTP verwendet.
• Für jede veröffentlichte Operation ist eine soapAction zu definieren. Diese wird im HTTP-
Header verwendet.
• Der input / output ist als literal encoded
Ringvorlesung ITmitte.de 9
10. Einführung in SOAP
Die Struktur einer SOAP Nachricht:
<?xml version="1.0"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soapenv:Header>
contains application-specific information like authentication,
transaction, messageID ....
</soapenv:Header>
<soapenv:Body>
....
<soapenv:Fault>
....
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
Ringvorlesung ITmitte.de 10
11. Einführung in SOAP
Eine Beispielnachricht, eingebettet in einen HTTP-Request:
POST http://www.example.de/soa-infra/services/default/terms_ep HTTP/1.1
Content-Type: text/xml; charset=utf-8
Content-Length: nnnn
SOAPAction: "anyURI"
<soapenv:Envelope xmlns:soapenv=" http://www.w3.org/2001/12/soap-envelope">
<soapenv:Header/>
<soapenv:Body>
<M:getTerm xmlns:M="anyURI">
<term>SUN</term>
</M:getTerm>
</soapenv:Body>
</soapenv:Envelope>
und die darauf erfolgte mögliche Antwort:
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: nnnn
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2001/12/soap-envelope">
<soapenv:Header/>
<soapenv:Body>
<M:getTerm xmlns:M="anyURI">
<value>107.0</value>
</M:getTerm>
</soapenv:Body>
</soapenv:Envelope>
Ringvorlesung ITmitte.de 11
12. Web Services Business Process Execution Language
(WS-BPEL)
BPEL ist eine XML-basierte Sprache zur Beschreibung von Geschäftsprozessen
als Workflows.
BPEL ist eine Sprache zur Serviceorchestrierung (Programmieren „im Großen“
- das Spezifizieren der Geschäftslogik im Gegensatz zum Programmieren „im
Kleinen“ - die Implementierung der Geschäftsfunktionen).
Prozesse in BPEL importieren und exportieren Informationen über
Webservices.
Konzeptionell ein Enterprise Service Bus (ESB).
Ringvorlesung ITmitte.de 12
16. Einführung in WS-BPEL
<process name="aBpelProc">
<partnerLinks>
<!–- describes the in- and outbound web services of the process -->
<partnerLink name="inboundPl" partnerLinkType="inPlTypeWsdl" myRole="..."/>
<partnerLink name="outboundPl" partnerLinkType="outPlTypeWsdl" myRole="..."/>
...
</partnerLinks>
<variables>
definition of variables ...
</variables>
<!–- describes the details of the workflow -->
<sequence name="main">
<receive name="receiveInput" partnerLink="inboundPl" portType="..."
operation="..." variable="..." createInstance="yes"/>
...
<assign ... />
...
<switch ...>
<case condition="...">
...
<invoke name=„invokeOutput" partnerLink="outboundPl" portType="..."
operation="..." inputVariable="..."/>
...
</case>
...
</switch>
...
</sequence>
</process>
Ringvorlesung ITmitte.de 16
17. Aktivitäten in BPEL (1.1 / 2.0)
Services
• Invoke (invoke other web services)
• Receive (receive data and begin a new process)
• Reply (respond to an invocation)
Activities
• Assign (assign values to varaibles)
• Compensate (compensate for tasks already executed)
• Empty
• Terminate / Exit (terminate the process)
• Throw (throw an exception)
• Validate (validate variables, only 2.0)
• Wait (stop process execution and wait)
Structured Activities
• Flow (parallel processing)
• ForEach (repeat, only 2.0)
• Pick (pick the branch to execute based on a signal)
• RepeatUntil (conditionally repeat, only 2.0)
•Scope (hide complex activities)
• Sequence (sequence of activities)
• Switch / If (make decisions)
• While (conditionally repeat)
Ringvorlesung ITmitte.de 17