Basics of SOA
[slideshare id=5424123&doc=basicsofsoa-101012091122-phpapp02]
from Joseph Amrith Raj's WebSphere&SOA Library
[slideshare id=5424123&doc=basicsofsoa-101012091122-phpapp02]
Now its more easier for you to stay in touch with what’s happening on this blogs as well as in other related technologies. I have a special account set up to serve all of you with updates from the blogs, IBM support, best and interesting articles from internet and this is named ‘Joseph’s WebSphere & SOA Library’. The following are the ways to subscribe to them.
Twitter: http://twitter.com/NodeAgent
FaceBook: http://facebook.com/NodeAgent
YouTube: http://youtube.com/NodeAgent
Digg: http://digg.com/NodeAgent
Friendfeed: http://friendfeed.com/NodeAgent
Delicious: http://delicious.com/NodeAgent
SlideShare: http://slideshare.net/NodeAgent
Email: If you like to get updates on your email, use the subscription option available on the blogs.
Let me know your suggestions and comments.
In the first part of the SOA motivation factors, we discussed how Agility can bring effectively increase an organization's profit and savings. In this article let us see how SOA will do the savings for an organization.
Motivation factors for Using SOA - Cost Saving
Earlier on this blog, we discussed the key concepts of the SOA as Services, interoperability and loose coupling. These are the factors that do the cost saving and a motivation factor for using SOA in an organization. These cost cuttings/savings will be at both Business level and IT infrastructure and maintenance level. At business level the cost savings will come from the Agility.
Many times even though a product is cheaper we will go for it as it was difficult to integrate into our existing system. SOA solves this problem since it is loosely coupled and interoperability. This it allows you to choose the cheapest product that can offer the same kind of functionality and stability.
Then as we have seen the Agility of the SOA will make you streamline the Business process. Which means, now your business process support ever changing market and demand. Also one of the key SOA concepts Service, will enable you to reuse any component with in your SOA setup. Together these enables an organizations to use its internal resources more effectively. Hence the cost requited to adopt to a new change or rapid change in the business are less compared to the traditional approach.
Another factor that helps organizations while using SOA is, Reporting. Using this reporting you can the dynamic reports from any where in you SOA setup. Say for example, we are monitoring a business process and getting the reports on a daily basis from this SOA reporting functionality, If there any is any change is required to improve the business functionality of that business process.. we can take decision after seeing the daily reports. Thus you don’t need to wait for your quarterly results and annual sheets to check how well your business process is performing.
In summery: due to improved business Agility, it is possible to improve the revenue by adopting quickly to new business models and by offering innovative/timely products for the end user.
The above are only some of the ways of how SOA can reduce the costs with in my understanding as an IT engineer. From a core business view, you may found more ways to reduce the cost after implementing SOA. If you have a new point to add to this..please leave in comments section of this post.
Its not just the cost savings from Business level but SOA can also reduce the costs at IT infrastructure level.
One of the biggest problems with the large IT projects is the cost required to build and maintain them. SOA''s concept of service means you can reuse it and can call it from anywhere and use it. This is one of the key factor in reducing the cost of getting a IT project up and running. For example, when you want to build a new application which needs a functionality that is already existing in your IT environment, you can use it again by exposing it as a service.
Another concept of SOA is interoperability, which makes the integration easy. This means the cost required to integrate a new product or existing legacy applications is less. As a whole, a new business process can be developed easily or the existing can be modified easily with out putting more money and efforts on to how they will be implemented.
By isolating the implementation aspects from the services, SOA enables the usage of existing legacy systems. By enabling a pool of shared services, SOA enables reuse of them at various levels. This eliminates the re-occurring costs in IT systems management. It also reduces the duplication of code, applications, storage for the same functionality and hence reduces the maintenance cost.
Summery:
Agility, on an organizational level, refers to efficiency with which an organization can respond to change. Increasing organizational agility is very attractive to corporations, especially those in the private sector. Being able to more quickly adapt to industry changes and outmaneuver competitors has tremendous strategic significance.
Before understanding how SOA can bring the agility to your organization, you need to get an idea of where the present complexity is and how it is effecting the agility in your organization. Some of the factors that effects agility are:
1. Technology :
We generally spend months and years to get our IT systems stabilized. We bring in a lot of software and different versions of them into out network. Sometimes for every new functionality we need, we may have to get a new software product. In the end we may face a situation where in it is difficult to find the skilled people to work on those systems. Hence the technology we use to implement our business is complex.
2. Business Process:
If you have a complex business system, obviously the implementation is complex. Many times we realize this complexity only when we started to implement it. Business functionality also contains conflicting elements due to different perspectives or applications.
3. Integration
We tend to use and combine functionality from existing systems/applications. Even if our individual systems/applications are working good, when we integrate them is a complex work and surely we get many issues.
4. Maintenance
After we go past the technology. business and integration complexities, we need a way to manage this complex environment. Updating the components we used to implement out business logic and adding new functionality is always a tedious task.
SOA can help addressing all these issues of complexity. SOA is more agile in order to react as quickly as possible to changing business environments and offer new services to customers, suppliers and partners.
Hi Guys,
Now you can follow me all updates on Twitter ... for all SOA and Websphere stuff
This is the basic SOA certification from IBM. It was introduced in 2008 and test code is 000-669.
Must read:This is not a kind of certification which you can just read and write. The main objective of this test is to test how much of understanding you have on SOA and its importance to business. your practical experience matters a lot.Details
Also, you need to have solid understanding of Enterprise Application integration (EAI), Enterprise Service Bus (ESB), Service Oriented Architecture (SOA) key concepts and how they are implemented.
Must read:
1. IBM SOA white paper
http://www.ibm.com/developerworks/webservices/library/ws-soa-whitepaper/
2. SOA terminology
http://www.ibm.com/developerworks/webservices/library/ws-soa-term1/
3. ESB
http://www.ibm.com/developerworks/library/ar-esbpat2/
4. Service Repositories in SOA
http://www.ibm.com/developerworks/library/ar-servrepos/
5. SOA for Dummies book
6. BPM Concepts
http://www.ibm.com/developerworks/library/ar-bpm1/
7. SOA in action
http://www.ibm.com/developerworks/webservices/library/ws-soa-in-action/
Recommended Reading:
1. http://www.ibm.com/developerworks/webservices/library/ws-soa-govframe/
2. http://www.ibm.com/developerworks/webservices/newto/index.html
3.http://www.ibm.com/developerworks/websphere/library/techarticles/0801_olson/0801_olson.html
4.http://www.ibm.com/developerworks/websphere/techjournal/0806_radcliffe/0806_radcliffe.html
5. http://www.ibm.com/developerworks/webservices/library/ws-soa-practical/
6. http://www-128.ibm.com/developerworks/webservices/library/ws-soa-govern/
7. http://java.sun.com/developer/technicalArticles/WebServices/soa2/
Once your application has been deployed to the information system it needs to be managed along with the IT infrastructure on which it is hosted.
IT service management represents the set of management tools used to monitor your service flows, the health of the underlying system, the utilization of resources, the identification of outages and bottlenecks, the attainment of service goals, the enforcement of administrative policies, and recovery from failures.
We can capture the business design as a model, and use that to assemble the application services that implement that design, we can capture a correlation between the business and the IT system.
This correlation in deployment environment can be used by IT service management services to help prioritize the resolution of problems that surface in the information system, or to direct the allocation of execution capacity to different parts of the system based on service-level goals that have been set against the business design.
IBM Products: Websphere business Monitor and ITCAM
These services primarily represent the tools and the metadata structures for encoding your business design, including your business policies and objectives.
Business innovation and optimization is achieved by capturing your business design and then introspecting on that design to improve it through a combination of iterative refinement and analysis of real-time business metrics.
Business innovation and optimization services exist in the architecture to help you capture, encode, analyze and iteratively refine your business design.
The services include tools to help you simulate your business design and to use those results to predict the effect that design, or changes to that design, will have on your business. Also include tools to help you define your key performance indicators, that you want to monitor.
IBM products: Websphere Business Modeler and Business Monitor
Information services contain the data logic of your business design. Information services provide access to the persistent data of your business.
For example: query statements for retrieving the information you care about or referential integrity checks on the information manipulated by these services.
These data services are available to the business application as services. Information services at this level incorporates the idea of federating multiple data sources – projecting logical views over those multiple sources to render a simpler access pattern for the service composition that needs it. This is intended to handle two important requirements within the information management space – data composition, and data flow.
IBM offering for this layer : Websphere Information server
Interaction services are about the presentation logic of the business design.
These are components that support the interaction between applications and end-users. Also we recognize that interactions with the external world are not limited to just interactions with humans.
Interaction services provides the ability to project a view of the information system tailored to the specific interaction fidelity, frequency of interaction, and presentation composition that best fits the needs of the end user or device.
Interactions may be tailored to role-sensitive contexts – adjusting what is seen and the behavior presented to the external world based on who the user is, what role they are performing, and where they are in the world.
Example product: WebSphere Portal
This is the last phase in the SOA lifecycle. In this stage, we concentrate on how to manage the infrastructure, which we’ve developed and deployed using the first 3 phases of the lifecycle.
This main tasks/responsibilities in this stage includes monitoring performance of service requests and timeliness of service responses; maintaining problem logs to detect failures in various system components; detecting and localizing those failures; routing work around them; recovering work affected by those failures; correcting problems; and restoring the operational state of the system. Managing the system also involves performing routine maintenance, administering and securing applications, resources and users, and predicting future capacity growth to ensure that resources are available when the demands of the business call for it.
The manage phase also includes managing the business model – tuning the operational environment to meet the business objectives expressed in the business design, and measuring success or failure to meet those objectives.
The product that we use in this phase is “WebSphere Business Monitor” and “ITCAM for SOA”
In this phase of the SOA life cycle, you deploy the composite applications which were developed in the earlier stage.
The deploy phase of the lifecycle includes a combination of creating the hosting environment for your applications and the actual deployment of those applications. This includes resolving the application’s resource dependencies, operational conditions, capacity requirements, and integrity and access constraints.
In this phase, we need address lot of decisions like, the presence of the already existing hosting infrastructure supporting legacy applications and pre-existing services. Also you need to consider appropriate platform offerings for hosting your user interaction logic, business process flows, business-services, access services, and information logic. Beyond these, we need to consider the techniques you will employ for ensuring availability, reliability, integrity, efficiency, and service ability.
The product that will be used here is ‘WebSphere process server’ . I’m going to concentrate on process server here on the blog after finishing the basics of SOA.
The Business Analyst is responsible for knowing the business processes contained in the business design and capturing them in a
model that can be used by the rest of the development team. Ideally, the model is in a form which can be used also to automate those processes in the information system. Generally this is done using modeling tools. The business analyst is a member of the development team, participating throughout the development cycle to refine and optimize the business design and establish its key performance indicators. The analyst later uses that information to refine the business design or drive changes in its implementation, and ultimately to verify that the IT realization faithfully implements the business design.
The Integration Specialist is responsible for integrating existing and new services, and end-users into the business process definition . The specialist will typically use visual composition tools and service-bus configuration tools to connect/integrate abstract service components that comprise the business processes. The integration specialist, along with the enterprise architect, will also be involved in establishing an approach to satisfying the security and Quality of Service requirements of the enterprise when composing services from business partners and other service providers outside of the enterprise’ operational environment.
The Software Architect is responsible for translating the business design into a set of software component design specifications for
implementing the service definitions and business objects called for in that design. This may go beyond just defining the services in the business – it may go as far as designing the internal workings and structure of the actual service components. Building the software architecture will also include making decisions about the appropriateness of legacy function to that design, and determining how to wrapper, extend or re-factor that legacy function to best fit the design.
The Application Developer is responsible for implementing the design for service provided by the software architect. This includes using an appropriate language and technology in which to implement the services, and following the design for those components to the extent those details are provided by the software architect.
The Enterprise Developer is a specialist in legacy application functions, languages and technologies. The developer is responsible for assisting the software architect to identify potential re-use of these functions, and in helping determine how best to extend or re-factor those functions to enable a better fit with the business design.
Finally Enterprise Architect is the person responsible for ensuring consistency across each role’s tasks, in a manner that balances the creation of a set of implementation artifacts representing the business design against the constraints, preferences, and legacy capabilities of the operational environment.
Apart from the above mentioned important or high-level roles, we do have the normal roles like DB administrator, System Administrator, Support team etc, which you see in regular operations of execution of any project.
Oh!! you didn’t heard of it, yet ? This is a very popular dog a few years ago, which had bitten almost every IT professional and company. . Now there was a new one with name Cloud Computing doing the same thing
OK. When you say SOA, now a days few people say, its a failure. Is really so? I don’t think so, in fact, its a building block for the future technologies
Now, lets back to the actual topic
Service Oriented Architecture – lets divide this into 3 parts.