Thursday, March 1, 2012

Still I am undergraduate. So I learn lot about Service oriented architecture these days. I found this research paper with really interesting points about SOA. This will be great article for beginner fro SOA in enterprise.The original paper is Business
Transformation to SOA: Aspects of the Migration and Performance and QoS Issues by Liam
O’Brien, Paul Brebner, Jon Gray

In the present world Service
Oriented architecture is really important factor to have a successful
business. SOA is a great tool for solve the problems of meet new
customer demands with fewer resources and streamlining of its business
activities. SOA is better because of it’s their promise of
cost-efficiency, agility, adaptability and legacy leverage. But to have
that success there are so many difficulties. Also there are lot of
things have to be considered before moving in to SOA. So in this paper
writers discuss about those aspects.

So most
of the current organizations transform their business process and IT
business systems to SOA because of the arising new challenges and have
to respond to customer demands. Organizations do rationalization
programs to determine what strategies they will pursue in the future,
what business processes will support those strategies and determine what
IT systems are needed to move in to SOA.

Also organizations have to think
lot about one major thing before moving in to SOA that is systems should
be whether or not those systems can meet Quality of Service (QoS)
requirements. Because SOA can have a positive impact on some quality
attributes and a negative impact on others. Some these attributes are
security, performance, availability and interoperability of their
SOA-based systems.

There are list of things should be considers

What are the existing/legacy systems which should be included in the SOA architecture?

The acquisition and development of an SOA Infrastructure.

The development of services and development of applications from services.

Identification and Mining of Services

Organizations have to think about,
what are the components which can be migrated from exiting system to
SOA based system. Because they have already invested money in those
components. To do that,

Organizations have to develop an overall Enterprise
Architecture, to identify required business processes and identifying
services that are needed. Also they can examine each of its existing
systems, identify common processes/functions and identify services from
these. Then they can identify what services are to be used within its
SOA. This is a really critical task.

Determine what legacy/existing components can satisfy the
service needs, determine what needs to be done with those components and
migrate and reuse them as services. Doing this organization can
understand what will be the costs attached to them.

Integration of Services

If an organization moved to SOA
they will use services either internal or external, so those services
have to be integrated in to existing systems of the organization. They
have to determine what systems the services will integrate with, the
scope of the work involved and estimate the cost and effort of doing the
work.

Also organizations have to determine what the impact of different architecture alternatives will

be on various quality attributes
and QoS concerns for the system. An organization can choose a particular
architecture alternative based on their specific requirements. A main
issue in integration of services is how so size integration effort and
what are the various parts that make up the cost.

Development of an SOA Infrastructure

To implement SOA, organization
should have to have infrastructure which includes security, governance,
management, orchestration and resourcing attributes. Bad infrastructure
components, insufficient validation implementation and less security,
management and troubleshooting will cause all the SOA architecture in to
trouble.

There are so many vendors like
IBM, Microsoft, SAP, Oracle, BEA, and many others which provide SOA
infrastructure technology. Organizations have to think about plan what
they will purchase and what are they going to build them self’s. But if
infrastructure is built within the organization they have to think
about, how des an organization test the infrastructure sufficiently to
guarantee the level of security, governance and management provided
meets their requirements? Any way organizations have to think about
interoperability between different vendor infrastructures.

Service Development and Application Development from Services

When an organization moves in to
SOA they have to use their own service and service from other
organizations. When dealing with the development of services and
applications from services one of the main concerns is dealing with the
quality of service of the services and the quality of service of the
application. Organizations have to have list of quality attributes they
need and they have to follow a development process which guarantee
acquiring those attributes.

If external services are used in
the development of an application then service level agreements with the
service providers will have to be negotiated and be in place in order
to make any guarantees about the QoS level of the application.

There can be also a scenario,
application chooses service dynamically. Then we can have QoS
guaranteed. Because we can’t test those dynamic services.

At last one important thing, organizations have to identify the cost and effort needs to develop its service.

SOA Governance

SOA governance is another important thing in the planning process. These factors will be considered to have stable governance,

Strategy and Goals – what is governed and why?

Funding, Ownership and Approvals – who owns what?

What gets funded and by whom?

Organization – what structures, processes and governance mechanisms are in place?

Processes – what are the roles, responsibilities and procedures for managing SOA activities?

Policies – what is the enforcement issues including standards, security, release and re-use?

Metrics – what are the business outcomes and how are they measured and by what metrics?

Behavior – what is the behavioral model, incentives, penalties and rewards for appropriate “SOA Behavior”?

PERFORMANCE AND QOS

Performance is a major concern
while architecting and developing SOA for both services and
applications. Because for an example if take response time as
performance measure of web services, it is typically worse than the bare
underlying functionality. This is due to and compounded by the
overheads of XML, use of composite, service orchestration
(infrastructure and protocols), service invocation, resources and
resource models.

