You are on page 1of 14

Unit-I, SOA Basics Page 1 of 14

UNIT-I INTRODUCTION TO SERVICE ORIENTED ARCHITECTURE (SOA)

EVOLUTION OF COMPUTER/SOFTWARE SYSTEMS

• Standalone: Upto 1970’s – COBOL, C, FOXPRO, PASCAL


• Client-Server: 1980’s – invention of Networks/LAN’s, Centralized
database shared by multiple desktop applications
E.g. Vb.NET and Oracle database – client/server systems.
• Web-Based/Internet Applications (1990’s): internet based applications
accessible to everyone in the world using browser (thin client),
everything on server
• Enterprise and Distributed Applications: (2000 onwards) Need for more
computing and storage power, complex apps, highly concurrent apps
Compute/Data Clusters - Google search engine, Gmail, Google Drive
• Increasing need for inter-operability between different departments,
suppliers, customers, legacy applications and cross platform applications
• Software productivity and re-usability of code

⇒ Birth of SOA
• SOA is a continuum of Distributed Computing
• Simple monolithic software design into a state of highly collaborative and distributed
software design.

WHAT IS A DISTRIBUTED SYSTEM

• Collection of multiple autonomous independent computers that


communicate through a computer network.
• To achieve a common goal or to solve a task/problem.
• Andrew Tannenbaum defines it as “Distributed system is a collection
of independent computers that appear to its users as a single coherent
system.”
Unit-I, SOA Basics Page 2 of 14

What is a Distributed Application/Program?

• A computer program that runs in a distributed system


• In distributed computing, problem is divided into many tasks, each task
is assigned and solved by 1 or more computers.

Features or Properties of Distributed System:

• “Implementation detail” of building a powerful system out of many


simpler systems is entirely hidden from the user.
• Problem is divided into many tasks, each of which is assigned by one or
more computers.
• Independent computational entities, each of which has its own local
memory & processor.
• The entities communicate with each other by message passing.
• System has to tolerate failures in individual computers
• Each computer has only a limited, incomplete view of the system. Each
node knows only one part of the input/task assigned.

Question – Examples of Distributed System


• E.g. Collection of computers on the Internet that implement the Domain
Name Service (DNS),
• Google Search Engine, Google Drive, All Google Apps
• Facebook, Yahoo mail, Amazon shopping, Amazon Cloud
• Web Server Clusters
• Oracle 10g data grid
Unit-I, SOA Basics Page 3 of 14

• ATM system of bank and bank transactions involving different accounts


in different banks.

Question: Your web-site is having large no. of concurrent users from different places.
So it is become slow/slower response time. What will you DO?

• load balancer that splits up incoming requests between the two Apache nodes.
Unit-I, SOA Basics Page 4 of 14

Load balanced High-Availability Apache Cluster

Can you think of Advantages of Distributed Systems ?


Unit-I, SOA Basics Page 5 of 14

Advantages of Distributed Systems or Strengths?

⇒ Alternative to distributed system - huge centralized system, such as a


Mainframe/Super computer.
⇒ Economic and technical reasons that make distributed systems much
more attractive than their centralized counterparts.

• Scalability: Resources such as processing and storage capacity can be


increased incrementally.
• Reliability: Redundancy - impact of hardware and software faults on
users can be reduced.
• Cost: Better price/performance as long as commodity hardware is used
for the component computers.
• Computational Intensive Problems: E.g. large no. of
transactions/second, high concurrency, scientific problems, complex data
processing and analytics etc.
• Data intensive problems: large amount of data is required to be stored
and managed
• E.g Oracle 10g data grid, Hadoop Cluster and HDFS
• Performance:
o Combined processing and storage capacity of many nodes,
o Higher performance levels can be reached beyond the capacity
of centralized/individual machines.
• Inherent distribution: Some applications, such as ATM, Banking,
email and the Web (where users are geographically dispersed-whole
world)

All Google Apps using Google Distributed Infrastructure (called Google


Cluster)

• Google's Web search application lets different queries run on different processors
• Clusters of more than 25,000 commodity class PCs with fault-tolerant software.
• Search Queries sent to least loaded web server

Google Load Balancing Servers for Google Search Engine:


Different servers for different purposes:
• Web server
• Index server
• Spelling server (Google suggestions)
• Advertisement Server for retrieving advertisements
Unit-I, SOA Basics Page 6 of 14

SERVICE-ORIENTED ARCHITECTURE (SOA)

• Designing and developing software in the form of REUSABLE,

Loosely-Coupled and INTEROPERABLE services and

• Provides a process for integrating these interoperable components

• Principles, methodologies and infrastructure/middleware provided by

SOA

• Software component provided through a network-accessible endpoint.

• Reusable piece of code – Develop once, use any-where (reused in

different Apps). E.g. sending SMS, Email,

• E.g. Consider this realistic Situation/Case:

