230 likes | 494 Views
Software Architecture Taxonomy. Jim Fawcett CSE681 – Software Modeling and Analysis Summer 2006. Agenda. Taxonomy – An organization or catalog Software Architecture Taxonomy: Distributed System Structures Other, possibly non-distributed, structures Discussion of each.
E N D
Software Architecture Taxonomy Jim Fawcett CSE681 – Software Modeling and Analysis Summer 2006
Agenda • Taxonomy – An organization or catalog • Software Architecture Taxonomy: • Distributed System Structures • Other, possibly non-distributed, structures • Discussion of each
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, …
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
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
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
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 seti@home
Controller-Satellites ExampleProduct 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
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.
Software Collaboration ExampleDistributed 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.
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+
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
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.
Project #5 • Collaborative? • Controller-Satellite? • Service Oriented? • Layered? • Agent-based? • Enterprise Computing?