You are on page 1of 22

UNIT-III

SERVICE-ORIENTED ARCHITECTURES (SOA)


INTRODUCTION

What is Service ?

 A mechanism to enable access to one or more capabilities using a


prescribed interface.

Service Oriented Architecture

A service-oriented architecture (SOA) is inextricably linked to cloud


computing. This flexible set of design principles is used during the phases of
systems development and integration.
Elements of SOA, by Dirk Krafzig, Karl Banke, and Dirk Slama
Service-orientation requires loose coupling of services with operating systems,
and other technologies that underlie applications. SOA separates functions
into distinct units, or services, comprised of unassociated, loosely coupled
units of functionality that have no calls to each other embedded in them.
Developers make accessible over a network in order to allow users to combine
and reuse them in the production of applications. These services and their
corresponding consumers communicate with each other by passing data in a
well-defined, shared format, or by coordinating an activity between two or
more services

Service-oriented architecture (SOA) references a set of principles and


methodologies applied by software engineers to design and develop software
in the form of interoperable services. Services are usually built in the form of
components that can be reused for different purposes than originally
intended. For this reason, the interfaces are often defined in a practical
manner, allowing use across varying applications and multiple platforms.

In general, SOA is about how to design a software system that makes use of
services of new or legacy applications through their published or discoverable
interfaces. These applications are often distributed over the
networks. SOA also aims to make service interoperability extensible and
effective. It prompts architecture styles such as loose coupling, published
interfaces, and a standard communication model in order to support this goal.
The World Wide Web Consortium (W3C) defines SOA as a form of distributed
systems architecture characterized by the following properties:
Logical view: The SOA is an abstracted, logical view of actual programs,
databases, business processes, and so on, defined in terms of what it does,
typically carrying out a business-level operation. The service is formally
defined in terms of the messages exchanged between provider agents and
requester agents.
Message orientation: The internal structure of providers and requesters
include the implementation language, process structure, and even database
structure. These features are deliberately abstracted away in the SOA: Using
the SOA discipline one does not and should not need to know how an agent
implementing a service is constructed. A key benefit of this concerns legacy
systems. By avoiding any knowledge of the internal structure of an agent, one
can incorporate any software component or application to adhere to the
formal service definition.
Description orientation: A service is described by machine-executable
metadata. The description supports the public nature of the SOA: Only those
details that are exposed to the public and are important for the use of the
service should be included in the description.The semantics of a service
should be documented, either directly or indirectly, by its description.
• Granularity Services tend to use a small number of operations with
relatively large and complex messages.
WSDL => Web Services Description Language
UDDI => Universal Description, Discovery and Integration
SOAP => Simple Object Access Protocol

SOAP: This provides a standard packaging structure for transmission of XML


documents over various IPs. (HTTP, SMTP, FTP). A SOAP message consists of
an envelope (root element), which itself contains a header. It also had a body
that carries the payload of the message.

WSDL: It describes the interface and a set of operations supported by a web


service in a standard format.

UDDI: This provides a global registry for advertising and discovery of web
services by searching for names, identifiers, categories.

Since SOAP can combine the strengths of XML and HTTP, it is useful for heterogeneous
distributed computing environments like grids and clouds .

MESSAGE ORIENTED MIDDLEWARE


Message Oriented Middleware is a concept that involves the passing of data
between applications using a communication channel that carries self-contained
units of information (messages). In a MOM-based communication environment,
messages are usually sent and received asynchronously. Using message-based
communications, applications are abstractly decoupled; senders and receivers
are never aware of each other. Instead, they send and receive messages to and
from the messaging system. It is the responsibility of the messaging system
(MOM) to get the messages to their intended destinations.In a messaging system,
an application uses an API to communicate through a messaging client that is
provided by the MOM vendor. The messaging client sends and receives messages
through a messaging system.
Figure 5-1. Messaging applications use a messaging API to communicate with
each other through a messaging system
Enterprise Bus:

Enterprise Service Bus (ESB) refers to the case where the bus supports the
integration of many components in different styles as shown above. No source
and destination channel is opened but only messages are induced from different
services. A message bus is shown linking the services by receiving and sending
messages but this methodology can work with any software or hardware.

