Software design (Cont.)



Similar documents
Oracle Database Security and Audit

Classic Grid Architecture

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Distributed Systems LEEC (2005/06 2º Sem.)

Introduction to Operating Systems. Perspective of the Computer. System Software. Indiana University Chen Yu

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

How To Write A Windows Operating System (Windows) (For Linux) (Windows 2) (Programming) (Operating System) (Permanent) (Powerbook) (Unix) (Amd64) (Win2) (X

Lesson Objectives. To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization

Common P2P Examples. Peer to Peer Networks. Client-Server Architecture. Uses of P2P. Napster Morpheus Gnutella Freenet BitTorrent Skype

CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL

Chapter 11 I/O Management and Disk Scheduling

Chapter 3 Operating-System Structures

Chapter 2 System Structures

Example of Standard API

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

BlackBerry Enterprise Server for Microsoft Exchange Version: 5.0 Service Pack: 2. Feature and Technical Overview

Tier Architectures. Kathleen Durant CS 3200

Chapter 3. Database Environment - Objectives. Multi-user DBMS Architectures. Teleprocessing. File-Server

CHAPTER 15: Operating Systems: An Overview

OPERATING SYSTEM SERVICES

Advanced Analysis and Design

A distributed system is defined as

Chapter 3: Operating-System Structures. Common System Components

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

Peer-to-peer framework of Distributed Environment for Cooperative and Collaborative Work Service Composition

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

SAN Conceptual and Design Basics

Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines

Software Engineering

Operating Systems 4 th Class

Operating System Components and Services

CSC 2405: Computer Systems II

Have both hardware and software. Want to hide the details from the programmer (user).

Principles and characteristics of distributed systems and environments

Managing your Red Hat Enterprise Linux guests with RHN Satellite

UNISOL SysAdmin. SysAdmin helps systems administrators manage their UNIX systems and networks more effectively.

Comparing Microsoft SQL Server 2005 Replication and DataXtend Remote Edition for Mobile and Distributed Applications

Database System Architecture & System Catalog Instructor: Mourad Benchikh Text Books: Elmasri & Navathe Chap. 17 Silberschatz & Korth Chap.

Chapter 15 Windows Operating Systems

Basic Unix/Linux 1. Software Testing Interview Prep

Standards and Guidelines for. Information Technology. Infrastructure, Architecture, and Ongoing Operations

Security Overview of the Integrity Virtual Machines Architecture

Contents. Chapter 1. Introduction

THREE YEAR DEGREE (HONS.) COURSE BACHELOR OF COMPUTER APPLICATION (BCA) First Year Paper I Computer Fundamentals

Design Document. Offline Charging Server (Offline CS ) Version i -

Security Challenges & Opportunities in Software Defined Networks (SDN)

Virtual machine interface. Operating system. Physical machine interface

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

Overview of Operating Systems Instructor: Dr. Tongping Liu

PIE. Internal Structure

3-Tier Architecture. 3-Tier Architecture. Prepared By. Channu Kambalyal. Page 1 of 19

How To Understand The Concept Of A Distributed System

Web. Studio. Visual Studio. iseries. Studio. The universal development platform applied to corporate strategy. Adelia.

Computers: Tools for an Information Age

E-Business Technologies for the Future

Service Level Agreement (SLA) Arcplace Backup Enterprise Service

Date: December 2009 Version: 1.0. How Does Xen Work?

What You Will Learn About. Computers Are Your Future. Chapter 8. Networks: Communicating and Sharing Resources. Network Fundamentals

5053A: Designing a Messaging Infrastructure Using Microsoft Exchange Server 2007

Networking Operating Systems (CO32010)

Architecture Design & Sequence Diagram. Week 7

From Centralization to Distribution: A Comparison of File Sharing Protocols

Software Architecture Document

Core J2EE Patterns, Frameworks and Micro Architectures

1 What Are Web Services?

Achieving High Availability & Rapid Disaster Recovery in a Microsoft Exchange IP SAN April 2006

Client/server is a network architecture that divides functions into client and server

Project Manager 1 Post == Experience years in Project Management in reputed company, Salary Rs.1,20,000/-

Service and Resource Discovery in Smart Spaces Composed of Low Capacity Devices

Chapter 6, The Operating System Machine Level

Operating System Structures

Siebel Business Process Framework: Workflow Guide. Siebel Innovation Pack 2013 Version 8.1/8.2 September 2013

Security Testing For RESTful Applications

DESIGN OF A PLATFORM OF VIRTUAL SERVICE CONTAINERS FOR SERVICE ORIENTED CLOUD COMPUTING. Carlos de Alfonso Andrés García Vicente Hernández

Introduction. What is an Operating System?

ELIXIR LOAD BALANCER 2

Best Practices on monitoring Solaris Global/Local Zones using IBM Tivoli Monitoring

Objectives. Distributed Databases and Client/Server Architecture. Distributed Database. Data Fragmentation

Stock Trader System. Architecture Description

Multiprogramming. IT 3123 Hardware and Software Concepts. Program Dispatching. Multiprogramming. Program Dispatching. Program Dispatching

FIFTH EDITION. Oracle Essentials. Rick Greenwald, Robert Stackowiak, and. Jonathan Stern O'REILLY" Tokyo. Koln Sebastopol. Cambridge Farnham.

CatDV Pro Workgroup Serve r

Chapter 11 I/O Management and Disk Scheduling

What Is the Java TM 2 Platform, Enterprise Edition?

The Monitis Monitoring Agent ver. 1.2

COMP5426 Parallel and Distributed Computing. Distributed Systems: Client/Server and Clusters

Layering a computing infrastructure. Middleware. The new infrastructure: middleware. Spanning layer. Middleware objectives. The new infrastructure

Multicast monitoring and visualization tools. A. Binczewski R. Krzywania R. apacz

What is a database? COSC 304 Introduction to Database Systems. Database Introduction. Example Problem. Databases in the Real-World

DFSgc. Distributed File System for Multipurpose Grid Applications and Cloud Computing

Linux Kernel Architecture

Transcription:

Package diagrams Architectural styles Software design (Cont.) Design modelling technique: Package Diagrams Package: A module containing any number of classes Packages can be nested arbitrarily E.g.: Java packages, C++ namespaces Order Capture UI AWT Mailing List UI Order Capture Application Mailing List Application Oracle Interface Common {global} Quantity Money Domain Dependency 1 CE202 & CE654 Software Engineering, Spring term 2010 11 Dr Amnon H. Eden, School of Computer Science and Electronic Engineering, University of Essex Sybase Interface Database Interface Orders 2 Customers Software architecture: definition [Garlan & Shaw 93]: 3 a level of design concerned with issues... beyond the algorithms and data structures of the computation; designing and specifying the overall system structure emerges as a new kind of problem. Structural issues include gross organization and global control structure; protocols for communication, synchronization, and data access; assignment of functionality to design elements; physical distribution; composition of design elements; scaling and performance; and selection among design alternatives. Architectural design decisions Answer global questions, such as: Will the system be distributed? How? What are the main components of the system? How will these components communicate? How aspects of security, exception handling and resource allocation will be handled? How these questions are answered? How is the result ( the architecture ) modelled? 4 1

CE202 + CE654 Software Engineering, Spring term 2010 11 Dr Amnon H. Eden, School of Computer Science and Electronic Engineering, University of Essex Components and connectors Garlan & Shaw s catalogue Architectural Styles What is an Architectural Style? An architectural style defines a family of systems in terms of a pattern of structural organization. [Shaw & Garlan 93] Architectural style: describe Types of components Types of connectors Topology (constraints on possible compositions) 5 6 Shared Repository A central database is shared by different subsystems Shared Repository: Example CASE Toolset Applicability: Large, complex body of information Inter-related records Sophisticated data processing and management Selection queries, recovery, locking, security Distributed systems with shared data Source: Sommerville 2004 7 8 2

Shared Repository: Discussion Pros: Efficient use of resources Consistency maintained Uniform data format (!!) Centralized control Security is simple Cons: Evolution is difficult Dependence on data traffic Client-Server A distributes system with -- Server(s): Stand-alone, powerful machines Clients: Subsystem which employ the services simultaneously Network: Communicating clients with serves Processing model: Client initiates request Request passes through network Server responds Response returned via network 9 10 Client Server: Example 1 Windows 95 WS Linux Mac OS X Client-Server: Example 2 X-Windows Communication network File Server (Sun SPARC) Print and Web Server (Windows NT) 11 12 3

Client-Server: Example 3 Email Server: MS Exchange Server on exchange3.essex.ac.uk The domain resolves to more than one machine Clients: Outlook, Thunderbird, Outlook Express, Eudora, Protocols Post Office Protocol Ver. 3 (POP3) Internet Message Access Protocol (IMAP) Exchange Server Client-Server: Example 4 Automated teller machine 13 14 Client-Server: Example 5 Three-tier client-server architecture Customary in Web configurations such as Java Server Pages (JSP) Client-Server: Properties Transparency Possible distribution of server on different machines without clients dependency Clients know servers, not vice versa Heterogeneity Allowing for different machines, operating systems Redundancy 15 16 4

Layered Architecture A.k.a. Abstract Machine Model Principles: Each module belongs to a layer And either: 1. Each layer may access only lower layers or: 2. Each layer may access only the lower layer Layered Architecture: examples ISO Communication Protocols Application Layer Presentation Layer Session Layer Transport Layer Network Layer Link Layer UNIX Operating System Shells, commands, Compilers, Interpreters System Libraries Kernel File system, Signals, Disk + Tape drivers Virtual Memory, CPU Scheduling, Terminal Controllers Disks, Tapes Device Controllers Memory Controllers, Physical Memory Physical Layer 17 18 Layered Architecture: examples II Operating system access User interface Application logic Database access a) Typical layers in an application program Network communication Application programs Screen display facilities User account management File system Kernel (handling processes and swapping) b) Typical layers in an operating system Dealing with application protocols Dealing with connections Dealing with packets Transmitting and receiving c) Simplified view of layers in a communication system Centralized Control Model Call Return Model: Synchronous, top-down procedure invocation Initialize() Routine2() Main() Loop() {Execute()} Execute() {... } Routine1() Conclude() Manager Model: Asynchronous, concurrent threads/processes, with one manager which is responsible to execute, stop, and coordinate 19 Chapter 9: Architecting and designing software Lethbridge/Laganière 2001 20 5

