Ajax联手SOA打造企业级应用
 
2008-11-14 来源:ZDNet China
 

有效结合Ajax技术和SOA并进一步实现的丰富企业级应用产品能够直接赋能于最终用户,让其掌握强大的功能。之所以能出现这种情况的原因在于,REA应用会更多的与潜在的重要用户保持关联,增强用户内部的合理性,这也会对处于当前IT环境中的用户群体相当大的压力,从而促成了其实现。

当今,各个企业都在想方设法提高自己的生产效率,并且对IT资产的重组也都在努力的探索当中。借助于面向服务的架构(SOA)技术,IT组织已经在克服这些问题方面取得了一定的成效,SOA和Ajax对于整个IT业务而言意味着巨大的回报会因为两者的出现而存在,同时,将这两种先进技术结合起来也是作为IT业务发展所必将经历的关键应用。一种以网络为基础,被称为“丰富企业级应用(Rich Enterprise Applications)”或REAs的全新应用应由而生。

REA不仅仅能够将Ajax与SOA的技术优势淋漓尽致的展现出来,更是在这个基础上提供一个先进的平台,通过授权最终用户以互动和整合的方式,有效提高产品生产效率,而这一应用方式是前所未有的。

Ajax技术提供了一种基于流览器的丰富互联网应用(Rich Internet Applications,RIA),它描述了一种运行在流览器中的全新 “桌面程序”互动式丰富应用。RIA应用不仅仅只是Ajax技术,同时还包括Flex,Flash,Java甚至微软的XAML等其他技术。就现有的企业应用看来,在技术标准以及采用率方面,Ajax将持续性的成为企业RIA应用技术的关键选择。正是因为如此,我们在本文中对RIA应用的相关讨论绝大部分都会是集中在Ajax。

SOA,在相对于RIA应用而言,并不是作为一套技术,而是更多的强调一种架构风格,或是说基于松藕合原则,通过统一标准的“服务”而不是硬性关联的将应用软件连接到一起的架构体系。虽然很多时候我们在谈论服务和SOA都是处在同一背景之下,但其实这两者是不尽相同的。我们在这篇关于REA应用的讨论中就SOA服务更多的是强调其松藕合的特征,而对于一个SOA服务所使用的技术内容并未有所涉及。SOA服务可以是一个RSS源,一个数据库展现的XML到HTTP接口,甚至可以是一个第三方搜索引擎所提供的正式SOAP接口。

Ajax与SOA的结合等于丰富企业级应用

有效结合Ajax技术和SOA并进一步实现的丰富企业级应用产品能够直接赋能于最终用户,让其掌握强大的功能。之所以能出现这种情况的原因在于,REA应用会更多的与潜在的重要用户保持关联,增强用户内部的合理性,这也会对处于当前IT环境中的用户群体相当大的压力,从而促成了其实现。

正因如此,REA应用对于未来的企业架构规划与设计将会产生非常重大的影响。其实,REA应用的影响在某些企业中已经是可以发现的,尤其是对于一些作为早期SOA实施的较大型企业而言,类似这样的应用已经在开始发挥作用。

早期实施企业针对于“应用对应用整合”这一需求已经完成了一个或者两个甚至更多的SOA相关项目内容,只是他们还没有完全将这些新近完成的数据资产直接授权于他们的最终业务用户。正如我们都知道的,对于多数行业来说,收入方面的决定权大多掌握在这批最终用户手中。而所有关于最终用户以及Ajax所能对SOA的支持在以往SOA应用项目中并未曾顾及到,那就是:为用户提供“最后一步”的业务功能。

REA所带来的企业级效益

在当前的发展状况之下,已经有许多世界级REA应用的成功案例可供分享,结合这些示例能够有助于解释REA应用在企业架构规划和设计中的用途,效益以及所带来的重大影响。目前我们能看到的最为成熟的一次REA应用执行是Defense intelligence分析机构部门所采用的基于Ajax的“webtop”项目。每一个分析师从一个空白的webtop开始,创建一套以SOA服务为基础的信息资源以供使用。

