CSE303-Lecture_11

advertisement
Lecture Notes
Lecture 11 – SHARED DATA SOFTWARE ARCHITECTURE
An architecture style (also known as an “architecture pattern”) abstracts the common properties of a
family of similar designs. Define a family of systems in terms of a pattern of its structural organization.
Components Of A Style
The key components of an architecture style are:
• Elements/components that perform functions required by a system
• Connectors that enable communication, coordination, and cooperation among elements
• Constraints that define how elements can be integrated to form the system
• Attributes that describe the advantages and disadvantages of the chosen structure
Categories of Architectural Styles
•
•
•
•
•
•
•
Hierarchal Software Architecture
– Layered
Distributed Software Architecture
– Client Server
– SOA
Data Flow Software Architecture
– Pipe n Filter
– Batch Sequential
Event Based Software Architecture
Data Centered Software Architecture
– Black board
– Shared Repository
Interaction-Oriented Software Architectures
– Model View Controller
Component-Based Software Architecture
DATA CENTERED SOFTWARE ARCHITECTURE:
Data-centered software architecture is characterized by a centralized data store that is shared by all
surrounding software components. The software system is decomposed into two major partitions: data
store and independent software component or agents. The connections between the data module and the
software components are implemented either by explicit method invocation or by implicit method
invocation. In pure data-centered software architecture, the software components don't communicate with
each other directly; instead, all the communication is conducted via the data store. The shared data
module provides all mechanisms for software components to access it, such as insertion, deletion, update,
and retrieval.
There are two categories of data-centered architecture: repository and blackboard. These are
differentiated by the flow control strategy. The data store in the repository architecture is passive, and
clients of the data store are active; that is, clients (software components or agents) control the logic flow.
Clients may access the repository interactively or by a batch transaction request. The repository style is
widely used in database management systems, library information systems, the interface repository (IR)
in CORBA, the UDDI registry for web services, compilers, and Computer Aided Software Engineering
(CASE) environments. A well-known CASE tool is Rational Rose. It supports a graphic editor to draw
UML diagrams, generates various programming code, and provides reverse engineering functionality to
generate graphic diagrams from code. All Interactive Development Environments (IDE), and similar
software development kits are good examples of application domains for the repository architecture. It is
also widely used in complex information management systems where the most important issue is reliable
data management.
The data store in the blackboard architecture option is active, and its clients are passive; thus, the flow of
logic is determined by the current data status in the data store. The clients of a blackboard are called
knowledge sources, listeners, or subscribers. A new data change may trigger events so that the knowledge
sources take actions to respond to these events. These actions may result in new data, which may in turn
change the logic flow; this could happen continuously until a goal is reached. Many applications designed
in the blackboard architecture include knowledge-based AI systems, voice and image recognition
systems, security systems, business resource management systems, etc.
REPOSITORY ARCHITECTURE
The repository architecture style is a data-centered architecture that supports user interaction for data
processing (as opposed to the batch sequential transaction processing discussed earlier). The software
component agents of the data store control the computation and flow of logic of the system.
A Computer Aided Software Engineering (CASE) system is another popular application domain for the
repository software architecture. There are many CASE tools surrounding the data store in figure shown
below. A user of CASE tools can draw a UML design diagram such as a class diagram, collaboration
diagram, or sequence diagram by Booch method, Rumbaugh method, or Jacobson method, and store the
design blueprints in the CASE data store. These UML diagrams can then be converted from one format to
another. Java or C++ skeleton code can also be generated based on these UML diagrams. If there is code
without the original design diagram, the UML diagram can still be regenerated by reverse engineering
tool. There are many other input formats available for design and many output formats, as well.
The biggest advantage of CASE tools is its centralized data with many supporting software tools which
can generate different products for different purposes based on the same set of data.
Applicable domains of repository architecture:
• Suitable for large, complex information systems where many software component clients need to access
them in different ways
• Requires data transactions to drive the control flow of computation
Benefits:
• Data integrity: easy to back up and restore
• System scalability and reusability of agents: easy to add new software components because they do not
have direct communication with each other
• Reduces the overhead of transient data between software components
Limitations:
• Data store reliability and availability are important issues. Centralized repository is vulnerable to failure
compared to distributed repository with data replication.
• High dependency between data structure of data store and its agents. Changes in data structure have
significant impacts on its agents. Data evolution is more difficult and expensive.
• Cost of moving data on network if data is distributed.
Download