2. What is a Connector?
A software connector provides one or more of four
general classes of services:
Communication
Coordination
Conversion
Facilitation
3. What is a Stream?
Streams in a software are used to transfer large
amount of data between autonomous processes.
4. What does the stream
connectors do?
Stream connection provides
communication services
of the system to support
transmission of data among
components.
5. What other connector types
which can be connected with
stream?
Data Access Connectors
To provide composite connectors for performing
database and file storage access
Event connectors
To multiplex the delivery of large number of
events
12. Variations of Stream Connector
So many options are available to a software engineer to
construct a stream connector.
Stream can be described according to following
dimensions,
• Cardinality of communication
• Format
• Synchronicity
• Locality
• Identity
• State
• Throughput
• Buffering
• Bounds
• Delivery
13.
14. Variations of Streams According to Their
Dimensions
Cardinality – number of parties involve in communication.
Format – format of data which is carried in the stream.
Synchronicity- whether stream provides synchronicity or not
Locality – scope of communication
Identity – whether the stream-base connector is named or unnamed
15. Variations (ctd…)
State - whether stream maintains communication state or not
Throughput – number of data units transferred in unit time
Bounds - whether the stream-base connector is bounded or
unbounded
Buffering - whether it contains a buffer or not for flow control
Delivery - effort it takes to transfer data
Connector – An architectural component or a mechanism for, assembling functional software components supporting their interactionNecessity – Due to component based architecture
Stream – In day to day language – Flow of fluids in a specific direction between two placesStreams – In software - To transfer large amount of data between autonomous processes
Connectors providing communication services to support transmission of data among components. Data transfer blocks are primary building block of component interaction. Components, routinely pass messages exchange data to be processed communicate results of computations.Streams are also used in client server systems with data transfer protocols to deliver results of computation.
Stream connectors are used to provide, a synchronous remote interaction of structured data among processes.
Java streams
In Unix-like operating systems, a pipeline is the original software pipeline. It is a chain of commands, in which the output from a particular process is fed into the next process as input. Two or more commands connected this way forms a pipe. When a program takes an input and do some processing on that and writes the result into the standard output, it is called a filter. Here all the programs run parallel, even though it can be identified as functional programming, which implies the output from one process is fed as an input to the next.While stdout and stdin writes into the next program, the standard error stream(stderr) is not passed through the pipeline, it is directed to the console by default.
To manage the connection between application layer protocols, TCP and UDP use ports and sockets. The socket connection maintains a consistent port number throughout the connection. They provide a host-to-host communication in the IP communication. This implies two processes are connected to perform a particular task. i.e. two processes communicate via TCP sockets and it provides a process with a full-duplex byte stream connection to another process. In this host-to-host connection, a server process is running on one host while a client process runs in the other.
ADVANTAGES----------------Separate computation from interaction Minimize component interdependencies Support software evolution Potential for supporting dynamism Facilitate heterogeneity Become points of distribution Aid system analysis & testing
This slide shows the overall taxonomy of stream connectors
Cardinality -It can be binary or n-ary. Under n-ary streams there can be stream of multiple senders, multiple receivers, multiple sender/ReceiverFormat- can be structured according to a particular standard. Or it can be just raw data.Synchronicity- some streams may be synchronous and some may be asynchronous.Locality- it can be a local interaction or remote interaction.Identity- named or unnamed
State – stateless or statefulThroughput- atomic units or higher order unitsBounds – bounded or unbounded.Buffering- buffered or unbuffered.Delivery – best effort ,exactly once, at least once, at most once