Lecture 22: Client-Server Software Engineering

Slides:



Advertisements
Similar presentations
Database Architectures and the Web
Advertisements

©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.
I.1 Distributed Systems Prof. Dr. Alexander Schill Dresden Technical University Computer Networks Dept.
8.
Technical Architectures
Chapter 17: Client/Server Computing Business Data Communications, 4e.
Distributed Systems Architectures
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
INTERNET DATABASE Chapter 9. u Basics of Internet, Web, HTTP, HTML, URLs. u Advantages and disadvantages of Web as a database platform. u Approaches for.
INTERNET DATABASE. Internet and E-commerce Internet – a worldwide collection of interconnected computer network Internet – a worldwide collection of interconnected.
Ch 12 Distributed Systems Architectures
13-1 Chapter 13 - Objectives Define an information system’s architecture in terms of the KNOWLEDGE, PROCESSES, and COMMUNICATION building blocks. Differentiate.
The Architecture of Transaction Processing Systems
Chapter 9: The Client/Server Database Environment
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Chapter 9: Moving to Design
12-1 © Prentice Hall, 2004 Chapter 12: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
Distributed Systems: Client/Server Computing
Client/Server Architecture
1 © Prentice Hall, 2002 The Client/Server Database Environment.
Lecture The Client/Server Database Environment
Client-Server Processing and Distributed Databases
Software Architecture
The Client/Server Database Environment
Client/Server Software Architectures Yonglei Tao.
Chapter 9 Moving to Design Part 2.
Chapter 9 Elements of Systems Design
Moving to Design.
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
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.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Middleware-Based OS Distributed OS Networked OS 1MEIT Application Distributed Operating System Services Application Network OS.
Database Architectures and the Web Session 5
9/5/2012ISC329 Isabelle Bichindaritz1 Web Database Environment.
Distributed Processing and Client/Server
CS480 Computer Science Seminar Introduction to Microsoft Solutions Framework (MSF)
Csi315csi315 Client/Server Models. Client/Server Environment LAN or WAN Server Data Berson, Fig 1.4, p.8 clients network.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Mainframe (Host) - Communications - User Interface - Business Logic - DBMS - Operating System - Storage (DB Files) Terminal (Display/Keyboard) Terminal.
Database Architectures Database System Architectures Considerations – Data storage: Where do the data and DBMS reside? – Processing: Where.
Chapter 17: Client/Server Computing Business Data Communications, 4e.
CSC 480 Software Engineering Lecture 18 Nov 6, 2002.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Distributed database system
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 Distributed Systems Architectures l Architectural design for software that executes on more than one.
1 ITEC 3010 “Systems Analysis and Design, I” LECTURE 8-2: Elements of Systems Design Elements of Systems Design [Prof. Peter Khaiter]
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
9. 9 Systems Analysis and Design in a Changing World, Fourth Edition.
ISC321 Database Systems I Chapter 2: Overview of Database Languages and Architectures Fall 2015 Dr. Abdullah Almutairi.
9 Systems Analysis and Design in a Changing World, Fifth Edition.
© 2009 Pearson Education, Inc. Publishing as Prentice Hall 1 Lecture 9: The Client/Server Database Environment Modern Database Management 9 th Edition.
Systems Analysis and Design in a Changing World, Fourth Edition
Software Architecture
Database Architectures and the Web
The Client/Server Database Environment
Chapter 9: The Client/Server Database Environment
Database Architectures and the Web
#01 Client/Server Computing
Ch > 28.4.
Ch 15 –part 3 -design evaluation
Client/Server Computing
#01 Client/Server Computing
Presentation transcript:

Lecture 22: Client-Server Software Engineering

Today’s Topics Basic Principles of C/S Systems Configurations, Subsystem Linking Object Request Broker (ORB) SE Paradigms for C/S Systems Testing C/S Systems

Client-Server SE “A dominant architecture for information processing” Collective result of many improvements in computing: Network bandwidth Database technology Internet & WWW What are the related SE issues?

Basic Elements Root System Servers Network Clients (individual PCs) Mainframe or DB server Repository for corporate data Servers Update & request corporate data Implement departmental systems Network Connectivity via LAN, WAN, Internet Clients (individual PCs)