Because of those reasons most of
the time consumer’s expectations of performance may be higher than what
can actually be delivered. So it is really important to architect SOAs
with performance in mind. To do this it is necessary to be able to
understand the performance To do it architects have to think about these
thing in depth, Service Orchestration, Virtualization and Service Level
Agreements between service users and consumers.

Also this area is highly
developing are in the present world. Most of the people are working to
develop SOA with good quality attributes.

This article was totally based on a research paper
called Defining a Cloud Reference Model by Teresa Tung (teresa.tung@accenture.com). In this paper they introduce a new reference model for cloud computing. As OSI model for networking. So I thought sharing this will be good.

A general meaning of “cloud” in
computer world is a collection of network-hosted services accessible
from anywhere with the following attributes: elastically scalable,
illusion of infinite capacity, available on-demand, and consumption
based charges.

Throughout the past several years cloud computing is a buzzword. But its meaning is confusing for most of the people. Also
cloud has conflicts on policy issues including legal, indemnity, and
compliance, and on technology issues around security, reliability, and
performance. Reasons for these are cloud-based application architecture
is confusing. First the term “cloud” is overloaded and used by many
vendors also cloud’s on-demand and scalability features are new and
architects are still working to understand how to leverage these
capabilities.

The Cloud
Reference Model brings order to this cloud confusing cloud computing
model. The Model divides cloud-based application architecture into seven
layers: Application, Transformation, Control, Instantiation, Appliance,
Virtual, and Physical. In this model each layer has its own IT
functionality on supporting a specific area of concern and abstracts
details of other layers. So having this reference model we can think
application architecture as the process of determining the necessary
functionality at each layer and assessing attributes like performance,
security, and reliability is decoupled. So though out this discussion we
talk about that.

Using this new reference model for
cloud computing it becomes easy to evaluate the benefit of cloud.
Anyone can use the Model to breakdown technology and policies to layers.
Also model is defined so that per-layer solutions interface with
adjacent layers. So each layer is reusable, and people can properly
combining the solutions to create an overall architecture for
applications like portals, batch, and distributed file systems.

The major layers of the Cloud Model are,

Application Layer

Transformation Layer

Control Layer

Instantiation Layer

Appliance Layer

Virtualization Layer

Physical Layer

Application Layer: This layer specifies the overall application functionality and end-user experience. Also this layer is responsible for sets up the applicationprogram. User-generated content like code, data, static files, and executables specifies the application program.The content format and representation determine the required application architecture.

Transformation Layer:This layer transforms
application program for execution on the specific compute environment.
It converts content and metadata from the Application Layer to the
required format for storage or execution on the specific platform.It do things like encrypting, encoding for error correction, segmentinglarge data objects into smaller units, reformatting datastructures into XML, or applying business logic tostructure data etc.

Control Layer:GenerallyControl
Layer algorithms ultimately determine how the platform is created. It
prescribes the optimized set of virtual machine appliances required to
form the desired compute platform. Controller logic determines the
quantity, type, and location of virtual appliances to create the desired
compute platform. So controller logic assigns the formatted content
from the Transformation Layer across the prescribed deployment.

The Instantiation Layer:Instantiation
Layer decides how provisioning and configuration occurs specific to the
infrastructure provider. It executes the specification of the Control
Layer. For example it applies the IP address and updates the DNS.

The Appliance Layer:In a single sentenceThe
Appliance Layer functions create the images and templates of the
specific appliance used in the compute platform. This layer adds
middleware to a virtual machine to create a virtual machine appliance.
For example we can think Linux operating system, Apache HTTP server,
MySQL database, and Python scripting language forms an appliance with
the LAMP solution stack.

The Virtualization Layer:This is responsible for produces
the virtualized representation of the compute resources. There are
Management software in this layer to handle the virtualization
management of server images, generic storage volumes, and logical
network connections.

The Physical Layer: This layermaintains the physical devices that perform the compute operations. This layer includes the IT hardware for compute platform.

The Cloud
Reference Model can be used to evaluate vendors and design attributes.
Each layer of the model focuses concerns on one aspect of overall design
making it easier to characterize capability.

After
carefully looking at the current situation in the world, we can see two
major points. First the need to characterize offerings and not service
providers.

Second
how this new reference model expands the functionality of today’s “as –a
–service” characterization. IaaS offerings provide virtualized compute
resources at the Virtual Layer. Then Platform-as-a-Service (PaaS)
offerings provide the Control Layer’s compute platform for execution of
user-generated program. And then Software-as-a-Service (SaaS) supplies
programs at the Application Layer like for Customer Relationship
Management, E-mail, or SharePoint.