1 Stanisław Ambroszkiewicz the leader of enTish team IPI PAN, Polish Academy of Sciences and...

32
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
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    214
  • download

    0

Transcript of 1 Stanisław Ambroszkiewicz the leader of enTish team IPI PAN, Polish Academy of Sciences and...

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.

15

BPEL4WS, WS-Coordination, and WS-

Transaction (cont.)

16

BPEL4WS, WS-Coordination, and WS-Transaction (cont.)

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