Component Configurator

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

Threads, SMP, and Microkernels
Distributed Systems Major Design Issues Presented by: Christopher Hector CS8320 – Advanced Operating Systems Spring 2007 – Section 2.6 Presentation Dr.
Database Architectures and the Web
Concurrency Important and difficult (Ada slides copied from Ed Schonberg)
Master/Slave Architecture Pattern Source: Pattern-Oriented Software Architecture, Vol. 1, Buschmann, et al.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
Chapter 4 Threads, SMP, and Microkernels Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design.
Computer Systems/Operating Systems - Class 8
Reseach in DistriNet (department of computer science, K.U.Leuven) General overview and focus on embedded systems task-force.
Technical Architectures
SEDA: An Architecture for Well-Conditioned, Scalable Internet Services Matt Welsh, David Culler, and Eric Brewer Computer Science Division University of.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
Threading Models in Visual Basic Language Student Name: Danyu Xu Student ID:98044.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
Proactor Pattern Venkita Subramonian & Christopher Gill
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
Communicating Security Assertions over the GridFTP Control Channel Rajkumar Kettimuthu 1,2, Liu Wantao 3,4, Frank Siebenlist 1,2 and Ian Foster 1,2,3 1.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Chris Gill Department of Computer Science and Engineering Washington University, St. Louis
Lecture 6: Sun: 8/5/1435 Distributed Applications Lecturer/ Kawther Abas CS- 492 : Distributed system & Parallel Processing.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Design Patterns VIII Chain of Responsibility, Strategy, State.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
1 Client-Server Interaction. 2 Functionality Transport layer and layers below –Basic communication –Reliability Application layer –Abstractions Files.
1 Object Oriented Logic Programming as an Agent Building Infrastructure Oct 12, 2002 Copyright © 2002, Paul Tarau Paul Tarau University of North Texas.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Venkita Subramonian, Christopher Gill, Ying Huang, Marc Sentany Department of Computer Science.
1 Process Description and Control Chapter 3. 2 Process A program in execution An instance of a program running on a computer The entity that can be assigned.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Venkita Subramonian, Christopher Gill, Huang-Ming Huang, Shih-Ling Chen, Sajeeva Pallemulle.
Threads, SMP, and Microkernels Chapter 4. Processes and Threads Operating systems use processes for two purposes - Resource allocation and resource ownership.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Program Execution in Linux David Ferry, Chris Gill CSE 522S - Advanced Operating Systems Washington University in St. Louis St. Louis, MO
Distributed Systems Architectures. Topics covered l Client-server architectures l Distributed object architectures l Inter-organisational computing.
Introduction to Operating Systems Concepts
Examples (D. Schmidt et al)
Chapter 13: I/O Systems Modified by Dr. Neerja Mhaskar for CS 3SH3.
Event Handling Patterns Asynchronous Completion Token
Principles of Network Applications
Wrapper Façade Pattern
Network Load Balancing
Distribution and components
Instructor: Dr. Hany H. Ammar
Part 3 Design What does design mean in different fields?
Program Execution in Linux
Chapter 25: Architecture and Product Lines
#01 Client/Server Computing
Client-Server Interaction
Threads and Cooperation
Ch > 28.4.
CS & CS Capstone Project & Software Development Project
Software Defined Networking (SDN)
The Active Object Pattern
Threads, SMP, and Microkernels
Oracle Architecture Overview
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Interpreter Style Examples
CS 425/625 Software Engineering Architectural Design
Mobile Agents.
CS703 - Advanced Operating Systems
Half-Sync/Half-Async (HSHA) and Leader/Followers (LF) Patterns
Software models - Software Architecture Design Patterns
Lecture 4- Threads, SMP, and Microkernels
An Introduction to Software Architecture
Monitor Object Pattern
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
MORE ON ARCHITECTURES The main reasons for using an architecture are maintainability and performance. We want to structure the software into reasonably.
AIMS Equipment & Automation monitoring solution
Software Architecture
#01 Client/Server Computing
Presentation transcript:

