Sda Final
Sda Final
Heterogeneous Architectures
Purpose: Leverages the strengths of different styles to meet complex project requirements.
Example: Operating systems (e.g., Mac OS, Windows) often use layered architectures for
high stability. A failure in one layer does not affect others.
The goal is to trade off competing needs for an "optimal" architecture rather than excelling in
just one area.
1. Outline Project Details: Define requirements, constraints, and desired quality attributes.
3. Propose Architectural Patterns: Suggest possible styles that align with the project goals.
5. Evaluate Quality Attributes: Measure how well the architecture meets performance,
reliability, and other attributes.
Refinement
1. Extending deadlines.
2. Increasing budgets.
Quality Attributes
Definition
Non-functional characteristics of the system that must be determined before the detailed
design phase.
1. Efficiency:
2. Functionality:
3. Maintainability:
4. Portability:
5. Reliability:
6. Usability:
Quantitative Evaluation
Qualitative Evaluation
1. Assign weights to each attribute based on its importance (e.g., performance = 50%, cost =
20%).
1. Choose an Architecture Style: Select a style like Pipe-Filter or Layered based on project
needs.
Styles are evaluated based on how well they meet various quality attributes.
Ratings:
o +: Good.
o -: Poor.
Scenarios:
3. Algorithm Changes:
Both designs require updates, but strategy patterns can optimize the
process.
Conclusion
LECTURE # 20
Middleware Architectures
Definition
Middleware acts as the "plumbing or wiring" of software applications.
Facilitates communication between software components.
Purpose
1. Enables data exchange between components.
2. Supports various connection types: one-to-one, one-to-many, many-to-many.
Key Traits
Invisible to end-users unless a failure occurs.
General and configurable for diverse applications.
Technology Classification
Middleware technologies vary based on application domains:
1. Transport Layer: Simple data exchange mechanisms, like pipes.
2. Application Servers: Multi-threaded servers providing transactions, security, and
directory services.
3. Message Brokers: Focused on message transformation and routing.
4. Business Process Orchestrators: Manage workflows and long-term processes,
including human tasks.
Distributed Objects
Overview
Based on CORBA (Common Object Request Broker Architecture).
Enables communication between object-oriented systems across networks.
Key Components
1. Object Request Broker (ORB):
o Handles communication between client and server objects.
o Abstracts network details for location transparency.
2. Interface Definition Language (IDL):
o Defines interfaces for platform and language independence.
3. Client:
o Initiates requests to server objects.
4. Server (Servant):
o Implements the actual business logic.
Interaction Process
1. Client makes a request through a local stub.
2. ORB serializes and transmits the request to the server.
3. Server-side ORB processes the request and sends a response back.
Publish-Subscribe Architecture
Definition
Extends MOM to support one-to-many and many-to-many communication models.
Key Components
1. Publisher:
o Sends messages to a named topic.
2. Topic:
o Acts as a logical equivalent of a queue.
3. Subscriber:
o Registers to a topic and receives messages.
4. Messaging Layer:
o Manages topics and ensures message delivery.
Core Features
1. Dynamic subscription allows flexible updates.
2. Supports time-to-live for messages.
3. Offers persistence for reliable delivery.
Applications
Event notification systems.
Financial market data distribution.
Collaboration platforms.
N j,vj.vk.vilxci8