Presentation: Architectural Design for Distributed Systems Objektorienteret Middleware (OOMI)

Slides:



Advertisements
Similar presentations
January 30, 2014 Copyright Jim Farley Beyond JDBC: Java Object- Relational Mappings Jim Farley e-Commerce Program Manager GE Research and Development
Advertisements

WOC2006 Presentation: Design Workshop. Ingeniørhøjskolen i Århus Slide 2 af 19 Agenda Formål: Skabe en fælles forståelse Vi fokuserer på domænemodellen.
Objektorienteret Middleware (TIOOMI) Dynamic Requests.
Database Architectures and the Web
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
CS 432 Object-Oriented Analysis and Design
Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
.NET Mobile Application Development Distributed Application Design.
Distributed Systems Architectures
Software Architecture Design Instructor: Dr. Jerry Gao.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Ch 12 Distributed Systems Architectures
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Objektorienteret netværkskommunikation Presentation: Architectures for Distributed Systems.
Software Architecture Patterns (2). what is architecture? (recap) o an overall blueprint/model describing the structures and properties of a "system"
Objektorienteret netværkskommunikation Presentation: Architectures for Distributed Systems.
Logical Architecture and UML Package Diagrams
Course Instructor: Aisha Azeem
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Client/Server Software Architectures Yonglei Tao.
Objektorienteret netværkskommunikation Presentation: Architectures for Distributed Systems.
The Design Discipline.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
Database Architectures and the Web Session 5
Introduction to distributed systems Dr. S. Indran 23 January 2004.
Slide 1 © Ingeniørhøjskolen i Århus Objektorienteret Middleware (OOMI) CORBA Introduction.
Objektorienteret Middleware (TIOOMI) Presentation 20 : Value Types in CORBA.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Presentation 24: RMI, Web services, DCOM Introduction Objektorienteret Middleware.
Architectures of distributed systems Fundamental Models
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
Lecture 22: Client-Server Software Engineering
CSC 480 Software Engineering Lecture 18 Nov 6, 2002.
Presentation: Architectural Design for Distributed Systems Objektorienteret netværkskom.
CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance.
1 CMPT 275 High Level Design Phase Modularization.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
Presentation 23:.NET Remoting Introduced Objektorienteret Middleware.
Java EE Patterns Dan Bugariu.  What is Java EE ?  What is a Pattern ?
ICS362 – Distributed Systems Dr. Ken Cosh Week 2.
1 Lecture 3 Major Architectural Models View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern.
Seminar on Service Oriented Architecture Distributed Systems Architectural Models From Coulouris, 5 th Ed. SOA Seminar Coulouris 5Ed.1.
Chapter 14 Advanced Architectural Styles. Objectives Describe the characteristics of a distributed system Explain how middleware supports distributed.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Presentation: The CORBA Portable Object Adapter (POA) Object Oriented Middleware (OOMI)
Object Oriented Middleware (OOMI) Presentation: Locating Distributed Objects - A presentation of the Interoperable Naming Service & Sun’s Java ORB/ Orbacus.
1 CS590L Distributed Component Architecture Yugi Lee STB #555 (816) * This presentation is prepared based.
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
CompSci 280 S Introduction to Software Development
OO Methodology OO Architecture.
Software Design and Architecture
CSC 480 Software Engineering
Introduction to J2EE Architecture
Ch > 28.4.
Chapter 13 Logical Architecture.
Inventory of Distributed Computing Concepts and Web services
Introduction to Design Patterns Part 1
Inventory of Distributed Computing Concepts
Chapter 13 Logical Architecture.
Design Yaodong Bi.
Executable Specifications
Chapter 13 Logical Architecture.
Presentation transcript:

Presentation: Architectural Design for Distributed Systems Objektorienteret Middleware (OOMI)

Agenda Architectural models OOA/OOD and distributed system diff. Layering Interface Partioning & Granularity Adapting patterns for distributed usage A few words of warning: Assumed students are knowledgeable about OOA/OOD We will only look at some aspects of distributed architecture Not much literature available on this subject No textbook solutions to this problem This lecture is just for inspiration – not a dictate

Architectural models Architectural model: Description of the components of a system and the relationship between them. Describe the components of systems and their interaction; describe mapping of components to computers. Define useful patterns for the distribution of data and workload. Define the functional roles of components and the patterns of communication between them.

Basic architectural models Client-server: WWW, OO middleware, distributed systems in general Others: service, peer-to-peer, proxy, mobile code, spontaneous network Read more in Colourius et al.

Designing Distributed Systems Use OOA/OOD (or other method) Same procedure as with stand-alone system design Use ”best-practices” aka ”design patterns” BUT: beware of the pit-falls of distributed design (Guerraoui & Fayad) Beware of “Gold Plating” Do not use excessive amount of time on design “Death By Interfacing/Layering”

Basic OO Design – Use Case Driven Use Case N Actor 1 Use Case spec. “Models” the domain e.g. an Account or Sensor. System/Actor Interaction Use Case impl. Links Model & Boundry «control» «boundary» «entity» Domain Model for Use Case N Logic Domain Model from the Analysis OOA

Bruce Eckel’s ROPES Model Architecture design Scope: nodes, packages (sub systems), components (e.g. a driver DLL), tasks Mechanistic design Scope: Group of collaboratingclasses Class Node Package Component Active object Detailed design Scope: Class Class name Attributes Operations Bd. s193

Use Sub-systems for Structuring At least use two sub-systems: a client a server More sub-systems may be introduced as needed

