1 / 39

Topic

Topic. Architectural Patterns – Adaptable Systems. Pattern Classification. Adaptable Systems. Design for change Open for change Support it’s own modification and extension a priori Core functionality should be resilient to change Adaptation to new standards, hardware platforms.

tiger
Download Presentation

Topic

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. Topic Architectural Patterns – Adaptable Systems

  2. Pattern Classification

  3. Adaptable Systems Design for change Open for change Support it’s own modification and extension a priori Core functionality should be resilient to change Adaptation to new standards, hardware platforms

  4. Architectural Patterns Layers Pipes and Filters Blackboard Mud to Structure Broker Distributed Systems Model-View-Controller Presentation-Abstraction-Control Interactive Systems Microkernel Reflection Adaptable Systems

  5. Adaptable Systems microkernel

  6. Microkernel The Microkernel architectural pattern applies to software systems that must be able to adapt to changing system requirements. It separates minimal core functionality and customer-specific parts. The microkernel also services and a socket for plugging in these extensions and coordinating their collaboration

  7. Microkernel Applies to systems that must be able to adapt to changing system requirements Separates minimal functional core from extended functionality and customer specific parts Serves as a socket for plugging extensions and coordinating their collaboration

  8. Microkernel – 3 part schema

  9. Microkernel Client Adapter A conceptual View Only External Servers Internal Servers Microkernel

  10. Participating Components Internal Servers External Servers Adapters Clients Microkernel

  11. Microkernel External Server Microkernel Internal Server calls activates receiveRequest dispatchRequest executeService executeMechnism initCommunication findReceiver createHandle sendMessage callInternalServer receiveRequest dispatchRequest executeService Intialises communication Adapter Client callService createRequest doTask Sends request calls service

  12. Microkernel Class Microkernel • Collaborators • Internal Server • Responsibility • Provides core mechanisms • Offers communication facilities • Encapsulates system dependencies • Manages and Controls resources • Main component of the pattern • Provides core mechanisms • Encapsulates system specific dependencies • Hardware-dependent parts • Maintain system resources • Processes • Files • Goal is to reduce memory requirement • Provide mechanisms which execute quickly

  13. Internal Server Class Internal Server • Collaborators • Microkernel • Responsibility • Implements additional services • Encapsulates some system specifics • Also known as subsystem • Extends functionality provided by Microkernel • Microkernel invokes services based on client requests • Encapsulate some system dependencies • Device drivers • Consider as extensions which are accessible to microkernel only

  14. External Server Class External Server • Collaborators • Microkernel • Responsibility • Provides programming interfaces for its clients Also known as personality Implements it’s own ‘view’ of the underlying microkernel Different servers implement different policies for specific application domains Receives service requests from client applications using the communication facilities provided by the microkernel, interprets these requests, executes the appropriate services and returns results to the clients

  15. Adapter Class Adapter • Collaborators • External Server • Microkernel • Responsibility • Hides system dependencies such as communication facilities from the client • Invokes methods of external servers on behalf of clients Protect the client from implementation details of the microkernel Uses communication mechanism provided by the microkernel Service requests from client from an external server, adapter forwards the call to the appropriate server

  16. Client Class Client • Collaborators • Adapter • Responsibility • Represents an application Application that is associated with exactly one external server (thru adapter) Accesses programming interfaces provided by the external server (thru adapter as a service request)

  17. Client Request

  18. External Server Request

  19. Other Dynamic Scenarios Develop the message sequence charts for such scenarios. Internal Server Request System initialisation System exit. Sequence of deletion or destruction of objects …

  20. Implementation

  21. 1: Analyse the application domain Perform a domain analysis and the policies the external servers need to offer

  22. 2: Analyse the external servers • Analyse the policies the external servers are going to provide • Identify the functionality required in the application domain • Analysis results in • Programming interfaces required to be provided • List of services and service categories necessary

  23. 3: Categorise the servers Group all functionality into semantically-independent categories Build categories which are not directly related to application domain Focus is to build the system infrastructure

  24. 4:Partition the categories Separate the categories of services Typically based on frequency of use or hardware dependent will be part of microkernel Page fault handlers, drivers and file system form part of internal servers

  25. 5:Find a set of operations & abstractions • Find a consistent and complete set of operations and abstractions • Microkernel provides mechanisms for the policies of external server; each policy is implemented thru use of services the microkernel offers • Example • Creating and terminating processes and threads

  26. 6:Determine strategies for request transmission and retrieval • Specify the facilities that microkernel should provide for communication between components • Synchronous/Asynchronous • Relationship: one-to-one, many-to-one or a many-to-many • Build core services of message passing or shared memory, based on which the other services can be built

  27. 7:Structure the microkernel component Separate system-specific parts from system-independent parts Typical structure is “Layer” Lowermost – system specific Uppermost – system independent; focusing on the services which microkernel will expose

  28. 8:Specify the programming interfaces for the microkernel • Decide how the interfaces should be available externally • Microkernel as a • Separate process • Module physically shared by other components • Look for efficiency and not make microkernel a bottle neck

  29. 9:Microkernel is responsible for all the system resources Microkernel must implement strategies for sharing, locking, allocation and deallocation of resources Maintain the information about resources and allow access to them in a coordinated and systematic way

  30. 10:Design & Implement Internal Servers • Separate processes or shared libraries • Active servers are implemented as processes • Passive servers are implemented as shared libraries • Graphics card driver  shared libraries • Page fault handler  separate processes

  31. 11:Implement the external servers Each external server is implemented as a separate process that provides it’s own service interface Internal architecture depends on the policies it comprises Specify how external servers dispatch requests to their internal procedures

  32. 12:Implement the adapters Decide on strategy of adapter; one adapter for all clients or every client associated with one adapter (trade off) Adapter needs to package all relevant information into a request and forwards the request to appropriate external server Acts as a “Proxy”

  33. 13:Develop client applications Create a new one or use an existing one When creating new client for a specific external server, its architecture is only limited by the constraints imposed by the external server

  34. Variants Microkernel system with indirect Client-Server connections Distributed Microkernel System Many more variants and interpretations of Microkernel (Look for published papers on ACM and IEEE for conferences)

  35. Benefits Portability Flexibility and Extensibility Separation of policy and mechanism Scalability Reliability Transparency

  36. Liabilities Performance Complexity of design and implementation

  37. Known Uses Mach operating System Amoeba operating System Chorus Windows NT Symbian Find (at least 2) more popular uses and document them Conceptual Architecture of the Linux Kernel http://docs.huihoo.com/linux/kernel/a1/index.html

  38. Microkernel

  39. Microkernel Quick Reference Class Client Class Adapter Class External Server Class Internal Server Class Microkernel • Collaborators • External Server • Microkernel • Collaborators • Microkernel • Collaborators • Microkernel • Collaborators • Internal Server • Collaborators • Adapter External Server Microkernel Internal Server calls activates • Responsibility • Implements additional services • Encapsulates some system specifics • Responsibility • Represents an application • Responsibility • Provides core mechanisms • Offers communication facilities • Encapsulates system dependencies • Manages and Controls resources • Responsibility • Hides system dependencies such as communication facilities from the client • Invokes methods of external servers on behalf of clients • Responsibility • Provides programming interfaces for its clients receiveRequest dispatchRequest executeService executeMechnism initCommunication findReceiver createHandle sendMessage callInternalServer receiveRequest dispatchRequest executeService Intialises communication Adapter Client callService createRequest doTask Sends request calls service

More Related