Post on 19-Dec-2015
1
Stanisław Ambroszkiewicz the leader of enTish team
IPI PAN, Polish Academy of Sciences
and Institute of Informatics, University of Podlasie
Project supported by a KBN project and Agentcities.NET - a IST project
Entish: e-Lingua for service
description and composition
xii.2002
2
Distributed systems middleware
Service-Oriented Architecture (SOA) provides a standard programming model that allows software
components, residing on any network, to be published, discovered, and invoked by each other as services. There are essentially three components of SOA: Service Provider, Service Requester (or Client), and Service Registry. The provider hosts the service and controls access to it, and is responsible for publishing a description of its service to a service registry. The requester (client) is a software component in search of a component to invoke in order to realize a task. The service registry is a central repository that
facilitates service discovery by the requesters. Web services are supposed to realize the SOA in a
global networked environment.
3
Service-Oriented Architecture middleware
SOA
clientsclients servicesservices
Invocation, composition
Service Service registryregistry
discovery publication
middleware
Service requestor Service provider
4
Web services an idea to be realized
IBM’s def.:IBM’s def.: Web services Web services are self-contained, self - describing, modular applications that can be published, located, and invoked across the Web. Web services perform functions that can be anything from simple requests to complicated business processes ... Once a Web service is deployed, other applications (and other Web services) can discover and invoke the deployed service (in an automatic way!).
From service providers’ point of view, if they can setup a web site they can join global community. From a client's point of view, if you can click, you can access services.
5
Web service integration
the background
Ethernet (CSMA/CD) -- >> simple and ubiquitous LAN Internet (TCP/IP)
-->> simple and ubiquitous global networking WWW (URL / HTML /HTTP)
-->> simple and ubiquitous access to data Web services (a magic protocol)
-->> simple and ubiquitous access to applications
GUI, APIGUI, API(applications)(applications)
Web servicesWeb services(applications)(applications)for automatic service
discovery, invocation, and composition
a magic protocol
6
Industrial standards Web service integration - IBM, Microsoft, BEA
SOAP+WSDL+UDDI+BPEL are positioned as standards for web services
applicationsapplications Web servicesWeb services(applications)(applications)
Invocation, composition???BPEL4WS, WS-Coordination,
WS-Transaction, ...
UDDIUDDIregistryregistry
discovery publication
WSDLWeb Service Description
Language
7
Abstract architecture for implementation
task, input resources
and the final result
You can define your own data type, functions, relations; i.e., you own ontology
You can join applications
via API
8
Abstract architecture for implementation
task, input resources
and the final result
You can define your own data type, functions, relations; i.e., you own ontology
You can join applications
via API
9
Service architecture for implementation
communication layer, functionality layer, and executive (database management) layer. The functionality layer has exactly two interrelated components: raw application (Function), and so called filter associated with the raw application. Raw application implements a single operation, i.e., given input resources, it produces the output resource according to the operation specification. Given a specification of the desired output, the Filter replies with properties that must be satisfied by the input in order to produce the desired output by the raw application
10
Protocol stack for networked services:
our proposal
Communication Contents Language: Entish
Service composition protocol: entish 1.0
Universal transport: e.g., SOAP+HTTP
Internet (TCP/IP)
Service architecture
11
•What do we propose?
•Language and protocol – nothing but specifications
•To prove it does works, also the prototype implementation
•The current status of the enTish project:
•XML-spec. of language and composition protocol already completed (version 1.0)
•The prototype already implemented and ready for use and evaluation at http://www.ipipan.waw.pl/mas/
•Near future:
• …
12
WSDL
Web Services Activity of W3C
WSDL + SOAP may be considered as a universal RPC for application that process XML data.
SOAP is a transport protocol based on XML message format;
WSDL is a IDL for XML data types; wsdl description is generated from code
13
UDDI
yellow pages - - success or failure?
UDDI provides a registry of businesses and web services.
a UDDI service description consists of physical attributes such as name and address augmented by a collection of tModels, which describe additional features such as, for example, reference to WSDL document describing the service interface, and the classification of the service within some fixed taxonomies.
“more than 66.6% of UDDI entries are empty, not valid, etc.” quoted from http://www.webservicesarchitect.com/content/articles/modi01.asp
14
BPEL4WS, WS-Coordination, and WS-Transaction (August 2002)
Composed services are modeled as directed graphs where the nodes are services and the edges represent a dependency link from one service to another.
Canonical programmatic constructs like SWITCH, WHILE and PICK allow to direct an execution's path through the graph.
BPEL was released along with two others specs: WS-Coordination and WS-Transaction. WS-Coordination describes how services can make use of pre-
defined coordination contexts to subscribe to a particular role in a collaborative activity.
17
DAML-San academic project supported by DARPA
DAML-S is a DAML+OIL ontology for describing Web Services. It aims to make Web services computer-interpretable -- described with sufficient
information to enable *automated* Web service discovery, invocation, composition and execution monitoring.
The DAML-S Ontology comprises: ServiceProfile - This is like the yellow page entry for a service. It relates and
builds upon the type of content in UDDI, describing properties of a servicenecessary for automatic discovery, such as what the services offers, and its inputs,outputs, and its side-effects (preconditions and effects)..
ServiceModel - Describes the service's process model (the control flow and data-flow involved in using the service). It is designed to enable automated composition and execution of services.
ServiceGrounding - Connects the process model description to communication-level protocols and message descriptions in WSDL
The main limitation of DAML+OIL is its lack of a definition of well formed formulae and an associated theorem prover. So that there is a problem with expressing (as formulas) preconditions, effects, and output – input constrains.
18
Requirements for networked services
The term “web services” is reserved for WSDL+… and DAML-S.
Let’s use the term “networked services” What are networked services?
Applications that are describable, locatable, invocable, can negotiate coordination, composable, can implement transactions, etc. …
Service description Only IDL interface, i.e., spec. of the input – output
types ? Also what the service does (i.e., the abstract function it
implements), constrains on input – output resources, etc. …
19
Requirements for networked services (cont.)
RPC-style versus messaging Only raw applications, i.e. only objects + methods
available by universal RPC ? Applications can also speak a common language to
arrange coordination and transactions
Agents versus services agents are clients services supply applications
What is the client? “how to do” versus “what to do” a programmer writing code in BPEL or DAML-S ? a user creates task in a declarative language and
delegates the task to an agent to realize.
20
Language and protocol Don't ask what it means, but rather how it is used.
- L. Wittgenstein
Language Entish – XML syntax, 0.5 order logic language; no
quantifiers, describes only static relations between agents, services, functions the services implement, and resources; no actions, fully declarative language
Ability to express agent / service mental attributes: intentions, goals, commitments as atomic formulas.
Protocol entish 1.0 Specifies message exchange order Message format is defined in XML Realizes service invocation and composition
supporting 2PC transactions
21
Language syntax
XML-syntax: formula.xsd definition.xsd properEntish.xml --> an instance of
definitions.xsd info.xsd --> evaluated Entish formula
22
resources - data (e-documents) collected in types, e.g., Typ1, Typ2, ...
services - applications where the resources are stored and processed: type of operation performed by the service:
precondition formInOperationTypepostcondition formOutOperationType
functions implemented by operations, e.g., f; parameter a is of type Typ1, the term f( a ) is of type Typ2
Language: What do we want to describe?
23
tasks specify what is to be processed, how and when, and where the result is to be stored: when - timeout: timeout( date ), i.e.,
the current GMT time is before the date where - relation: isIn( res, service ) ,
i.e, a resource res is in service service
Language: What do we want to describe?
24
task example:
“resource res1 is processed by function
f and the result is stored in service
ser1 by the time date1”
formally:
isIn( f( res1 ), ser1 ) and timeout( date1 )
Language: What do we want to describe?
25
Service attributes:
The type of operation the service performs is represented as a pair of atomic formulas:
• formInOperationType( service ) • formOutOperationType( service )
Language: What do we want to describe?
26
Agent is a process dedicated to a
single task realization
Agent attribute(s): intentions( agent ) is an atomic
formula
Language: What do we want to describe?
27
Terms are constructed in the standard way
Composite formulas are constructed using only conjunction, disjunction and implication; no quantifiers and no negation!
Language: Term and formula construction
28
Composition protocol version 1.0
message.xsd --> message types (orders)
state.xsd --> schema for agent’s state and service’s state
…entish1.specs
composition …
29
Service description: unique name and communication address -
URI, e.g., service name = soap://ipipan.waw.pl:8080/my_service
operation type: the pair of formulas formInOperationType( name )formOutOperationType( name )
the service is invoked if formIn is satisfied
formOut describes the result of operation performed by the service
Our idea of service integration: Service description
30
Six steps of service invocation:1. agent sends to the service: “my
intention is φ”φ --> intentions( agent )
2. service responds: ”I commit to realize φ if ψ is satisfied”ψ --> formInCommitments( service ) andformOutCommitments( service ) --> φ
3. ψ is satisfied 4. operation is performed by the service5. φ is satisfied6. service sends confirmation to the agent
Our idea of service integration:
Service invocation protocol
31
Composition of two services (service0 and service1) is arranged by the agent in the following way.
The agent arranges the realization of its first intention φ0, with the service0 .
Service agrees to realize this intention conditionally, i.e., if the formula φ1 is satisfied.
Then, the agent puts the formula φ1 as its current intention, and looks for another service that could realize this intention.
Suppose that the agent got to know that the service1 could realize its current intention φ1 .
Continued on the next slide
Idea of service integration: Service composition protocol
32
The agent starts conversation with the service1 by sending the message: "my intention is φ1 " .
Once the service1 agrees to realize this intention, the operations of the service0 and the service1 are composed, and form a part of a workflow the agent must construct in order to realize its task.
Recall that the agent task and its first intention is of the form:
φ0= isIn( g(f( res0 )), GUI ) and timeout( date0 )
f is implemented by service0 , g is implemented by service1
the service composition corresponds to the abstract function composition
Our idea of service integration:
Service composition protocol