Thursday, March 1, 2012

Service Oriented Architecture(SOA) - Business Transformation to SOA

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 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. 

Revived by Andun S.L. Gunawardana –

Cloud Computing - The Cloud Reference Model

This article was totally based on a research paper called Defining a Cloud Reference Model by Teresa Tung ( 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,
  1. Application Layer
  2. Transformation Layer
  3. Control Layer
  4. Instantiation Layer
  5. Appliance Layer
  6. Virtualization Layer
  7. Physical Layer
Application Layer: This layer specifies the overall application functionality and end-user experience. Also this layer is responsible for sets up the application program. 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, segmenting large data objects into smaller units, reformatting data structures into XML, or applying business logic to structure data etc.
Control Layer: Generally Control 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 sentence The 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 layer maintains 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.
Revived by Andun S.L. Gunawardana –