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 0d4922f166c7b5b2739aff2e10953b52d2ba75e8 (modified) generated on 2023-05-12 07:49:00. 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. References
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. 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