UML软件工程组织

SOA的下一波:面向服务的客户端
作者:Jeff Whatcott 出处:AMT研究院

对于企业级软件来说,那些各种信息被禁锢在分散的业务功能单元内的“坏日子”已经成为过去。我们当中的大部分人为此也感到很欣喜。面向服务的架构(Service-Oriented Architectures, SOAs)和软件已经到来并且准备开创新纪元。

既然企业已经在修补它们所用技术的中间层(middle tier)和后端层(back-end tier),并且已经利用SOAs来创造的新的价值流,那么下一步将是什么?正在从SOAs和Web服务中寻找下一波好处的精明的CIO们正在把注意力转向最终用户以及他们是如何与这些新一代的系统交互的。他们所寻找的是一种新的客户段软件。这种软件拥有真正的智能,富媒体(rich media)和可交互性,同时也能够对服务与数据进行存取。该软件的名字就叫作面向服务的客户端(Service-Oriented Clients, SOCs)。

到目前为止,你们之中的很多人大概已经开始问自己,为什么你需要关心SOCs。简单地说,你需要关心SOCs是因为传统的Web浏览器作为一个应用客户端程序已经太老了。浏览器曾经是为了便于人们浏览静态文档而被设计出来的,它无法递送含有状态信息的各种应用(也就是说,那些能够记住你曾做过什么、你什么时候离开且什么时候再次访问的状态)。是时候扪心自问了:为什么我们的关键商业应用(business-critical application)要依赖于一个象征着页面的、只有下一页/上一页/主页按钮、书签、cookies和使用无状态描述的通信协议的客户端软件?

让我们直面问题吧:基于Web的表现形式和客户层(client tier)是在现今企业级软件架构中最薄弱且最陈旧的一层。浏览器无法自然地与Web服务连接或者与基于消息的(message-based)同步数据进行交互。它们也无法提供高质量的打印结果,也无法很好地离线工作。更具有挑战性的是,质检团队花费大量的时间来对跨浏览器的应用进行调试,因为不同开发商的不同版本的浏览器在不同的操作系统上的表现不尽相同。因此,即使是你最聪明的程序员也不喜欢在表示层(presentation tier)进行开发也就不足为奇了——这种工作非常艰巨、无情和不值得。

发挥SOAs的全力

如同SOC的名字所暗示的那样——它是一个为与服务交互而设计的客户端。通过运用SOC架构,开发人员能够创造出可以让SOA的数据富于含义且对用户有用的丰富 Internet 应用程序(Rich Internet Applications,RIAs)。SOCs结合了Web广泛的部署伸展性以及桌面客户端软件的丰富性和智能性。例如,SOCs既可以在线工作,也可以离线工作;可以与面向消息的中间件相连接,并且把数据、文档、表格以及音频和视频流融合在一起——这一切都发生在一个交互的环境里。它们在不同的操作系统之间依然能保持内容及表现形式的一致性,并且为应用程序提供了一种既可以在浏览器的环境内但也可以在其外工作的机制。

丰富Internet应用程序提供了一个额外的好处,因为它们能够平息业务与IT之间那些已持续了很长时间的争论。也就是说,丰富Internet应用程序能够克服富客户端(rich client)与瘦客户端(thin client)之间传统的折衷。商业经理们倾向于选择富客户端,因为它们能够提供更高的可交互性、生产力与用户满意度。另一方面,IT员工则通常更倾向于选择瘦客户端,因为它们更易于部署与维护。CIO们在选择客户端时将不再左右为难,因为基于SOCs所构造的RIAs能够同时满足两方面的需求。

Internet丰富的未来

不久之后,RIAs会成为平常的事,并存在于商业的各方各面。不管信息究竟存在于何处,客服人员都能够使用RIAs并从单一的屏幕中读取CRM,SFA,ERP以及外部系统的数据。举例来说,消费者会在选择与申请财产抵押的过程中被适当引导。这种引导包括能够为消费者提供即时反馈并且允许他们与客服人员实时通话的丰富的可视化与一体化表单。

高级管理人员同样也能从RIA中获得好处。经理主管人员可以利用那些复杂的、像桌面程序一样的应用程序来帮助他们进行决策。这些应用程序整合了丰富的数据可视化与应用程序组件——例如数据网格、图表、多媒体音频与视频以及实时数据。

强劲的产业势头

SOCs不仅仅是一个新潮的术语,它们的含义更为深远。SOCs在产业中不断地涌现。软件提供商很快地接受了SOC的概念,并且已经开始向市场提供富客户端的开发平台。例如,微软就向市场推出了Windows Presentation Foundation平台。IBM则提供了基于Eclipse富客户端平台开放工具集的IBM Workplace Managed Client。Adobe也推出了Adobe Engagement Platform以及Flex框架。所有的这些平台都为增加有关SOC架构方面的开发经验提供了一个框架和基础。同时,它们也将编程框架、编程语言和开发集成环境(IDE)捆绑在一起。

具有普遍性与跨平台性

竞争与选择权有益于健康而且是必须的。但是——这是我的恳求——让我们不要忘记在20世纪末期浏览器成为我们缺省客户端程序的最主要的原因:它无处不在。让我们不要再回到那些我们必须发布针对操作系统(甚至针对某一操作系统的具体版本)的客户端程序的时代。为了让基于SOA的Web服务和客户端应用程序能够成为计算机世界的主流,有必要让程序运行的环境具备普遍性、跨平台性和免费性。

开发基于SOC概念的RIA的工具也应该依靠于现代的、面向对象的编程语言,而且应该向开发人员提供丰富的可重复利用的组件库以促进他们的努力。SOC开发工具同样应该被一体化,以使得设计人员、内容开发者、代码开发者与质检人员之间流畅的工作流程成为可能。最后,这些工具都必须支持易用性(accessibility),并且能够递送下一代的服务,例如双向传讯(two-way messaging)以及音频和视频协作。

增加前端价值

多年以来,我们曾经处理过一大堆很基础的技术问题。我们也曾经尝试让数据库能与中间件通讯,并且整合不同业务功能单元的信息。这些处于层结构底部的问题,现在都能够被功能强大的SOAs和Web服务所处理及作合理化改革。

下一个障碍将会是以人为本——这些人包括应用程序的开发人员与最终用户。对IT基础设施的中间层以及后端层作合理化改革的行动早已被确定,而且已经产生了巨大的利益。下一步——很有可能是最大价值的所在——则是填补后端系统与前端界面之间的间隙,以促进更丰富的、更具动态的用户交互。

Jeff Whatcott是Adobe Systems的产品营销高级总监。


版权所有:UML软件工程组织