Unit 1 - SOA - Architecture Desc
Unit 1 - SOA - Architecture Desc
SOA - Overview
What is Service Oriented Architecture (SOA)?
The Service Oriented Architecture is an architectural design which includes collection of services
in a network which communicate with each other. The complication of each service is not
noticeable to other service. The service is a kind of operation which is well defined, self contained
that provides separate functionality such as checking customer account details, printing bank
statements etc and does not depend on the sate of other services.
History
The first report published on SOA by the analysts Roy W.Schulte and Yefim V.Natis in 1996.
Why to use SOA?
SOA is widely used in market which responds quickly and makes effective changes according
to market situations.
The SOA keep secret the implementation details of the subsystems.
It allows interaction of new channels with customers, partners and suppliers.
It authorizes the companies to select software or hardware of their choice as it acts as
platform independence.
Features
SOA uses interfaces which solves the difficult integration problems in large systems.
SOA communicates customers, providers and suppliers with messages by using the XML
schema.
It uses the message monitoring to improve the performance measurement and detects the
security attacks.
As it reuses the service, there will be lower software development and management costs.
Advantages
SOA allows reuse the service of an existing system alternately building the new system.
It allows plugging in new services or upgrading existing services to place the new business
requirements.
It can enhance the performance, functionality of a service and easily makes the system
upgrade.
SOA has capability to adjust or modify the different external environments and large
applications can be managed easily.
The companies can develop applications without replacing the existing applications.
It provides reliable applications in which you can test and debug the independent services
easily as compared to large number of code.
Disadvantages
SOA requires high investment cost (means large investment on technology, development and
human resource).
There is greater overhead when a service interacts with another service which increases the
response time and machine load while validating the input parameters.
SOA is not suitable for GUI (graphical user interface) applications which will become more
complex when the SOA requires the heavy data exchange.
SOA – Blueprint
Description
The SOA blueprint contains some following goals:
Requirements of design principles
Specific tasks of design principles
Interaction of services
Details of integration scenario
Templates for the specific tasks
SOA Blueprints Concepts
The following figure shows SOA blueprint with different concpets:
Considerations in SOA
There are some considerations must be covered in SOA:
Infrastructure
Accessible of requirements
Performance requirements
Platform for system
Architecture
Models of domain and service
Organization of services
Process of integrating the structure
Quality of the service
Message exchange patterns
Development
Design guidelines for project development
Required tools for project
Validation and modification required things
Handling errors
Security for service access
Administration
Managing and building
Testing and deploying the project
Location of data stored and registering the application
The following figure shows SOA blueprint with different classes:
SOA contains the main functions of blueprint which are called as Programs and BAM.
Programs
The programs are associated with departmental issues which manages the development,
monitoring and operation of the SOA. The programs include some areas such as managing
services, operation and implementation of service domains, roles of SOA project,
conversion between roles and tasks.
Business Activity Monitoring (BAM)
The business activity monitoring functionality can be used by the products to display the
runtime details in the graphical system. The BAM products includes adapters or sensors
which are used to access the data using the Java, PL/SQL and other languages.
View Layer
The view layer provides two types of applications; one is Rich Client application and another
one is Web Client application. The rich client application processes the data on the client
side and contains some locally installed programs little network resources dependence. The
web client is a client server side component which contains applications running on user's
computer and connected to server.
Application Server
The application server includes some functionality such as workflow, rules, registry, CEP,
ESB, services and systems.
Workflow
The workflow is used when there is an interaction between human and implementation which is
done through the XPDL (XML Process Definition Language). The BPEL (Business Process
Execution Language) was used for runnable processes. When there is an upgrade in human
interaction feature by using the WS-HumanTask and WS-BPEL4People specifications, results in
blur boundaries of automated service calls.
Rules
The rules can be modified or changed commonly at run time when they are not incorporated in
the system. You can define the rules which are based on the system or natural language, before
becoming accessible by using the interfaces such as Java, Web service etc. The products
contains rules like JBoss rules, WebSphere ILOG rules, Visual rules and Oracle business rules.
CEP
The CEP stands for Complex Event Processing which allows to browse event streams based on
the certain pattern which can be uncorrelated in time or content. The Continuous Query
Language (CQL) language contains SQL-style query language which attaches the elements for
organizing the data streams to the SQL language constructs.
ESB
The ESB stands for Enterprise Service Bus which gives patterns that are liable for the tasks and
ranges from routing to reachability, allow the interaction between message and protocol
transformation and manages the SOA environment. The ESB is placed between service
provider and consumer which is used for service virtualization. The services and systems are
attached to the ESB.
Service Oriented Enterprise (SOE)
The objective of Service Oriented Enterprise (SOE) is to present the principles and fundamental
underpinnings of Web Services and Service Oriented Architectures (SOA). Special emphasis will
be given to service definitions, service assembly, modeling, web services programming and
design aspects of real-life applications in manufacturing. The course will examine the use of
process and data integration techniques to develop SOA-based applications and help students
illustrate and justify the use of analysis/design principles and guidelines in SOA application
development solutions. Prior knowledge of databases and XML-programming is required.
Level 1: Initial
The initial level of SOA maturity includes the architecture and design phase of SOA which
focus on delivering an individual project. The scope of this level includes:
R&D experimentation
Small SOA projects
Implementation of portal and website
Process of custom integration
Number of services
Level 2: Repeatable
In this level, you can use the reusable architected services which are flexible and can be used
from one project to another. The scope of this level is providing multiple integrated applications
that support some following factors:
Low cost of delivery
Low cost of maintenance
Integration of database
Integration of application
Managing the performance
Simple way of deployment
Level 3: Defined
In this level, the project team will be working on the creating architecture elements, providing
guidelines to project members on the architecture and creates the technical components and
frameworks which can be used across the project teams. At this level you can identify the service
from the business level for the good quality of business arrangement. The scope of this level
includes:
Reuse of components
Simple way of modification
Changes the business process effectually
Providing business process rules
Level 4: Managed
In this level, business services are managed and define the path to SOA. The project team's and
enterprise architecture team's work together to specify the processes, technologies and
components of an organization's SOA. You can measure end to end performance of the process
in this level. The scope of this level includes:
Using the business activity monitoring functionality to display the runtime details
Specifying business process visibility
Providing business process and service alerts
Level 5: Optimizing
In this level, the optimized business services react and respond automatically when you deliver
the business processes during run time and include the clean identification of services. This level
allows project team to reveal and consume services and also interchanges the services between
customers, business partners and suppliers. The scope of this level includes:
SOA will be optimized and associates with business
Specifies the endpoint of an architecture enterprise
Interacts with services from customers, partners and others
The above picture depicts the communication between software applications in a service-
oriented architecture(SOA) via ESB. Bus is a communication system that transfers data
between computers and interconnects the hard disk drives, CD ROM, graphics adapters
and other chips.
ESB as Transaction Manager
As shown in the above figure, the ESB can synchronize with transactions to communicate
with multiple services. Instead of notifying the web applications to coordinate with
transaction, the ESB can synchronize with transaction when multiple distributed
applications get involved in a transaction.
ESB as Security Manager
The authentication and authorization mechanisms are very important parts of security check
which are incorporated under ESB. The ESB provides these security mechanisms to inter
connect between the web applications.
ESB as Service Proxy
The SOA uses proxy which interprets the service calls between two different client service
protocols. For instance, consider you need to access a service which can be accessible only
through the Java's RMI (Remote Method Invocation) and this service can be accessed using the
web service interface (SOAP). To resolve this, you can use the service proxy which accepts the
SOAP calls and render them according to Java RMI service.
ESB as Gateway to the World
ESB uses the gateway (acts as entrance to another network) through which it can connect to the
different services running in the other networks. The gateway manages the data communication
which is routed internally or externally from the network. If user wants to access service of an
outside network, then user passes data packet to the gateway, which then connect to the
requested service destination.
Research Contributions
The main contributions are as follows:
Providing an integrity for SOA that provides enough conditions for securing data
integrity.
Implementing test bed for SOA and setting environment of specification based IDS.
Proposing intrusion detection system for SOA networks that are capable of detecting
intrusions affecting behaviour of services.
Recommending SOA test bed where SOAP messages can be monitored.
Contemporary Service-Oriented Architecture (SOA) has evolved to address modern business and
technological challenges, incorporating various characteristics that make it robust, flexible, and
scalable. Here are ten concrete characteristics of contemporary SOA:
1. Loose Coupling
2. Interoperability
Definition: Services are designed to work across different platforms, languages, and
environments.
Impact: By adhering to standard protocols and formats (like SOAP, REST, JSON, XML),
contemporary SOA ensures that services can communicate and function together
regardless of the underlying technology stack.
3. Reusability
Definition: Services are created with the intention of being reused across different
applications and business processes.
Impact: Reusability reduces redundancy and development effort, allowing organizations to
leverage existing services to build new functionalities quickly.
4. Discoverability
5. Standardized Contracts
Definition: Services communicate through well-defined contracts that specify the interface
and interaction rules.
Impact: Standardized contracts ensure consistency and clarity in service interactions,
reducing the likelihood of integration errors and misunderstandings.
6. Composability
7. Statelessness
Definition: Services are designed to be stateless, meaning they do not retain information
between requests.
Impact: Statelessness improves scalability and reliability, as each service request is
independent and can be handled by any instance of the service.
8. Service Abstraction
Definition: The internal implementation details of a service are hidden from the
consumers.
Impact: Service abstraction allows consumers to interact with services through well-
defined interfaces, without needing to understand the internal workings, enhancing security
and flexibility.
9. Policy-Driven
Definition: Service behavior and interactions are governed by policies that can be centrally
managed and enforced.
Impact: Policy-driven design ensures that services adhere to organizational rules and
regulations, improving governance, security, and compliance.
10. Scalability
Detailed Explanations
Loose Coupling
Loose coupling in contemporary SOA ensures that services are interconnected with minimal
dependency. This principle enables services to change without significantly impacting other
services. It supports agility and scalability, allowing businesses to adapt quickly to changes.
Interoperability
Interoperability is achieved through the use of standard protocols and data formats, such as
HTTP, HTTPS, SOAP (Simple Object Access Protocol), REST (REpresentational State
Transfer) , JSON(JavaScript Object Notation), and XML. This characteristic ensures that
services built on different platforms can seamlessly interact with each other.
Example: A Java-based customer service can interact with a .NET-based billing service
using standard web service protocols.
Reusability
Reusability is a key benefit of SOA, where services are designed to be used in multiple
applications or business processes. This reduces development time and costs and promotes
consistency across the organization.
Discoverability
Services are registered in a service registry, which acts as a directory where services can be
found and consumed by other applications or services. This promotes reuse and easy integration.
Example: Developers can search for and find a user authentication service in the registry,
avoiding the need to create a new one from scratch.
Standardized Contracts
Service contracts define the interaction between service providers and consumers, specifying
input and output formats, communication protocols, and security requirements. This
standardization ensures clear and consistent communication.
Example: A weather service contract specifies that it accepts a city name and returns
weather data in a specific JSON format.
Composability
Composability allows simple services to be combined into more complex workflows or services.
This modular approach enables organizations to create sophisticated applications by
orchestrating multiple services.
Example: A travel booking service can be composed of individual services for flights,
hotels, and car rentals.
Statelessness
Statelessness means that each service request is independent, with no stored information from
previous requests. This design improves scalability and reliability, as any service instance can
handle any request.
Service Abstraction
Service abstraction hides the internal workings of a service from its consumers. Consumers
interact with the service through a well-defined interface, enhancing security and simplifying
integration.
Example: A payroll service exposes an interface for processing payments but hides the
complex logic and database interactions involved.
Policy-Driven
Policies govern the behavior and interaction of services, covering aspects like security, quality of
service, and compliance. These policies can be centrally managed and enforced across all
services.
Example: Security policies might require all service interactions to be encrypted and
authenticated.
Scalability
Scalability in SOA is achieved through the ability to add more service instances to handle
increased load. This characteristic ensures that the architecture can grow and handle more users
and transactions without performance degradation.
Example: An online retail service can scale by adding more instances of its product
catalog and order processing services during peak shopping seasons.
What is Service?
Service Connections
The figure given below illustrates the service-oriented architecture. 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
Characteristics of SOA
The service-oriented architecture stack can be categorized into two parts - functional aspects and
quality of service aspects.
Functional aspects
o Policy - It represents the set of protocols according to which a service provider make and
provide the services to consumers.
o Security - It represents the set of protocols required for identification and authorization.
o 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.
o Management - It defines the set of attributes used to manage the services.
Advantages of SOA