OOD Design of Processes 2 Server Patterns ITV Modelbased Analysis and Design of Embedded Software Anders P. Ravn & Arne Skou Aalborg University February.

Slides:



Advertisements
Similar presentations
16/11/ IRS-II: A Framework and Infrastructure for Semantic Web Services Motta, Domingue, Cabral, Gaspari Presenter: Emilia Cimpian.
Advertisements

Web Services Nasrullah. Motivation about web service There are number of programms over the internet that need to communicate with other programms over.
Mini-Project Status and Report
June 1998 CHAIMS1 Interpreter instead of Compiler CHAIMS execution machine (interpreter and scheduler) user Interpreter: network CHAIMS-protocol complete.
OOD Design of Processes 1 Procedure Call Pattern ITV Modelbased Analysis and Design of Embedded Software Anders P. Ravn & Arne Skou Aalborg University.
What iS RMI? Remote Method Invocation. It is an approach where a method on a remote machine invokes another method on another machine to perform some computation.
Presentation 7 part 1: Web Services Introduced. Ingeniørhøjskolen i Århus Slide 2 Outline Definition Overview of Web Services Examples Next Time: SOAP.
Presentation 7: Part 1: Web Services Introduced. Outline Definition Overview of Web Services Examples Next Time: SOAP & WSDL.
Component-based Software Engineering Marcello Bonsangue LIACS – Leiden University Fall 2005 Component Model Comparison.
Real-Time Systems – The Big Picture Real-Time Systems Anders P. Ravn Aalborg University September 2009.
1 OOAD Detailed Design From Design to Implementation ITV Modelbased Analysis and Design of Embedded Software Anders P. Ravn & Arne Skou Aalborg University.
CHAIMS: MasterClient Mixing Java and C++ Woody Pollack.
Introduction to Enterprise JavaBeans. Integrating Software Development Server-side Component Model Distributed Object Architecture –CORBA –DCOM –Java.
Software Frameworks for Acquisition and Control European PhD – 2009 Horácio Fernandes.
Process ITV Model-based Analysis and Design of Embedded Software Techniques and methods for Critical Software Anders P. Ravn Aalborg University August.
Introduction to Remote Method Invocation (RMI)
Middleware Technologies compiled by: Thomas M. Cosley.
Documentation ITV Model-based Analysis and Design of Embedded Software Techniques and methods for Critical Software Anders P. Ravn Aalborg University August.
Real-Time Systems – The big Picture
Communication in Distributed Systems –Part 2
Advanced Distributed Software Architectures and Technology group ADSaT 1 Application Architectures Ian Gorton, Paul Greenfield.
Threading in Java – a Tutorial QMUL IEEE SB. Why Threading When we need to run two tasks concurrently So multiple parts (>=2) of a program can run simultaneously.
Client/Server Software Architectures Yonglei Tao.
Java Based Run Control for CMS Small DAQ Systems Michele Gulmini CHEP2000 February 2000 M. Bellato (INFN – Padova) L. Berti (INFN – Legnaro) D. Ceccato.
 1. Introduction  2. Development Life-Cycle  3. Current Component Technologies  4. Component Quality Assurance  5. Advantages and Disadvantages.
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
FH Augsburg - FB Informatik 1 CADUI' June FUNDP Namur Software Life Cycle Automation for Interactive Applications: The AME Design Environment.
German National Research Center for Information Technology Research Institute for Computer Architecture and Software Technology German National Research.
Introduction to distributed systems Dr. S. Indran 23 January 2004.
Pattern Oriented Software Architecture for Networked Objects Based on the book By Douglas Schmidt Michael Stal Hans Roehnert Frank Buschmann.
Cli/Serv.: rmiCORBA/131 Client/Server Distributed Systems v Objectives –introduce rmi and CORBA , Semester 1, RMI and CORBA.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Comparison of Web Services, RMI, CORBA, DCOM Usha, Lecturer MCA Department of Computer Science and Engineering.
Web Services Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
Introduction to Distributed Systems Slides for CSCI 3171 Lectures E. W. Grundke.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Venkita Subramonian, Christopher Gill, Guandong Wang, Zhenning Hu, Zhenghui Xie Department of.
Replicated State Machines ITV Model-based Analysis and Design of Embedded Software Techniques and methods for Critical Software Anders P. Ravn Aalborg.
SEMINOR. INTRODUCTION 1. Middleware is connectivity software that provides a mechanism for processes to interact with other processes running on multiple.
Software Design Patterns (1) Introduction. patterns do … & do not … Patterns do... provide common vocabulary provide “shorthand” for effectively communicating.
PolyORB Versatile Middleware for Interoperable Critical Systems PolyORB Versatile Middleware for Interoperable Critical Systems Presentation cover page.
Presentation 22 Distributed Objects on the Windows platform.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.
The World Leader in Making Software Work Together ™ Copyright IONA Technologies 1999 Building CORBA Applications (On OS/390 ?) Dusty Rivers Enterprise.
S O A P ‘the protocol formerly known as Simple Object Access Protocol’ Team Pluto Bonnie, Brandon, George, Hojun.
An Introduction to Web Services Web Services using Java / Session 1 / 2 of 21 Objectives Discuss distributed computing Explain web services and their.
Notes from Coulouris 5Ed Distributed Systems Notes on Components.
Remote Method Invocation by James Hunt, Joel Dominic, and Adam Mcculloch.
1 OS Review Processes and Threads Chi Zhang
Real world OS programming Nezer J. Zaidenberg.  Create process/thread  File and directory I/O  I/O multiplexing  Sync and locking  Access system.
Securely Managing VMS from a Windows Environment 1.
PA1 Discussion.
CORBA Alegria Baquero.
#01 Client/Server Computing
Inventory of Distributed Computing Concepts and Web services
Enterprise Application Integration Styles
CORBA Alegria Baquero.
Architectures of distributed systems Fundamental Models
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
Bond-Jini Interoperability
WebServices Using JAX-RPC
Architectures of distributed systems
Process Synchronization
Architectures of distributed systems Fundamental Models
ARCH-2: OpenEdge Reference Architecture (OERA) Latest Thinking
Calypso Service Architecture
Nominal Technologies for Modelling and High Level Applications of LCLS
#01 Client/Server Computing
Presentation transcript:

