Service Oriented Architecture

What is Service Oriented Architecture (SOA)? 
There have been so many interpretations of this throughout the years that it seems important to establish a common understanding before I discuss WCF as an SOA platform. 
The Organization for the Advancement of Structured Information Standards,better known as OASIS (http://www.oasis-open.org),provides this official definition in its Reference Model for Service Oriented Architecture:
Service Oriented Architecture (SOA) is a paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains.

You might add to this definition by stating that SOA relies on the ability to access chunks of business functionality,potentially owned by different applications,departments,companies,or industries. 
Notice that this description does not specify the mechanism through which those chunks of functionality are accessed. 
In fact,the term “service” isn’t even mentioned, although it is implied.

From OOP to SOA
The road to SOA has been a progressive one—driven by the need to improve how developers build complex enterprise systems.
The principals behind enterprise system design are far-reaching: from object-oriented programming to component-oriented programming to service-orientation.
All three approaches share the common goal of encapsulation and reuse.
With object-oriented programming, classes encapsulate functionality and provide code-reuse.
To share classes between distinct applications or binaries, however, you have to copy the code, as shown in Figure 1-2.

Figure 1-2 Duplicating types between components

Component-oriented programming has many limitations,but the most obvious is tight coupling to a specific technology.
How can a Java client call a COM component?
How can a .NET assembly invoke an EJB?
It all boils down to protocols and messaging formats.
Invoking a remote component of any kind requires serializing a message and passing it across applicable process or machine boundaries (see Figure 1-3).

Figure 1-3 Shared component containing shared types

Bridge technologies and adapters exist to transform messages from one technology into another,so that when the message arrives it can be understood and processed.
The reverse happens as responses are fed back to the caller.
This approach is cumbersome,however,sometimes introducing multiple transformations between clients and components—and sometimes not even possible.
Instead of exposing components directly,components can be accessed through service boundaries to alleviate some of this pain (see Figure 1-4).

Figure 1-4 Exposing functionality through a service boundary

So,does service-orientation solve the problems inherent to component-orientedprogramming?
It depends on where you sit on the meaning of service-orientation.
Iwould definitely agree that in its purest form, service-orientation delivers a solution to these problems by introducing (via web services) the concept of contracts,policies,and interoperability.
In that respect,applications can communicate with one another’s services,as shown in Figure 1-5,without concern over the technology each employs.

Figure 1-5 Consuming interoperable services

But you could also argue that service-orientation is an approach to development that implies the encapsulation of business components,data access,
and data storage such that access is controlled through a top-level entry point.
The package is a service,accessible over whatever protocols are supported,even if it lacks interoperability.

时间: 2024-08-05 08:11:39

Service Oriented Architecture的相关文章

AWS Service Networking Architecture -AWS服务网络架构

AWS Service Networking Architecture -AWS网络服务架构 AWS在cloud中的地位目前无可撼动,基本能满足从个人到大型企业的IT需求. 本文是系列"AWS Networking Architecture and Service -AWS网络架构和服务" 的一部分, 原篇说道,AWS的网络架构有有两个主题: AWS服务网络架构(Overlay):既AWS能向客户所提供网络服务(Network As A Service) AWS Cloud Infra

小白日记54:kali渗透测试之Web渗透-补充概念(AJAX,WEB Service)

补充概念 AJAX(异步javascript和XML) Asynchronous javascript and xml 是一个概念,而非一种新的编程语言,是一组现有技术的组合 通过客户端脚本动态更新页面部分内容,而非整个页面 降低带宽使用,提高速度 提升用户体验 后台异步访问 AJAX组件 Javascript:AJAX的核心组件,使用XMLHTTPRequest对象接口向服务器发起请求,接受并处理服务器响应数据 Dynamic HTML (DHTML) 早于AJAX出现,通过javascrip

Service Discovery in WCF 4.0 – Part 1 z

Service Discovery in WCF 4.0 – Part 1 When designing a service oriented architecture (SOA) system, there will be a lot of services with many service contracts, endpoints and behaviors. Besides the client calling the service, in a large distributed sy

WCF Windows Service Using TopShelf and ServiceModelEx z

http://lourenco.co.za/blog/2013/08/wcf-windows-service-using-topshelf-and-servicemodelex/ There are two excellent .NET libraries that help us to build enterprise solutions using the Windows Communication Foundation (WCF) – TopShelf and ServiceModelEx

Information Centric Networking Based Service Centric Networking

A method implemented by a network device residing in a service domain, wherein the network device comprises an information centric networking (ICN) transport layer and a service access layer (SAL) for handling context-aware service logistics and serv

SOA(在Tuscany 中开发web service)

一.相关概念 1.SOA(service oriented architecture)面向服务的架构. 2.SCA(service component architecture,服务构建架构)提供了一种编程模型,可以支持基于SOA的应用程序实现. 3.Tuscany是一个基于SCA的开源框架. 4.Axis2 是Apache退出的支持web service模型的工具软件,Tuscany Java SCA实际也是使用Axis2来将构件对外发布为web service的. 二.开发过程 1.设计思想

Web service standards: SOAP, REST, OData, and more

Web service standards: SOAP, REST, OData, and more So far, we've covered the components of a web service, the messaging format and transport protocols. But in the eye of the developer, the development manager, and the IT professional,the real choice

企业服务总线(Enterprise Service Bus,ESB)与salesforce大数据联动

 如何选择ESB 什么是ESB 企业服务总线(Enterprise Service Bus,ESB)的概念是从面向服务体系架构(Service Oriented Architecture, SOA)发展而来的.SOA描述了一种IT基础设施的应用集成模型:其中的软构件集是以一种定义清晰的层次化结构相互耦合.一个ESB是一个预先组装的SOA实现,它包含了实现SOA分层目标所必需的基础功能部件. 在企业计算领域,企业服务总线是指由中间件基础设施产品技术实现的. 通过事件驱动和基于XML消息引擎,为

cxf笔记记录

一.Web Service框架介绍: 1. WebService框架的作用: -- WebService只是一种思想,不是一个具体的框架. -- 它也是javaEE的规范. -- 它可以跨平台(操作平台.应用平台).跨语言的应用之间的远程调用. 2. WebService框架的应用场景: -- 不同公司业务整合 不同公司业务整合,主要就是业务平台的整合, 有可能出现运行平台不一样,开发语言不一样. -- 同一个公司新.旧系统的整合. 3. WebService与SOA: SOA:Service