19
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

Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in

Embed Size (px)

Citation preview

Page 1: Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in

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

Page 2: Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in

Procedure Call Connectors:

Model flow of control. (Coordination) Perform transfer of data via parameters

(Communication).

Page 3: Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in

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).

Page 4: Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in

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.(!).

Page 5: Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in

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.

Page 6: Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in

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).

Page 7: Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in

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.

Page 8: Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in

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.

Page 9: Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in

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.

Page 10: Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in

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.

Page 11: Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in

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.

Page 12: Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in

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.

Page 13: Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in

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.

Page 14: Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in

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.

Page 15: Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in

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.

Page 16: Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in

Grid-Based Data Distribution Connectors

Data delivered using the grid environment. Data can be delivered to multiple

consumers.

Page 17: Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in

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.

Page 18: Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in

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.

Page 19: Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in

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.