What is SOA? What are its benefits?
To understand Service oriented architecture, we need to understand what we mean by Service. A service is a function that is well scripted, self-contained, and independent of the context or state of other services. SOA is a collection of these services; however, they communicate with each other to pass data or the requested service.
Let us look at an example of a car sale for this. A customer walks into a dealership to trade in an old car for a new one and wants financing for the net value and insurance for the gross value of the new car. The situation is that the dealer has access to say a DMS (dealer management system) from the OEM (original equipment manufacturer). He has to get a date from the OEM system for delivery and promise to the customer. He has to link the financing request to the financing company for their approval. He then has to link to the insurance company to get a premium calculated. He also has to link to a sub-dealer who deals in second hand vehicles to survey the traded in car and assess its value. Each of these systems is on a different technology at a different location. How can the dealer do this sitting in one corner?
Obviously the task of integrating these various systems is not an option at all because there are too many systems and the complexity is humongous. The other option is to define a "clear mechanism" for any system (in this case the DMS) to request for data (eg: expected date of delivery) or an activity (approval of financing) from any other system. This "clear mechanism" is what we call a "service".
This "service" can be implemented in many different ways but the most popular is to use Web services that make this mechanism truly open - not dependent on which system the service is requested from or the network used to deliver the service. SOA therefore allows reuse of existing systems with minimal tinkering. It also allows systems to be built form scratch without being too worried, which other systems they need to link to. Take another car analogy - a car designer does not design the batteries. He / she only specifies universally accepted parameters like weight, dimensions, voltage, amperage etc. So long as any battery maker can meet these specs, the car can be fitted with the battery. In this case the "service" the car requests from the battery is delivery of power on demand.
The car designer is now free to design the rest of the car without worrying about how the battery will be designed / made and the battery designer need not worry about how the car is designed / made. This de-coupling is another essential feature of SOA, which in IT terms translates to system and network independence. SOA is therefore a design paradigm that allows disparate systems to talk to each other in a common framework without worrying about the innards of the various systems.
Service oriented architecture (SOA) has gained extreme popularity in recent times and has become a buzzword as it enables organisations to build applications from existing applications, develop new applications that can be integrated and unlock existing application investments.
SOA is the most important theme in modern application development. Key benefits offered by SOA include reusability, adaptability, and support for multichannel deployment and multiconstituency business models.
What are Oracles' products for developing SOAs?
Oracle Application Server 10g provides comprehensive SOA facilities to:
·
·
·
·
Oracle Application Server 10g supports the full development cycle of Service Oriented Applications:
·
·
·
·
·
·
·
Companies like BEA, IBM etc. have been working on SOAs for quite some time now, how is Oracle different from them?
As SOA is a standard-based approach to decouple the service (a task) and its context, actual differentiation comes in the implementation of the SOA framework within the products. Oracle as of today provides a complete application platform suite (APS) to help organizations to build, deploy, integrate, orchestrate and optimize services. The superiority of this implementation lies in effectiveness of the product components — how they interoperate amongst each other to deliver a specific role of service oriented architecture and also on the overall cost of ownership — how much one needs to invest to graduate one's existing setup to a SOA-based foundation. Others are also providing SOA-based solution — but some are yet to come up with a truly integrated platform suite to enable SOA while others are too expensive.
How will organizations benefit by implementing SOAs?
SOA simplifies integration and application development as it optimizes reuse of application functionality across multiple systems. The truly attractive part of SOA, when compared with previous attempts at components-based architectures is that SOA relies heavily on standards-based Web services, which don't place any requirements on the underlying technologies. Web services are, above all else, a standards-based wrapping technology.
What are the key technologies and platforms that enable SOA?
·
Oracle Containers for J2EE — a comprehensive, J2EE-based service-oriented architecture platform to develop and deploy simple and composite Web services,·
Oracle JDeveloper — an integrated J2EE development environment to develop, compose, and debug Web services,·
Oracle Application Development Framework (ADF) — an SOA framework based on the Model-View-Controller design pattern designed to dramatically improve developer productivity·
Oracle Toplink — an object-relational mapping solution that simplifies how J2EE applications map to and access relational and XML-oriented data.·
Oracle Integration InterConnect — an enterprise service bus that facilitates communication amongst the services and their activities·
Oracle Integration BPEL Process Manager — a BPEL standard based process integration and service orchestration engine that automates a business process that spans across multiple systems and services.The SOA platform exploits grid-computing architecture to allow services to be deployed on large numbers of low-cost, modular servers and storage with industry-leading performance, scalability, and availability. It exploits an identity management infrastructure to centralize identity and access management and to federate identity for Web services. And it applies a common systems management infrastructure to monitor and manage systems and services centrally.
What is the kind of talent required to develop/implement SOAs?
·
As a strategist, one needs to be conversant with the advent of standards like W3C, WS-I, JCP etc.·
As a developer, one needs to know how to build services (J2EE or .Net) using Integrated Development Framework and expose them for universal access (concept of web services)·
As an analyst and architect, one needs to know the essence of service integration and orchestration.Who are Oracle's competitors as far as SOAs are concerned?
Any application platform suite (APS) vendor like IBM, Microsoft, BEA could be considered as a competitor to Oracle.
Oracle's future plans in this field?
First of all, Oracle plans to extend Oracle Applications to expose various functions and tasks as Web services so that an organization can take a conscious approach to implement SOA using Oracle Applications. From the perspective of technological enhancement, the next logical step of Service Oriented Architecture is Event Driven Architecture (EDA) — a foundation that makes software architecture responsive to a specific action (event) related to a service. That is one step further to loose coupling — between a service and an event related to it.