Getting Distributed Until now – stand-alone & single process Distributed Systems are much more complex We focus only on OO systems How to make an optimal design? What belongs on the client side – and what on the server side? At least three things to consider: Layering Granularity issues Adapting Design Patterns

Design with Layers Client Presentation tier Provides a user interface to the end-users. Thin/Rich. MVC. Server Side Presentation tier Building a response to the Client Presentation tier. Server Side Business Logic tier Use Case implementation. Control classes. Business logic. Server Side Domain Model tier Domain Model. Entity classes. Enterprise Integration tier Legacy system. Web services. Persistence tier / Resource layer Relational Database. File-system.

Interface Partitioning & Granularity OOA/OOD teaches us to map real world model to domain model Granularity has always been an issue In stand-alone / single process systems Should we have a fine-grained model – with one or more control classes pr use case and a detailed domain model? Should we have a coarse-grained model with only a few classes? In distributed systems, this gets worse

Three Aspects of a Distributed Object System Granularity of Model Interface Design System Partitioning Three important aspects when producing a Distributed object Model which has impact on each other Anti-pattern: Round tripping vs. partition of resources vs. desired level of interface design resolution (some might want to map system objects 1-1 with real world objects, accounts and transactions Producing a real world OO mapping is important Fine Grained = Natural Mapping = Easy to Understand Fine Grained = Slow Distributed performance Coarse Grained = Better Distributed performance = SOA Fine Grained = Easy to Partition = Good Scalability Coarse Grained = Harder to Partition = Poorer Scalability

Using Design Patterns Provides guidelines, not actual implementation Proven track record Reusable Help you communicate your design ideas to other designers Anti-pattern: Gold Plating – spending excessive amount of time on design

Design Patterns Examples ”Classic Design Patterns”: Singleton Observer Iterator Facade Proxy (you have already seen this) Factory Many others All may be used, but some should be adjusted Remember: patterns are only for inspiration NOT dictate Lets look at a few

Façade Pattern (also GoF) + DTO’s Used for encapsulation and decoupling – usually one pr sub-system - Session Façade pattern, Façade at the Distribution Boundary Used for encapsulation and decoupling – usually one pr sub-system - Session Façade pattern, Façade at the Distribution Boundary The entire Client sub-system is decoupled from the server sub-system and a Client Proxy hides the complex network detail of a distributed system By using Façade pattern, only a few objects needs to be made Remote The entire Client sub-system is decoupled from the server sub-system and a Client Proxy hides the complex network detail of a distributed system By using Façade pattern, only a few objects needs to be made Remote

Replicating Objects / Layering Client Presentation tier Provides a user interface to the end-users. Thin/Rich. MVC. Server Side Presentation tier Building a response to the Client Presentation tier. Server Side Business Logic tier Use Case implementation. Control classes. Business logic. Server Side Domain Model tier Domain Model. Entity classes. Enterprise Integration tier Legacy system. Web services. Persistence tier / Resource layer Relational Database. File-system. Using DTO’s + facades Replicating Objects / Data Transfer Object Pattern How to do it in CORBA? -NOT IDL Interfaces -IDL Structs -IDL Valuetypes

The Observer Pattern (GoF) Publisher Subscriber Generates a lot of network traffic even though the three subscribers resides in the same process space

Publish-Subscribe Channel (Distributed Observer) channel Subscriber Channel Publisher Only one notify message between the channel objects as opposed to the naive Observer pattern. channel Subscriber Channel Publisher Only one notify message between the channel objects

Iterator Pattern ClientIteratorCollection 1. Create iterator 2. Get next item 3. Get next item 4. ….. Generates a lot of network traffic

Distributed Iterator ClientIteratorCollec- tion 1. Create iterator 2. Query 3. Get next item 4. Get next item 5. ……. Result of 2. Only one call needed to transfer all objects. Design more than one “next” method to allow for different number of objects wanted

Factory Pattern How to create objects? Can not instantiate We need a staging point – a Factory object Distributed version: Object Factory For creating, finding & managing both DTO and remote objects Often seen in conjunction with façade, replicating objects & proxy

Remember You have been presented with some basic input for the design of distributed systems This is only for inspiration not a dictate Even though we have the ideals of transparency – one must remember the differences that does exist

Læringsmål Alignment Når kurset er færdigt forventes den studerende at kunne: Definere, beskrive og sammenligne forskellige typer af objektorienterede middleware frameworks til apparater og computere, med primær fokus på CORBA og sekundært.NET Remoting teknologierne, herunder fordele og ulemper forbundet med de forskellige teknologier Definere og beskrive principper omkring transparens og heterogenitet i relation til middlewareteknologier Definere og beskrive gængse teorier, metoder og retningslinier indenfor det objektorienterede middleware paradigme og anvende disse til at designe effektive distribuerede systemer Designe og konstruere et distribueret system der gør brug af CORBA og.NET Remoting teknologierne med tilhørende værktøjssupport Design Guidelines til at designe et effektivt distribueret OO system. I skal altså kunne redegøre for forskelle i forhold til stand-alone systemer, Samt beherske terminologi fra forelæsning og litteratur. Også vigtigt at kunne forholde sig kritisk Design Guidelines til at designe et effektivt distribueret OO system. I skal altså kunne redegøre for forskelle i forhold til stand-alone systemer, Samt beherske terminologi fra forelæsning og litteratur. Også vigtigt at kunne forholde sig kritisk MANGLER: hvordan I praktisk omsætter denne viden