| |
| |
| |
Introduction | |
| |
| |
What is distributed computing? | |
| |
| |
Basic network concepts | |
| |
| |
Basic operating system concepts | |
| |
| |
Basic software engineering concepts | |
| |
| |
The Internet | |
| |
| |
Network resources and their identification: computers, services, resources, host names, host identifiers, port addresses, the domain name system, Internet addresses | |
| |
| |
Uniform Resource Locator (URL) | |
| |
| |
Uniform Resource Identifier (URI) | |
| |
| |
Security | |
| |
| |
Fault Tolerance | |
| |
| |
| |
Interprocess Communication | |
| |
| |
Basic model | |
| |
| |
Primitives (operations): connect, send, receive, disconnect | |
| |
| |
Connection-oriented/connectionless | |
| |
| |
Data marshalling: data flattening, data representation, serialization | |
| |
| |
Event synchronization | |
| |
| |
Event diagram, sequence diagram | |
| |
| |
| |
Distributed Computing Paradigms | |
| |
| |
Array of paradigms that have evolved for distributed computing | |
| |
| |
A historical look at the evolution of these paradigms | |
| |
| |
Overview & comparison of each paradigm | |
| |
| |
| |
The Socket API | |
| |
| |
The basic model | |
| |
| |
Stream-mode (connection-oriented) socket | |
| |
| |
Datagram socket (connectionless) socket | |
| |
| |
Java socket API | |
| |
| |
Using socket to implement a client | |
| |
| |
Using socket to implement a server | |
| |
| |
A simple middleware using sockets | |
| |
| |
Secure sockets and the Java secure socket extension API | |
| |
| |
| |
The Client-server Paradigm | |
| |
| |
The daytime protocol and a sample client-server suite | |
| |
| |
The echo protocol and a sample client-server suite | |
| |
| |
Connection-oriented client-server | |
| |
| |
Connectionless client-server | |
| |
| |
Iterative server and concurrent server | |
| |
| |
Stateful server and stateless server | |
| |
| |
| |
Group Communications | |
| |
| |
Unicast versus multicast | |
| |
| |
Basic model of group communications | |
| |
| |
The Java multicast API | |
| |
| |
Sample multicast sender program | |
| |
| |
Sample multicast listener program | |
| |
| |
Multicast and message ordering | |
| |
| |
Reliable multicast/broadcast | |
| |
| |
| |
Distributed objects | |
| |
| |
Message passing versus distributed objects | |
| |
| |
The basic model | |
| |
| |
Remote procedure call | |
| |
| |
Remote method invocation | |
| |
| |
| |
Advanced Remote Method Invocations (RMI) | |
| |
| |
RMI stub downloading | |
| |
| |
security policy | |
| |
| |
Callback | |
| |
| |
| |
Internet applications | |
| |
| |
Basic components and protocols: HTTP, HTML, MIME, web server, browser, web forms | |
| |
| |
Web document types: static, dynamic, executable, active | |
| |
| |
CGI: background; interaction and passing of data among browser, web server, and script(s) | |
| |
| |
HTTP Session state information: hidden tags, cookies, session objects | |
| |
| |
Client-side programming: Applets, JavaScript | |
| |
| |
Server-side programming: common gateway Interface (CGI), servlets, server pages | |
| |
| |
| |
The Common Object Request Broker Architecture (CORBA) | |
| |
| |
Basic architecture | |
| |
| |
Object Servers and Object Clients | |
| |
| |
Object References | |
| |
| |
Naming services | |
| |
| |
Object services | |
| |
| |
Object adapters | |
| |
| |
Java IDL | |
| |
| |
| |
Internet Applications - continued | |
| |
| |
Applets | |
| |
| |
Servlets; session data maintenance | |
| |
| |
Web services and the Simple Object Access Protocol (SOAP) | |
| |
| |
| |
Advanced Distributed Computing Paradigms | |
| |
| |
Message queue system | |
| |
| |
Mobile agents | |
| |
| |
Network services | |
| |
| |
Object spaces | |