Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Architecture Taxonomy

Similar presentations


Presentation on theme: "Software Architecture Taxonomy"— Presentation transcript:

1 Software Architecture Taxonomy
Jim Fawcett CSE681 – Software Modeling and Analysis Summer 2006

2 Agenda Taxonomy – An organization or catalog
Software Architecture Taxonomy: Distributed System Structures Other, possibly non-distributed, structures Discussion of each

3 Distributed Architectures
Client–Server Client initiates, server responds Peer-to-Peer Peers both initiate and respond Controller-Satellites Has elements of both client-server and peer-to-peer Collaborative Focus on controlled sharing of work products Service Oriented Provides a set of fundamental services used as a basis for building applications Agent-Based Focus on search and modification using mobile agents Often thought of as web-crawler, but could be code crawler, test results crawler, …

4 Not Necessarily Distributed Architectures
Event-Driven System activities are all responses to events Model-View-Controller Model manages data System provides multiple views Views are constrained to be coherent by controller Layered Divided into core services, utilities, user services Whiteboard model Users interact in real-time with shared data

5 Client-Server Architecture
Client initiates, server responds Servers are passive Only provide replies to specific request types Server provides a service Web server, file server, Network Storage often used to provide access to shared resources Examples: Business data management, Web sites

6 Client Server Structure

7 Peer-to-Peer Architecture
Peers both initiate requests and respond to requests Supports real-time notification Often based on message-passing Can support store-and-forward to promote communication reliability Basis of Controller-Satellite structure Examples: Chat, file sharing

8 Peer-to-Peer Structure

9

10 Controller (Hub)-Satellite
Hub coordinates satellite machines (or their users) Downloads shared resources appropriate for this time Manages shared resources Satellite can contact hub Upload modified resources, make requests for information Interact with shared resources Notify hub of satellite events Examples: Grid computing as in

11 Controller-Satellites Structure

12 Controller-Satellites Example Product Service Organization
Hub coordinates employees with satellite machines Downloads work schedules, orders, routing Manages shared resources Product catalogue, specifications Satellite can contact hub Upload orders, request parts, request directions Interact with shared resources Examine shared calendar, inventory Notify hub Service call completion, request parts

13 Controller-Satellites Example

14 Collaborative Server manages shared resources in real-time.
Responsiveness is high priority so users can interact freely through the server. Data structures used to hold work products are a critical issue due to performance constraints. Satellite machines provide real-time views of work products. Archiving and speedy retrieval of work products is an important function of collaborative systems. Chat facilities are often integrated into the collaboration process.

15 Collaboration Structure

16 Software Collaboration Example Distributed Whiteboard
Server manages shared whiteboard used to display software system architecture and design. Distributed users collaborate to develop and review architecture and design. Work products are: UML diagrams Code files Documentation Satellite machines provide “distributed Visio” like views supporting real-time edits. Diagrams may be created by remote participants. Documents may be reviewed and edited. Collaborative hub archives all work products.

17 Software Collaboration Structure

18 Service Oriented Architecture
Applications are built from a rich collection of distributed services. Services are provided as OS services and Web services. Programs are mostly glue that bind together services needed for the program’s functionality. The next Windows, a.k.a. Vista, provides a service architecture through its Indigo component, now known as Windows Communication Foundation (WCF). Example: Web Services, COM+

19 Agent-Based Architecture
Program is based on autonomous software agents that: Are mobile, self-directed entities Communicate with a hub and perhaps each other Are often focused on search and retrieval Run on separate threads Examples: Web site indexing, File indexing Code analysis, Test results analysis Optimization using Evolutionary Programming strategy Games

20 Enterprise Computing combines structures
Enterprise computing binds together a business with its partners, suppliers, and customers. May integrate many functions: Inventory control, order processing, product disclosure, product design collaboration facilities. Likely to use a Controller-Satellite structure. Hubs may act as satellites to a partner’s hub. Partners work together through a Collaboration subsystem. Important customers collaborate on custom designs. May be based on a Web-based Service Oriented Architecture: Suppliers provide product information and order status information. Partners provide schedule, status, product information.

21 Project #5 Collaborative? Controller-Satellite? Service Oriented?
Layered? Agent-based? Enterprise Computing?

22 End of Presentation


Download ppt "Software Architecture Taxonomy"

Similar presentations


Ads by Google