SDSU CS 596: Client Server Programming
Future Trends

[To Lecture Notes Index]
San Diego State University -- This page last updated May 15, 1995

Contents of Future Trends Lecture

  1. Scaling C/S Up
  2. Games
  3. Groupware
  4. Blurring the Boundaries
  5. AppleScript
  6. Distributed Objects

Scaling C/S Up

Transaction Processing (TP) Monitors

Scale Up with TP Monitors, Gray and Edwards, Byte, April 1995, pp. 123-128
Transaction Processing Concepts and Techniques, Jim Gray and ?, Morgan Kaufman, 1992

What happens when:
100 clients use same server simultaneously?
1,000 clients use same server simultaneously?
10,000 clients use same server simultaneously?

Solution One - Use Threads

Forking 100s (or 1000s) of processes is expensive

Process per Server
Server does not fork a processes for each client
Server program uses (implements) threads
Entire server application runs in one name space

Early Novell's Netware
Required under 1000 instructions to service client's request for disk access

Early Sybase's SQL Server

Problems with Solution 1
Can't utilize symmetric processing
Can't utilize clusters of processors
Server is single application

Solution Two - Routers

Break server into separate applications

An application can be duplicated on different processors

Clients talk to a router

Passes client request to proper server
Handles all transactions between server and client
Balances load between servers
Hides server crashes from client






UDP based multi-user tank game

Client runs on Mac, No server

To start a new game:
Create "map" for the game
Register game on a Bolo game tracker:
port 5000
port 5000

To join a game:
Find a close game via a Bolo game tracker
Bolo client then asks current players to join

Playing the game:
All data about the game is sent between players in a ring
Ring delay:
Time for information to make round trip on ring
People are to drop out if delay is > 400ms


Lotus Notes

Lotus Notes has a database of documents

Documents can be replicated
Single document can be replicated multiple times
Copies exist on different machines
No master copy
Client/Server replication
Client/Client replication
All copies can be modified


Blurring the Boundaries

Boeing 777

X Flies on the 777, by Steven Belle, The X Journal, May-June 1995, Vol. 4, No. 5, pp. 18-22

Boeing 777 has X-terminals on board for:
Cabin Management System
Onboard Maintenance System

Freeway Sensors
Report traffic speeds & density of traffic
Current status available via WWW
Permits smart freeway signs

Speed control
On board computers & radar control the speed of car
Does not allow cars to get too close

Qualcomm OmniTRACS

Reference: Truckin, by Wired 3.01, Jan. 95 pp. 118-123,166

Contains laptop computer and satellite dish
Instant and constant communication with home base
Monitors trucks:
Motor RPM
Location within 1,000 feet
Get directions to each location
Instructions for next load
No need to hunt for phone to call company
Company headquarters
Knows location, schedule, and status of all its trucks
Can produce optimal schedule for its trucks
Tracks time for each route under "normal" conditions

Roaming Programs


A object-oriented programming language
Based on C like syntax
Compiled to byte code
Byte code can be interpreted or compiled
Has class libraries for:
User interface parts
Standard CS components
Hash tables, Linked lists, etc.
Network classes - Sockets, ftp, http

WWW browser written in Java
Can run compiled Java programs
Compiled Java programs can be embedded in WWW pages
Browser down loads compiled programs and runs them in the WWW page

Roaming Programs

Bill and Andy's Excellent Adventure II, by Steven Levy, Wired, 2.04, April 1994, pp. 102-107, 131-133

Current Systems:
Program on machine A generates message
Message is sent to machine B
Program on machine B processes message

Program on machine A generates a roaming program
Roaming program is sent to machine B (C, D, etc.)
Machine B runs roaming program
Roaming program may
Send data back to machine A
Move to another machine
Generate other roaming programs
Spend a long time on machine B

Personal Data Assistants - PDAs

Hand held computing devices + Cellular Phones

Mobile devices that connect to network at random times at random locations

Remote Surgery via Internet

Surgeon in city A operates on patient in city B
Xerox PARC - Ubicomp

PARC is Back, by H. Rheingold, Wired, 2.02, February 1994, pp. 90-95

Make computers disappear into the background
Make computers invisible
Make them ubiquitous

Boards - Wall size interaction screens
Pads - Clipboard size screens
Tabs - tiny size screens - fit in one hand

Active Badges
Report your location continuously
Your phone calls can automatically follow you
Building maps can display your current location
All computers will know you


All Mac applications become servers (Scriptable)

Recordable applications can make macros

tell application "Netscape 1.1N"
openURL ""
end tell

tell application "excel" of machine "Whitney's Mac"
open file "CS596 Grades"
copy "A" to Cell "Garrett:FinalGrade"
end tell

tell document "Garrett's Mail" of application "Eudora"
set body to "Grade changed, send money"
end tell

Distributed Objects

Corba - Common Object request Broker Architecture (OMG)
Open Doc - (Apple and others)
DOE - Distributed Objects Everywhere (Sun)

Com - Common Object Model (Microsoft)

Corba Parts

Object Request Broker
Object interconnection bus

Object Services
event notification
life-cycle management
concurrency control

Common facilities
Components that define "rules of engagement" for application objects
User interface
Information management
Systems management
Task management

Application objects