Middleware

Petr Tůma

This material is a work in progress that is provided on a fair use condition to support the Charles University Middleware lecture. It should not be used for any other purpose than to support the lecture. It should not be copied to prevent existence of outdated copies. It comes without warranty of any kind.

This is version 179M generated on 2016-03-09 14:06:33.

For the latest version, check http://d3s.mff.cuni.cz/~ceres.


Table of Contents

1. Introduction
1.1. Tiered Architectures
1.2. Service-Oriented Architectures
1.3. Rehearsal
2. Communication
2.1. Unreliable Unicast
2.1.1. Example: IP Addressing And Routing
2.1.2. Example: IP Fragmentation And Reassembly
2.2. Reliability In Unicast
2.2.1. Packet Damage
2.2.2. Packet Loss
2.2.3. Packet Duplication
2.2.4. Other Failures
2.2.5. Example: TCP Reliability
2.3. Flow And Congestion
2.3.1. Example: TCP Flow And Congestion
2.4. Timing Guarantees
2.4.1. Example: Resource Reservation Protocol
2.4.2. Example: Real Time Protocol
2.4.3. Example: Real Time Streaming Protocol
2.5. Rehearsal
2.6. Unreliable Multicast
2.6.1. Example: IP Multicast Addressing And Routing
2.7. Reliability In Multicast
2.7.1. Sender Initiated Error Recovery
2.7.2. Receiver Initiated Error Recovery
2.7.3. Tree Topology
2.7.4. Ring Topology
2.8. Ordering Guarantees
2.8.1. Causal Relation
2.8.2. Lamport Clock
2.8.3. Vector Clock
2.8.4. Example: Reliable Multicast Protocol
2.9. Rehearsal
2.10. Addressing By Content
2.11. Rehearsal
2.12. Messaging Interfaces
2.12.1. Messages
2.12.2. Addresses
2.12.3. Blocking
2.12.4. Synchronization
2.12.5. Underlying Protocol Issues
2.12.6. Rehearsal
2.13. Streaming Interfaces
2.13.1. Rehearsal
2.14. Remote Procedure Call
2.14.1. Stub Generation
2.14.2. Argument Passing
2.14.3. Parallelism
2.14.4. Lifecycle
2.14.5. Underlying Protocol Issues
2.14.6. Rehearsal
2.15. Distributed Shared Memory
2.15.1. Rehearsal
3. Persistence
4. Replication
5. Deployment
5.1. Clouds
5.2. Components
6. Mobility
6.1. Protocols
7. Systems
7.1. GM
7.1.1. Rehearsal
7.2. IBM MQ
7.2.1. Queues And Messages
7.2.2. Message Encoding
7.2.3. Miscellanea
7.3. Web Services
7.3.1. SOAP
7.3.2. WSDL
7.3.3. UDDI
7.3.4. Service Composition
7.3.5. Rehearsal
7.4. CAN
7.5. DCE
7.5.1. Threads
7.5.2. Remote Procedure Call
7.5.3. Directory
7.5.4. Rehearsal
7.6. DDS
7.7. EJB
7.7.1. Stateful Session Beans
7.7.2. Stateless Session Beans
7.7.3. Message Driven Beans
7.7.4. Entities
7.7.5. Transactions
7.7.6. Deployment
7.7.7. Rehearsal
7.8. JMS
7.8.1. Connections and Sessions and Contexts
7.8.2. Destinations
7.8.3. Messages
7.8.4. Producers and Consumers
7.8.5. Rehearsal
7.9. MPI
7.9.1. Peer To Peer Communication
7.9.2. Group Communication
7.9.3. Remote Memory Access
7.9.4. Miscellanea
7.9.5. Examples
7.9.6. Rehearsal
7.10. .NET Remoting
7.10.1. Interface
7.10.2. Implementation
7.10.3. Lifecycle
7.11. Java RMI
7.11.1. Interface
7.11.2. Implementation
7.11.3. Threading
7.11.4. Lifecycle
7.11.5. Naming
7.11.6. Rehearsal
7.12. Sun RPC
7.12.1. Examples
7.13. DCOM
7.13.1. Interface Definition Language
7.13.2. Components
7.13.3. Lifecycle
7.13.4. Extras
7.13.5. Rehearsal
7.14. JAXB
7.15. OSGi
7.15.1. Bundles
7.15.2. Services
7.16. Chord
7.16.1. Routing Protocol
7.16.2. Application Interface
7.16.3. Rehearsal
7.17. CORBA
7.17.1. Interface Definition Language
7.17.2. Language Mapping
7.17.3. Object Adapter
7.17.4. Network Protocol
7.17.5. Messaging
7.17.6. Components
7.17.7. Real Time
7.17.8. Rehearsal
7.18. JAX-RS
7.19. JAX-WS
7.20. Django
7.21. Hadoop
7.22. Pastry
7.22.1. Routing Protocol
7.22.2. Application Interface
7.23. 0MQ
7.24. Chimera
7.24.1. Application Interface
7.25. JGroups
7.25.1. Protocol Modules
7.25.2. Channels
7.25.3. Building Blocks
7.26. Bigtable
7.27. Memcached
7.28. ProActive
7.28.1. Rehearsal
7.29. JavaSpaces
7.29.1. Rehearsal

List of Figures

1.1. Tiered Architecture Example
1.2. Service-Oriented Architecture Example
2.1. Cross Parity Correction Example
2.2. Cross Parity Miscorrection Example
2.3. CRC Calculation Example
2.4. IGMP Membership Query
2.5. IGMP Membership Report
2.6. IGMP Group Record
7.1. Print Interface Example
7.2. Sample Client Modification Example
7.3. Sample Server Modification Example
7.4. MIDL Interface Definition Example
7.5. IUnknown Interface
7.6. IDispatch Interface
7.7. Mapping Example XML Schema Input
7.8. Mapping Example Java Output
7.9. Holder Class Example
7.10. Var Class Example
7.11. Var Class Usage
7.12. Any Class Example
7.13. Any Class Insertion
7.14. Any Class Extraction
7.15. Exception Class Example
7.16. Union Class Example
7.17. Union Class Usage
7.18. Enum Class Example
7.19. Enum Class Usage
7.20. Sequence Class Example
7.21. Fixed Class Example
7.22. Proxy Interface Class Example
7.23. Proxy Var Class Example
7.24. Proxy Class Example
7.25. Servant Base Class
7.26. Servant Class Example
7.27. Servant Base Class
7.28. Servant Class Example
7.29. Servant Base Class
7.30. Servant Class Example
7.31. Value Mapping Example
7.32. Object Adapter Configuration
7.33. Object Activation
7.34. Current Object Interface
7.35. Servant Activator Interface
7.36. Servant Locator Interface
7.37. Request Forward Exception
7.38. Service Example
7.39. Mapping Example Java Input
7.40. Mapping Example WSDL Output (Document Style)
7.41. Mapping Example WSDL Output (RPC Style)
7.42. Pastry Endpoint API
7.43. Pastry Application API
7.44. Channel Class
7.45. Receiver Interface

List of Examples

7.1. Broadcast Example
7.2. Scan Example