什么是SOA?

原文:

 from http://lresende.blogspot.com/search/label/SOA

What Is SOA?

Essentially, SOA is a better way to develop software, by using the basic building blocks of "services." Services are self-contained, stateless business functions, each of which accepts requests and returns responses through a well-defined, standard interface.

For example, a company might build one service to perform the function of checking whether a customer is over his or her credit limit, another service to retrieve a customer's shipping address, and yet another to display a map of a street address. Each of these services might be performed by a different piece of software running on a different computer, some even outside the company itself. Some might be built to fulfill the requirements of a specific application, others might be general-purpose services, and others might have been originally built for another application.

In an SOA, each service operates autonomously without any awareness that other services exist. Communication among the services is accomplished using standard protocols. The services are without memory--they do not remember previous transactions. The services are also discoverable by means of a common services registry.

SOA is not dependent upon any particular programming language, and a service written in one language should be able to interact with another service written in another language, assuming they both adhere to open standards.

Within an SOA, a number of services may be combined to support a business process. Applications that are assembled from a collection of such services are called "composite applications." Building new systems by means of composite applications allows organizations to react quickly to changes in business processes, increasing agility.

SOA is the continuation of the concept of "loose coupling," a principle that has a long history in software engineering. A software item that exhibits loose coupling performs a single function, independent of other functions, with a well-defined interface. This is the concept inherent in the rise of structured or modular programming in the 1970s and object-orientation in the 1980s. The rise of SOA in the early part of this decade is a further evolution of this concept, greatly aided by the introduction of open standards, such as XML and SOAP.

SOA provides benefits to organizations by better enabling integration of disparate systems, increasing software reuse, and by allowing new applications to be developed more quickly.
------------------------------

译文:

rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml">

什么是SOA

-----------------service-oriented architecture)面向服务的体系结构

 

从本质上来说,SOA是用一些基础的“服务”模块(功能单元)组建成的,一种更好的开发软件的方法。这些服务是独立的,无界限的业务功能,而且它们都通过一个规范的,标准的接口来接收请求和返回应答。

 

举例来说,一个公司可能建立一个 rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"> 服务,用来检验客户是否超过其信誉界限,另一个服务用来查找客户的航运地址,还有一个用来在地图上显示出某条街道。这些服务可能每一个都是在不同的电脑上用不同的软件来实现的,某些服务甚至可能还不在公司内(的电脑上实现)。某些服务可能是用来专门满足一些特定的应用要求,另外某些服务可能是用来满足普通应用的,还有一些服务从一开始就设计成某种特定应用服务。

 

SOA里,每种服务都在完全不知道其它服务的存在下各自独立运行,它们通过标准接口来实现相互间的通信。这些设备是没有存储结构的,它们不记录之前的事务。这些服务也可以通过一个普通服务记录档案来实现可搜索性。

 

SOA不是依赖于任何一特定的程序语言,而且不同语言下的服务要能很好地互动,如果它们是遵循开放标准的话。

 

在一个SOA里,多个服务应该组合在一起用来支持一个业务流程。一个综合了一组这些服务的应用叫做“综合应用”。依靠综合应用来建立新的体系可以使这个组织在业务流程里有更快的反应,提高敏捷性。

 

SOA是“松散耦合”这个概念的延续,这是个在软件工程里有很长历史的原理。一个松散耦合的组件用来实现某项功能,而且独立于其它功能,有一个规范的接口。这就是在19世纪70年代兴起的结构化或者说模块化程序设计和19世纪80年代的面向对象中固有的概念。这十年SOA的兴起是这个概念的一次更进一步发展,其中开放化标准的引进,例如XMLSOAP(基于XML),起了很大的作用。

 

SOA 能更好的结合不同的系统,增加软件复用,而且使新的应用能更快的发展,这些都是SOA带来的好处。


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值