Generic Client-Server Architecture [From SEPA 5/e]

Client-Server Options File Servers file request / data response Database Servers SQL request / table response Transaction Servers remote procedure request Groupware Servers client connectivity [From SEPA 5/e]

C/S Software Components “Several distinct subsystems that can be allocated to client or server” “Distributed among machines” multi-tier, networked architecture

Components [2] Classic 3-tier architecture: User interaction/presentation subsystem Application subsystem Database management subsystem Web Browser Server DB Java Servlet Client 1 Server 1 Server 2 Web Example

Middleware Software components that exist on both client & server: Networking (e.g., TCP/IP) Application Connectivity (e.g. HTTP, CORBA) “The nervous system of a client-server system” [Orfali, et al. ’99]

Distributing Functionality Fat Server design most functionality on the server e.g., file server, DB server Fat Client design most functionality on the client e.g., message forwarding system

Distributed Configurations Distributed Presentation client handles display only Remote Presentation client prepares display from data Distributed Logic client handles data entry & update Remote Data Management client processes data (e.g. DSS) Distributed Databases client manages data

Guidelines Presentation on the client Shared DBs on a server Windows/PC-based Offload GUI processing to client Shared DBs on a server DBMS, physical database Static / frequently-used data stored on the client Minimize unnecessary network traffic

Linking C/S Subsystems Pipes (Unix-based) One process can share data with another (across machines, OS) Remote Procedure Call (RPC) One process can invoke another (across machines, OS) Client/Server SQL A process can query / update data from a central RDBMS

Web Linking Hypertext Transfer Protocal (HTTP) Web browser can retrieve data (HTML) from a web server Common Gateway Interface (CGI) Web browser can invoke a process (script, servlet, etc.) on a web server

Object Request Broker Middleware Coordinates message-passing between client and server objects Finds location of server object(s) Invokes method(s) Returns resulting data to client Examples: COM, CORBA, EJB

ORB Client/Server Connectivity [Vogel & Duddy, ’98] Stubs give a client a generic way of requesting services, regardless of how the client is implemented Skeletons give a server a generic way to provide services, regardless of how they are implemented

CORBA Architecture [Orfali & Harkey ’98]

CORBA Architecture [From SEPA 5/e] IDL: Interface Description Language (objects, attributes, & methods) IDL stubs act as a gateway for C/S communication Object implementations are hidden, can vary (Java, C++, etc.)

SE Paradigms for C/S Systems Many are possible, two are common: Evolutionary Paradigm Event-based and/or object-based Component-Based Paradigm COTS & in-house components Or, some hybrid of both…

Analysis Modeling Constraints of the design & implementation can influence analysis phase e.g., qualification step from CBSE e.g., architectural constraints

Design Phase Data & architectural design dominate the process Behavioral modeling important for event-driven systems User interface design a key activity for client side Object-oriented approach is usually the most appropriate

Architectural Design Key criterion: scalability Synchronous vs. asynchronous communication ORB architecture can be used as an adaptive infrastructure for integrating multiple COTS modules

Sharing Data with the Client Manual extract User initiates a static, local copy Snapshot Automatic extraction of local copy Replication Fully-coordinated, real-time duplication Fragmentation Distributed storage of virtual DB

Designing a C/S Business Process [Porter ’95] Identify files created, updated, referenced, deleted Define components or objects For each component, define business rules & information Decompose rules down to methods Define additional components necessary to support the methods

Structure Chart Notation [Porter ‘95] [From SEPA 5/e]

Testing Issues Distributed software is difficult to test! Client GUI Environment / platform diversity Networked databases Distributed processing Non-robust target environment Non-linear performance relationships

Testing Phases Clients tested in isolation Client & server tested in isolation (test or dummy networking) Complete architecture is tested (including network & real-time performance)

Types of Tests Application function tests client functionality, standalone Server tests response time, throughput Database tests accuracy, integrity, archiving Transaction tests correctness, performance Network communication tests connectivity, traffic, security

Operational Profile Common usage patterns Abnormal usage patterns Vary per user, time period, task, etc. Based on user scenarios Abnormal usage patterns Average- vs. worst-case performance Malicious attacks (web systems) Global Expectations maximum acceptable downtime, delay, etc.

Questions?