An Extensible Binding Framework for Component-Based Middleware

  • Published on
    03-Jan-2016

  • View
    16

  • Download
    0

DESCRIPTION

Concurrency Seminar 2004. An Extensible Binding Framework for Component-Based Middleware. By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Ko. Unpacking the title (1). An Extensible Binding Framework for Component-Based Middleware - PowerPoint PPT Presentation

Transcript

  • An Extensible Binding Framework for Component-Based MiddlewareBy Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair

    Presented by Erol KoConcurrency Seminar 2004

  • Unpacking the title (1)An Extensible Binding Framework for Component-Based Middlewareprocess of associating or interconnecting different objectsa binding type (BT) is a service description that supports a particular pattern of interaction between application componentse.g. RMI, publish/subscribe, message passing and eventing, A/V streaming, ...

  • Unpacking the title (2)An Extensible Binding Framework for Component-Based Middlewarecomponents reusable deployment units of softwarecomponent framework (CF)architecturecollection of rules and interfaces that govern the interaction of a set of components plugged into itcontractsreusable software architecture with runtime pluginsenvironment of well defined architectural properties and invariants for plug-ins

  • Unpacking the title (3)

    A binding framework for component-based middleware is therefore a framework for plug-in binding types

  • OverviewMotivationArchitectureConceptual Binding ModelHow to add a new BT?BT specificationThe Binding ContractConclusion

  • MotivationSupportcurrent middleware platforms support only a small, predefined, set of fundamental binding typese.g. in CORBA: RMI, media streams, event handlingother possibilities: groups comms, shared spaces, ...Integrationdifferent APIs are a lack of integrationleads to missed opportunities for design and code reuseincreases the cognitive load on middleware usersleads to problems in realising globally-coordinated QoS across binding types

  • OverviewMotivationArchitectureConceptual Binding ModelHow to add a new BT?BT specificationThe Binding ContractConclusion

  • Architecture

  • OverviewMotivationArchitectureConceptual Binding ModelHow to add a new BT?BT specificationThe Binding ContractConclusion

  • Conceptual Binding Model (1)bindings between participantsresponsible for binding establishmentbinder verifies that participants conform to participant roles, defined in the BT specificationbinder invokes appropriate operations on participant components and establishes bindingreturn BindingCtl for binding control & management

    bindingCtl Bind(list_of_pcps, BT_specific_context_info)Interface:

  • Conceptual Binding Model (2)remote participants are represented as reps (remote participant representatives)generator creates a iref (value that can be passed around)iref is transferred to binders side and passed to a resolverresolver creates rep using iref, can be passed to binderAPU = anonymous participant use if binding initiator is not explicitly representediref Generate(pcp, BT_specific_context_info)Interface:rep Resolve(iref)Interface:

  • Conceptual Binding Model (3)StdGeneratorspecial generator implementationprovided by the framework by defaultused to marshal arbitrary component referencese.g. pointers to component instancesnecessary because component model presumes o-o interfaces component references may need to be passed as argumentsStdResolverdispatch given iref to the appropriate resolver (based on the BT identifier from the iref), invoke resolver and return resulting rep

  • OverviewMotivationArchitectureConceptual Binding ModelHow to add a new BT?BT specificationThe Binding ContractConclusion

  • Architecture

  • OverviewMotivationArchitectureConceptual Binding ModelHow to add a new BT?BT specificationThe Binding ContractConclusion

  • Publish/Subscribe Example (1)

  • Specifying Binding Types (1)BT as a set of four `collaborations`Binding Participationdescribes interaction among binding participantsincludes definition of participant roles3 roles: publisher, subscriber, channelpublisher invokes an operation on event interface, corresponding operation gets invoked on all subscriberssynchronous communicationat most-once semanticsIref Generation and Resolutiondescribes the process of managing irefsChannel: iref Generate (event_interface)Subscriber: iref Generate (subscriber_interface)use StdResolver to get reps

  • Specifying Binding Types (2)BT as a set of four `collaborations`Binding Establishmentdescribes sequence of actions to set-up a bindingPublisher: apu Bind (rep)Subscriber: bindingCtl Bind (rep, subscriber)Binding Control and Managementdescribes process of managing an already-established binding (monitoring, controlling, adding/removing participants, ...)via bindingCtl or apu

  • Publish/Subscribe Example (2)publishersubscribersGetResolverForBT (111)GetResolverForBT (111)StdResolverStdResolver.resolve (iref)

    GetBinderForBT (rep.getBTid)

    binder.bind (rep, QoS)

    apu.fireEvent (...)rep.fireEvent (...)StdResolverStdResolver.resolve (iref)

    GetBinderForBT (rep.getBTid)

    binder.bind (rep, subscriberi, QoS)

    bindingCtlGetResolverForBT (721)Resolver721.resolve(iref)

  • Publish/Subscribe Example (3)Implementation of the channel?based on simple RMI BTchannel has manager component for subscribers

    multi-party protocolchannel represented as multicast address

    enable control of QoS characteristics of event deliverye.g. via bindingCtl or additional generator interfaces

  • OverviewMotivationArchitectureConceptual Binding ModelHow to add a new BT?BT specificationThe Binding ContractConclusion

  • The BT Contract (1)BT implementationsBinderProviderGeneratorProvidersupplies implementations for the binder and resolver roles of the BTsupplies the generator rolescan be deployed and replaced independently

  • The BT Contract (2)operations for lifecycle management (initialisation and termination)BT stateREADYnot usedACTIVEin use reference countingcan only be terminated when in READY statechanges states autonomouslyhas to notify BindingCFI about state changes

  • The BT Contract (3)Binding CF implementationaccess point for BTsmanage configurations of BT componentsprovide BT components with access to other BTs and low-level services

  • The BT Contract (4)IBTAccess:GetBinderForBTGetResolverForBTGetGeneratorForBT- invokes registryRegistry:persistent repositorymaps from BT identifier to BinderProvider and GeneratorProviderinvokes Installer if not foundInstaller:download and install components corresponding to globally unique BT identifier

  • The BT Contract (5)use IBTImplementation to initialise/terminate componentsoffer IBTImplementationUse for notificationslifecycle management policies with pluggable unloader componentstrack change and decide when to remove themallow clients to dynamically add, remove, replace and retrieve BinderProvider, GeneratorProvider and unloader components

  • The BT Contract (6)IBTServices defines an operation GetService() which receives as an input a service identifier and an interface type and return an interface of the requested typeused to provide BT components with access to other BTs and low-level servicesinterface GetService(service_id, interface_type)

  • OverviewMotivationArchitectureConceptual Binding ModelHow to add a new BT?BT specificationThe Binding ContractConclusion

  • ConclusionInteresting approach, but some aspects are still open:Where to get the irefs from?Who does specify the format of irefs?Who assigns the BTids?Who manages the BTids?What about QoS negotiations?Protections from `bad` BTs?

  • Finish

    Thank you!

  • OpenORB

Recommended

View more >