Matakuliah Tahun Versi : M0446/Analisa dan Perancangan Sistem Informasi : 2005 : 0/0 Pertemuan 14 Arsitektur Process 1 Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : • Membagi class menjadi component 2 Outline Materi • Distribute Program Components • Identify shared resources 3 Sub-activities in Process Architecture Design Class diagram and component specifications Identify shared resources Distribute program components Explore distribution patterns Select coordination mechanisms Deployment diagram Explore coordination patterns 4 Distribute Program Components • Different components need to be placed on individual processors • First, separate out any active objects from passive program components • Second, determine the available processors • Distribute the program components and active objects onto the processors 5 Explore Distribution Patterns • Patterns for how components are placed on processors – The centralised pattern: Centralised data and functionality, thin client, but low robustness – The distributed pattern: Replicated data, server only broadcasts updates, robust, but potential data inconsistencies – The decentralised pattern: Partitioned data, low inconsistencies, more diversity/complexity 6 Identify Shared Resources • Processor: Two or more concurrent processes that should be executed on the same processor • External Devices: Two or more concurrent processes use the same external device • Component: Two or more concurrent processes call operations on objects in the same component 7 Example Deployment Diagram: Airline Check-in Active objects Processor External devices (Mathiassen et al, 1999) 8 Finding Bottlenecks • Processors: What is the relationship between the capacity of each processor and the needs of the active objects assigned to it? • External Devices: What is the accessibility, capacity, and load of the different external devices in the interface? • Data Storage: Which parts of the model need to be stored on which storage media? • System/Network Connections: What is the capacity and load of the system’s connections? 9 Overcoming Bottlenecks • Two options: – Change the design and the distribution of the components onto the available processors – Enhance the platform with more processors or more powerful processors 10 Select Coordination Mechanisms • Many operating systems and technical platforms provide mechanisms to control sharing – Varies substantially from platform to platform – So need to be sure in each case! • If not, we have to solve it ourselves by developing our own coordination mechanisms – Generally rely on active object that controls the sharing – Can make use of generic patterns 11 Coordination Mechanisms • Generalised patterns of coordination: – Dedicated monitor ensuring atomic access to shared resources. – Centralized task dispatching for coordination of all concurrent processes. (e.g., event loop) – Subscription to state changes for initiation of processes in opportune situations. – Asynchronous exchange of data to avoid unnecessary delays with read and write operations. 12 Principles of Architecture Design • Aim at an architecture without bottlenecks – Slows down the system and causes problems • Distribute components on processors – Decision can reduce potential bottlenecks • Coordinate resource sharing with active objects – Use the technical platform or design your own mechanisms 13