260 likes | 482 Views
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.
E N D
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
Vocabulary of OOP • Class - “Cookie cutter” • Object - “Cookie” • 3 Pillars of OO Wisdom • #1 Encapsulation
# 2 Polymorphism • # 3 Inheritance
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
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
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
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
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
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
General Magic • General Magic • Agent • Place • Telescript Engine • Transactions • Mobility • Communication • Agent Control & Coordination • Travel Agency
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?
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
Strengths • Architecturally neutral • “comterpreted” • standardized APIs • Multiple execution paths • Managed memory system • Easy • single inheritance • memory management • dynamic linking • no pointers
Security • Program (bytecode) verification • No Overflows • Variables by name not memory • Applets • no file i/o • limited network connectivity • no external application calls • Applications
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
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
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
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
Promises for the future? • Good for Server Applications • I/O • execution speed • Secure • Write once & port anywhere • Is it safe to bet on Java?