Uploaded by ab.mh123

Data centered architecture

advertisement
Data centered architecture:
2 types:
1- Repository
2- Blackboard
Repository:
The repository architecture style is a data centered architecture that supports
user interaction for data processing.
Benefits:
• Suitable for large complex information systems where many software
component clients need to access it in different ways.
• Data integrity: easy to backup and restore.
• System scalability and reusability of agents: easy to add new software
components because they do not have direct communication with each
other.
• Reduce the overhead of transient data between software components.
Blackword:
The knowledge is represented in the format of production rules with condition
and action parts.
For each rule, if the condition is true then the action is taken.
The action is to put new conclusion data in the data store, which is the
blackboard.
Benefits:
• Suitable for solving open-ended and complex problems such that artificial
intelligence (AI) problems where no deterministic solutions exist.
• The problem spans multiple disciplines, each of them has complete
different knowledge expertise and problem solving paradigms that cooperation is a must.
• Partial, or approximate solution is acceptable to the problems.
• Exhaustive searching is impossible and impractical since it may take forever
because available knowledge and even data and hypotheses may not
complete or precisely accurate.
Hierarchical architecture:
The software system is decomposed into logical modules (sub-systems) at
different levels in the hierarchy.
Modules at different levels are connected by explicit or implicit method
invocations.
A lower-level module provides services to its adjacent upper level modules, which
invokes the methods or procedures in lower level.
3 types:
-main-subroutine
-master-slave
-layered architectures
main-subroutine:
the data is encapsulated in each individual object so that the information is
protected.
A Data Flow Diagram (DFD) is often used to model the software requirement in
this case, where bubbles or circles represent processing or activities and arrows
represent data flow.
Benefits:
- Easy to decompose the system based on the definition of the tasks in a topdown refinement manner.
- This architecture can still be used in a sub-system of OO Design.
Limitations:
- Globally shared data in classical main-subroutines introduces
vulnerabilities.
- Tight coupling may cause more ripple effects of changes as compared to
OO Design.
Master-Slave:
In this architecture, slaves provide replicated services to the master, and the
master selects a particular result among slaves by certain selection strategy.
Benefits:
It is used for the software system where the reliability is critical.
This is due to the replication (redundancy) of servers
If the master node is deleted then the slave node does not have any reason to stay.
layered architectures:
As its name suggests, in a layered architecture the system is decomposed into a
number of higher and lower layers in a hierarchy, each layer has its own sole
responsibility in the system.
Applicable Design Domains:
• Any system that can be divided between the application specific portions
and platform specific portions which provide generic services to the
application of the system.
• Applications that have clean divisions between core services, critical
services, user interface services, etc.
Benefits:
• Incremental software development based on increasing levels of
abstraction.
• Enhanced independence of upper layer to lower layer since there will be no
impact from the changes of lower layer services as long as their interfaces
remain unchanged.
• Enhanced flexibility: interchangeability and reusability are enhanced due to
the separation of the standard interface and its implementation.
• Component-based technology is a suitable technology to implement the
layered architecture; this makes the system much easier to allow for plugand-play of new components.
• Promotion of portability: each layer can be an abstract machine (see below)
deployed independently.
Lower runtime performance since a client’s request or a response to client must
go through potentially several layers
Many applications cannot fit this architectural design
Exceptions and error handling is an issue in the layered architecture, since faults
in one layer must propagate upwards to all calling layers.
Download