1 / 22

Software Architecture Taxonomy

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.

christina
Download Presentation

Software Architecture Taxonomy

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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. 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

  10. Controller-Satellites Structure

  11. 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

  12. Controller-Satellites Example

  13. 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.

  14. Collaboration Structure

  15. 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.

  16. Software Collaboration Structure

  17. 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+

  18. 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

  19. 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.

  20. Project #5 • Collaborative? • Controller-Satellite? • Service Oriented? • Layered? • Agent-based? • Enterprise Computing?

  21. End of Presentation

More Related