Upload
brendan-hensley
View
213
Download
1
Embed Size (px)
Citation preview
Connector Types
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
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.