服务可以是由一些计划、预计的事件组成,如一些档案数据库中或是第三方新闻服务所提供或反应出来的即成事实和统计。许多可供使用的服务是从现有的整合数据资源中提炼出来可以直接为面向服务架构体系所使用的SOA型服务。其他的服务则是来自一些并非完全正式资源的“虚拟化”服务,这些资源可以是数据库,可以是EJB应用,可以是由两个或多个小粒度资源混合而成的“混合型服务(service mashups)”,这些混合型服务对于分析师而言比那些小粒度的单独资源更加有用。

一旦服务被选定,将会以各种不同的方式进行个性化。例如,可以应用过滤器,改变或格式化显示区域……甚至是一些你所期望的Web2.0级别的应用,具体的数据记录或是项目也可以通过共享的社会化形态让其他用户在一个社区范围内使用。例如,分析师可以在webtop建立一个有期效的数据项,并将其显示给其他的分析师。很多服务还允许数据更新的同时可对原始资源进行更新,同时会通过webtop即时反应到其上各数据的同步显示。

REA应用的快速实施

前文所说到的这个示例是否也在另一个角度展现了REA应用所能提供的快速实施示例?首先我们得清楚,用户是处在一个驾驶人员的位置,他们手中握着这个异常强大的“交通工具”的方向盘。这种用户可授权性的REA应用对于各个行业中的雇员都是同样可行的,例如医疗病例卡管理人员,销售代表,呼叫中心工作人员,信贷分析师或是索赔理算人员。

其次,在这个REA应用的示例中(几乎所有的REA应用都是如此),Ajax和SOA是紧密联系在一起的。很难确定究竟是SOA的原因引入了Ajax还是说Ajax更多的让SOA深入到了企业的架构计划当中。或许这也取决于企业自身的优势以及对于实施时间曲线安排,通过Ajax和SOA展开具体的应用。可以确定的一点,将这两种技术有效的结合起来会是比任意一种技术单独使用产生更大的效用。

还有非常重要的一点,千万不要错误的认为REA应用只是针对门户方面。反之,应该将REA应用作为一种没有传统门户服务的门户去考虑。当前的门户已经是作为企业信息的一个单一切入点,它们已经变成了一个太多太多信息所屯集的一个地方。REA应用作为门户形式的展现在另一方面的作用在于不仅仅让用户能够找到他们愿意去查找的信息,更能够将一些不相干的信息数据混合到一起并给予用户个性化的观点认识——这就是REA应用所带来的全新的以用户自身意识为驱动的整合应用。当用户共享这些特定的微小整合时,在本质上则是造就了整合效应的“长尾”发展。

REA应用如何填补IT业务中用户驱动这一空缺

但是正如你可能已经意识到的,在目前典型的企业架构中本来是存在着一些组件可以用来支持REA应用的,而这些组件却在传统应用中失去踪影。适当的服务粒度在整个企业架构应用中仍是一门艺术形式。将数据推向基于流览器的应用并非普遍,而“虚拟化”服务和“混合式服务”更是前所未闻。

所有这些沟通都需要在符合底层服务所确定的可用服务政策的前提下安全实现,这也是对于各层次分布的用户群而言一种优雅的度量准则。

我们千万不能忽视,当前大部分的企业并没有拥有一个属于自己的企业级Ajax开发团队,他们更多的只是在等待SOA项目能够在生产中发挥效用。他们需要一些支持可视化开发的工具,一些调试工具,一些从IDE所得的“表和按纽”的窗口式开发的代码重用工具。IDE还得是帮助他们创造一些轻量级代码以及能够在流览器中优化执行的。

还有一些较小但同样重要的问题,如何解决门户网站的浏览器兼容问题,多语言支持问题,网页内易读性指引问题以及共存策略问题,等等。

如上种种则是为什么Ajax和SOA,当然你也可以如同本文中所称的那样称他们为REA应用对于未来企业架构规划和设计可能产生巨大影响的原因。从IT业务中REA应用型功能的最终用户需求可以明确的看到,新一代的企业架构将会无可避免的以用户驱动为前提。在未来的数年内,大部分的业务应用将作为REA应用的基础存在,IT部门 则是有责任为这方面需求安排计划。


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织