GFM3 Orchestration of Web Services Report
Transcript of GFM3 Orchestration of Web Services Report
-
8/2/2019 GFM3 Orchestration of Web Services Report
1/7
ORCHESTRATION OF SERVICE CHAINSGROUP REPORT ASSIGNMENT 3 IN MODULE 8 GFM-3
Submitted By:Federico Jacoba Jr.Jordi Castells
I. Introduction
With today's current technology, Spatial Data Infrastructures (SDIs) providean easy means by which Geographic Information (GI) can be distributed, accessed,and utilized. This is mainly due to the manner in which distributed systems caninteroperate through the implementation of standards and protocols establishedby consortiums like the OGC, ISO, and W3C. A wealth of GI resources are made
available over the web via various interoperable geo-webservices (e.g. WMS, WFS,WCS, WPS, etc.) that are built and designed using the Service Oriented Architecture(SOA). A particular user has numerous options to choose from these availableservices depending on his/her purpose.II. Composite Services
Even with the myriad of resources and services offered by the web, a userwill find it almost impossible to find one web service (WS) that will suit all of his/herneeds. He/she may need WS-1 for one purpose to extract something, then use WS-2 to process the results from WS-1, and thereafter invoke WS-3 to further process
the output of WS2, and so forth. In short, the user needs a chain of services toperform his/her task. Various web services are typically independent, and thereforemust be chained/linked together to maximize the benefits of many different services.As can be gleaned from the above example, it is obvious that no single service canpossibly deliver everything and fully satisfy the users expectations.
Chaining is the process of building application from various individualdistributed services whose sequence is determined in a coordinated manner. Aservice chain is defined as a sequence of services where, for each adjacent pair ofservices, occurrence of the first action is necessary for the occurrence of the secondaction [Percival, 2002]. Capitalizing on the advantages of distributed applicationsarchitecture of SDIs, a limitless combination of numerous services (e.g. WMS, WFS,
WPS, WCS, etc.) can be utilized by a user. More importantly, if these chainedservices would satisfy the requirements of another user, it can be re-used and thuseliminate the need for the other user to start from scratch.III. Orchestration vs. Choreography
There are two ways of combining or chaining services together: orchestrationor choreography [Juric, 2012].
The fundamental difference between the two approaches is that inorchestration, a central entity (the conductor of the orchestra) which is a serviceby itself, controls the participating services [Figure 1; Juric, 2012]. The different web
services involved are unaware (and does not need to be aware) that they are part ofthe orchestra. Only the conductor or coordinator knows that the members (i.e., the
1
-
8/2/2019 GFM3 Orchestration of Web Services Report
2/7
participating services) that they are playing a part in a business process definition.Thus in this setup, the orchestration is centralized through explicit definitions ofoperations and the invocation order of the services [Juric, 2012.]
Figure 1. Composition of Web Services by Orchestration [Adapted fromAlbreshne, 2009]
In contrast, choreography does not require a central orchestrator, with the
participating services aware of which service/s to interoperate with, and when toperform their respective tasks [Figure 2; Peltz, 2003]. Furthermore, choreography isrooted on collaboration and mainly used to exchange messages in public businessprocesses [Albreshne, 2009]. All the participating web services that are involved inthe choreography must be aware of the business process, operations to execute,messages to exchange, as well as the timing of messages [Juric, 2012].
2
-
8/2/2019 GFM3 Orchestration of Web Services Report
3/7
Figure 2. Composition of Web Services by Choreography[Adapted from Peltz, 2003]
Orchestration provides greater efficiency and flexibility in terms of composition
of web services and has the following advantages over choreography [Juric, 2012]:
The coordination of component processes is centrally managed by a
specific coordinator.
Web services can be incorporated without being aware of the fact that
they are taking part in a larger business process.
Alternative scenarios can be put in place in case faults occur.
IV. Standards used in Orchestration
From the previous discussion, it is clear that chains of services are involvedin a process; i.e., an ordered activities that has a start and an end. To control theworkflows of processes, various standards are proposed by different organizationsand consortiums. A couple of these are discussed in this section.
BPEL or BPEL4WS
Business Process Execution Language (For Web Services) is an OASIS1standard. It is based on an XML grammar that defines how an orchestration engine
has to process different web services.
The language provides multiple facilities to orchestrate web services,
processing the resulting data. The following list shows the general functionalities
offered by BPEL4WS and the corresponding XML tags:
Variable definition and modification (, )
Local variables within scopes ()
1 Organization for the Advancement of Structured Information Standards. Is a consortium for e-
business standards.
3
-
8/2/2019 GFM3 Orchestration of Web Services Report
4/7
Structured programming (, , , and )
Batch processing ( tag)
Parallel processing ( tag)
Fault handlers ()
Calling Web Services ()
Different orchestration engines are already implemented to understand
the BPEL4WS language, provide the needed execution environment: ActiveVOS,
BizTalk Server, iBolt and WebSphere are proprietary solutions, while Apache ODE,
OpenESB, OW2 Orchestra and Petals BPEL engine provide the open source
environment.
WSCI
The Web Service Choreography Interface (WSCI) is the XML-based
interface description language described by W3C to control the flow of messages ofchoreographed web services.
4
-
8/2/2019 GFM3 Orchestration of Web Services Report
5/7
VI. Use Case
A simple example is given (showcased in Figure 3), of a basic batch web
services execution controlled by an orchestration engine. The task is to obtain a list
of restaurants along a street and generate a route leading to one of the restaurants,
given a position and a street name.
Figure 3. An example of of Web Service Composition by Orchestration
It is assumed that the three Web Services listed below already exist:
WS1: Geocoding web service (address latitude,longitude)
WS2: Points of Interest given a radius distance (p1,radius List of POI)
WS3: Routing webservice (p1,p2 Vector)
In the above example, the orchestration engine has to execute the web
services sequentially because the result of one web service is the input of the next.
The BPEL4WS code configuration for this example is represented on Figure 4.
Note that some parts of the code contain a [CODE] tag in a comment. This tag is
added so that the reader would know that in between these comments, more codeis needed for it to work correctly. For the sake of simplicity, this code is omitted
and only the basic code to illustrate the example is written. The same holds true
with the parameters of the tag. Ellipses are written in red to represent the missing
parameters.
5
-
8/2/2019 GFM3 Orchestration of Web Services Report
6/7
1.
2.
3.
4.
5.
6.
7. 8.
9.
10.
11.
16.
17.
18.
19. 20.
21.
22.
23.
24.
25.
26.
27.
28.
33.
34.
35.
40.
41.
42.
47.
48.
49.
50.
Figure4.Code Example for Figure 3 Orchestration process
6
-
8/2/2019 GFM3 Orchestration of Web Services Report
7/7
http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.w3.org/TR/wsci/http://www.oracle.com/technetwork/articles/matjaz-bpel1-090575.htmlhttp://www.oracle.com/technetwork/articles/matjaz-bpel1-090575.htmlhttp://www.oracle.com/technetwork/articles/matjaz-bpel1-090575.htmlhttp://www.oracle.com/technetwork/articles/matjaz-bpel1-090575.htmlhttp://www.oracle.com/technetwork/articles/matjaz-bpel1-090575.htmlhttp://www.oracle.com/technetwork/articles/matjaz-bpel1-090575.htmlhttp://www.oracle.com/technetwork/articles/matjaz-bpel1-090575.htmlhttp://www.oracle.com/technetwork/articles/matjaz-bpel1-090575.htmlhttp://www.oracle.com/technetwork/articles/matjaz-bpel1-090575.htmlhttp://www.oracle.com/technetwork/articles/matjaz-bpel1-090575.htmlhttp://www.oracle.com/technetwork/articles/matjaz-bpel1-090575.htmlhttp://www.oracle.com/technetwork/articles/matjaz-bpel1-090575.htmlhttp://www.oracle.com/technetwork/articles/matjaz-bpel1-090575.htmlhttp://www.oracle.com/technetwork/articles/matjaz-bpel1-090575.htmlhttp://www.oracle.com/technetwork/articles/matjaz-bpel1-090575.htmlhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel/ws-bpel.pdfhttp://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.http://diuf.unifr.ch/drupal/softeng/sites/diuf.unifr.ch.drupal.softeng/files/file/publications/internal/WP09-03.pdf.