从业务角度理解SOA,它是针对企业的一些旧的软件体系重新利用,进行整合,构建一套松散耦合的软件系统,同时也能方便的结合新的软件共同服务于企业的一个体系。使系统能够随着业务的变化更加灵活适用。
在具体实现上,只要能提供服务的技术都可以实现SOA思想,如WebService、RMI、Remoting、CORBA、JMS、MQ、甚至JSP、SERVLET等,另外还可以通过分布式事务处理和分布式软件状态管理来进一步地改善它。但是如果想让这些服务能够更广泛的被使用,或被大家认可,在互联网上发布,那么就要遵循一定的规则标准了。这一类的标准有SOAP、JavaAPI for XML-based RPC (JAX-RPC)、WSDL 和 WS-* 规范等等。另外它的实现还需要安全性、策略管理、可靠消息传递以及会计系统的支持。
直观地理解,可以把SOA看做是模块化地组件,每个模块实现独立功能,不同的拼合提供不同的服务。利用SOA,把一团乱麻庞大无章的系统规整成一个一个的模块,方便地实现IT的最大利用率,并提高重用度。普元软件曾拿灵活变换而能够千变万化地拼接的乐高玩具做比喻,可见一斑。
说到SOA,不能不说说ESB。ESB是在SOA体系结构的框架中加入的一个新的软件对象。这个对象就是企业服务总线(Enterprise Service Bus,ESB),它使用许多可能的消息传递协议来负责适当的控制流甚至还可能是服务之间所有消息的传输。虽然ESB并不是绝对必需的,但它却是在SOA中正确管理业务流程至关重要的组件。ESB本身可以是单个引擎,甚至还可以是由许多同级和下级ESB组成的分布式系统,这些 ESB一起工作,以保持SOA系统的运行。在概念上,它是从早期比如消息队列和分布式事务计算这些计算机科学概念所建立的存储转发机制发展而来的。
SaaS
SaaS方便、节省成本,受到很多企业,尤其是中小企业的青睐,但SaaS的权限控制、安全问题可能让用户有所顾忌。
SOA和SaaS的区别,大概可以概括为以下几点:
1. SOA包括了关于软件是如何被架构起来的东西,而SaaS是关于软件是如何被应用的。
2. 在SaaS当中,应用程序可以像任何服务一样被传递,就像你家中电话的语音一样,看起来似乎就是为你的需求量体裁衣得到的。而SOA的定义和这个无丝毫的联系。SOA支持的服务,都是些离散的可以再使用的事务处理,这些事务处理合起来就组成了一个业务流程,是从基本的系统中提取出来的抽象代码。
3. SOA是一个框架的方法,而SaaS是一种传递模型。
4. 通过SaaS传递Web服务并不需要SOA。
5. SaaS主要是指一个软件企业向其它企业提供软件服务。而SOA一般是企业内部搭建系统的基础。SaaS注重的是提供服务的思维。而SOA注重的是实现服务的思维。
[错误报告] [推荐] [收藏] [打印] [关闭] [返回顶部]


已有