1、Chapter 13 Design Concepts and Principles,Software Design,DESIGN is an overloaded term.= entire development of a system. = design of architecture (host, c/s, client) = design of software components and their collaboration = design of individual components (classes. = design of an individual structur
2、e of a attribute = design of an individual method or function,Software architecture,This design process is for identifying the sub-systems making up a system and the framework for sub-system control and communication is architectural designThe output of this design process is a description of the so
3、ftware architecture,Architectural design,An early stage of the entire system design process. Represents the link between specification by the user and and the design processes for each component. Often carried out in parallel with some specification activities It involves identifying major system co
4、mponents and their communications,Architectural design process,System structuring The system is decomposed into several principal sub-systems and communications between these sub-systems are identified Control modelling A model of the control relationships between the different parts of the system i
5、s established Modular decomposition The identified sub-systems are decomposed into modules,Architectural models,As related to overloaded definition of DESIGNDifferent architectural models may be produced during the design process Each model presents different perspectives on the architecture Static
6、structural model that shows the major system components Dynamic process model that shows the process structure of the system Interface model that defines sub-system interfaces Relationships model such as a data-flow model,Architecture attributes,Performance Localize operations to minimise sub-system
7、 communication Security Use a layered architecture with critical assets in inner layers Safety Isolate safety-critical components Availability Include redundant components in the architecture Maintainability Use fine-grain, self-contained components,System structuring,Concerned with decomposing the
8、system into interacting sub-systems The architectural design is normally expressed as a block diagram presenting an overview of the system structure More specific models showing how sub-systems share data, are distributed and interface with each other may also be developed,The repository (mainframe)
9、 model,Sub-systems must exchange data. This may be done in two ways: Shared data is held in a central database or data repository and may be accessed by all sub-systems on the same hardware Each sub-system maintains its own database and passes data explicitly to other sub-systems When large amounts
10、of data are to be shared, the repository model of sharing is most commonly used,Repository model characteristics,Advantages Efficient way to share large amounts of data Sub-systems need not be concerned with how data is produced Centralised management e.g. backup, security, etc. Sharing model is pub
11、lished as the repository schema Disadvantages Sub-systems must agree on a repository data model. Inevitably a compromise Data evolution is difficult and expensive No scope for specific management policies Difficult to distribute efficiently,Client-server architecture,Distributed system model which s
12、hows how data and processing is distributed across a range of components Set of stand-alone servers which provide specific services such as printing, data management, etc. Set of clients which call on these services Network which allows clients to access servers,Client-server characteristics,Advanta
13、ges Distribution of data is straightforward Makes effective use of networked systems. May require cheaper hardware Easy to add new servers or upgrade existing servers Disadvantages No shared data model so sub-systems use different data organisation. data interchange may be inefficient Redundant mana
14、gement in each server No central register of names and services - may be hard to determine servers and services are available,Abstract machine model,Used to model the interfacing of sub-systems Organizes the system into a set of layers (or abstract machines) each of which provide a set of services S
15、upports the incremental development of sub-systems in different layers. When a layer interface changes, only the adjacent layer is affected However, often difficult to structure systems in this way,Control models,Are concerned with the control flow between sub-systems. Distinct from the system decom
16、position model Centralized control One sub-system has overall responsibility for control and starts and stops other sub-systems Event-based control Each sub-system can respond to externally generated events from other sub-systems or the systems environment,Centralized control,A control sub-system ta
17、kes responsibility for managing the execution of other sub-systems Call-return model Top-down subroutine model - control starts at top of a hierarchy and moves downwards. (non concurrent systems) Manager model Applicable to concurrent systems. One system component controls the stopping, starting and
18、 coordination of other system processes. Can be implemented in sequential systems as a case statement,Call-return model,Event-driven systems,Driven by externally generated events where event timing is out with the control of the sub-systems which process the event Two principal event-driven models B
19、roadcast models. An event is broadcast to all sub-systems. Any sub-system which can handle the event may do so Interrupt-driven models. Used in real-time systems where interrupts are detected by an interrupt handler and passed to some other component for processing,Broadcast model,Effective in integ
20、rating sub-systems on different computers in a network Sub-systems register an interest in specific events. When these occur, control is transferred to the sub-system which can handle the event Control policy is not embedded in the event and message handler. Sub-systems decide on events of interest
21、to them However, sub-systems dont know if or when an event will be handled,Interrupt-driven systems,Used in real-time systems where fast response to an event is essential There are known interrupt types with a handler defined for each type Each type is associated with a memory location and a hardwar
22、e switch causes transfer to its handler Allows fast response but complex to program and difficult to validate,Modular decomposition,Structural level where sub-systems are decomposed into modules Two modular decomposition models An object model where the system is decomposed into interacting objects
23、A data-flow model where the system is decomposed into functional modules which transform inputs to outputs. Also known as the pipeline model If possible, concurrency decisions delayed until implementation.,Object models,Structure the system into a set of loosely coupled objects with well-defined int
24、erfaces Object-oriented decomposition is concerned with identifying object classes, their attributes and operations When implemented, objects are created from these classes and some control model used to coordinate object operations,Data-flow models,Functional transformations process their inputs to
25、 produce outputs May be referred to as a pipe and filter model (as in UNIX shell) Variants of this approach are very common. When transformations are sequential, this is a batch sequential model which is extensively used in data processing systems Not really suitable for interactive systems,Invoice
26、processing system,Domain-specific architectures,Architectural models which are specific to some application domain Two types of domain-specific model Generic models which are abstractions from a number of real systems and which encapsulate the principal characteristics of these systems Reference mod
27、els which are more abstract, idealised model. Provide a means of information about that class of system and of comparing different architectures Generic models are usually bottom-up models; Reference models are top-down model,System types,Personal systems that are not distributed and that are design
28、ed to run on a personal computer or workstation. Embedded systems that run on a single processor or on an integrated group of processors. Distributed systems where the system software runs on a loosely integrated group of co-operating processors linked by a network.,Distributed system characteristic
29、s,Characteristics Resource sharing Openness Concurrency Scalability Fault tolerance TransparencyDisadvantages Complexity Security Manageability Unpredictability,Issues in distributed system design,Issues in distributed system design,Issues in distributed system design,Issues in distributed system de
30、sign,Distributed systems architectures,Client-server architectures Distributed services which are called on by clients. Servers that provide services are treated differently from clients that use services Distributed object architectures No distinction between clients and servers. Any object on the
31、system may provide and use services from other objects,Middleware,Software that supports different components of a distributed system sitting in the middle of system Middleware is usually off-the-shelf rather than specially written software Examples Transaction processing monitors Data converters Co
32、mmunication controllers,Multiprocessor architectures,Simplest distributed system model System composed of multiple processes which may (but need not) execute on different processors Architectural model of many large real-time systems Distribution of process to processor may be pre-ordered or may be
33、under the control of a dispatcher,Client-server architectures,The application is modelled as a set of services that are provided by servers and a set of clients that use these services Clients know of servers but servers need not know of clients Clients and servers are logical processes The mapping
34、of processors to processes is not necessarily 1 : 1,A client-server system,Layered application architecture,Presentation layer Concerned with presenting the results of a computation to system users and with collecting user inputs Application processing layer Concerned with providing application spec
35、ific functionality e.g., in a banking system, banking functions such as open account, close account, etc. Data management layer Concerned with managing the system databases,Thin and fat clients,Thin-client model In a thin-client model, all of the application processing and data management is carried
36、 out on the server. The client is simply responsible for running the presentation software. Fat-client model In this model, the server is only responsible for data management. The software on the client implements the application logic and the interactions with the system user.,Thin and fat clients,
37、Thin client model,Used when legacy systems are migrated to client server architectures. The legacy system acts as a server in its own right with a graphical interface implemented on a client A major disadvantage is that it places a heavy processing load on both the server and the network,Typical Thi
38、n client model,GUI done in html (usually generated by frontpage, etc). Downloaded when used. Some items may be cached such as drop downs. (GUI downloaded takes too much time, GUI on client requires too much setup for each machines and Config. Man. Servlets, JSP run for application processing. Little
39、 or nothing residing at the client side.,Fat client model,More processing is delegated to the client as the application processing is locally executed Most suitable for new C/S systems where the capabilities of the client system are known in advance More complex than a thin client model especially f
40、or configuration management. New versions of the application have to be installed on all clients,A client-server ATM system,Three-tier architectures,In a three-tier architecture, each of the application architecture layers may execute on a separate processor Allows for better performance than a thin
41、-client approach and is simpler to manage than a fat-client approach A more scalable architecture - as demands increase, extra servers can be added,Use of C/S architectures,Use of C/S architectures,Use of C/S architectures,Distributed object architectures,There is no distinction in a distributed obj
42、ect architectures between clients and servers Each distributable entity is an object that provides services to other objects and receives services from other objects Object communication is through a middleware system called an object request broker (software bus) However, more complex to design tha
43、n C/S systems,Advantages of distributed object architecture,It allows the system designer to delay decisions on where and how services should be provided It is a very open system architecture that allows new resources to be added to it as required The system is flexible and scaleable It is possible
44、to reconfigure the system dynamically with objects migrating across the network as required,Uses of distributed object architecture,As a logical model that allows you to structure and organise the system. In this case, you think about how to provide application functionality solely in terms of servi
45、ces and combinations of services As a flexible approach to the implementation of client-server systems. The logical model of the system is a client-server model but both clients and servers are realised as distributed objects communicating through a software bus,CORBA,CORBA is an international stand
46、ard for an Object Request Broker - middleware to manage communications between distributed objects Several implementation of CORBA are available DCOM is an alternative approach by Microsoft to object request brokers CORBA has been defined by the Object Management Group,Application structure,Applicat
47、ion objects Standard objects, defined by the OMG, for a specific domain e.g. insurance Fundamental CORBA services such as directories and security management Horizontal (i.e. cutting across applications) facilities such as user interface facilities,CORBA standards,An object model for application obj
48、ects A CORBA object is an encapsulation of state with a well-defined, language-neutral interface defined in an IDL (interface definition language) An object request broker that manages requests for object services A set of general object services of use to many distributed applications A set of comm
49、on components built on top of these services,CORBA objects,CORBA objects are comparable, in principle, to objects in C+ and Java They MUST have a separate interface definition that is expressed using a common language (IDL) similar to C+ There is a mapping from this IDL to programming languages (C+,
50、 Java, etc.) Therefore, objects written in different languages can communicate with each other,Object request broker (ORB),The ORB handles object communications. It knows of all objects in the system and their interfaces Using an ORB, the calling object binds an IDL stub that defines the interface of the called object Calling this stub results in calls to the ORB which then calls the required object through a published IDL skeleton that links the interface to the service implementation,
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1