190 likes | 326 Views
This text explains the different types of connectors in system architecture, including procedure call, event, data access, linkage, stream, arbitrator, adaptor, and distributor connectors.
E N D
Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in modeling and analyzing an architecture. As a result, connectors are further classified into eight types: Procedure calls, event, data access, linkage, stream, Arbitrator, Adaptor, and Distributor Connector Types
Procedure Call Connectors: • Model flow of control. (Coordination) • Perform transfer of data via parameters (Communication).
Event Connectors • An event is defined as “...an instantaneous instance (normal or abnormal) termination of the invocation of an operation on an object, which occurs at that object's location” • Flow of Control (Coordination) • Provide communication channels (Communication).
Event Connectors (con't) • Event Connectors establish virtual connectors between components interested in the same event topics. • Rely on notion of time and ordering of actions. • Dimensions such as casuality, atomicity, and sychronicity play a critical role.(!).
Event Connectors (con't) • Example of an event connector in practice: • An Android application ecosystem where one component broadcasts an Intent (Java object containing event data) to several listening Activity objects for processing. • User deactivates Bluetooth while an application that requires it is running. That application's Activity objects are notified so that they may act accordingly.
Data Access Connectors • Allow components to access data maintained by a data store. (Communication). • May need to convert data into a usable format (Conversion). • Data can be stored persistently (SQL database access) or temporarily (accessing cached values).
Linkage Connectors: • Used to tie system components together. • Enable the establishment of ducts used by higher order connectors to enforce interaction semantics (Facilitation). • May disappear once no longer needed, or remain in order to facilitate the system's evolution.
Linkage Connectors (con't) • Linkage connectors have a dimension called “granularity”, which refers to the size of components and level of detail required to establish a linkage: • Unit: specifies that only one component depends on another • Syntactic: establishes links between variables, procedures, functions, constants, and types within the linked components. • Semantic: specifies how the linked components are supposed to interact.
Stream Connectors • Used to perform transfers of large amounts of data (Communication). • Can be combined with other types of connectors. • Examples: Unix pipes, TCP/UDP communication sockets, client-server protocols.
Arbitrator Connectors • When components cannot make assumptions about the needs and state of other components, arbitrator connectors streamline operation and resolve conflicts, and redirect the flow of control (Facilitation and Coordination). • Provide scheduling and load balancing services. • Can ensure system trustworthiness by providing crucial support for dependability in the form of reliability, safety, and security.
Adaptor Connectors • Provide facilities to support interaction between components that have not been designed to interoperate. (Conversion). • Necessary for heterogeneous environments. • Can be used to optimize interactions. • May employ transformations to match required services to available facilities. • Example: Java wrapper/JVM plugin that interfaces with a daemon written in C.
Distributor Connectors • “Distributor connectors perform the identification of interaction paths and subsequent routing of communication and coordination information among components along these paths” (Facilitation). • Never exist by themselves, but provide assistance to other connectors.
Examples of Distributed Connectors • Four examples of distributed connectors that use multiple connector types • Event-Based Data Distribution Connectors • Grid-Based Data Distribution Connectors • Client-Server—Base Data Distribution Connectors • P2P-Based Data Distribution Connectors.
Event-Based Data Distribution Connectors • Compositions of four of the connector types: • Event, data access, stream, and distributor. • Send and receive asynchronous notifications called events. • Events can be prioritized, tailored, and specified by system users. • Data can be accessed, possibly mutated, and packaged into streams using a best-effort approach.
Grid-Based Data Distribution Connectors • Composition of four of the connector types • Procedure call, data access, stream, and distributor. • Invoked via a named, synchronous procedure call. • URLs describe where the data is and who is to receive it. • Access and mutate transient and persistent data • Package data into streams.
Grid-Based Data Distribution Connectors • Data delivered using the grid environment. • Data can be delivered to multiple consumers.
Client-Server—Based Data Distribution Connectors • Composition of four of the connector types • Procedure call, data access, stream, and distributor. • Invoked via remote procedure calls that appear to the client to be local procedure calls. • Method can have return values • Upon invocation, data is accessed, mutated, and packaged into streams. • Data is streamed back using a naming registry to locate the requesting consumer.
P2P-Based Data Distribution Connectors • Composition of four of the connector types: • Arbitrator, data access, stream, and distributor. • Relies on arbitration for synchronization and invocation. • “Arbitration involves control flow redirection between distributed resources, or peers, operating in a networked environment.” • Uses rendezvous as a mechanism to achieve concurrency and scheduling.
P2P-Based Data Distribution Connectors (con't) • Upon invocation, peers engage in accessing transient and persistent data. • Data is accessed and packaged via streams using a best effort bounded mechanism. • Data is obtained by locating other peers with desired pieces of data. • Data Routing is mostly handled by a tracking mechanism.