Objektorienteret netværkskommunikation Presentation: Architectures for Distributed Systems.

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.
Database Architectures and the Web
©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.
2 Object-Oriented Analysis and Design with the Unified Process Objectives  Explain how statecharts can be used to describe system behaviors  Use statecharts.
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
.NET Mobile Application Development Distributed Application Design.
Lecture 5a: Sequence Interaction Diagrams CSE 111 Copyright W. Howden1.
Distributed Systems Architectures
Software Architecture Design Instructor: Dr. Jerry Gao.
From Class Diagrams to Databases. So far we have considered “objects” Objects have attributes Objects have operations Attributes are the things you record.
ECEN5053 SW Eng of Dist Systems, Arch Des Part 2, Univ of Colorado, Boulder1 Architectural Design of Distributed Systems, Part 2 ECEN5053 SW.
Asper School of Business University of Manitoba Systems Analysis & Design Instructor: Bob Travica System architectures Updated: November 2014.
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"
Façade Design Pattern Source: Design Patterns – Elements of Reusable Object- Oriented Software; Gamma, et. al.
Chapter 22 Object-Oriented Design
Objektorienteret netværkskommunikation Presentation: Architectures for Distributed Systems.
Course Instructor: Aisha Azeem
Distributed Systems: Client/Server Computing
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Client/Server Software Architectures Yonglei Tao.
INFO 355Week #61 Systems Analysis II Essentials of design INFO 355 Glenn Booker.
The Design Discipline.
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
1 Object-Oriented Testing CIS 375 Bruce R. Maxim UM-Dearborn.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Copyright © 2012 Accenture All Rights Reserved.Copyright © 2012 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are.
University of Utah SoCCS Lecture 61 Architecture – An Introduction CS Lecture 6 Nathan Dykman.
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
2/6/01D-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Using PARTS to Illustrate Requirements Concepts.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Architectures of distributed systems Fundamental Models
Systems Analysis and Design in a Changing World, 3rd Edition
Design Patterns CSCI 5801: Software Engineering. Design Patterns.
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
UML-1 4. Architecture. UML-2 Artifact: Analysis Class Abstraction of one or several classes or subsystems –Focuses on handling functional requirements.
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.
CSC480 Software Engineering Lecture 10 September 25, 2002.
Java EE Patterns Dan Bugariu.  What is Java EE ?  What is a Pattern ?
Design Patterns Software Engineering CS 561. Last Time Introduced design patterns Abstraction-Occurrence General Hierarchy Player-Role.
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.
Presentation: Architectural Design for Distributed Systems Objektorienteret Middleware (OOMI)
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Presentation 3: Designing Distributed Objects. Ingeniørhøjskolen i Århus Slide 2 af 16 Outline Assumed students are knowledgeable about OOP principles.
Design Patterns CSCE 315 – Programming Studio Spring 2013.
CompSci 280 S Introduction to Software Development
OO Methodology OO Architecture.
CSC 480 Software Engineering
Ch > 28.4.
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Design Yaodong Bi.
Executable Specifications
Presentation transcript:

Objektorienteret netværkskommunikation Presentation: Architectures for Distributed Systems

Ingeniørhøjskolen i Århus Slide 2 af 21 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

Ingeniørhøjskolen i Århus Slide 3 af 21 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.

Ingeniørhøjskolen i Århus Slide 4 af 21 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.

Ingeniørhøjskolen i Århus Slide 5 af 21 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 Beware of “Gold Plating” –Do not use excessive amount of time on design

Ingeniørhøjskolen i Århus Slide 6 af 21 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

Ingeniørhøjskolen i Århus Slide 7 af 21 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

Ingeniørhøjskolen i Århus Slide 8 af 21 Use Sub-systems for Structuring At least you should have two sub- systems: –a client –a server More sub-systems may be introduced as needed

Ingeniørhøjskolen i Århus Slide 9 af 21 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

Ingeniørhøjskolen i Århus Slide 10 af 21 Design by 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.

Ingeniørhøjskolen i Århus Slide 11 af 21 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 corse-grained model with only a few classes? –In distributed systems, this gets worse

Ingeniørhøjskolen i Århus Slide 12 af 21 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

Ingeniørhøjskolen i Århus Slide 13 af 21 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

Ingeniørhøjskolen i Århus Slide 14 af 21 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 must be adjusted Remember: patterns are only for inspiration –NOT dictate Lets look at a few

Ingeniørhøjskolen i Århus Slide 15 af 21 The Observer Pattern (GoF) Publisher Subscriber Generates a lot of network traffic even though the three subscribers resides in the same process space

Ingeniørhøjskolen i Århus Slide 16 af 21 Distributed version of 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

Ingeniørhøjskolen i Århus Slide 17 af 21 Iterator Pattern ClientIteratorCollection 1. Create iterator 2. Get next item 3. Get next item 4. ….. Generates a lot of network traffic

Ingeniørhøjskolen i Århus Slide 18 af 21 Distributed version of 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

Ingeniørhøjskolen i Århus Slide 19 af 21 Façade Pattern (also GoF) 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

Ingeniørhøjskolen i Århus Slide 20 af 21 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 conjuction with façade, replicating objects & proxy

Ingeniørhøjskolen i Århus Slide 21 af 21 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