0% found this document useful (0 votes)
6 views56 pages

Unit V

Uploaded by

ldunphy900
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views56 pages

Unit V

Uploaded by

ldunphy900
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 56

UNIT-V

Understanding Services and


Applications
List of Contents
Understanding Services and Applications:
 Understanding Service Oriented Architecture
 Managing and Monitoring SOA
Understanding Service Oriented Architecture

A Service-Oriented Architecture or SOA is a design


pattern which is designed to build distributed systems
that deliver services to other applications through the
protocol.
It is only a concept and not limited to any programming
language or platform.
What is a service:
-- A service is a well-defined, self-contained
function that represents a unit of functionality.
-- A service can exchange information from
another service. It is not dependent on the state
of another service.
-- It uses a loosely coupled, message-based
communication model to communicate with
applications and other services.
Service Connections
• Service consumer sends a service request to the service
provider, and the service provider sends the service response
to the service consumer.
• The service connection is understandable to both the service
consumer and service provider.
Service-Oriented Terminologies:
• Services - The services are the logical entities defined
by one or more published interfaces.
• Service provider - It is a software entity that
implements a service specification.
• Service consumer - It can be called as a requestor or
client that calls a service provider. A service consumer
can be another service or an end-user application.
• Service locator - It is a service provider that acts as a
registry. It is responsible for examining service provider
interfaces and service locations.
• Service broker - It is a service provider that pass service
requests to one or more additional service providers.
Characteristics of SOA:
The services have the following characteristics:
• They are loosely coupled.
• They support interoperability.
• They are location-transparent
• They are self-contained.
Components of service-oriented architecture
The service-oriented architecture stack can be categorized into
two parts - functional aspects and quality of service aspects.
Functional aspects
The functional aspect contains:
• Transport - It transports the service requests from the service
consumer to the service provider and service responses from
the service provider to the service consumer.
• Service Communication Protocol - It allows the service provider
and the service consumer to communicate with each other.
• Service Description - It describes the service and data required
to invoke it.
• Service - It is an actual service.
• Business Process - It represents the group of services called in a
particular sequence associated with the particular rules to meet
the business requirements.
• Service Registry - It contains the description of data which is
used by service providers to publish their services.
Quality of Service aspects
The quality of service aspects contains:
• Policy - It represents the set of protocols according to
which a service provider make and provide the
services to consumers.
• Security - It represents the set of protocols required
for identification and authorization.
• Transaction - It provides the surety of consistent
result. This means, if we use the group of services to
complete a business function, either all must complete
or none of the complete.
• Management - It defines the set of attributes used to
manage the services.
Advantages of SOA

SOA has the following advantages:


• Easy to integrate - In a service-oriented architecture, the integration is
a service specification that provides implementation transparency.
• Manage Complexity - Due to service specification, the complexities
get isolated, and integration becomes more manageable.
• Platform Independence - The services are platform-independent as
they can communicate with other applications through a common
language.
• Loose coupling - It facilitates to implement services without impacting
other applications or services.
• Parallel Development - As SOA follows layer-based architecture, it
provides parallel development.
• Available - The SOA services are easily available to any requester.
• Reliable - As services are small in size, it is easier to test and debug
them.
Protocol stack of SOA
components of different types communicate
using different protocols as part of SOA.

SOAP: Simple Object Access Protocol


REST: Representation State Transfer
When you combine Web services to create
business processes, the integration must be
managed. Two main methods are used to
combine Web services: orchestration and
choreography.
In orchestration, a middleware service centrally
coordinates all the different Web service
operations, and all services send messages
and receive messages from the orchestrator.
The logic of the compound business process is
found at the orchestrator alone.
By contrast, a compound business process that
uses choreography has no central
coordination function. In choreography, each
Web service that is part of a business process
is aware of when to process a message and
with what client or component it needs to
interact with.
Benefits of Orchestration
• Simplicity: Orchestration can be simpler to implement and
maintain than choreography, as it relies on a central
coordinator to manage and coordinate the interactions
between the webservices.
• Centralized control: With a central coordinator, it is easier to
monitor and manage the interactions between the
webservices in an orchestrated system.
• Visibility: Orchestration allows for a holistic view of the
system, as the central coordinator has visibility into all of the
interactions between the webservices.
• Ease of troubleshooting: With a central coordinator, it is easier
to troubleshoot issues in an orchestrated system.
Disadvantages of Orchestration
• Tight coupling: Orchestration is typically
known for being tighter coupled which can
make the system less scalable and resilient.
• Single point of failure: The central coordinator
in an orchestrated system can be a single point
of failure, which can make the system less
resilient.
Difficulty adding, removing, or replacing web
services: Changing the configuration of an
orchestrated system can be more difficult, as it
requires updating the central coordinator.
Overhead: The central coordinator in an
orchestrated system can add overhead to the
system.
Benefits of Choreography
• Loose coupling: Choreography allows web services to be loosely coupled,
which means they can operate independently and asynchronously without
depending on a central coordinator. This can make the system more
scalable and resilient, as the failure of one web service will not necessarily
affect the other web services.

