Slides on various communication middleware technologies.
Overview of communication middleware and web services for distributed applications.
Read More Download PDFOverview of Cloud Computing, Infrastructure as a Service, Platform as a Service, Software as a Service. Cloud computing means transferring ICT resources (servers, hosts, applications, databases, platforms etc.) to a cloud service provider (CSP) with the goal of reducing capital expenditures (CapEx). Cloud computing differs from legacy hosting services in that CSPs offer standardized services on a massive scale which results in economy-of-scale effects thus further reducing operating expenses (OpEx). Different cloud models such as public, private and hybrid clouds address different customer needs. The 3 categories for the functional level of cloud services are IaaS (Infrastructure as a Service), PaaS (Platform as a Service) and SaaS (Software as a Service). Countless models emerge almost daily such as MaaS (Management as a Service), BaaS (Backend as a Service) and NaaS (Network as a Service).
Read More Download PDFEnterprise Application Integration, or EAI in short, aims at integrating different applications into an IT application landscape. Traditionally, EAI was understood as using the same communication infrastructure by all applications without service-orientation in mind. This meant that the benefits of a shared infrastructure were limited while driving up costs through additional integration platforms. Service Oriented Architectures (SOA) brought a new paradigm by decomposing applications into reusable and shareable services. Service orientation requires careful design of services. A hierarchic scheme of services may help to define a suitable service decomposition. While SOA is technically based on big web service technologies, namely SOAP, WSDL and BPEL, WOA or Web Oriented Architecture stands for the lightweight service paradigm. WOA makes use of REST-based technologies like JSON and HTTP. In many cases, an Enterprise Service Bus (ESB) is used as an infrastructure element to achieve the technical integration of the services. The ESB core functions like message routing, filtering and transformation provide the mediation services required to integrate heterogeneous application landscapes.
Read More Download PDFMessage Oriented Middleware allows asynchronous operation between sender and receiver of information. This greatly reduces temporal coupling and allows building flexible and extensible application architectures. Message queues managed by message brokers are used as information exchanges between sender and receiver. The subscribe-publish pattern allows producers and consumers to share information through message brokers without any direct coupling between them. Various message oriented protocols like MSMQ, AMQP, XMPP and MQTT have emerged that serve the diverse needs of different environments.
Read More Download PDFJMS (Java Messaging Service) is an API for asynchronous message based communication between Java based applications. JMS implementations (instances that implement the JMS API) are called JMS providers. JMS defines two messaging domains. Point-to-point queues are typically used between one or multiple message senders and a single message receiver. Topics are multi-point queues where messages are distributed to multiple receivers. As such topics resemble a black board. Like many other message oriented middleware technologies, JMS provides advanced functions like persistent message delivery mode or different message acknowledgment modes. Additionally, messages can be sent and received in a transacted mode thus ensuring that either all or no messages are sent and received. JMS integrates into EJB (Enterprise Java Beans) through message driven beans.
Read More Download PDFEnterprise Java Beans (EJB) is a server-side component technology for Java EE based systems (JEE). Beans are business logic components that implement a standard interface through which the bean is hooked into the bean container (= runtime object for bean). A Java class implementing one of the standard bean interfaces is an Enterprise Java Bean. Beans can be accessed remotely, usually from a client tier. The EJB standard was developed to provide a common framework for solving recurring problems in business application development like persistence, transactions, security and runtime and lifecycle management. The EJB standard evolved greatly over time. EJB version 1 and 2 were complex and required to implement many interfaces and exception handling in EJBs. EJB version 3 brought great simplifications and did away with interfaces by replacing these with annotations which provide greater flexibility while keeping complexity low. EJBs come in 3 different flavors: Stateless and stateful session beans and message driven beans. Entity beans of EJB version 1 and 2 were replaced by the Java Persistence API in EJB version 3.
Read More Download PDFRMI is a lightweight Java technology that provides access to remote methods, similar to RPC, but object-oriented. RMI basically provides remote object access for a client and object registration for servers. RMI is both a Java API (java.rmi.* package) as well as a transport protocol definition for transporting RMI calls through a network. RMI is a Java technology since it requires that client and server objects run in a JVM (Java Virtual Machine). By using IIOP as transport protocol, however, it is possible to connect RMI-clients to non-Java server objects (e.g. CORBA). RMI defines the elements client, server, RMI registry where servers register their services and possibly a plain vanilla web server that can be used by clients to dynamically load object classes to access servers.
Read More Download PDFOSGi is a component-based technology and was developed to provide a software platform that allows modularization and dynamic linking of application components. OSGi components are called bundles and can be exported and imported by application bundles. OSGi implementations like Apache Felix or Eclipse Equinox provide a runtime container which controls the lifecycle of bundles. Even though OSGi is hardware independent, it is based on the Java Virtual Machine and as such extends the concepts of the underlying Java language. An OSGi bundle's capabilities and properties are defined in a manifest file that is packed together with the bundle's Java class files. The manifest file allows compatibility checks by the OSGi runtime between the exporting bundle and the importing bundle. This export and import mechanism allows highly flexible and dynamic application environments where applications and components are installed, linked and started at runtime without the need to restart the entire system.
Read More Download PDFJSON-RPC is a simple RPC (Remote Procedure Call) mechanism, similar to XML-RPC. Unlike XML-RPC which is a client-server protocol, JSON-RPC is a peer-to-peer protocol. It uses JSON (Javascript Object Notation, RFC4627) as the serialization format and plain TCP streams or HTTP as transport mechanism. JSON-RPC defines the three message types Request, Response and Notification. There is no direct mapping of JSON-RPC message to HTTP request. HTTP or plain TCP are merely transport protocols that carry JSON-RPC messages. JSON-RPC is a simple protocol and therefore lacks most of the features that big web services like SOAP/WSDL and the WS-* standards provide. JSON-RPC may be suited for web service applications with the need for bidirectional interaction (peer2peer), but where the complexity of SOAP is not required.
Read More Download PDFXML-RPC is a remote procedure call protocol using XML as data format and HTTP as transport protocol. It is a simple mechanism to call remote procedures on a machine with a different operating system. XML-RPC is language and platform independent. XML-RPC libraries are available in Java and other languages. XML-RPC is not more than its name implies and thus is very simple and lean. This means that it lacks most of the features that SOAP/WSDL web services provide.
Read More Download PDFRPC allows a client application to call procedures in a different address space on the same or on a remote machine (= transfer of control and data to a different address space and process). This means that RPC extends sockets with remote procedure call semantics. Thus RPC is an early approach for distributed applications. Different flavors of RPC evolved over time. An early standard was set forth by Sun Microsystems with ONC RPC. It is defined in RFC1057 (protocol) and RFC4506 (XDR - data presentation). The binder (formerly portmapper) is a central component of the RPC architecture. It is a deamon that serves as a registry for registering server procedures and allows a client to lookup procedures for being called remotely. RPC defines three different call semantics. Maybe call semantics mean that a request may be lost without further notice by the RPC system. For applications requiring higher quality of service, at-least-once call semantics ensure that the call is successfully executed at least once. However, the call may be duplicated in case of packet loss. Exactly-once call semantics provide assurance that the call is executed at least and at most once.
Read More Download PDFOverview of Microsoft Message Queueing (MSMQ) messaging technology. MSMQ is Microsoft's message queueing technology that also integrates well into the newer Windows Communication Foundation framework. MSMQ provides most of the features and functionality typical of message queueing systems.
Read More Download PDFOverview of Microsoft .NET Platform and Components. .NET is Microsoft's managed code platform. .NET comes with a wealth of libraries for communication (WCF), graphical user interfaces (WPF, WinForms), database access (ADO.NET, SQL) etc.
Read More Download PDF.Net remoting is a .Net-based distributed object technology for accessing .Net objects that reside in a different application domain (different process on the same machine or different process on another machine). .Net shares concepts with DCOM (Distributed Component Object Model), but simplifies the communication with regard to transport ports and programmatic model. Microsoft's newer WCF (Windows Communication Foundation) provides a unified communication and programming model thus replacing older technologies like .Net remoting and DCOM in many applications.
Read More Download PDFOverview of Microsoft COM / DCOM technology. DCOM is Microsoft's component technology and can be roughly compared to CORBA technology. DCOM is however tightly bound to the Windows operating system (Win32 API). Windows Runtime is a newer Microsoft technology that borrows much of the concepts of COM/DCOM.
Read More Download PDFOverview of CORBA (Common Object Request Broker Architecture) object technology. CORBA is a distributed object technology (DOT) that extends the remote procedure call semantics to distributed objects. Object interfaces are described in a formal language called IDL (Interface Description Language) that allows generating stubs and skeletons through an IDL compiler.
Read More Download PDFTransaction Processing Monitors represent an early type of middleware that is still widely used for performing distributed transactions involving multiple databases. Usually TPMs employ the two phase commit protocol that ensures ACID properties (Atomicity, Consistency, Isolation, Durability) as in relational databases.
Read More Download PDFAll Rights Reserved © Peter R. Egli