160 likes | 307 Views
Orchestration or Contracts…. What do we want to do?. Scope?. Implementation. Implementation. Contract. Contract. Domain of Interface and Behavioral Specifications, e.g. WSDL and beyond …. Domain of GPL’s, e.g. Assembly, C# & BEPL. Position.
E N D
Orchestration or Contracts… What do we want to do?
Scope? Implementation Implementation Contract Contract Domain of Interface and Behavioral Specifications, e.g. WSDL and beyond … Domain of GPL’s, e.g. Assembly, C# & BEPL
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…
Compatibility Implementation Implementation Contract Contract Conformance 2*Conformance + Compatibility = Correctness where Correctness = Lock-free + Leak-free
Classic difficulty faced in wiring web service implementations y x x y
Closed processes, i.e. processes where all of the interaction sites are bound are ‘safe’ A simplistic example Published interaction sites, or ports…
x y y x Classic difficulty faced in wiring web service implementations y x x y Says you still need an ‘x’-action to get this thing to work…
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.
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.
Plan for success! (This is the W3C, after all…) Implementation Implementation Implementation Implementation Contract Contract Implementation Implementation Contract Contract Implementation Implementation Contract Contract Implementation Implementation Contract Contract Implementation Contract Contract Implementation Contract Contract 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…
Caveat: Correctness is still a matter of trust! Implementation Implementation Contract Contract Trust Boundary Some other mechanism must provide a measure the reliability of a claim of conformance…
Position 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.
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
What are the challenges in using behavioral types? • Mobility makes decidability hard!