• Ease of maintenance: Choreography allows web services to be developed


and maintained independently, which can make it easier to update and
evolve the system.

• Decentralized control: Choreography allows control to be decentralized,


which can make the system more resilient and less prone to failure.

• Asynchronous communication: Choreography allows web services to


communicate asynchronously, which can be more efficient and scalable
than synchronous communication.
Disadvantages of Choreography
• Complexity: Choreography can be more
complex to implement and maintain than
orchestration, as it requires the development
of well-defined interfaces and the coordination
of interactions between the webservices.
• Lack of central control: Without a central
coordinator, it can be more difficult to monitor
and manage the interactions between the web
services in a choreographed system.
Most mature SOA implementations favor
orchestration over choreography for a number
of reasons.
With orchestration a single central service
manages the various processes, and changes
to the business logic can be made in that one
location.
The integration of Web services into the
architecture is easier than with choreography
because these services don’t need to know
anything about the business process.
One way of performing orchestration is through
the use of an Enterprise Service Bus or ESB.
ESB provides a middleware software layer for
event management with a messaging
infrastructure.
An ESB is not a physical bus in the sense of a
network; rather, it is an architectural pattern
comprised of a set of network services that
manage transactions in a Service Oriented
Architecture.
Three different applications interfaced with an authentication
module through what has come to be called an Enterprise
Service Bus
Messages flow from client to component through
the ESB, which manages these transactions,
even though the location of the services
comprising the ESB may vary widely.
An ESB is necessary but not essential to a Service
Oriented Architecture because typical business
processes can span a vast number of messages
and events
An ESB therefore plays the role of a transaction
broker in SOA, ensuring that messages get to
where they where supposed to go and are acted
upon properly.
The service bus performs the function of
mediation: message translation, registration,
routing, logging, auditing, and managing
transactional integrity.
Transactional integrity is similar to ACID in a
database system—atomicity, consistency,
isolation, and durability, the essence of which
is that transactions succeed or they fail and
are rolled back
The typical features that found in ESBs
• Monitoring services aid in managing events.
• Process management services manage message transactions.
• Data repositories or registries store business logic and aid in
governance of business processes.
• Data services pass messages between clients and services.
• Data abstraction services translate messages from one format to
another, as required.
• Governance is a service that monitors compliance of your
operations with governmental regulation, which can vary from
state to state and from country to country.
• Security services validate clients and services and allow
messages to pass from one to the other
Managing and Monitoring SOA
• Software for monitoring and managing an SOA
infrastructure plays an important role in large SOA
deployments.
• While SOA offers a logical design and reusable
components, it does not make the task of network
management any easier.
• If anything, SOA management requires proactive
oversight because you can’t wait for a particular
application to fail before taking corrective action.
• Therefore, tools for managing SOAs tend to be
multifaceted and run constantly.
SOA management tools
 HP Software and Solutions OpenView SOA Manager
(https://h10078.www1.hp.com/cda/hpms/display/ma
in/hpms_content.jsp?zn=bto &cp=1-
10^36657_4000_100)
 IBM Tivoli Framework Composite Application
Manager for SOA (ITCAM; see http:// www-
01.ibm.com/software/tivoli/solutions/),
 Oracle BPEL Process Manager
