1 / 84

Middleware-layer Connector Synthesis: Beyond State of the Art in Middleware Interoperability

Middleware-layer Connector Synthesis: Beyond State of the Art in Middleware Interoperability. Valérie Issarny, INRIA Joint work with A. Bennaceur, D. Bromberg And colleagues from FP7 ICT FET C ONNECT project. Composing Systems in Today’s Pervasive Networks.

dawn
Download Presentation

Middleware-layer Connector Synthesis: Beyond State of the Art in Middleware Interoperability

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Middleware-layer Connector Synthesis:Beyond State of the Art in Middleware Interoperability Valérie Issarny, INRIA Joint work with A. Bennaceur, D. Bromberg And colleagues from FP7 ICT FET CONNECTproject

  2. Composing Systems inToday’s Pervasive Networks The Simple Yet Challenging Photo Sharing Scenario • Discovery protocol interoperability • Interaction protocol interoperability • Data interoperability • Application interoperability • Interoperability of non-functional properties Anypeeraround? Is it a jpg file? Am I allowed to forwardthosepictures? May I get all the relatedpictures? How may I get the picture? See Lecture by Gordon Blair onInteroperability in Complex Distributed Systems

  3. Mediation to Make Systems Interoperable P2P Photo Sharing C/S-based Producer Mediationthatactually bridges the Application (Differentprotocols for accessing photo files) &Middleware (Different interaction paradigms) Layers See Lecture by Paola Inverardi onApplication-layer Connector Synthesis

  4. Mediation Must Span All Layers Yet Another Scenario: Search & Rescue Operations • Constituent systems heterogeneity in coordination models, communication protocols, data representation models (middleware platforms) • Most common coordination models: client/server, pub/sub, tuple space See Lecture by Nikolaos Georgantas onCONNECT Architecture

  5. Outline • Middleware-based connectors • Formalizing middleware-based connectors • Revisiting interoperability connectors • Emergent connector synthesis • Emergent connector in practice • Conclusion

  6. Middleware-basedConnector HeterogeneousMiddleware SupportingMiddleware Built-in Mediation Discovery &Routing NFPEnforcement See R. N. Taylor et al. Software Architecture: Foundations, Theory & Practice - Wiley

  7. Connecting Systems

  8. ClassifyingConnectionMismatches

  9. Application Mismatches

  10. Middleware Mismatches

  11. MediationConnector

  12. The ManyFacets of Mediation How to makemediationconnectoremergent?

  13. Towards Emergent Connectors • Formalizing middleware-basedconnectors to reason about interoperability • Revisitingexistinginteroperabilityconnectors • Emergent connectorsynthesis

  14. Outline • Middleware-based connectors • Formalizing middleware-based connectors • Revisiting interoperability connectors • Emergent connector synthesis • Emergent connector in practice • Conclusion

  15. Finite State Processes END Predefined process, successfulltermination set S Denotes a set of action labels [i : S] Binds the variable i to a value from S Primitive Processes (P) a -> P Action prefix a -> P | b -> P Choice P;Q Sequential composition P(X =‘ a) Parameterized process: P is described using parameter X and modeled for a particular parameter value, P(a) P/{new_1/old_1, …, new_n/old_n} Relabeling P \{a1, a2, …, an} Hiding P +{a1, a2, …, an} Alphabet extension Composite Processes (||P) P||Q Parallel composition forall [i : 1..n] P(i) Replicator construct: equivalent to the parallel composition a : P Processlabeling

  16. SOAP-based Middleware Connector SOAP Role ClientSOAP= SOAP-RPCCall -> SOAP-RPCReceiveReply -> ClientSOAP Role ServerSOAP= SOAP-RPCReceiveCall -> SOAP-RPCReply -> ServerSOAP GlueSOAP = SOAP-RPCCall -> SOAP-RPCReceiveCall -> GlueSOAP | SOAP-RPCReply -> SOAP-RPCReceiveReply -> GlueSOAP ||ConnectorSOAP= ClientSOAP || GlueSOAP || ServerSOAP See Work by D. Garlanet al. at CMU

  17. Photo Sharing over SOAP - Application - set SOAP_PhotoSharing_Actions = {uploadPhoto, searchPhoto, downloadPhoto, downloadComment, commentPhoto} PhotoSharingConsumer = (req.searchPhoto -> P1), P1 = (req.downloadPhoto ->P1 | req.commentPhoto -> P1) |req.downloadComment -> P1 | terminate -> END). PhotoSharingProducer = (req.uploadPhoto -> PhotoSharingProducer | terminate -> END). PhotoSharingServer= (prov.uploadPhoto -> PhotoSharingServer |prov.searchPhoto -> PhotoSharingServer |prov.downloadPhoto -> PhotoSharingServer |prov.commentPhoto -> PhotoSharingServer |prov.downloadComment -> PhotoSharingServer | terminate -> END).

  18. Photo Sharing over SOAP - SOAP Middleware - ClientSOAP (X =’ op) = (req.[X] -> P1 | terminate -> END), P1 = (SOAP-RPCCall[X] ->SOAP-RPCReceiveReply[X] -> ClientSOAP ). ServerSOAP (X =’ op) = (prov.[X] -> P2 | terminate -> END), P2 = (SOAP-RPCReceiveCall[X] -> SOAP-RPCReply[X] -> ServerSOAP ). GlueSOAP (X =’ op) = (SOAP-RPCCall[X] -> P0 | terminate -> END), P0 = (SOAP-RPCReceiveCall[X] -> SOAP-RPCReply[X] -> SOAP-RPCReceiveReply[X] -> GlueSOAP ).

  19. Photo Sharing over SOAP - Photo Sharing System - ||SOAP_PhotoSharing= (PhotoSharingProducer || PhotoSharingConsumer || PhotoSharingServer || (forall [op:SOAP_PhotoSharing_Actions] ServerSOAP (op)) || (forall [op:SOAP_PhotoSharing_Actions] ClientSOAP (op)) || (forall [op:SOAP_PhotoSharing_Actions] GlueSOAP (op))).

  20. Outline • Middleware-based connectors • Formalizing middleware-based connectors • Revisiting interoperability connectors • Emergent connector synthesis • Emergent connector in practice • Conclusion

  21. Approaches to Interoperability • Solutions applicable to Middleware and Application layers • Software Bridges • InteroperabilityPlatforms • Transparent Interoperability See Lecture by Gordon Blair & Massimo Paolucci onInteroperability in Complex Distributed Systems

  22. Software Bridges E.g.: OrbixCOMet, SOAP2CORBA at middleware-layer Bridge A to B Legacy Middleware A Legacy Application Legacy Application Legacy Middleware B Domain-specific bridges –MSN-Yahoo bridge - at application-layer Peer 3rd Party Peer Peer

  23. Bridge Mediator ||Direct_Bridge_Mediator = (Bridge || T)

  24. BridgingConnector Legacy connectors Role R1i,i in [1..2] = Role R1 of Connectori Role R2i,i in [1..2] = Role R2 of Connectori Gluei,i in [1..2] = Glue of Connectori set Ii,i in [1..2] = Set of events initiated from Role R1i and R2i Bridge = tag1.[e1:I1] -> tag2.[e1] -> Bridge | tag2.[e2:I2] -> tag1.[e2] -> Bridge Adaptation process T = Required transformations of (tagi.ej)s to bridge Connector1 to Connector2 Direct bridge connector ||C-DBridge = R11 || tag1:Glue1 || Bridge || T || tag2:Glue2 ||R22

  25. Indirect Bridge Mediator E.g., ESB solutions (Artix, PetalS, …), Interoperability manager (MUSDAC) Domain-specific J-EAI for interoperableIMs ||Indirect_Bridge_Mediator = (T1 || Bridge1 || Bridge2 || T2)

  26. ESB Connector R1 R2 Bus Role R1bus = Role R1 of Connectorbus Role R2bus = Role R2 of Connectorbus Gluebus = Interactions between Role R1bus and Role R2bus Legacy connectors Role R1 = |i=1..n (a.gluei -> R1i), R1i, i=1..n = (R1i initial specification as given by Connectori) | reset -> R1 Role R2 = |k=1..m (a.glue’k -> R2k), R2k, k=1..m = (R2k initial specification as given by Connector’k) | reset -> R2 Gluei=1..n = Interactions between R1i and R2i Glue’ k=1..m = Interactions between R’1k and R’2k Events set I1i, i=1..n (O1i, i=1..n ) Set of events initiated (observed) from Role R1i set I2k, k=1..m (O2k, k=1..m ) Set of events initiated (observed) from Role R2k

  27. T1 T2 ESB Connector (2) Adaptation process T1= |i=1..n (a.gluei -> ToTi), ToT i=1..n = Required transformations to bridge Connectori to Connectorbus| a.reset -> T1 T2= |k=1..m (b.glue’k -> ToT’k), ToT’k, k=1..m = Required transformations to bridge Connectorbus to Connector’k | b.reset -> T2 Bridgingprocesses Bridge1= |i=1..n (a.gluei -> Bridgei), Bridgei=1..n = [e : I1i] -> a.tagi.[e] -> Bridgei| a.tagi.[e : O1i] -> [e] -> Bridgei | a.reset -> Bridge1 Bridge2 = |k=1..m (b.glue’k -> Bridge’k), Bridge’k=1..m = [e : I2k] -> b.tagk.[e] -> Bridge’k|b.tagk.[e : O2k] -> [e] -> Bridge’k |b.reset -> Bridge2 Indirect bridge connector ||C-IBridge= R1 || T1 ||i=1..na.tagi:Gluei || Bridge1|| Gluebus || Bridge2 ||k=1..mb.tagk:Glue’k || T2 || R2

  28. Software Bridges Assessment • Handcodeddevelopment of bridges (i.e., Process T) • Direct bridgingdoes not scale • Interoperabilitylimited to the behavior of the intermediary in the case of indirect bridging

  29. InteroperabilityPlatforms Interoperability Platform Substituted Middleware Translation Application Legacy Middleware Application Peer E.g.: UIC, ReMMoC at middleware-layer Domain-specificplatform – IM Pidgin, Adium - at application-layer Peer

  30. InteroperabilityMediator ||Interoperability_Mediator = (Switch || Bridge || T)

  31. InteroperabilityConnector (1) Proprietary interface Role Rinterface= Bridge interface Role R2= |i=1..n (gluei -> R2i), R2i,i in [1..n] = Inititial spec of Role R2 of Connectori | reset -> R2 Gluei,i in [1..n] = Glue of Connectori Initiated and observed events set I2 (O2)i,i in [1..n] = Set of events initiated (observed) from Role R2i set I (O) interface = Set of events initiated (observed) from Role Rinterface Switch process Switch = (election -> reset -> Switch |i=1..n election -> gluei-> Switch)\{election}

  32. InteroperabilityConnector (2) Adaptation process T = |i=1..n (gluei -> ToTi), ToT i=1..n = Required transformations to bridge Rinterface to Connectori| reset -> T Bridging process Bridge = |i=1..n (gluei -> Bridgei), Bridgei, i in [1..n] = [e : Rinterface] -> tagi:[e] -> Bridgei | tagi:[e:Ointerface] -> [e]-> Bridgei | [e : I2i] -> tagi:[e] -> Bridgei | tagi.[e:O2i] -> [e]-> Bridgei | reset -> Bridge Interoperability platform connector ||C-InteropPlatforms = Rinterface || Switch || T || Bridge ||i=1..ntagi:Gluei || R2

  33. Interoperability Platform Assessment • Proprietary interface and behavior

  34. Transparent Interoperability Legacy Application Legacy Application Legacy Middleware Translation to Intermediary Translation to Intermediary Legacy Middleware Peer 3rd Party Peer Peer E.g.: INDISS, ubiSOAP at middleware layer Domain-specificinteroperability – IM CrossTalk – at application layer 39

  35. Transparent Mediator ||Transparent_Mediator = (Switch || W1 || M1 || Bridge1 || Bridge2 || M2 || W2 || Switch’)

  36. Transparent InteroperabilityConnector (1) Legacy connectors Role R1= |i=1..n (a.gluei -> R1i), R1i,i in [1..n] = Inititial spec of Role R1i of Connectori | reset -> R1 Role R2= |k=1..m (b.gluek -> R2k), R2k,k in [1..m] = Inititial spec of Role R2 of Connector’k | reset -> R2 Gluei,i in [1..n] = Interactions between R1i and R2i Glue’k,k in [1..m] = Interactions between R’1k and R’2k Initiated and observed events set I2 (O2)i,i in [1..n] = Set of events initiated (observed) from Role R1i set I2 (O2)k, k in [1..m] = Set of events initiated (observed) from Role R’2k set Ei, i in [1..n](Ek, k in [1..m]) = aR1i ∩ aGluei(aR2k ∩ aGlue’k) Set S E1n (S E2m)= Ui=1..n E1i (Uk=1..m E2k) Set S O1n (S O2m)= Ui=1..n O1i (Uk=1..m O2k)

  37. TransparentInteroperabilityConnector (2) Switch processes Switch = (a.election -> a.reset -> Switch |i=1..na.election -> a.gluei-> Switch)\{a.election} Switch’ = (b.election->b.reset->Switch’ |k=1..mb.election ->b.glue’k->Switch’)\{b.election} Image protocol generation W1 = |i=1..n (a.gluei -> ToGluei), ToGluei=1..n = [e : I1i]->a.tagi:[e]->ToGluei | a.tagi:[e:O1i] -> [e]-> ToGluei| a.reset -> W1 W2 = |k=1..m (b.glue’k -> ToGlue’k), ToGlue’k=1..m = [e : I2k->b.tagk:[e]->ToGlue’k | b.tagk:[e:O2k]-> [e]->ToGlue’k| b.reset->W2 M1 = |i=1..n (a.gluei -> ToMapi), ToMapi=1..n = a.tagi.[e : I1i]->a.tagi.f(e)->ToMapi | a.tagi.f(e:SO1n) -> a.tagi.[e : O1i]-> -> ToMapi| a.reset -> M1 M2 = |k=1..m (b.glue’k -> ToMap’k), ToMap’k=1..m = b.tagk.[e : I2k]->b.tagk.f(e)->ToMap’k | b.tagk.f(e:SO2m) -> b.tagk.[e : O2k]-> -> ToMap’k| b.reset -> M2

  38. TransparentInteroperabilityConnector (3) Bridging process Bridge1= |i=1..n (a.gluei -> ToBridgei), ToBridgei, i in [1..n] = a.tagi.f(e2:SE2m) -> f(e2) -> ToBridgei | f(e1:SE1n) -> a.tagi.f(e2) -> ToBridgei | a.reset -> Bridge1 Bridge2= |k=1..m (b.glue’k -> ToBridge’k), ToBridge’k, k in [1..m] = b.tagk.f(e1:SE1n) -> f(e1) -> ToBridge’k | f(e2:SE2m) -> b.tagk.f(e2) -> ToBridge’k | b.reset -> Bridge2 Transparent interoperability connector ||C-Transparent_Interop = R1 || Switch ||i=1..na.tagi:Gluei/{f(r:aGluei)/[r]} || W1 || M1 || Bridge1 || M2 || W2 ||k=1..mb.tagk:Gluek/{f(r:aGlue’k)/[r]} || Switch’ || R2

  39. Transparent InteroperabilityAssessment • Addressesinteroperability at a single layer • Projection functionf to begiven, makingitsimilar to indirect bridgingalthoughwith (design-time) adaptive buses • Does not account for the heterogeneity of interaction paradigms

  40. Outline • Middleware-based connectors • Formalizing middleware-based connectors • Revisiting interoperability connectors • Emergent connector synthesis • Emergent connector in practice • Conclusion

  41. The CONNECT Approach to Interoperability: Emergent Middleware • Synthesize CONNECTors between heterogeneous Networked Systems (NS) • Generate middleware and application protocols to create connections that will overcome the interoperability barrier • CONNECTors devised and created at Run Time • Minimal a priori knowledge/ assumptions NS CONNECTor NS « Mediation » connectoraka Emergent middleware See Lecture by Nikolaos Georgantas & Paul Grace onThe CONNECT Architecture 46

  42. Meeting in the Heterogeneous World Networked systems meet according to matching “Affordances” Photo sharing using SOAP Photo sharing Photo sharing using LIME Photo sharing P Q • OSOAP • OLime “Affordance” behaviour is characterized by its protocol and related ontologyfrom application down to middleware layer “Affordance” behaviour is characterized by its protocol and related ontology OPhoto OPhoto

  43. Networked System Model forOn-the-flyConnection • Interface definitionleveragingSemantic Web service technologies • Affordance akaCapability <Type, Concept, Inputs, Outputs> • Interface signature • Action defined as <Mdw, Application, I, O> • Affordance behavior

  44. P2P Photo Sharing Interface Interfacephoto_sharing = { < Out, PhotoMetadata, , < photoMetadata >>, < Out, PhotoFile, , < photoFile >>, < Rdg, PhotoMetadata,< photoMetadata >, < photoMetadataList >>, < Rd, PhotoFile, < photoID >, < photoFile >>, < Rd, PhotoComment, < photoID >, < photoComment >>, < Out, PhotoComment, , < photoComment >>, < In, PhotoComment, < photoID >, < photoComment >>, < Rd, PhotoComment, < photoID >, < photoComment >> }

  45. P2P Photo Sharing Protocol Application Layer set Lime_PhotoSharing_Actions = {photoMetadata, photoFile, photoComment} PhotoSharingPeer = (req.photoMetadata -> Consumer | prov.photoMetadata -> Producer), Producer = (prov.photoFile -> PhotoSharingPeer), Consumer = (req.photoFile ->Consumer | req.photoComment -> Consumer | prov.photoComment -> Consumer | req.photoFile -> PhotoSharingPeer | req.photoComment -> PhotoSharingPeer | prov.photoComment -> PhotoSharingPeer | terminate -> END)

  46. P2P Photo Sharing ProtocolMiddleware Layer Lime_Reader(X =‘ tuple) = (req.[X] -> P1), P1 = (rd[X] -> Lime_Reader | rdp[X] -> Lime_Reader | rdg[X] -> Lime_Reader | in[X] -> Lime_Reader | inp[X] -> Lime_Reader | ing[X] -> Lime_Reader | terminate -> END). Lime_Writer(X =‘ tuple) = (prov.[X] -> P2), P2 = (out[X] -> Lime_Writer | outp[X] -> Lime_Writer | outg[X] -> Lime_Writer | terminate -> END). Lime_glue(X =‘ tuple) = (write[X] -> P0 | outp[X] -> P0 | outg[X] ->P0 | terminate -> END), P0 = (rd[X] -> P0 | rdp[X] -> P0 | rdg[X] -> P0 | in[X] -> Lime_glue | inp[X] -> Lime_glue | ing[X] -> Lime_glue).

  47. P2P Photo Sharing ProtocolPhoto Sharing System constNumberOfPeers= 2 ||Lime_PhotoSharing= ( [i : 1..NumberOfPeers]:PhotoSharingPeer || (forall [tuple:Lime_PhotoSharing_Actions] Lime_Writer(tuple)) || (forall [tuple:Lime_PhotoSharing_Actions] Lime_Reader(tuple)) || (forall [tuple:Lime_PhotoSharing_Actions] Lime_glue(tuple))).

  48. Talking the SameLanguageThe Key Role of Ontology • Aligned • Ontology • OPhoto P Q • OSOAP • OLime • OMW • OPhoto • OPhoto • Translation • OMW • OMW • Behavioral • matchmaking? OPhoto OPhoto P’ Q’ • Translated • Protocols • Interoperate?

  49. The Photo Sharing Ontology Classifiedaccording to subsumption relationships

  50. Reasoning about MediatedMatching Equivalence of LTS traces as the basis Behavioralmatchmakingunder:mapping of semantic-based actions Leveraging the rich SOTA on protocol conversion/mediation But must account for application-layer interactions using middleware See Lecture by Paola Inverardi onApplication-layer Connector Synthesis

More Related