ClientServer Software Engineering - PowerPoint PPT Presentation

1 / 25
About This Presentation
Title:

ClientServer Software Engineering

Description:

PC's as terminals - need to be integrated. PC is client / other computer is server ... Complex and arbitrary business rules. Persistent data (RDBMS) Client/server. GUI ... – PowerPoint PPT presentation

Number of Views:2500
Avg rating:3.0/5.0
Slides: 26
Provided by: Ralp47
Category:

less

Transcript and Presenter's Notes

Title: ClientServer Software Engineering


1
Client-Server Software Engineering
  • architectural styles
  • specialized tools

2
History
  • Batch - cards and printers
  • On-line
  • character oriented video display
  • dumb ASCII terminal / green screen
  • PCs as terminals - need to be integrated
  • PC is client / other computer is server
  • two-tier
  • three-tier

3
Client/server usually means business
  • Business systems
  • Complex and arbitrary business rules
  • Persistent data (RDBMS)
  • Client/server
  • GUI
  • Distributed systems

4
Two-tiered client-server
Clients - implement GUI and maybe business rules
SQL
Server - stores data and maybe business rules
5
Three-tiered Client-Server
Clients - implement GUI
middleware
Middle tier - business object server
SQL
Database server - stores data
6
Variations on Client-Server
  • Fat client
  • Fat server
  • Thin client
  • Two-tiered client/server
  • Three-tiered client/server

7
Two or three tiers?
  • Advantages of three tiered
  • smaller client programs
  • can change business rules without changing client
    programs
  • can change database without changing client
    programs

8
Two or three tiers?
  • Advantages of two tiered
  • More traditional design
  • Less object design
  • More database design
  • Let DBMS handle concurrency
  • Less tools required
  • Connection to RDBMS

9
Middleware
  • Software that lets clients and servers
    communicate
  • Lives on both clients and servers. It is in the
    middle.
  • CORBA, DCOM, JavaBeans

10
The Big Lie
  • Object-oriented programming is well suited to
    building client-server systems because sending a
    message to an object is just like sending a
    message to a client.
  • Take good object design, partition objects
    between clients and servers, and iterate until it
    is fast enough.

11
The Cruel Facts
  • Client/server communication is much slower than
    object communication in an OO language
  • Server must deal with concurrency
  • Clients must deal with failure of server
  • Good OO architecture is usually not a good
    client/server architecture

12
Concurrency
  • Airline reservation system
  • get list of available seats
  • choose one
  • reserve it
  • Maybe someone took it while you were waiting
  • Reserve it can fail.

13
Concurrency in DBMS
  • Database transactions ensure atomicity
  • Begin transaction
  • search database
  • change database
  • End transaction
  • If transaction fails, start again

14
Concurrency in object server
  • Only handle one request at a time
  • little concurrency
  • requests on different data should be OK
  • Store all shared data in database
  • retry transaction until it works
  • Implement your own transaction system

15
Architecture for 3-tier
  • Servers are big objects.
  • Not created nor destroyed
  • Lots of operations
  • Interface grows, operations dont go away
  • Clients use value objects to communicate with
    servers.
  • Immutable
  • strings, numbers, SS, location, ...

16
COM
  • A program accesses a COM object using one or more
    interfaces
  • Interface is a set of functions.
  • First function is always QueryInterface(i)
  • returns interface i if the object supports it,
    nil if it does not.
  • program does not know implementation of COM
    object, just its interfaces

17
DCOM
  • objects on another machine (remote objects) have
    special implementations of interfaces
  • interface function becomes a remote procedure
    call
  • remote objects are called just like local objects

18
MTS
  • COM objects can be stored on an MTS server
  • Implements transactions
  • Transactions are initialized and committed
  • When a transaction is committed,
  • all objects are notified
  • all objects are deleted from memory
  • interfaces changed to return errors

19
MTS
MTS
20
MTS
  • High volume of transactions
  • Handles concurrency
  • Distribution, language independent
  • Can be accessed by VB clients, web server, other
    COM programs
  • Not pure OO, difficult to use

21
Database
  • Usually a RDBMS
  • industry standard SQL
  • many vendors, skilled developers, experience
  • widely used in most companies
  • must map to object system
  • Sometimes an OODBMS
  • less standards
  • less is known about them
  • eliminates mapping problem

22
Database
  • Database is central to most client/server systems
  • Data design is the heart of the system design
  • Design the data early

23
Process
  • Standard roles
  • business analyst
  • database analyst/administrator
  • GUI developer
  • programmer
  • architect
  • tester

24
Summary
  • Client-server has
  • several architectural styles
  • specialized tools
  • specialized techniques
  • changes/restrictions on development process

25
Next time
  • Read http//jerry.cs.uiuc.edu/plop/plop97/
    Proceedings/renzel.pdf
Write a Comment
User Comments (0)
About PowerShow.com