70 likes | 197 Views
CCA Distributed Framework Interoperability. Goals. Assume you have two (or more) framework instances. Assume it contains a network of component instances How do I link in a component instance living in a remote, perhaps different framework?. Framework 2. Framework 1. The first steps.
E N D
Goals • Assume you have two (or more) framework instances. • Assume it contains a network of component instances • How do I link in a component instance living in a remote, perhaps different framework? Framework 2 Framework 1
The first steps • Restrict to the case of non-parallel components • NxM problem solution will need to be discovered • Temporary solution for parallel components • Use a flux capacitor
Requires 5 Things • A standard communication protocol for remote procedure calls on port methods • A standard way to describe port interfaces and a standard way to bind this to the communication protocol • A standard way to describe a remote reference to a provides port. • An extension to the CCA spec for the framework that allows a way to resolve (component Id, portnames) into remote references to a port • A remote API for the connection service
Standard Communication Protocol • Propose “Proteus” - multi-protocol architecture • Supports SOAP for Web service integration • Fast binary for moving array data. • IIOP • For remote reference - use Web Service Description Language. • Contains • Port interface description • The URL for the remote object • A description of the binding of the port to the protocol to talk to it. • Represented as an XML string
Representation of Port Interfaces • SIDL • We will describe a mapping of SIDL into WSDL. • SIDL-Babel & PIDL compiler can be used to generate WSDL and remote stubs and skeletons. • Lots of this middleware code can be reused in all frameworks.
External Interface to Framework • Extend the builder service slightly • RemoteReference getPort(ComponentID, portname) • Void connectPort(CompID, portname, remoteProvidesPortRef) • … • Provide an External Port interface to the extended builder service Framework core builder service getPort(Comp1, portX) RemoteRef