Middleware

Petr Tůma

This is a work in progress material created to support the Charles University Middleware lecture. It is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

This is version 0d47bdc1ec56a7f8d2e7aad88d9dfab8b3e53890 (modified) generated on 2025-02-24 08:44:52. For the latest version, check http://d3s.mff.cuni.cz/teaching/nswi080.


Table of Contents

1. Concepts
1.1. Architectures
1.2. Serialization
1.2.1. Textual
1.2.2. Binary
1.3. Protocols
1.3.1. Reliability
1.3.2. Atomicity
1.3.3. Multicast Membership
1.3.4. Multicast Reliability
1.3.5. Multicast Ordering
2. Systems
2.1. CORBA
2.1.1. Interface Definition Language
2.1.2. Language Mapping
2.1.3. Object Adapter
2.1.4. Network Protocol
2.1.5. Messaging
2.1.6. Components
2.1.7. References
2.2. Data Distribution Service (DDS)
2.3. Enterprise JavaBeans (EJB)
2.3.1. Session Objects
2.3.2. Message Driven Objects
2.3.3. Entity Objects
2.3.4. Transactions
2.3.5. References
2.4. etcd
2.4.1. References
2.5. Felix
2.6. FlatBuffers
2.6.1. Schema Language
2.6.2. C++ Generated Code Basics
2.6.3. Encoding
2.7. gRPC
2.7.1. Interface Description Language
2.7.2. C++ Server Code Basics
2.7.3. Java Server Code Basics
2.7.4. Python Server Code Basics
2.7.5. C++ Client Code Basics
2.7.6. Java Client Code Basics
2.7.7. Python Client Code Basics
2.7.8. References
2.8. Hazelcast
2.9. JGroups
2.9.1. Channels
2.9.2. Building Blocks
2.9.3. Protocol Modules
2.9.4. References
2.10. Java Message Service (JMS)
2.10.1. Architecture
2.10.2. Destinations
2.10.3. Messages
2.10.4. Producers and Consumers
2.10.5. References
2.11. Apache Kafka
2.11.1. References
2.12. Memcached
2.12.1. References
2.13. Message Passing Interface (MPI)
2.13.1. Architecture
2.13.2. Point-To-Point Communication
2.13.3. Collective Communication
2.13.4. Virtual Process Topologies
2.13.5. Remote Memory Access
2.13.6. References
2.14. MessagePack (msgpack)
2.14.1. References
2.15. Open Services Gateway Initiative (OSGi)
2.15.1. Bundles
2.15.2. Services
2.16. Protocol Buffers (protobuf)
2.16.1. Message Description Language
2.16.2. C++ Generated Code Basics
2.16.3. Java Generated Code Basics
2.16.4. Python Generated Code Basics
2.16.5. Encoding
2.16.6. References
2.17. Redis
2.17.1. Data Model
2.17.2. Database
2.17.3. Publish Subscribe
2.17.4. Transactional Command Execution
2.17.5. Scripting
2.17.6. References
2.18. Java Remote Method Invocation (RMI)
2.18.1. Interface
2.18.2. Implementation
2.18.3. Threading
2.18.4. Lifecycle
2.18.5. Naming
2.18.6. References
2.19. Sun RPC
2.19.1. References
2.20. Apache Thrift
2.20.1. Interface Description Language
2.20.2. C++ Server Code Basics
2.20.3. C++ Client Code Basics
2.20.4. References
2.21. Web Services
2.21.1. SOAP
2.21.2. WSDL
2.21.3. BPEL
2.22. 0MQ
2.22.1. Sockets
2.22.2. Patterns
2.22.3. References
2.23. Apache ZooKeeper
2.23.1. Architecture
2.23.2. Interface
2.23.3. Recipes
2.23.4. References