Professional Documents
Culture Documents
What is SOA? Concept of service and web services SOA from different perspectives
Modern corporations are faced with a profound dilemma. Increasingly, they are becoming informationbased organizations, dependent on a continuous flow of data for virtually every aspect of their operations. Yet their ability to handle that data is breaking down because the volume of information is expanding faster than the capacity to process it. The result: Corporations are drowning in their own data. The problem doesnt lie in hardwarecomputers continue to increase in speed and power at a phenomenal rate. The failure lies in software. Developing software to tap the potential of computers turns out to be a far greater challenge than building faster machines.
David A. Taylor, Ph.D., in Object Technology: A Managers Guide
SOA Defined
Service-Oriented Architecture is an IT strategy that
organizes the discrete functions contained in enterprise applications into interoperable, standardsbased services that can be combined and reused quickly to meet business needs.
IT Strategy
SOA is a strategy or paradigm to manage business
cost of creating new applications through reuse. SOA builds its sphere around the concepts of business processes and services.
enterprises. This tension should be overcome in order to have successful IT applications that create competitive edge for the enterprise.
IT Strategy
Business Strategy
SOA
Discrete Functions
Every enterprise has a number of its own business
functions. Most of those functions are discrete in that they handle different parts of the business mostly without touching another. Or if they are communicating, it mostly happens pointto-point basis or they share some data, etc. In fact those discrete functions should become part of applications that implement company-wide processes to create for example more integrated and less overlapping customer experience.
Enterprise Application
Functions are implemented by software applications.
business processes that consequently provide some functions to internal departments of the company or its partners and customers. Those discrete applications live in local contexts such as the individual departments or among a few of them.
Production, marketing, customer service, finance and
some others such as claims in insurance business or more technological ones in telecom business
contexts: Company-wide and/or a space from suppliers to customers. Thats because processes in an enterprise get more complex and they touch customers at more points and in more interactive and information-intensive ways.
And think that all these interaction points behave
distinctly and treat the customer without knowing anything about other interaction points! That creates frustrating experience for the customers.
Interoperable
The IEEE Glossary defines interoperability as the ability
of two or more systems or components to exchange information and to use the information that has been exchanged. Interoperability has always been hard and traditionally achieved with one of many Enterprise Application Integration (EAI) approaches
Two sides of the wire have mostly incompatible OSs, PLs,
Point-to-Point Integration
EAI
Custom API
Packaged CRM
CRM Application
Custom API
Client Tier
Custom Logic
Custom API
Client Application
Client Application
Custom Application
Custom Logic
Custom API
Client Application
EJB Application
Bus-based Integration
Standards-based
What takes for two persons with different languages to
work together?
Data types and protocol or language syntax
data types and syntax they use, they cant work together.
Standards: XML
XML provides a standard, platform/OS/programming
different languages as long as its semantic is known. The semantic of XML can be expressed in documents such as schemas.
Any enterprise can express its domain in XML. That means an enterprise can create its ontology And that ontology can be understood and consumed by
other enterprises.
Standards: SOAP
SOAP (Simple Object Access Protocol) provides
interoperability or EAI.
Service
Services are the most basic building block of SOA. What makes a service? Any application from a Fahrenheit2Celcius converter to an ERP can be a service or set of services. A service in SOA is a logical and self-contained business
function.
Services and SE
In terms of Software Engineering, services are the last
step in abstraction.
Service access
Service access
Can be achieved either by exposing existing functionality as Web services or by using adapters
Services can be invoked by using SOAP over HTTP, JMS adapters, or WSIF.
Can be developed by using service bus components, BPEL processes, or Web services implemented with Java or Java EE
application from scratch all the time is not a solution! So marginal cost of each new application or feature should be as minimal as possible through reuse. SOA allows creating new applications built upon the existing ones exposed as services. In SOA reusable assets are the services that are created, configured, assembled in different applications many times over and over again and consumed.
business and IT
So reuse is a mostly an organizational issue.
business processes. A business process consists of services that function as actions, rules, decisions, etc. and provides a value when finished. Managing a business service is called Business Process Management (BPM). And there are standards to create and manage business processes.
BPEL
Business Process Execution Language (BPEL), short
for Web Services Business Process Execution Language (WS-BPEL) is an OASIS standard executable language for specifying actions within business processes with web services Processes in BPEL export and import information by using web service interfaces exclusively. BPEL includes variable initialization, decision and repetition, XML data access, human interactions, rule evaluations, etc.
Credit service
<variable>
<process>
<faultHandlers>
Get rating
<partnerLink>
Send order
<flow>
Send order
SM service
<invoke> <receive>
Receive quote
RD service
<partnerLink>
</flow>
Receive quote
<partnerLink>
<switch>
</process> End
WS-ReliableMessaging
WS-Security
What SOA is
SOA can be thought of as: An enterprise-level design approach A collection of services that interact with one another A set of services that are loosely coupled, with welldefined, reusable, platform-independent interfaces A higher level of application development Services provide access to data, business processes, and
IT infrastructure, ideally in an asynchronous manner. Before SOA we first develop then integrate, after SOA we first integrate then develop.
SOA to CIO
To CIO, SOA is a way to reduce the total cost of
ownership of the whole business application suit in the enterprise. With SOA, CIO expects that the marginal cost and effort of each new application would be much lower because they will be created only by re-orchestrating the existing services. Services dont have to be developed locally, they can be provided as a service by third parties as SAAS.
Services from outside of the company would definitely
can be exposed to their customers, partners, and other parts of the organization.
Applications serve the business because they are
composed of services that can be quickly modified or redeployed in new business contexts, allowing the business to quickly respond to changing customer needs, business opportunities, and market conditions.
SOA to IT Architect
To an IT Architect, SOA means the overall enterprise
architecture definition and the process that enables IT to develop and deploy business capability rapidly.
For architect, SOA is the architectural solution for
integrating diverse systems by providing an architectural style that promotes loose coupling and reuse.
small and distinct business processes out of local applications to constitute more strategic business processes in a larger context.
Business analyst understands the strategy of the whole
business and extracts new requirements or changes in existing ones for the new services and new processes.
SOA to Developer
To the developer, SOA is a programming model or
paradigm where web services and contracts becomes a dominant design for interoperability. It is a web service when it uses a Web Service Description Language (WSDL) or equivalent specification for describing the service. So the developer keeps either developing new services using new requirements or extracting services from the existing applications.
Business-IT non-alignment.
Lack of process culture, more focus on technology. Lack of proper understanding regarding SOA, again
more focus on technology. Inability to restructure the companys business and IT resources around service and SOA needs. Starting with the most complicated process without establishing a reference architecture.
Teekkrler ve
Sorular.