(http://www.oracle.com/technology/bpel/ index.html
These products have SOA tools for network management.
 IBM’s product specializes in change management
and SOA lifecycle development, and it integrates
with a WebSphere and other Tivoli systems.
 HP SOA Manager provides dynamic mapping,
monitoring, and optimization of SOA services such
as Web services, software assets, and virtual
services. These framework products create a central
console with a variety of management views.
 Oracle’s BPEL Process Manager and WebSphere are
process managers for creating an Enterprise Service
Bus
Moving Applications to the cloud
 Applications in the cloud-
Functionality Mapping
Application Attributes
Cloud service Attributes
 When you move an application to the cloud, you
must use the APIs of your particular cloud service
provider.
 There are APIs for each of the types of cloud
services: infrastructure, software services, and
applications in the case of platform providers.
 These APIs are generally not interoperable.
 So although the situation may change in the future,
an application developer must make an informed
choice to select the vendor that both best suits his
needs and allows him to have the greatest flexibility.
Applications in the cloud

When you deploy an application to the cloud, you start with the
advantages and disadvantages of a distributed system that is
the Internet and add to that mix the fundamental
characteristics that clouds offer.
The question a developer needs to ask is whether his
application’s function is best served by cloud or local
deployment.
That answer depends upon the attributes of the application that
the developer is trying to preserve or enhance, and how
locating those services in the cloud impacts those attributes
 The location of an application or service plays a fundamental role in how
the application must be written.
 An application or process that runs on a desktop or server is executed
coherently, as a unit, under the control of an integrated program.
 An action triggers a program call, code executes, and a result is returned
and may be acted upon
 Taken as a unit, “Request => Process => Response” is an atomic
transaction
 Because the transaction is executing locally within the purview of a
monolithic application, the process is stateful and transaction is
consistent.
 The properties necessary to guarantee a reliable transaction in databases
and other applications and the technologies necessary to achieve them
have been called the ACID principle.
Atomicity: The atomic property defines a transaction
as something that cannot be subdivided and must
be completed or abandoned as a unit.
Consistency: The consistency property states that the
system must go from one known state to another
and that the system integrity must be maintained.
Isolation: The isolation property states that the
system cannot have other transactions operate on
data that is currently being processed by a
transaction.
Durability: The durability property states that the
system must have a mechanism to recover from
committed transactions should that be necessary
Functionality Mapping
• Functionality mapping in the context of cloud
computing typically refers to the process of mapping or
aligning the functionalities and requirements of an
application or service to the features and capabilities
offered by a cloud computing platform. This involves
understanding the specific needs and characteristics of
an application and identifying the corresponding
services or resources provided by the cloud provider to
meet those requirements.
• Here's a breakdown of the key aspects of functionality
mapping in cloud computing:
• Application Requirements:
– Identify the specific requirements of your application, such
as computing power, storage, network capabilities,
security, scalability, and other functional aspects.
• Cloud Service Selection:
– Evaluate the available services and features offered by the
cloud provider. This includes infrastructure services (e.g.,
virtual machines, storage, networking), platform services
(e.g., databases, messaging queues), and higher-level
services (e.g., machine learning, serverless computing).
• Mapping Application Components:
– Map each component of your application to the most suitable
cloud service or resource. For example, decide whether a
specific function can be implemented using a serverless
function (e.g., AWS Lambda) or if a relational database service
(e.g., Amazon RDS) is appropriate for your data storage needs.
• Scalability and Performance Considerations:
– Consider the scalability requirements of your application and
choose cloud services that can scale horizontally or vertically
based on your needs. Evaluate the performance characteristics
of the selected services to ensure they meet your application's
performance expectations.
• Data Management:
– Determine how data will be stored, managed, and
accessed. Cloud providers offer various storage options
(e.g., Amazon S3, Azure Blob Storage) and databases
(e.g., MySQL, MongoDB) with different performance
and scalability characteristics.
• Security and Compliance:
– Address security requirements and compliance
considerations by leveraging cloud provider features
such as identity and access management (IAM),
encryption, and compliance certifications.
• Cost Optimization:
– Consider the cost implications of using different cloud
services. Optimize resource usage to minimize costs
while ensuring that your application meets its
performance and scalability requirements.
• Integration with Other Services:
– Identify how different components of your application
will integrate with each other and with external
services. Leverage cloud provider features for seamless
integration and communication between services.
• Monitoring and Management:
– Set up monitoring and management tools provided by the
cloud platform to track the performance, availability, and
health of your application.
By effectively mapping the functionalities of your
application to the appropriate cloud services, you can
leverage the benefits of cloud computing, including
scalability, flexibility, and cost efficiency. This process is
crucial for designing and deploying applications in a
cloud environment that aligns with the specific needs
and goals of your business or project.
Application Attributes
Application attributes in cloud computing refer to the
characteristics and qualities that define how an application
behaves and operates within a cloud environment. These
attributes are important considerations when designing,
deploying, and managing applications in the cloud.
Here are some key application attributes in the context of cloud
computing:
• Scalability:
• Definition: The ability of an application to handle increased
workloads by adding resources dynamically.
• Cloud Consideration: Cloud platforms offer scalable services,
such as auto-scaling groups and serverless computing, to
automatically adjust resources based on demand.
• Flexibility:
– Definition: The ease with which an application can adapt to
changing requirements and environments.
– Cloud Consideration: Cloud services provide flexibility through the
use of modular and configurable resources, enabling easy
adjustments to meet evolving needs.
• Reliability:
– Definition: The ability of an application to maintain consistent
performance and availability.
– Cloud Consideration: Cloud providers offer redundant and
geographically distributed data centers, ensuring high availability
and reliability through features like load balancing and fault
tolerance.
• Security:
– Definition: The protection of data, resources, and systems from
unauthorized access, attacks, and data breaches.
– Cloud Consideration: Cloud providers offer a range of security
features, including identity and access management (IAM),
encryption, and security groups to help secure applications and
data.
• Performance:
– Definition: The responsiveness and efficiency of an application in
terms of processing speed and resource utilization.
– Cloud Consideration: Cloud platforms provide various computing
instances, storage options, and content delivery networks (CDNs)
to optimize application performance.
• Cost Efficiency:
– Definition: The ability to optimize resource usage and minimize
costs without compromising performance.
– Cloud Consideration: Cloud services often follow a pay-as-you-go
model, allowing users to scale resources up or down based on
demand, leading to cost optimization.
• Maintainability:
– Definition: The ease with which an application can be updated,
modified, and maintained over its lifecycle.
– Cloud Consideration: Cloud platforms support continuous
integration and deployment (CI/CD) pipelines, enabling
automated testing and deployment for enhanced maintainability.
• Interoperability:
– Definition: The ability of an application to integrate and work
seamlessly with other systems and services.
– Cloud Consideration: Cloud providers offer a variety of APIs
and integration options, facilitating interoperability with
external services and applications.
• Compliance:
– Definition: Adherence to legal, regulatory, and industry-specific
standards and requirements.
– Cloud Consideration: Cloud providers often provide
compliance certifications and tools to help users meet
regulatory requirements.
• Monitoring and Analytics:
– Definition: The ability to collect, analyze, and respond to data
regarding application performance, user behavior, and system
health.
– Cloud Consideration: Cloud platforms offer monitoring and
analytics tools to track application metrics, troubleshoot issues,
and optimize performance.
Considering these attributes during the design and
development phases of an application helps ensure that it
aligns with the capabilities and advantages of cloud
computing, resulting in a more efficient, scalable, and
resilient solution.
Cloud Service Attribute
Cloud service attributes in cloud computing define the
characteristics and features that distinguish different cloud
services. These attributes help users understand the
capabilities and functionalities offered by cloud service
providers.
Here are some key attributes of cloud services:
• On-Demand Self-Service:
• Definition: Users can provision and manage computing
resources as needed without requiring human intervention
from the service provider.
• Example: Users can provision virtual machines or storage
resources on demand through a web interface.
• Broad Network Access:
– Definition: Cloud services are accessible over the network and
can be accessed by a variety of devices, such as laptops,
smartphones, and tablets.
– Example: Accessing cloud-based applications through web
browsers or APIs from different devices.
• Resource Pooling:
– Definition: Computing resources are pooled and shared among
multiple users, with each user's data and applications logically
isolated.
– Example: Virtualization technologies enable the sharing of
physical resources among multiple virtual machines.
• Rapid Elasticity:
– Definition: Resources can be rapidly and automatically scaled
up or down to accommodate changing workloads.
– Example: Auto-scaling groups that automatically adjust the
number of server instances based on demand.
• Measured Service:
– Definition: Cloud resource usage is monitored, controlled, and
reported, providing transparency for both the provider and
the consumer.
– Example: Usage metrics, such as the number of virtual
machine hours or storage consumed, are tracked and billed
accordingly.
• Service Models:
– Definition: Different layers of services provided by cloud providers,
including Infrastructure as a Service (IaaS), Platform as a Service
(PaaS), and Software as a Service (SaaS).
– Example: IaaS provides virtualized computing resources, PaaS
offers a platform for application development, and SaaS delivers
fully functional software applications over the internet.
• Deployment Models:
– Definition: Different ways cloud services can be deployed, including
Public Cloud, Private Cloud, Hybrid Cloud, and Multi-Cloud.
– Example: Public Cloud services are available to the general public,
while Private Cloud services are dedicated to a specific
organization.
• Self-Service Portals:
– Definition: User interfaces or portals that allow users to
provision, manage, and monitor cloud resources without
direct interaction with the cloud provider.
– Example: Web-based dashboards or consoles for managing
virtual machines, storage, and other resources.
• Automation and Orchestration:
– Definition: The ability to automate repetitive tasks and
coordinate workflows to improve efficiency.
– Example: Using scripting or orchestration tools to automate
the deployment and scaling of applications.
• Security and Compliance Features:
– Definition: Built-in security measures and compliance features
provided by the cloud service to protect data and meet
regulatory requirements.
– Example: Identity and access management, encryption, and
compliance certifications offered by cloud providers.
• High Availability and Redundancy:
– Definition: Ensuring that cloud services are highly available
and resilient to failures through redundancy and failover
mechanisms.
– Example: Distributing applications across multiple data centers
or regions to minimize downtime.
• Understanding these attributes helps users
choose the right combination of cloud services
that align with their specific needs and
requirements. It also provides a framework for
evaluating and comparing different cloud
providers and their offerings.

You might also like