Title: Stages of Complexity
1Stages of Complexity
Enterprise Computing - DCE - CORBA - Javas
J2EE- .NET framework and servers - SOAPs
buddies gt XML gt WSDL gt UDDI gt more
to come!
Distributed Programming - RPC (C/C) - RMI
(Java) - Remoting (.NET)- DCOM (win32) - invoke
via email (messaging i/f) - winner? SOAP
Network Programming - sockets
Basic Networking - ISO/OSI - addressing -
protocols
2Enterprise Computing
- Everybody their brother has a framework
- A framework is typically two things
- collection of programs distributed services
- programmers interfaces (APIs)
- Programmers typically use existing services while
creating their own - e.g. write RPC client, server and use rpcbind
3Enterprise Computing Issues
- Scalability
- Reliability
- Security
- Heterogeneity
4Levels of Computing Design
Enterprise Computing - many middleware
services - non-trivial issues with
concurrency- non-trivial issues with
distribution - rely heavily on code re-use and
design patterns
Complex Computing - many system services -
some concurrent algorithms - some middleware
services - familiarity with design patterns
Essential Computing - good designs -
non-trivial algorithms - some system services
Simple Computing - basic syntax - basic design
5Some Core Middleware Services
- Handling remote processes data
- Handling remote file I/O
- Naming/Brokering/Trading
- multiple levels
- multiple attributes (yellow pages)
- Security
- authentication, authorization, privacy
- Threading, Synchronization, Transacting
6Some Frameworks (80s,90s,zips)
- Old-line Unix/Internet Sun RPC friends
- OSF DCE newer RPC-base Unix/Microsoft
- Old-line Microsoft DCOM friends
- CORBA the OO alternative to RPC-base
- Java J2EE Java borrows from CORBA
- .NET newer Microsoft base (and Mono!)
- Web services SOAP friends
- The freeware option and Linux
71980s Unix Framework
- Processes local (various IPC), remote (Sun RPC)
- Data Translation XDR
- File I/O local and Network File System (NFS)
- Naming rpcbind,Network Info Service (NIS) was
Yellow Pages,Domain Name Service (DNS) - Time sync Network Time Protocol (NTP)
- Threading/Sync pthreads, fork/exec
- Security basic authentication and authorization
- And GUI too Tcl/Tk, X Windows, OSF Motif
8OSF DCE
- Open Software Foundation created Distribute
Computing Environment early 1990s - Processes DCE RPC, Interface Definition Language
(IDL) - File I/O Distributed File System (DFS)
- Naming rpcd, Cell Directory Service (CDS)
- Time sync DECs Distribd Time Service (DTS)
- Security Kerberos (from MIT, 1980s)
- Interoperates with old-line Unix framework
9DCEs Contributions
- Pulled Unix community (and Microsoft) around
distributed processing standard - First attempt to pull together middleware pieces
- Systematically addressed scalability in each part
- OSF also tried network management
- Distributed Management Environment (DME)
- brought together network management standards
- fizzled after OSF ran into financial woes
10Microsoft Frameworks of Old
- The Programmers choices/tools
- the win32 API (basic OS resources)
- Microsoft Foundation Classes (MFC)
- Web programming tools
- ActiveX Template Library (ATL)
- Active Server Pages (ASP)
- Internet Server API (ISAPI)
- Email Collaboration Data Objects (CDO)
11More Historical Microsoft
- Database (ActiveX Data Objects - ADO)
- ODBC, DAO, RDO, whatever
- Distributed COM, DCOM, COM
- sockets and DCE RPC also available
- Enterprise servers
- SQL Server
- Exchange Server
- many, many more!
12CORBA
- Essential idea object request broker (ORB)
- CORBA Common ORB Architecture
- CORBA RMI IDL (interface defn. lang.)
- CORBA services and features
- naming, trading
- handling and routing of events, notifications
- security
- interoperability via Inter-ORB protocol
13CORBAs Contributions
- Provided a rallying point for OO RPC
- industry was stuck on traditional RPC
- Pioneer in inter-organization (enterprise)
computing - predecessor Electronic Data Interchange (EDI)
- Object Mgmt Group created CORBA in 1991
- version 2.0 specification arrived in 1996
- glue Internet Inter-ORB Protocol (IIOP)
- challenger for future dominance SOAP
14J2EE Components
- RMI and registry
- Database (JDBC) and File I/O
- Threads and synchronization
- Graphics (2D/3D), windows, GUI (Swing)
- Java Servlets API, JavaServer Pages (JSP)
- JAX packages (XML services)
- Enterprise JavaBeans components
- Security
- Email, Web services
15.NET Framework Classes
- Remoting (RMI), Message (email)
- Database and File I/O (local distributed)
- Security
- Data presentation with XML
- Web Services and web communication
- Graphics (2D/3D), windows, GUIs
- Threads and synchronization
- 3500 classes (so far)
16The Magic Word Transparency
- Access transparency
- Location transparency
- Concurrency transparency
- Replication transparency
- Failure transparency
- Migration transparency
- Performance transparency
- Scaling transparency
17Problem of Distributed State
- A huge problem of distribution
- Hard to keep everybody on the same page
- Some sub-problems
- controlling massive amounts of concurrency
- handling uncertain message delays
- dealing with failures (versus monolithic failure)
- changing state in gt1 place (two-phase commits)
- increased security risk
18The Network Operating System
- Same basic five tasks of an OS
- Process management (including sync)
- Memory management
- File/Storage management
- Security
- Device management
- Device mgmt naming/brokering
- everything on the net is a resource/device
19Web Services
- SOAP Simple Object Access Protocol
- THE wave of the decade
- On track to become the standard for remote
procedure/method call/invocation - Works across all platforms and all languages
- Built on top of HTTP and XML
- WSDL Web Service Description Language
- The interface definition mechanism for SOAP
- UDDI Universal Description, Discovery and
Integration - Essential protocol for clients/servers to connect
20Futures
- Agents AI embedded in distributed systems
- P2P peer-to-peer rather than client/server model
- Grid Computing massively distributed tasks
- Pervasive Computing
- small wireless computers everywhere
- often embedded in more natural objects