SOA和SAAS的理解
1
、
SOA
(
service-oriented architecture
):
面象服务的体系结构。
从业务角度理解
SOA
:它是针对一些企业的旧的软件体系重新利用,进行整合、并构建一套松散耦合的软件系统,同时也能方便的结合新的软件共同服务于企业的一个体系。使系统能够随着业务的变化更加灵活适用。
从技术角度理解
SOA
:
SOA
实际上是系统分析设计思想的进一步发展,它的思想超出了对象的概念,一切都以服务为核心,而
服务由组件构成,组件是若干操作的集合,操作对应具体实现的程序函数。服务是通过对业务过程模型的分析而识别出来的。每个服务能够实现若干功能,这些功能由组件而不是操作来实现。组件是操作的调用集合,是服务功能实现的最小单位,而不是程序实现的最小单位。
在具体实现上,只要能提供服务的技术都可以实现
SOA
思想,如
Web Service
、
RMI
、
Remoting
、
CORBA
、
JMS
、
MQ
、甚至
JSP
、
SERVLET
等,另外还可以通过
分布式事务处理和分布式软件状态管理来进一步地改善它。但是如果想让这些服务能够更广泛的被使用,或被大家认可,在互联网上发布,那么就要遵循一定的规则标准了。这一类的标准有SOAP、Java API for XML-based RPC (JAX-RPC)、WSDL 和 WS-* 规范等等。另外它的实现还需要
安全性、策略管理、可靠消息传递以及会计系统的支持。
ESB的概念:
在
SOA
体系结构的框架中加入了一个新的软件对象。这个对象就是企业服务总线
(Enterprise Service Bus
,
ESB)
,它使用许多可能的消息传递协议来负责适当的控制、流甚至还可能是服务之间所有消息的传输。虽然ESB并不是绝对必需的,但它却是在SOA中正确管理您的业务流程至关重要的组件。
ESB
本身可以是单个引擎,甚至还可以是由许多同级和下级
ESB
组成的分布式系统,这些
ESB
一起工作,以保持
SOA
系统的运行。在概念上,它是从早期比如消息队列和分布式事务计算这些计算机科学概念所建立的
存储转发机制发展而来的。
SCA与SOD的概念:随着面向服务的体系结构不断发展和成熟,开发人员和架构师将面临不断增多的编程接口、传输协议、数据源和其他细节内容。服务组件体系结构(SCA)和服务数据对象(SDO)可以为各种服务和数据源提供单一编程接口。
2
、
SAAS
(
service as a software
):服务即是软件
SAAS不仅是用PORTAL为用户提供服务,还可以用其它方式,如提供API,提供WSDL,提供。。。。,只要是用户想要的服务就可以。
SAAS的权限控制、安全问题可能会相对麻烦一些,可能涉及到多个企业的不同平台,多个数据库,如果控制权限,保证安全。数据同步问题。关键是有多少用户愿意昌这个风险。
3、SOA与SAAS之间的关系:
SAAS主要是指一个软件企业向其它企业提供软件服务。而SOA一般是企业内容搭建系统的基础。SAAS注重的是提供服务的思维。而SOA注重的是实现服务的思维。
4
、目前市场上
SOA
的格局:
目前市场上已经有很多个SOA产品了,而在其中IBM、BEA和JBOSS这三者的SOA产品基本占据了80%的市场,但相对IBM和BEA来说,JBOSS发展的SOA要慢一些。但它代表的是开源的SOA产品市场,所以还是很有潜力的,很多工程师及企业对它的期待也是很大的。而IBM和BEA的SOA产品及思想相对提出的都比较早,也有一些成功的项目。但这二者的产品体积大,花费高,但是并不影响它的发展,而且是很多企业放心的产品。另外IBM和BEA还联手推出了一个SCA软件,APACHE TUSCANY。这又领先开源软件一步。所以现在SOA的市场竞争还是极其激烈的。
除了这三家之外,ORACLE也发布了自己的SOA产品和思想。