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

Reference:
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
Examples

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

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

Games

Xpilot

Reference: http://bau2.uibk.ac.at/erwin/NM/www


Bolo


Reference: http://sccs.swarthmore.edu/~bigearl

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:
noproblem.uchicago.edu
port 5000
ray.abo.fi
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

Groupware

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

IRC
Whiteboards

Blurring the Boundaries


Boeing 777

Reference:
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


Caltrans
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

Truck
Contains laptop computer and satellite dish
Instant and constant communication with home base
Monitors trucks:
Speed
Motor RPM
Location within 1,000 feet
Truckers
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

Reference: http://java.sun.com/

Java
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
etc.

HotJava
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
Telescript

Reference:
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


Telescript
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

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

Ubicomp
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

AppleScript


All Mac applications become servers (Scriptable)

Recordable applications can make macros



tell application "Netscape 1.1N"
openURL "http://www.sdsu.edu/"
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

References:
http://www.omg.org/
ftp://ftp.parc.xerox.com/pub/ilu/ilu.html
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
naming
event notification
persistence
life-cycle management
transactions
concurrency control
relationships
externalization
query
licensing
properties
security
time

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

Application objects