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
- Scaling C/S Up
- Games
- Groupware
- Blurring the Boundaries
- AppleScript
- Distributed Objects
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
Xpilot
Reference: http://bau2.uibk.ac.at/erwin/NM/www
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
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
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
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
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