技术开发 频道

AJAX联手SOA新一代Web 2.0应用程序

AJAX+SOA技术相结合

    上面同样的方式也可以为企业所采用,从而把他们的Web服务提供给更广大的用户群。通过一种Web服务市场,企业可以注册各种Web服务—而这些Web服务通常情况下仅能为企业内部或合作伙伴所使用。市场供应商显然希望这种情况发生,但是更重要的是,我们看到了一种机会—应用AJAX+SOA技术来驱动一类新的Web 2.0业务应用程序。
    第一次,人们开始感觉到应用程序开发与SOA终于走到了一起。我们拥有通过可重用形式—SOA服务—加以描述的业务功能。我们拥有无所不在的连接—Web。我们拥有正在被证明成为新的应用程序容器的浏览器。我们在这类应用程序容器/浏览器中拥有一种编程模型—JavaScript。并且它们使用的都是开放式标准!我们还要求什么呢?其实,还有其它一些内容。
    我特别希望看到一种更快的基于所有以上技术的开发应用程序的方案—一种不必再依赖于与SOA服务集成到一起的中间件即可构建应用程序的方法。这正是我所期望的Web应用程序的能力—“直接连接SOA”。这种“直接连接SOA”应该能够穿过传统型门户屏障以及重量级进程引擎进而直接(至少在概念上如此;稍后,我们将详及)存取SOA服务。在此,我不仅是指Web服务,它也可能是BPEL编制服务,粗粒度POJO服务,RSS回馈或任何其它能够被暴露为一种“服务”的东西。当然,这其中的接口应该使用开放型标准暴露。
    这种新式的开发和运行时刻模型创建了一种构建应用程序驱动的复合应用程序的新方法。它具有客户机/服务器类型的吸引力,而没有传统型重量级客户机/服务器所具有的沉重包袱。它运行于浏览器端并且能够依具体要求而实现。

基于用户的复合应用程序

    在过去的几年间,我们都听说过“复合应用程序”这一概念。但是,大多数供应商却在一直谈论着“复合服务”—作为一种把他们的宿主服务重构成另一些更好用的服务或门户应用程序的方法。让我作个类比来作进一步的说明。
    AcmeGrid,我们在本文中虚构的一家网格计算供应商,它提供一种服务—网格计算—能够使你的应用程序运行为一种服务。这家公司的顾客告诉它他们想通过一个方法实现把许多服务组合成一种粗粒度的服务。因此,很自然地,AcmeGrid发布了一种基于Eclipse的AcmeGrid复合应用程序构造器(CAB)。有趣的是,CAB看上去很象一个BPEL设计器,但是与AcmeGrid发布的服务更为紧密地集成到一起。尽管相当漂亮,但是,它并不是一种真实的应用程序,充其量也只是一种服务。实质上,CAB更象一个服务构造器。但是,当我们在努力构建应用程序时有谁会需要一种服务构造器呢?不久,另一家虚构的供应商,我们暂且称其为AcmePortal,宣布了它的Portal复合应用程序构造器(PCAB)。它也发行了一种基于Eclipse的设计器;尽管它的外观感觉也象一个BPEL设计器,但是,这个程序却“知道”如何构建portal。在许多情况下,一个portal和一个应用程序有一样好的效果。但是,如果你硬性要求把一个portal转换为一个应用程序的话,也只是徒然。
    实际上,我非常想实现一种基于用户的复合应用程序,而不是一种基于中间件的复合应用程序。为此,我需要一种开发和运行时刻平台—这种平台不仅能够使用AJAX和SOA,而且还能够对这二者进行管理。一些经销商又进一步推进了AJAX应用程序的概念—直接从浏览器中调用基于WSDL的Web服务,其实质上是作一种SOAP调用。这种方法甚至还有一个名字—“客户端/SOA”。这对于简单的非企业或消费者应用程序而言可能是不错的,但是对于真正的企业程序却不是这样。为什么呢?因为当你直接从浏览器端调用Web服务时,监管功能等于交给了浏览器—这简直就是说,根本不存在监管问题。图1展示了非监管的Web服务消费框图。我还从来未遇到过一家不去监管自己的服务的企业,并且也不相信企业仅仅因为我们在技术上实现非常有效就会允许这样的事情发生。如果你不相信我的看法,那么你只须记住企业是从来不会对除HTTP和SSL以外的应用程序开放其防火墙的。不管我们如何劝告系统主管,他们是不会开放其它端口的。

我们需要一种新型的平台

    由上面可知,我们所讨论的不仅是停留在AJAX和SOA技术方面。其实,我们真正需要的是一种平台,它能够为AJAX和SOA共存于企业之中提供必要的监管能力。这个平台还提供站在客户端角度消费SOA服务的能力,而且还能监管服务消费情况。图2展示了如何通过一个服务网关来监管Web服务。一个服务网关实际上是一个服务端抽象,它能够代表客户端监管并调节服务存取,这在刚才我们所讨论的情况下是指基于浏览器的AJAX应用程序。使用服务网关的漂亮之处在于,你并不被限制仅访问在企业内运行的服务。这种服务网关能够监管注册到企业内的任何服务。在基于WSDL的Web服务中,企业会注册WSDL,而WSDL又提供在运行时刻到服务的绑定。这可能是运行在企业的数据中心的一种服务,但是它有可能与一个运行于一家合伙企业的数据中心的服务一样容易。如果企业允许(通过监管)应用程序存取服务的话,那么,这些服务运行于何处是无关紧要的。
    读完本文,我希望你已开始欣赏起把AJAX和SOA结合到一起的强大威力来了——特别是这二者之间的共存方式以及实现新式的具有企业要求的监管能力的基于Web服务的应用程序。我坚信,我们正在进入到一种充满令人惊异的机会的新时代的前夕。Web 2.0时代社会性网络,图片共享以及各种标注技术都是伟大的,但是真正有影响力的还在于Web 2.0对企业的响应。

0
相关文章