Orchestration or Contracts… What do we want to do?

16
Orchestration or Contracts… What do we want to do?

Transcript of Orchestration or Contracts… What do we want to do?

Page 1: Orchestration or Contracts… What do we want to do?

Orchestration or Contracts…

What do we want to do?

Page 2: Orchestration or Contracts… What do we want to do?

Implementation

Contract

Implementation

Con

trac

t

Scope?

Domain of GPL’s, e.g. Assembly, C# & BEPL

Domain of Interface and Behavioral Specifications,e.g. WSDL and beyond …

Page 3: Orchestration or Contracts… What do we want to do?

Position

• The ‘contract’ portion of this design space is considerably simpler than a full language but large enough to provide real technical and business value.

• A good, complete development language will want to specify contracts, anyway…

Page 4: Orchestration or Contracts… What do we want to do?

Implementation

Contract

Implementation

Con

trac

t

Conformance

Compatibility

2*Conformance + Compatibility = Correctness

where Correctness = Lock-free + Leak-free

Page 5: Orchestration or Contracts… What do we want to do?

Classic difficulty faced in wiring web service implementations

x

y

y

x

Page 6: Orchestration or Contracts… What do we want to do?

A simplistic example

Published interaction sites, or ports…Closed processes, i.e. processes where all of the interaction sites are

bound are ‘safe’

Page 7: Orchestration or Contracts… What do we want to do?

Classic difficulty faced in wiring web service implementations

x

y

x y

y

x

y x

Says you still need an ‘x’-action to get this thing to work…

Page 8: Orchestration or Contracts… What do we want to do?

Position

• Simple contract-like mechanisms are exhibited in the literature for capturing

– Deadlock-freedom (Kobayashi, 99, 00)

– Liveness (Kobayashi, 01; Yoshida, et al, 02)

– Security (Abadi et al; Cardelli and Gordon; Berger, Honda, Yoshida)

– Resource management (Tofte; Kobayashi; Gordon and Dal Zillio; Yoshida, et al)

• If this WG had a contract language that guaranteed even basic versions of these properties (at the compatibility level) then that would be a significant advance over the state of the art.

• Even if the WG ignores operational data like– Service rate (rate at which messages are served at a port)

– Average uptime

– Etc.

Page 9: Orchestration or Contracts… What do we want to do?

Position

• ‘Contract’ portion of this design space will be called into existence as much by the need to find services that do ‘roughly’ what we need doing.

• This general (and often human) need encompasses the need to verify that an implementation does what a specification requires.

Page 10: Orchestration or Contracts… What do we want to do?

Implementation

Contract

Implementation

Con

trac

t

What happens when there are bazillions of web services?

If the expressiveness of the interface/behavioral specification is below that of a GPL, then these specifications provide the basis of query mechanism for an enhanced discovery service…

Implementation

ContractImplementation

ContractImplementation

ContractImplementation

ContractImplementation

ContractImplementation

Contract

Implementation

Con

trac

t

Implementation

Con

trac

t

Implementation

Con

trac

t

Implementation

Con

trac

t

Plan for success! (This is the W3C, after all…)

Page 11: Orchestration or Contracts… What do we want to do?

Implementation

Contract

Implementation

Con

trac

t

Trust B

oundary

Some other mechanism must provide a measure the reliability of a claim of conformance…

Caveat: Correctness is still a matter of trust!

Page 12: Orchestration or Contracts… What do we want to do?

Position

Web service Implementation

Process

Does roughly what client wants it to do

Bisimulation ‘approximation’

Contract Behaviorial type

This work needs to be carried out using formal basis. To the extent possible, technical design deliberations can and should be a matter of calculation.

Mobile process calculi provide a natural candidate.

Page 13: Orchestration or Contracts… What do we want to do?

What makes process calculi so interesting?

Model Completeness Compositionality Parallelism Resources

Turing Machines Lambda Petri Nets CCS

Page 14: Orchestration or Contracts… What do we want to do?

What are the challenges in using process calculi?

• Process calculi are built using ports; all operations are about (constraints on) port-passing

• To be useful you need to consider operations over more complex data types

• This actually has impact on the semantics of calculi

Page 15: Orchestration or Contracts… What do we want to do?

What are the challenges in using behavioral types?

• Mobility makes decidability hard!

Page 16: Orchestration or Contracts… What do we want to do?

Questions?