This is an old revision of the document!
Direct strongly coupled access to the API offered by local API access or by ad-hoc Internet protocols (e.g. socket programming) and support by communication mechanisms (e.g., for multicast communication).
Note, local API access can be still distributed, i.e. a download of the API4KB knowledge resource artifacts managed in remote KB repositories to local repositories and access to the downloaded KB artifacts through the additionally downloaded API4KB (code) libraries. Example: API4KB OntoMaven.
Wide range of direct techniques based on a loosely-coupled two-way exchange via an interface between communicating entities.
Protocols involve pairwise exchange of messages from client to server and from server back to client with the first message containing an encoding of operation to be executed at the server, the second message contains the result (encoded as an array of bytes). Paradigm is rather primitive (in contrast to RPC/RMI) and typically only used for e.g. embedded systems where performance is very important. Approach is also used by e.g. the http protocol.
Examples, e.g. Web Services, stateless REST Web Services, Enterprise Service Bus, …
Resembles RPC in the world of distributed objects.
Distributed Object Middleware, e.g. Java RMI (restricted to Java), OMG Corba (multi-language solution with declarative IDL).
A unit of composition with contractually specified interfaces and explicit content dependencies only. Component is specified in terms of a contract which includes a set of provided interfaces (interfaces that the component offers as a service to other components) and required interfaces (dependencies that this component has on other components). Container provides managed server-side hosting environment for components and deals with the distributed systems and middleware issues.
Examples, e.g. Java Beans, Corba Component Model, …
Indirect decoupled techniques where sender and receiver are time and space uncoupled via an intermediary. Indirect communication between entities in a distributed system through an intermediary with no direct coupling between the sender and the receiver(s), e.g. event routing in publish-subscribe middleware (based e.g. on peer-to-peer), streaming to a cloud, ….
Publish-subscribe with event-based communication through propagation of events (via an underlying overlay network, e.g. structured and unstructured peer-to-peer or other broker overlay). Publishers publish structured events to an event service (responsible for event routing and matching) and subscribers express interest in particular events through subscriptions.
Distributed Event Based Systems with Complex Event Processing (CEP) in Event Processing Agents (EPAs) deployed in Event Processing Networks (EPNs).
Broadcast and multicast.
Examples, e.g. Tuple Spaces, Distributed Shared Memory, Message Queues (e.g., JMS, Active MQ, …)