• Different departments in a company – have Business services written in

different Technologies/Implementation languages;

• Production Dept. – Which product/How much to Produce? Marketing

Dept. – Sales forecast, Finance Dept. – budget, releases funds

• In this situation, CONVERTING business services into SOA based

Services

1. Smooth Enterprise level -- Integration, interoperability and synergy

within Company
Unit-I, SOA Basics Page 7 of 14

2. Business External stakeholders/partners like– customers, suppliers,

vendors benefit from well-defined interfaces

DEFINING Service Oriented Architecture (SOA)

• Architecture where independent systems and applications communicate

with each other by exposing and using services.

• High level view of SOA

• Method of design, deployment, and management of applications and

software where:

o All software is organized into Reusable and inter-operable business

services that are

o Network addressable –service interfaces for interoperability.

This is known as SERVICE-ORIENTATION.

It is independent of any vendor, product or technology.


Unit-I, SOA Basics Page 8 of 14

BASIC CONCEPTS OF SOA

WHAT IS A SERVICE?

• From Business Point of View: Repeatable Business task e.g. checking

the balance of Bank Account, withdraw money from ATM/Bank Account

• From IT Point of View: Service is a component providing distinct

functionality - encapsulating high-level business concept

• Services - well-defined business functionalities that are built as software

components

• E.g. Customer Order Processing, Billing service, e-Ticketing service,

Email/SMS Service, Google search service

• Service contains

o Contract (Interface)

o set of operations

o message type def, constraint,

o description (comment)

• Implementation - Logic and data


Unit-I, SOA Basics Page 9 of 14

Service and Re-usability

• Structured/Procedural Program in C – function level re-usability

• Object-oriented Program in Java – Class level (function+data) re-usability

• SOA based application – business functionality/service re-usability

(function+data+public interface)

Examples of a Service

• Creating a Purchase Order

• Requesting and reserving a room in a hotel

• Applying for a loan by filling out a loan request form

• Search books/music based on keywords


Unit-I, SOA Basics Page 10 of 14

SERVICE PROVIDER AND CONSUMER

• In the SOA, at Higher Level, there is exchange of messages.

• In SOA, the system is decomposed into a collection of network-

connected components.

• Producer component – provides services E.g. Railway dept.

• Consumer component – consumes the provider functionality – E.g.

Ticket Agent Client


Unit-I, SOA Basics Page 11 of 14

Different between Service and Application?

• Services and applications are both software programs, but they do tend to
have some differing Characteristics.

Services Java/.NET/PHP Application


• Remotely accessible • Not Always

• Hardware/software/technology • Not so (tied to technology)

independent

• Perform a single or a few specialized • Perform a wide range of

operations. operations

• Mostly accessed by other programs. • Mostly accessed by human

(Machine to machine) end-users. (Machine to

Human)

• Services – combined together to create • Applications often expose

Application. and call services


Unit-I, SOA Basics Page 12 of 14

SOA ARCHITECTURE

Figure: SOA interaction pattern.


Generic life cycle of a service can be summed up as follows:
Publish / Register: A service provider publicizes a service and registers it in
a publicly accessible directory (service repository).
1. Find: A consumer accesses the service repository and inputs a query to
search for a suitable service.
2. Bind: The consumer receives the address required to access the service
and the parameters required to invoke the service.
3. Execute: Consumer accesses the service at the address received. The
service delivers the result parameters.

How does XML contribute in an SOA?

• SOA based on open standards and promoting platform-independent

business integration, XML is at the core of SOA


Unit-I, SOA Basics Page 13 of 14

• XML is foundation - for all web services standards, such as XML

schema, SOAP, Web Services Description Language (WSDL), and

Universal Description, Discovery, and Integration (UDDI).

• Using XML resolves the challenge of working with different data


formats in different applications across multiple platforms.
• XML has the benefit of ease of representation, being text-based, flexible,
and extensible by nature.

Key Characteristics of SOA


• Service provider and consumer
• Standardized service interfaces and specifications: fundamental
requirement - how the service can be used and which data (types) are
required
• Reusability: by other parties or even other applications - factored in at
the development stage.
• Promotes loose coupling throughout the enterprise
• Find ability of service: it must be possible to find a service - managed
via service repositories. Services are cataloged and discoverable.
• Industry standard Protocols are used E.g. XML, SOAP, WSDL, UDDI,
REST, etc.
• Capacity of service for orchestration: process whereby individual
services are combined in functional and technical terms to form larger
Unit-I, SOA Basics Page 14 of 14

units, the business processes. E.g. booking of a travel package involves


many smaller services – air, hotel, car, guide etc.

Service Composition

• Composing a larger service by combining many smaller services.

Performance
• Inter-service communication is much slower than typical inter-
component communication (takes place inside the same address space)
(application / process).
• Decomposing your larger services into too many smaller services may
hurt performance.

You might also like