0% found this document useful (0 votes)
152 views40 pages

4 Architectural Styles

The document discusses software architectural design and common architectural styles. It defines architectural design as identifying major system components and their communication. Common styles discussed include client-server, layered, pipe and filter, object-oriented, component-based, message bus, and service-oriented architecture. The advantages and disadvantages of each style are described.

Uploaded by

cuongtv_abc
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
152 views40 pages

4 Architectural Styles

The document discusses software architectural design and common architectural styles. It defines architectural design as identifying major system components and their communication. Common styles discussed include client-server, layered, pipe and filter, object-oriented, component-based, message bus, and service-oriented architecture. The advantages and disadvantages of each style are described.

Uploaded by

cuongtv_abc
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 40

Architectural Design

Contents
Software architecture and Architectural design Common Architectural Styles
Client/Server Layered Pipe and filter Object-oriented Component-based Message-bus SOA
2

Software architecture
The design process for identifying the subsystems making up a system and the framework for sub-system control and communication is architectural design. The output of this design process is a description of the software architecture.

Architectural design
An early stage of the system design process. Represents the link between specification and design processes. Often carried out in parallel with some specification activities. It involves identifying major system components and their communications.

The architecture of a packing robot control system

Advantages of explicit architecture


Stakeholder communication
Architecture may be used as a focus of discussion by system stakeholders.

System analysis
Means that analysis of whether the system can meet its non-functional requirements is possible.

Large-scale reuse
The architecture may be reusable across a range of systems Product-line architectures may be developed.
Chapter 6 Architectural design 6

Architectural design decisions


Architectural design is a creative process so the process differs depending on the type of system being developed. However, a number of common decisions span all design processes and these decisions affect the non-functional characteristics of the system.

Architectural design decisions


Is there a generic application architecture that can be used? How will the system be distributed? What architectural styles are appropriate? How will the system be decomposed into modules? What control strategy should be used? How will the architectural design be evaluated? How should the architecture be documented?

Architecture and system characteristics


Performance
Localise critical operations and minimise communications. Use large rather than fine-grain components.

Security
Use a layered architecture with critical assets in the inner layers.

Availability
Include redundant components and mechanisms for fault tolerance.

Maintainability
Use fine-grain, replaceable components.
9

Architectural views
Each architectural model only shows one view of the system.

10

4 + 1 view model of software architecture


A logical view, which shows the key abstractions in the system as objects or object classes. A process view, which shows how, at run-time, the system is composed of interacting processes. A development view, which shows how the software is decomposed for development. A physical view, which shows the system hardware and how software components are distributed across the processors in the system. Related using use cases or scenarios (+1)
11

4 + 1 view model of software architecture

Logical View

Development View

Use-Case View
Process View Deployment View

12

What is an Architectural Style?


An architectural style, sometimes called an architectural pattern, is a set of principlesa coarse grained pattern that provides an abstract framework for a family of systems The most important benefit is that they provide a common language

13

Client/Server Architectural Style


The major components of this model are
A set of servers that offer services to other components A set of clients that call on the services offered by servers A network that allows the clients to access these services

14

Client/Server Architectural Style


Benefits
Sharing resources Separation between clients and servers Security

Disadvantages
Single point of failure Performance prediction is difficult

15

Layered Architecture Style


Layered architecture focuses on the grouping of related functionality within an application into distinct layers that are stacked vertically on top of each other

16

Layered architecture
Advantages
Allows replacement of entire layers so long as the interface is maintained

Disadvantages
Performance

17

1-tier

18

2-tier

19

3-tier

20

Pipe and Filter Architecture Style


This is a model of the run-time organization of a system where functional transformations process their inputs and produce outputs Data flows from one to another and is transformed as it moves through the sequence.

21

Pipe and Filter Architecture Style

22

Object-Oriented Architectural Style


An object-oriented design views a system as a series of cooperating objects, instead of a set of routines or procedural instructions. Objects are discrete, independent, and loosely coupled; they communicate through interfaces, by calling methods or accessing properties in other objects, and by sending and receiving messages

23

Object-Oriented Architectural Style


Main benefits
Understandable. It maps the application more closely to the real world objects, making it more understandable. Reusable. It provides for reusability through polymorphism and abstraction. Testable. It provides for improved testability through encapsulation. Extensible. Encapsulation, polymorphism, and abstraction ensure that a change in the representation of data does not affect the interfaces that the object exposes, which would limit the capability to communicate and interact with other objects.
24

Component-Based Architecture Style


Focuses on the decomposition of the design into individual functional or logical components that expose well-defined communication interfaces containing methods, events, and properties Higher level of abstraction than objectoriented design principles

25

Component-Based Architecture Style


Main benefits
Ease of deployment Reduced cost Ease of development Reusable

26

OMA
Banking, Healthcare, etc. Application Objects Vertical CORBA Facilities Horizontal CORBA Facilities

Object Request Broker

Naming, Trading, Event, etc.

CORBA Services

User Interface, System management, Task management, etc.

27

CORBA
Object Implementation

28

Message Bus Architectural Style


It is a style for designing applications where interaction between applications is accomplished by passing messages (usually asynchronously) over a common bus Examples
Enterprise Service Bus Internet Service Bus

29

Application A

Integration

Application B

30

Accounting

Interface

Human Resource Management

Interface

Customer Relationship Management


31

Spaghetti
32

Message Bus Architectural Style

ESB

33

Message Bus Architectural Style


Main benefits
Extensibility. Applications can be added to or removed from the bus without having an impact on the existing applications Low complexity. Application complexity is reduced because each application only needs to know how to communicate with the bus Flexibility. The set of applications that make up a complex process, or the communication patterns between applications, can be changed easily
34

Service-Oriented Architectural Style


Service-oriented architecture (SOA) enables application functionality to be provided as a set of services, and the creation of applications that make use of software services. Services are loosely coupled because they use standards-based interfaces that can be invoked, published, and discovered

35

Service-Oriented Architectural Style


Service Registry 1. publish 2. find

Service Provider

3. bind

Service Client

36

Service-Oriented Architectural Style


Main benefits
Abstraction. Services are autonomous and accessed through a formal contract, which provides loose coupling and abstraction. Discoverability. Services can expose descriptions that allow other applications and services to locate them and automatically determine the interface. Interoperability. Because the protocols and data formats are based on industry standards, the provider and consumer of the service can be built and deployed on different platforms.
37

Summary
Software architecture and Architectural design Common Architectural Styles
Client/Server Layered Pipe and filter Object-oriented Component-based Message-bus SOA
38

39

References
MSDN: http://msdn.microsoft.com/enus/library/ee658117.aspx An Introduction to Software Architecture, David Garlan and Mary Shaw. Software Engineering, Ian Sommerville, 9th Edition

40

You might also like