1. Distributed application architectures (client-server, multi-tier, SOA, ESB, P2P, IoT ...), purpose of middleware
2. Common design patterns and mechanisms (remote procedure call, messaging, distributed shared memory, agents ...)
3. Communication protocols (PGM, AMQP, IIOP, MQTT ...)
4. Messaging technologies (MPI, JMS, ActiveMQ, 0MQ, DDS ...)
5. Remote procedure call technologies (SOAP, CORBA ...)
6. Shared memory technologies (Hazelcast, memcached ...)
7. Technologies for software agents (ProActive, Akka ...)
8. Technologies for software components (OSGi, Fractal ...)
9. Technologies for data storage (JPA, JTA, Fink, Couchbase ...)
10. Other selected examples The list of specific technologies changes to accommodate the current technological development and practical lecture constraints.
Middleware refers to technologies used to build modern distributed applications.
This is a middleware course for advanced students.
It introduces the role of middleware in modern software architectures, and then focuses on individual features typically offered by middleware technologies such as remote procedure call, messaging, deployment and others. For each feature, the course discusses the general issues involved and introduces the specific technologies used to address the issues.