Information Systems Analysis and Design CSC340 XIX Software Architectures Software Architectures UML Packages Client Server vs Peer to Peer Horizontal Layers and Vertical Partitions 3 Tier and 4 Tier Architectures The Model View Controller Architecture Broker Architectures for Distributed Systems 2004 John Mylopoulos Software Architectures 1 Information Systems Analysis and Design CSC340 Software Architectures A software architecture defines the components of a software system and their inter dependencies For example the client server architecture consists of servers that support services clients that use services With such an architecture I O is placed on clients running on PCs and workstations data storage is assigned to a server implemented in terms of a DBMS e g DB2 and placed on a mainframe or mini Consistency checking is located with the server applications run on clients Thick servers offer a lot of functionality thin ones little Thick clients have their own services thin ones get almost everything from servers 2004 John Mylopoulos Software Architectures 2 Information Systems Analysis and Design CSC340 Subsystems A software subsystem is a component of a system or of another subsystem Modules or components are atomic subsystems It s useful to subdivide software into subsystems For better managed software development For improved reuse through components For improved portability platform specific code isolated to particular subsystems For easier maintenance Each subsystem has a well defined interface with respect to the rest of the system 2004 John Mylopoulos Software Architectures 3 Information Systems Analysis and Design CSC340 System componentOf Subsystem Subsystem Subsystem Subsystem Subsystem Subsystem Subsystem Subsystem Subsystem Subsystem Subsystem Subsystem Module Module Module Module 2004 John Mylopoulos Modules Components Module Module Software Architectures 4 Information Systems Analysis and Design CSC340 Components and Connectors The architecture shown in the previous slide is one example of a software architecture where nodes represent subsystems modules and the connectors represent componentOf relationships There are many others kinds of connectors that can be used such as Uses one component uses data defined in another component Calls one component calls methods defined in another component I O the output of one component is fed as input to another 2004 John Mylopoulos Software Architectures 5 Information Systems Analysis and Design CSC340 The Software Bookshelf 2004 John Mylopoulos Software Architectures 6 Information Systems Analysis and Design CSC340 Architectural Styles It is useful to classify software architectures into classes of architectural styles For example the client server architecture discussed earlier is an architectural style There are many architectural styles e g pipes and filters object orientation event based layered repository based client server three tier others We discuss here some architectures that relate to object oriented information systems 2004 John Mylopoulos Software Architectures 7 Information Systems Analysis and Design CSC340 Packages A package in UML is a grouping of elements which May be packages e g subsystems or modules May be classes Each element of a software architecture subsystem module or class is owned by a single package There are many criteria for decomposing a software system into packages Ownership who is responsible for what Application e g a university dept model may be partitioned into staff courses programmes Clusters of classes used together e g course course description instructor student 2004 John Mylopoulos Software Architectures 8 Information Systems Analysis and Design CSC340 A Package Diagram Persons Constraints Meetings dependency 2004 John Mylopoulos A dependency means that if you change a class in one package Meetings you may have to change something in the other Constraints The concept is similar to compilation dependencies It s desirable to minimize dependency cycles if at all possible Software Architectures 9 Information Systems Analysis and Design CSC340 Decomposition into Subsystems A software system may be decomposed into horizontal layers and or vertical partitions For a horizontal layer decomposition each layer corresponds to one or more subsystems and each layer uses services provided by the layers below it Layered architectures have two forms closed architecture each layer only uses services of the layer immediatebelow open architecture a layer can use services from any lower layer 2004 John Mylopoulos Software Architectures 10 Information Systems Analysis and Design CSC340 Closed vs Open Layered Architecture 2004 John Mylopoulos Software Architectures 11 Information Systems Analysis and Design CSC340 Closed vs Open Layered Architectures Closed layered architectures Minimize dependencies between layers and reduce the impact of a change to the interface of any one layer Open layered architectures Lead to more compact code since the services of all lower layers can be accessed directly without the need for extra program code to pass messages through each intervening layer Break the encapsulation of layers increase dependencies between layers and increase the complexity of changes to the system 2004 John Mylopoulos Software Architectures 12 Information Systems Analysis and Design CSC340 Client Server Architectures A client server architecture consists of service consumers clients and service providers servers Clients and servers may or may not be running on dedicated machines Information exchange between clients and servers is done through messages Server establishes connection with each client possibly several accepts messages from connected clients and responds to each 2004 John Mylopoulos Software Architectures 13 Information Systems Analysis and Design CSC340 Protocols for Communication Service requests and responses are accomplished through one of the following standard protocols Remote Procedure Call RPC invoke remote procedure results sent RPC is widely supported Remote Data Access RDA invoked procedure is a database query supported by DBMS vendors Queued Message Processing requests queued 2004 John Mylopoulos Software Architectures 14 Information Systems Analysis and Design CSC340 Three Tier Architectures Used widely in industry Interface request response Application request response client Data server Application layer may be placed with client fat client or the server fat
View Full Document
Unlocking...