the evolution of computing john r. durrett isqs 6343

20
The Evolution of Computing John R. Durrett ISQS 6343

Upload: nathaniel-leonard

Post on 14-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The Evolution of Computing John R. Durrett ISQS 6343

The Evolution of Computing

John R. Durrett

ISQS 6343

Page 2: The Evolution of Computing John R. Durrett ISQS 6343

Mainframe Era

• Mainframes– Dumb terminals– All processing on mainframe– Time Sharing– One vendor sold everything

• Mini-computer– Smaller mainframe– Local area network– Still centralized processing– Still host centric computing

Page 3: The Evolution of Computing John R. Durrett ISQS 6343

Vocabulary of OOP

• Class - “Cookie cutter”

• Object - “Cookie”

• 3 Pillars of OO Wisdom

• #1 Encapsulation

Page 4: The Evolution of Computing John R. Durrett ISQS 6343

• # 2 Polymorphism

• # 3 Inheritance

Page 5: The Evolution of Computing John R. Durrett ISQS 6343

Client / Server

• Open system

• Clients on PCs

• Server as a “specialist”– File, Database, Transaction,

Groupware (fat client / thin servers)

– Web Servers (thin client / fat server)

• Not host centric– Processes run on separate machines

– Shared Resources

– Transparency of location

Page 6: The Evolution of Computing John R. Durrett ISQS 6343

C/S Limitations

• Remote Procedure Call driven

• Based on simple Transactions– Single repeated requests– Small amount of data transferred– Short lived– Static locations

• Limited standards

• Performance– Network traffic– Process management

• Hard to change or reconfigure

Page 7: The Evolution of Computing John R. Durrett ISQS 6343

Distributed Objects

• Process based

• “Live anywhere on network”

• Well standardized– CORBA

– COM

• “Component ware”– History of software– OLE +

• Individual objects can be modified without affecting others parts of the system

• Agent model of computing

Page 8: The Evolution of Computing John R. Durrett ISQS 6343

Agent Based Computing

• RP based

• higher level of abstraction

• applets, distributed functions

• virtual terminal

• much more flexible - less hardware/OS dependent, easier to change code

Page 9: The Evolution of Computing John R. Durrett ISQS 6343

Software Agent

• “A Software program that can roam a network, interact with other agents, gather information and return home.”

• AI Community of the 1950’s– John McCarthy’s “software robots”

– Oliver Selfridge “intelligent agent” • Eliza - Weizenbaum (MIT)• MUDs - Carnegie Mellon’s TinyMUD

• Usenet - spam, spamdectors, cancelbots

• IRC - chatterbots, warbots, guardbots

• WWW - Spiders, Wanders

• IBM Charlie / Microsoft Bob

Page 10: The Evolution of Computing John R. Durrett ISQS 6343

Agent Dimensions

• Mobility– Office Bound (static agents)

• active env. monitoring

– Field Workers (mobile agents)• Knowledge workers

• “live” on remote servers

• Communications abilities– continuum

• coordination between agents– distributed artificial intelligence– Authority structure

• Learning

Page 11: The Evolution of Computing John R. Durrett ISQS 6343

General Magic

• General Magic

• Agent

• Place

• Telescript Engine

• Transactions

• Mobility

• Communication

• Agent Control & Coordination

• Travel Agency

Page 12: The Evolution of Computing John R. Durrett ISQS 6343

Driving forces

• Explosive growth in EC• Competitive environment• Growing complexity• Information overload• Decision Support/Expert System• Search & Retrieval• Mundane Time consuming chores• Java as an Agent Platform?

Page 13: The Evolution of Computing John R. Durrett ISQS 6343

The History of Java

• Oak– Green Project– small appliance user interface

• To Java in early 1995

• Distributed programming

• Well accepted by developers

• Acceptance by users is unclear

Page 14: The Evolution of Computing John R. Durrett ISQS 6343

Strengths

• Architecturally neutral– “comterpreted”– standardized APIs

• Multiple execution paths

• Managed memory system

• Easy– single inheritance– memory management– dynamic linking– no pointers

Page 15: The Evolution of Computing John R. Durrett ISQS 6343

Security

• Program (bytecode) verification

• No Overflows

• Variables by name not memory

• Applets – no file i/o– limited network connectivity– no external application calls

• Applications

Page 16: The Evolution of Computing John R. Durrett ISQS 6343

Java vs. C++

• No structs or enums

• Easy to use exceptions

• No functions, all object oriented

• No multiple inheritance

• No operator overloading

• No direct memory pointers

• No automatic type conversions

• No preprocessor

• Dynamic linking

Page 17: The Evolution of Computing John R. Durrett ISQS 6343

Weaknesses

• Java is slow– cost of interpreted language– cost of multi-threading– JIT compilers, Java chip

• Lack of dynamic mobility– Mobility continuum– Object state– Tcl, Telescript

• No uniform comm. model

• lack of standardized JVM

Page 18: The Evolution of Computing John R. Durrett ISQS 6343

Tools and APIs

• First generation tools– JDK, Symantec Café

• Second generation– J++, Visual J++– Visual Café

• Visual tools– Visual Age, vCafe 2.0

• APIs– RogueWave– SunSoft

Page 19: The Evolution of Computing John R. Durrett ISQS 6343

Fact Now

• William Blundon

– “The Truth about Java,” Internet World, V7N12, Dec 1996

– Director OMG

Good platform for building Client Software

• Easy to use and learn

• High Quality code

• database access

• Java Beans

Page 20: The Evolution of Computing John R. Durrett ISQS 6343

Promises for the future?

• Good for Server Applications– I/O– execution speed

• Secure

• Write once & port anywhere

• Is it safe to bet on Java?