Communication Middleware, Service Oriented Architectures and Cloud Computing Technologies

Communication Middleware

Cloud Computing Technologies

Service Oriented Architectures (SOA)

Definition

Goal

Origins

Started

Continued

client/server model

multi-tiered model

message-oriented paradigm

event-driven paradigm

object-oriented paradigm

resource-oriented paradigm

procedure-oriented paradigm

component-oriented paradigm

service-oriented paradigm

Simplify the use of networking layer services by:

Providing uniform-standard interfaces

Providing reusable components/services

Hiding heterogeneity

Hiding distribution

Provides a service allowing two or more distributed applications to communicate by exchanging messages

Synchronously

Asynchronously:

Requires an “always-available” server

Follows request/reply pattern

Obtain immediate responses of the
communication partner

request/reply pattern is not applied

It is not expected that the server or remote partner must be “always available”

Communication middleware frameworks

Remote Procedure Call (RPC)

Object Request Broker (ORB)

Multi-tiered

Message Oriented
Middleware (MOM)

Client-Server

Client and server interconnected via the
network

Clients are highly dependent of the server location, implementation language, state and availability

Important number of demands, processing, memory or networking resources limits can be encountered

Performance and reliability of the distributed system can get compromised

A distributed system can be split in several tiers or components

Client side (client-tier), server side (presentation-tier), the application logic (business-tier) and enterprise information system (EIS-tier)

This model allows a better distribution of components

Based on inter-process communication

Allows an application to execute a procedure or operation offered by a remote system

RPC implementations are based on the synchronous request-reply pattern that

Blocks the client until
the server replies to RPC call

Allows the communication with remote objects while hiding networking mechanisms

Communications are synchronous

Requests go through the ORB over the network

Performance can be affected by the broker usage

At the client side a proxy allows accessing the object methods by implementing the required networking-oriented operations

Offers asynchronous communication between distributed applications

Based on the concepts of messages and queues

Messages contain network routing information and the payload allowing communication

Queues represent mediators assuring asynchronous communication

Origins

Respond to real-time demands

Provide adapted solutions to cope with the heterogeneity nature of infrastructures

Needs for the establishment of agile and dynamic
collaborations between business partners

Intended to satisfy basic non-functional requirements

Integrability

Interoperability,

Extensibility

Availability

Proactivity

Definition

Architectural framework or referential model for building
software systems based on distributed services

May be offered by different service providers

How people, organizations and systems provide and use services in an agile, scalable and interoperable world

Services

Service implementation: a physical implementation of the service providing the required capability or business logic

Service repository: provides the required facilities to discover and use services

Service interface: specifies how the service can be accessed

Service bus: provides the required connectivity between the service participants

Service contract: formal or informal specification of the service

NOTE: a service is accessed using the service interface and the resulting service has to be consistent with the service description or contract

Definition

A technological style aimed at providing in a flexible and easier way hardware or software-computing resources as services

Service layers

Platform as a Service (PaaS)

Infrastructure as a Service (IaaS)

Software as a Service (SaaS)

Consists in providing to cloud consumers applications and / or software to process business functions

Consists in providing to cloud consumers platforms that allows them developing, deploying and hosting their own applications and software

Consists in providing to cloud consumers infrastructural resources (storage, computing, network) usable for deploying and running their own platforms, applications and software

Key concepts

The automation that allows supporting all the cloud operations in an efficient and scalable way with a minimum human intervention

The ability to virtualize all resources (infrastructure, platform, application) in order to offer them as a service

Essential
characteristics

Resource pooling

Rapid elasticity:

Broad network access

Measured Service

On-demand self-service

This offers more agility to cloud
user

A cloud consumer can provision, use and release resources based on its needs and these operations don’t require intervention at the provider side

A cloud consumer can access to providers’ resources and services using any kind of devices connected to the Internet.

Smartphone, tablets, laptops, etc.

A cloud provider applies multi-tenant models to pool its resources to serve multiple cloud consumers

This operation allows providers using better their resources and need to be transparent for consumer

A consumer can access to the services at any time, as they have an unlimited capacity

At the provider side, this requires an adaptation of the underlying resources and a dynamic allocation according to the load and the number of consumers

storage, processing, bandwidth, and active user accounts

Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the used service

Cloud systems automatically control and optimize resource usage by leveraging a metering capability at some level of abstraction appropriate to the type of service