Queuing and Message Systems: The best known standard in this field is the
Java Message Service (JMS) which specifies a set of interfaces utilized in
communication queuing systems. Advanced Message Queuing Protocol
(AMQP) specifies a set of wire formats for communications.
Publish-Subscribe Model and Notification:An important concept here is
“publish-subscribe” which describes a particular model for linking source
and destination for a message bus. Here the producer of the message
(publisher) labels the message in some fashion; often this is done by
associating one or more topic names from a (controlled) vocabulary. Then the
receivers of the message (subscriber) will specify the topics for which they
wish to receive associated messages. Alternatively, one can use content-based
delivery systems where the content is queried in some format such as SQL.
The use of content-based message selection is termed message filtering. Note
that in each of these cases, we find a many-to-many relationship between
publishers and subscribers. Publish-subscribe messaging middleware allows
straightforward implementation of notification or event-based programming
models. The messages could, for example, be labeled by the desired notifying
topic (e.g., an error or completion code) and contain content elaborating the
notification.
PORTALS AND SCIENCE GATEWAYS
Gateways (portals) are tools that enable interactive, web-based science,
education, and collaboration.Gateway software can be categorized as
“turnkey” solution exemplified by HUBzero, and “toolbox” solution,
exemplified by Open Gateway Computing Environment (OGCE) project.

Gateway Component Software Stack


The bottom tier is the resource layer – including computing clusters,
storage systems, national-scale grid resources, and computational
cloud resources.

Tier 2 consists of middleware for interacting with resources of Tier 1.


Examples are Globus, Condor, and iRods.

Tier 3 is the gateway software layer and consists of service


components that manage the execution of scientific applications and
data on Tier 1 thru Tier 2.

The top tier is the user presentation layer, which may be built with a
number of tools, such as content management, open social gadgets,
and desktop applications.
Examples of Portals
1. Computational Chemistry Grid (CCG) – also known as GridChem for
chemistry simulations on the TeraGrid.
2. UltraScan Biophysics Gateway – for the high resolution analysis and
modeling of hydrodynamic data from an analytical ultracentrifuge.
3. The nanoHub.org Gateway – operated by the NSF -funded network for
computational Nanotechnology (NCN). All services are free of charge to users.
4. HUBzero – open source software platform used to create web sites for
science collaboration, research,..
5. Open gateway Computing Environments (OGCE) – also an open source
gateway software used in several collaborating gateways.
HUBzero
HUBzero was created by Purdue University and the NSF-funded NCN to power
its web site at nanoHUB.org. It is an open source software platform used to
create web sites or hubs for scientific collaboration,research, and
education.Like YouTube.com, HUBzero allows people to upload content and
publish to a wide audience mainly for scientific content.Like Google Groups,
HUBzero lets people work together in a private space where they can share
documents and send messages to one another.Amazon Askville, HUBzero lets
people ask questions and post responses about scientific concepts.An
interesting feature is that HUBzero can handle simulation and modeling
programs or tools.Like SourceForge.net, HUBzero allows researchers to work
collaboratively on the source code of their simulation programs and share
with the community. Each hub powered by HUBzero is an “app store” for a
scientific community connected to a cloud of resources for app execution,
complete with a library of training materials and other collaboration features
to support app use.
HUBzero Architecture and components

HUBzero Architecture
A HUBzero gateway is a web site built with LAMP architecture (Linux OS,
Apache web server, MySQL database, and PHP web scripts).HUBzero adds a
scientific content management system, the open source Rappture toolkit (for
creating GUI for simulation programs), and unique middleware for hosting
simulation tools and scientific data. Each tool description page includes a
“launch” button,when pressing the button, the middleware allocates a session
container on the tool execution host.The tools in a hub are interactive and
engaging. Users can zoom in on a graph, rotate a molecule, and probe the
isosurfaces in a 3D volume.

HUBzero Collaboration Features


