An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff...
-
Upload
christiana-blackledge -
Category
Documents
-
view
218 -
download
0
Transcript of An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff...
![Page 1: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/1.jpg)
An Extensible Binding Framework for Component-
Based Middleware
By Nikos Parlavantzas, Geoff Coulson, and
Gordon S. Blair
Presented by Erol Koç
Concurrency Seminar 2004
![Page 2: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/2.jpg)
Unpacking the title (1)
• „An Extensible Binding Framework for Component-Based Middleware“– process of associating or interconnecting different
objects– a binding type (BT) is a service description that
supports a particular pattern of interaction between application components
• e.g. RMI, publish/subscribe, message passing and eventing, A/V streaming, ...
![Page 3: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/3.jpg)
Unpacking the title (2)
• „An Extensible Binding Framework for Component-Based Middleware“– components
• reusable deployment units of software– component framework (CF)
• architecture• collection of rules and interfaces that govern the
interaction of a set of components plugged into it• contracts• reusable software architecture with runtime plugins• environment of well defined architectural properties
and invariants for plug-ins
![Page 4: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/4.jpg)
Unpacking the title (3)
A binding framework for component-based middleware is therefore a framework for plug-in binding types
![Page 5: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/5.jpg)
Overview
1. Motivation
2. Architecture
3. Conceptual Binding Model
4. How to add a new BT?
BT specification
The Binding Contract
5. Conclusion
![Page 6: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/6.jpg)
Motivation
• Support– current middleware platforms support only a small,
predefined, set of fundamental binding types• e.g. in CORBA: RMI, media streams, event handling• other possibilities: groups comms, shared spaces, ...
• Integration– different APIs are a lack of integration
• leads to missed opportunities for design and code reuse• increases the cognitive load on middleware users• leads to problems in realising globally-coordinated QoS
across binding types
![Page 7: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/7.jpg)
Overview
1. Motivation
2. Architecture
3. Conceptual Binding Model
4. How to add a new BT?
BT specification
The Binding Contract
5. Conclusion
![Page 8: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/8.jpg)
Architecture
![Page 9: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/9.jpg)
Overview
1. Motivation
2. Architecture
3. Conceptual Binding Model
4. How to add a new BT?
BT specification
The Binding Contract
5. Conclusion
![Page 10: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/10.jpg)
Conceptual Binding Model (1)• bindings between
participants
• responsible for binding establishment
• binder verifies that participants conform to participant roles, defined in the BT specification
• binder invokes appropriate operations on participant components and establishes binding
• return BindingCtl for binding control & management
bindingCtl Bind(list_of_pcps, BT_specific_context_info)Interface:
![Page 11: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/11.jpg)
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 binder‘s side and passed to a resolver
• resolver creates rep using iref, can be passed to binder
• APU = „anonymous participant use“ if binding initiator is not explicitly represented
iref Generate(pcp, BT_specific_context_info)Interface: rep Resolve(iref)Interface:
![Page 12: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/12.jpg)
Conceptual Binding Model (3)
• StdGenerator– special generator implementation– provided by the framework by default– used to marshal arbitrary component references
» e.g. pointers to component instances
– necessary because component model presumes o-o interfaces component references may need to be passed as arguments
• StdResolver– dispatch given iref to the appropriate resolver (based
on the BT identifier from the iref), invoke resolver and return resulting rep
![Page 13: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/13.jpg)
Overview
1. Motivation
2. Architecture
3. Conceptual Binding Model
4. How to add a new BT?
BT specification
The Binding Contract
5. Conclusion
![Page 14: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/14.jpg)
Architecture
![Page 15: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/15.jpg)
Overview
1. Motivation
2. Architecture
3. Conceptual Binding Model
4. How to add a new BT?
BT specification
The Binding Contract
5. Conclusion
![Page 16: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/16.jpg)
Publish/Subscribe Example (1)
![Page 17: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/17.jpg)
Specifying Binding Types (1)
• BT as a set of four `collaborations`– Binding Participation
• describes interaction among binding participants• includes definition of participant roles
» 3 roles: publisher, subscriber, channel» publisher invokes an operation on event interface,
corresponding operation gets invoked on all subscribers» synchronous communication» at most-once semantics
– Iref Generation and Resolution• describes the process of managing irefs
» Channel: iref Generate (event_interface)» Subscriber: iref Generate (subscriber_interface)» use StdResolver to get reps
![Page 18: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/18.jpg)
Specifying Binding Types (2)
• BT as a set of four `collaborations`– Binding Establishment
• describes sequence of actions to set-up a binding» Publisher: apu Bind (rep)» Subscriber: bindingCtl Bind (rep, subscriber)
– Binding Control and Management• describes process of managing an already-
established binding (monitoring, controlling, adding/removing participants, ...)
» via bindingCtl or apu
![Page 19: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/19.jpg)
Publish/Subscribe Example (2)
publisher
subscribers
GetResolverForBT (111) GetResolverForBT (111)
StdResolver
StdResolver.resolve (iref)
GetBinderForBT (rep.getBTid)
binder.bind (rep, QoS)
apu.fireEvent (...)
rep.fireEvent (...)
StdResolver
StdResolver.resolve (iref)
GetBinderForBT (rep.getBTid)
binder.bind (rep, subscriberi, QoS)
bindingCtl
GetResolverForBT (721)
Resolver721 .resolve(iref)
![Page 20: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/20.jpg)
Publish/Subscribe Example (3)
• Implementation of the channel?i. based on simple RMI BT
• channel has manager component for subscribers
ii. multi-party protocol• channel represented as multicast address
iii. enable control of QoS characteristics of event delivery• e.g. via bindingCtl or additional generator interfaces
![Page 21: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/21.jpg)
Overview
1. Motivation
2. Architecture
3. Conceptual Binding Model
4. How to add a new BT?
BT specification
The Binding Contract
5. Conclusion
![Page 22: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/22.jpg)
The BT Contract (1)
• BT implementations– BinderProvider– GeneratorProvider
• supplies implementations for the binder and resolver roles of the BT
• supplies the generator roles
• can be deployed and replaced independently
![Page 23: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/23.jpg)
The BT Contract (2)
• operations for lifecycle management (initialisation and termination)
• BT state– READY
• not used
– ACTIVE• in use reference
counting
– can only be terminated when in READY state
– changes states autonomously
– has to notify BindingCFI about state changes
![Page 24: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/24.jpg)
The BT Contract (3)
• Binding CF implementation1. access point for
BTs2. manage
configurations of BT components
3. provide BT components with access to other BTs and low-level services
![Page 25: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/25.jpg)
The BT Contract (4)
• IBTAccess:• GetBinderForBT• GetResolverForBT• GetGeneratorForB
T
- invokes registry
• Registry:- persistent repository- maps from BT
identifier to BinderProvider and GeneratorProvider
- invokes Installer if not found
• Installer:– download and install
components corresponding to globally unique BT identifier
![Page 26: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/26.jpg)
The BT Contract (5)
• use IBTImplementation to initialise/terminate components
• offer IBTImplementationUse for notifications
• lifecycle management policies with pluggable unloader components- track change and
decide when to remove them
• allow clients to dynamically add, remove, replace and retrieve BinderProvider, GeneratorProvider and unloader components
![Page 27: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/27.jpg)
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 type
• used to provide BT components with access to other BTs and low-level services
interface GetService(service_id, interface_type)
![Page 28: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/28.jpg)
Overview
1. Motivation
2. Architecture
3. Conceptual Binding Model
4. How to add a new BT?
BT specification
The Binding Contract
5. Conclusion
![Page 29: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/29.jpg)
Conclusion
• Interesting 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?
![Page 30: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/30.jpg)
Finish
Thank you!
![Page 31: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/31.jpg)
OpenORB
![Page 32: An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.](https://reader030.fdocuments.us/reader030/viewer/2022032517/56649c985503460f94953eee/html5/thumbnails/32.jpg)