OOD Design of Processes 2 Server Patterns ITV Modelbased Analysis and Design of Embedded Software Anders P. Ravn & Arne Skou Aalborg University February 2011

Simple Generic Architecture OAD p.196 «component» Interface «component» Model «component» UserInterface «component» SubsystemInterface «component» Platform «component» OS «component» FileSystem «component» Function...

The Task to Solve Assume: Design is already mapped to Sequential Programs (Classes) «component» QQQQQQQQQ «component» MMMMMMMMM Provide: Architecture mapped to Concurrent Programs on a Platform «component» Interface «component» UserInterface «component» SystemInterface «component» Model «component» Function «component» Platform «component» OS «component» FileSystem

Platform Characteristics onenone Ordinary c++, c threadsshared objects Java, CORBA, SYMBION? tasksasynch. message Posix, RTOS ProcessesSynchronizationExample

Concurrent Access «component» Interface «component» UserInterface «component» SystemInterface «component» Model «component» Platform «component» OS «component» FileSystem «component» Function «interface» Application read(Key) : ReadData update(UpdateData) compute(Mode) : Result attach(SignalHandler) «synchronized» Wrapper... read(Key k) : ReadData update(UpdatDatae u) compute(Mode m) : Result attach(SignalHandler sh) + concurrent access implements

Implementation (Java) synchronized class Wrapper {... public void update(Update u)... } }; «synchronized» Wrapper... update(Update u) class Wrapper {... public synchronized void update(Update u)... } }; class Wrapper {... public void update(Update u)... synchronized{... } } };

Server Pattern: Interface Component «component» Interface «component» UserInterface «component» SystemInterface «component» Model «component» Platform «component» OS «component» FileSystem «component» Function «interface» Application read(Key) : ReadData update(UpdateData) compute(Mode) : Result attach(SignalHandler) «synchronized» ServerPort... read(Key k) : ReadData update(UpdatDatae u) compute(Mode m) : Result attach(SignalHandler sh) IFunction from Function Server + concurrent access

Server Behaviour Server wait op 2 op 1 op 3 complete

Server Pattern: Function Component «component» Interface «component» UserInterface «component» SystemInterface «component» Model «component» Function «component» Platform «component» OS «component» FileSystem «interface» IFunction read(Key) : ReadData update(UpdateData) compute(Mode) : Result attach(SignalHandler) IModel from Model... read(Key k) : ReadData update(UpdateData u) compute(Mode m) : Result attach(Signalhandler sh) «synchronized» FServerPort FServer

And so on for a Model Server... «component» Interface «component» UserInterface «component» SystemInterface «component» Model «component» Function «component» Platform «component» OS «component» FileSystem

- more code - complex code + short response times + concurrency Server Call Pattern - update p:FServenPorthp: ServerPortm: Model update(u) read(k) put(d) cf. OAD p h: Server wait(op) update(u) wait(op) f: FServer wait(op)

- more code - complex code - long response times ? RMI / RPC Server Call Pattern - read fp:FServerPorthp: ServerPortm: Model read(k) cf. OAD p h: Server wait(op) read(k) wait(op) f: FServer wait(op) return(d)

Exercises 1.Adapt your System (Model Component) to be a Server. 2.How many Client processes would you support concurrently?