Event-Driven Models The flow of control is driven by external events Broadcast Control Model: Example Windowing systems: Windows 3.1, Motif Event : A signal which triggers a particular functionality Two conforming models: Broadcast model (a.k.a. Implicit Invocation) Events are broadcasted to all subsystems Any subsystem that can handle it may respond Interrupt-driven model Events trigger interrupts and a specific handler Subsystem 1 Subsystem 2 Subsystem 3 Dispatcher (Event Handler) 21 22 Interrupt-Driven Model Common with real time systems Applicability: Broadcasting is too time consuming Response must be immediate Drivers directly related to the CPU Flaws Inflexible model Coordination can be difficult Interrupt-Driven Model: Example Interrupts Interrupt Vector Handler 1 Process 1 Handler 2 Process 2 Handler 3 Process 3 Handler 4 Process 4 23 24 6

Peer-to-Peer (P2P) System composed of any number of peers Peer: client & server Computations may be performed by any peer Peers popping in and out of existence :P :P :P :P :D :P :P :P :P Pure P2P P2P with a discovery server P2P: Examples I File sharing Napster, Gnuttela, Kazaa, torrent applications Messenger Skype, ICQ, Yahoo Messenger, MSN Messenger JXTA XML encoding of messages Resources found via advertisement Requires a discovery server http://www.jxta.org 25 26 P2P: Examples II Portable Weather Forecast unit Satellite P2P: Advertisement and Discovery Advertisement & discovery in JXTA2 Satellite phone Barometer GPS Thermometer PWF Computer PWF 27 28 7

P2P: Discovery models Q. How peers are found? A. Discovery models Some peers offer a directory service super peers rendezvous peers Relay peers Multicast peers announce their presence on some communication channel Neighbour model via other peers P2P: Discussion Pros: Very flexible Evolution is with minimal effort Efficient resource utilization is close to optimal Heterogeneous Cons: Security: authentication is close to impossible Duplication Data corruption 29 30 Exercises Observe the differences between apparently-similar styles: What are the differences between Client-Server vs. Broker? Rendezvous peer vs. broker? Peer-to-Peer vs. Grid? 31 8