Registered users can post 5-star rating and reviews of each resource. Both
are combined to produce a single number from 0 to 10 ranking.Items on a
hub can be categorized by a series of tags.The HUBzero software comes with
a built-in user support area, such as includes a question-and-answer forum,
patterned by Amazon’s Askville.Each hub supports the creation of “topic”
pages, which are wiki pages with a specific list of authors.Each hub reports
extensive metrics, total number of users in a given period, the number of web
hits,simulation job launched, and CPU hours.
Open gateway Computing Environments (OGCE)
The OGCE project is a provider of open source gateway software, based on
the toolkit model.OGCE components tools include OGCE Gadget container –
a Google tool for integration XRegistry – a registry service for storing
information. XBaya – a workflow composer and enactment engine.GFAC – a
factory service to wrap command-line-driven apps.OGCE messaging service –
supports events and notifications .OGCE tools focus on scientific application
and workflow management.
OGCE Collaboration Features
The OGCE workflow system (by XBaya frontend) provides a graphical interface
to browse various application service registries.The OGCE’s GFAC tool is
designed to wrap command -line-driven executables and makes them
available as external services.Built on top of Apache Shindig, the gadget
container is an open social-compatible tool for aggregating web gadgets.
OGCE software is open source and available for download through
sourceForge.
Web Services
A web service is program code that resides on the Web and performs a specific
task that other programs, not people, use. The following are examples of tasks
performed by a web service:
1. Return the weather conditions for a specific zip code
2. Return real-time traffic conditions for a road or highway
3. Return a stock price for a particular company
4. Return driving directions to a specific location.
5. Return the country associated with an IP address.
Coupling describes the degree of dependence between a calling program and
the web service. Ideally, to use a web service, a program only needs to know
the location of the web service (its URL), the name of the functions (methods)
the web service provides, and parameters the program can pass to the
functions.In this way, programs and web services are said to be loosely
coupled.
Service Registry and Discovery
Registries are sophisticated naming and directory services that facilitate
service resource discovery both at design and at runtime by categorizing
services or meta data information about services.A registry requires a set of
data structure specifications for the metadata, and a set of operations such
as CRUD (create, read, update, delete) for storing, deleting, and querying the
data.
Registries usually contain 3 categories of information:
White pages – for name and general contact info.
Yellow pages – for classification and location info.
Green pages – for detailed info. of how to invoke services.
Universal Description, Discovery, and Integration
UDDI specifications define a way to describe, publish,and discover
information about web services by creating a platform-independent, open
framework.
UDDI provides a name service and a directory service for looking up service
descriptions by names or by a specific attribute. Initiated in 2000 as a joint
collaboration on B2B integration between IBM, Microsoft, and Ariba.
UDDI version 3.0 has been published as OASIS standard specification for
public service registries..A UDDI registry is an instance of web-service, and
its entries can be published and queried using a SOAP -based interface.
UDDI Data Structure and APIs
BusinessEntity, businessService,bindingTemplate, and tModel are the core
data structures of UDDI, each of which can be identified and
accessed by a URI, called UDDI key.
A set of APIs are provided by UDDI:
UDDI Inquiry API
UDDI Publishers API
UDDI Security API
UDDI Custody and Ownership Transfer API
UDDI Subscription API
UDDI Replication API
UDDI entities and Their Relationship

Remarks on UDDI
UDDI was not widely adopted by public, but its functionalities can be
equally applied.
The not-to-have gained much popularity could be due to there has been no
global registering enterprise, eScience, or grid services following the
UDDI specification after the closure of the public nodes of the Universal
Business Registry operated by IBM, Microsoft, and SAP in 2006.
ProgrammableWeb.com is a registry of a variety of Web 2.0 applications,
which has similar goals as UDDI.

Publish-Subscribe Systems
Publish-subscribe is a design pattern that enables asynchronous interaction
among distributed applications. Event subscribers register event types and
receive notifications from event publishers when they generate such events.
Publish-subscribe systems can be classified as
Topic-based – subscribers specify their interest in particular topic ad receive
all events published on that topic.
Content-based – introducing a subscription scheme based on the contents
of events. The matching of publications (events) to subscriptions (interests) is
done based on the content.
Publish-Subscribe and Databases
Integrated publish-subscribe capabilities in the database account for
information-sharing systems that are simpler to deploy and maintain.
PostgresSQL database system has been extended by Jean Bacon, et al to
include publish-subscribe middleware functionality.
Oracle introduced a publish-subscribe solution for enterprise information
delivery and messaging by extending Advancing Queuing to allow publish
-subscribe style of messaging between applications.
Oracle Publish-Subscribe Model

