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