Component Configurator E81 CSE 532S: Advanced Multi-Paradigm Software Development Component Configurator (The Pattern Formerly Known As Service Configurator) Chris Gill, Bryan Thrall, Matt Barnes Department of Computer Science and Engineering Washington University, St. Louis cdgill@cse.wustl.edu Title slide

Component Configurator: Motivating Examples 7x24 server upgrades “always on, always connected” Web server load balancing Work flows (re-)distributed to available endsystems Mobile agents Service reconfiguration on agent arrival/departure

Problem Services, broadly speaking, are needed Typical static design approach tightly couples The implementation of a particular service The configuration of that service Static approach is inflexible with respect to other services, changing requirements, upgrades to the implementation

Solution Approach Decouple implementations over time Allow different behaviors of services at run-time Offer points where implementations are re-configured Allows configuration decisions to be deferred until service initiation Allows a running server to be reconfigured

Distinguishing Characteristics Compared to other related patterns E.g., Façade, Bridge, Strategy, Decorator, etc. Component Configurator Separate single interface for service (re-)configuration Repository may maintain the states of services Very useful for fault tolerance, restart, resynch Configuration is dynamic and flexible at runtime

Service Lifecycle Compare picture to Can “park” a service Thread states Process states E.g., Silberschatz & Galvin 4th ed, Fig. 4.1 Can “park” a service Users wait for a bit Or, upgrade a copy Background reconfig Hot swap when ready

Context Implementation must be chosen or changed late in the design cycle Multiple independently selectable services Services need or would benefit from optimization/reconfiguration at run-time Dependencies between services exist and must be addressed

Context II (the other side of the coin) When is Component Configurator not appropriate? When dynamic configuration undesirable due to security, safety certification, real-time assurances Initialization or termination are tightly coupled, and/or non-uniform across components Time cost of dynamic configuration too high

Benefits Uniformity Centralized administration Modularity, testability, and reusability Configuration dynamism and control Tuning and optimization

Liabilities Lacks temporal predictability (a.k.a. non-deterministic) Ordering dependencies add complexity Potentially reduced security & reliability Increased run-time overhead and infrastructure complexity Overly narrow common interfaces

Implementation - Step 1 Define the service control interface How? Initialization Termination Suspension Resumption Information How? Inheritance-based interfaces Message-based protocols (non-OO languages, Half-Object plus Protocol)

Control Interface Example (from ACE) class Service { public: virtual int init (int argc, char *argv[]) = 0; virtual int fini (void) = 0; virtual int suspend (void); virtual int resume (void); virtual int info (char **, size_t) = 0; };

Implementation - Step 2 Define a Service Repository Responsibilities Table, list, database, etc. with references to: Objects Executable Programs Dynamically Linked Libraries (DLLs / SO libraries) Responsibilities Give access to existing services Insert and remove service “references” Track status of services (active, suspended, etc.)

Implementation - Step 3 Select reconfiguration mechanisms Location of the service’s implementation Executable program (e.g., image in flash memory) Dynamically Linked Library (in a .dll or .so file) Host / port for communication Process ID Initialization parameters Command line Graphical interface Dedicated (re-)configuration file or socket

Implementation - Step 4 Determine a service concurrency model Reactive / proactive execution Single thread of control handles everything Straightforward, but may not scale well Multi-thread/process concurrent execution Each service runs in its own thread or process More complex, possibly more efficient / robust These features themselves may be exposed as configuration options (e.g., in an ORB or Web Server)

Additional Source of Information “Service Configurator: A Pattern for Dynamic Configuration of Services” Prashant Jain and Douglas C. Schmidt CS Department, Washington University Proceedings of the Third USENIX Conference on Object-Oriented Technologies and Systems (Portland OR, June ’97) www.usenix.org/publications/library/proceedings/coots97/full_papers/jain/jain.pdf