Metadata Catalogs
Metadata is information about data.
Metadata catalogs provides users and applications the means to discover
and locate the desired data and services by adding context to the data for
identifying, locating, and interpreting it.
Key metadata includes The name and location of the data source, Structure
of the data, Data item names and descriptions, User information, Basic
listings and simple lookup of available services, Relating function and
location, …
Examples of metadata catalog are: Metadata Catalog Service (MCAT),MCS,
and AMGA.
Semantic Web
Semantic web is all about automation discovery and integration: adding
machine-processable semantics to data so that computer can understand
such information and process it on behalf of end users, thus enabling more
intelligent web searching and linkage based on attaching rich metadata to
web pages.
Semantic web adopts Resource Description Framework (RDF) by using
ontologies expressed in a common language, such as OWL, so we can share
the metadata and add in background knowledge.
Ontology
Ontology is a specification of a conceptualization.Ontologies are defined so
we can share knowledge with and among other agents.
Conceptualization includes the objects, concepts, and other entities that are
assumed to exist in some area of interest,and the relationships that hold
among them.
Pragmatically, a common ontology defines the vocabulary with which
queries and assertions are exchanged among agents.
Ontologies are the structural frameworks for organizing information and
are used in AI, semantic web, system engineering, software engineering, as a
form of knowledgement representation.

Semantic Grid
Semantic Grid Architecture

Semantic OGSA (S-OGSA)


Semantic Open Grid Services Architecture (S-OGSA) is a reference
architecture for semantic –based grids.Semantic provisioning services include
ontology management and reasoning services, metadata
services, and annotation services.
S-OGSA has three aspects:
The model – the elements which it is composed of and their
interrelationships.
The capability – the services needed to deal with such components.
The mechanisms – the elements that enable directory. b
WORKFLOW
Workflow in a grid (is equally applicable to clouds)context is defined as:
the automation of the processes, which involves the orchestration of a set of
Grid services, agents and actors that must be combined together to solve a
problem or to define a new service.
Workflow is the approach to “programming the interaction between services”
or say it describes programming the web, software/service coordination,
service orchestration,service coordination, application integration, …
Workflow implies 2-level programming model:
Basic services are programmed in traditional languages, while their
interaction is described by workflow.i.e. delivery.

Grid of Grids (Grid of Services)..

Multilevel Programming Concept


Workflow Standards. Links, and Status
Workflow Architecture
Most workflow systems have two key components corresponding to the
language and runtime components of programming environment.
Workflow specification – graphical interface or menus specifying components
Workflow execution engine – pipeline, cyclic graph, directed acyclic graph
(DAG) using scripting language
Workflows are mostly used in domains of meteorology and ocean modeling,
bioinformatics and biomedical workflows, astronomy and neutron
science.
Pan-STARRS Astronomy Workflows

Taverna Workflow

An Example Workflow Execution Graph


Bioinformatics Workflow in Swift
Cloud Computing Service Provider Priorities
Confidentiality, integrity, and availability in a multi-tenant environment.
Effectively meet the advertised SLA,while optimizing cloud resource
utilization.Offer tenants capabilities for self -service, and achieve scaling
through automation and simplification.
Guiding Principles in Using Clouds for Data -Intensive Applications
Clouds may not be suitable for everything but they are suitable for majority
of data intensive applications
Solving PDEs on 100,000 cores needs classic MPI clusters
Cost effectiveness, elasticity and quality programming model will drive
use of clouds in many areas such as genomics
Need to solve issues of Security-privacy-trust for sensitive data
How to store data – “data parallel file systems” (HDFS), Object Stores, or
classic HPC approach with shared file systems with Lustre etc.
Programming model which is likely to be MapReduce based
Look at high level languages
Compare with databases (SciDB)
Must support iteration to do “real parallel computing”
Need Cloud- HPC Cluster Interoperability
SOA Security
SOA security is essentially the web services security
Three core specifications
WS-Security, XML-Signature, XML-Encryption
WS*-Security offers a new technology for SOA security
Single sign-on (SSO) is a form of centralized security mechanism
Related specifications for SOA security
WS-Security, WS-SecurityPolicy, WS-Trust, WS-SecureConversation,
WS-Federation, XACML, Extensibe Rights Markup Language, XML Key
Management, XML, Signature, SAML, .NET Passport, Secure Socket Layer,
WS-I Basic Security Profile.
Example : Geo-Information Service (GIS) Cloud

Major Tasks to Build a GIS Cloud for Community Services


Must build fast mining engine to support data-mining and data aggregation
Community or virtual community discovery
Support of bandwidth demand for video, voice, data, etc.
Providing GISs and mashup services with GIS
Handling of massive registered users and their payments
Interoperability among different GISs in the industry
Centralized, domain-oriented, and multi-granularity services, make GIS
centers public and specialized.

You might also like