SOA即是Service Oriented Architecture简称,SOA是一种模式架构,SOA具体实现目前有多种选择:Web Services(Web服务)、CORBA和JINI。因此,WebServices != SOA。
IBM、 SUN和BEA等工业界公司已经相继宣布:中间件已经结束,SOA时代即将开始;而代表开源社区的著名TheServerSide.com网站 的 Middleware公司则不以为然:那种认为中间件成为历史的观点就如同认为铁路、公路或水路成为历史一样,相反,中间件才是未来。
何谓中间件?为什么会有中间件结束与否的争论?
J2EE ( EJB )是典型的中间件,它集成了业务系统的重要核心功能,例如:分布式计算能力;事务处理机制;安全权限机制。
在当初人们询问为什么需要中间件时,中间件倡导者给人们描绘了这样一个场景:如果你是某大型制造企业的 IT 软件工程师,当你开始构建企业信息系统时,将会涉及用户权限系统、缓存性能系统等关键系统设计,如果靠企业自己的 IT 力量构造这些基础技术,这将会导致 企业IT 部门工作重点转移,由于这些系统需要强大的技术力量,因此,开发这些通用性质的系统将给企业带来巨大的风险。
将这些具有普遍性质的关键基础功能委托给专业公司开发,企业 IT 部门只要购买这些中间件就可以,例如 BEA 公司将 Weblogic 定位在企业平台,在其中整合了工作流等强大的中间件功能。
以本人设计开发的 JdonSD 框架来说,这是一个加快 J2EE 开发、缩短 J2EE 开发周期的软件开发框架,对这样的框架产品感兴趣者非常多,但是在实际与客户交流过程中发现一些问题:客户希望能试用该软件。客户试用涉及到代码安全性,只要将代码拷贝到对方客户电脑中,就存在着解密的可能性,因此,目前这个问题基本没有完美解决方案。
如何将 JdonSD 框架提供功能以租用的方式提供给客户服务,客户无需拷贝 JdonSD 框架代码,只要直接连接 JdonSD 框架服务器即可,无疑,这种类似提供虚拟主机的方式将会实现软件公司和客户双赢,这样 J 道就可以实现专门提供功能服务,这就是催生 SOA ( service oriented architecture )诞生的原因吧。
如此激动人心的 SOA 时代即将开始,很显然, Middleware 公司也没有说错, SOA 至少基于高质量的中间件功能,没有优异的、可重用的、可伸缩的中间件,怎么可能为那么多迥然不同的终端客户提供服务呢?
让我们看看权威 SUN 公司总裁 Jonathan Schwartz 如何抨击中间件弊病:
首先是技术路线杂乱,例如从授权 authentication 到门户 portals ,从 Web services 到集群 clustering ,没有基础标准或整合接口,每个项目不同的公司自己建立自己一套,在这里,我插一句, Java 世界给大家带来的选择太多,只是一个 J2EE 或 EJB 标准还不足以统一所有软件应用领域,因为从 J2EE 标准到具体应用还有很长的路要走,这也是 JdonSD 之类框架产品能够生存的原因所在。
其次是定价问题,中间件销售也是类似传统软件形式销售,因此存在传统软件销售的弊病,例如按每个 CPU 计算、每个集群点或按每个门户、每个邮箱等收费,实际中,这些个体单位是构建在一个共享式服务的平台上的,因此,如果一个客户需要邮箱、论坛等各种功能时,总体价格无疑是昂贵的。
最后是许可证 Licensing ,对于那些可应用于 Internet 技术的软件系统总是被抬高到三倍以上的价格,这本身妨碍了共享式服务的发展。本人帮助客户推荐SAP的一套基于局域网的进销存系统只需万元左右,而基于Internet技术的相同系统则需要数十万,不就是联到互联网上吗?至于价格这么离谱吗?
现在来看看上述问题是如何解决的?
在 SOA 时代,软件功能定价将以每个雇员付 $100 的收费方式,这个雇员只要付费 $100 ,他就可以无限制的使用所有的服务功能。
让我们再听听其它专家是怎么说, PowerBuilder 奠基人 David Litwack 说:
毫无疑问,在 SOA 时代,我们将有各种应用、整合应用和门户服务器,内容管理系统、策略和工作流引擎;目录和元目录;身份认证提供者;代理服务等等,这些都是技术上的中间件,但是从一个市场角度来看,中间件将会消失,为什么?因为上述这些东东只是意味着一个端点,并不是最终客户所需要的,人们不必为拥有一个汽化器而买一个汽化器,汽化器只是意味着一个端点,人们是为了买汽车。
SOA 应用就等同于一个汽车,我们将制造更加透明的中间件,它就更容易被递交到 SOA 应用中,这将是一个新的世界。