IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope:Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  SOA and Web services | Architecture  >

SOA 与情景应用程序,第 2 部分: 构建 IBM 情景应用程序环境

developerWorks
文档选项
PDF 格式 - A4

PDF - A4
168KB

Get Adobe® Reader®

未显示需要 JavaScript 的文档选项

讨论

英文原文

英文原文


级别: 中级

Andy J. F. Bravery (andrewjf_bravery@uk.ibm.com), 高级 IT 架构师, IBM
Luba Cherbakov (lubacher@us.ibm.com), IBM 杰出工程师、IBM 技术研究院的成员,IBM CIO 办公室, IBM 
Aroop Pandya (apandya@us.ibm.com), 高级软件架构师,IBM CIO 办公室, IBM

2008 年 3 月 24 日

系列第一篇文章解释了基于 Web 的情景应用程序(situational application,SA)对企业的适用性、此类应用程序与面向服务的体系结构(Service-Oriented Architecture,SOA)的关系,以及如何使用此类应用程序来改进公司 IT 的当前状态。本文将描述 IBM 构建情景应用程序环境(Situational Applications Environment,SAE)的经验,开发 SAE 的目的是为了支持基于社区的计算,这种计算方式同时利用了传统 SOA 和新兴的 Web 2.0 技术和方法。

SOA 和 情景应用程序,对于很多人来说都是比较生疏的内容。文中涉及了很多和 SOA 以及 Web 2.0 相关的内容,所以,我推荐您在阅读本文之前,能够先了解一些它们的相关内容。比如和 SOA 相关的”SOA 术语概述“”七问 SOA“”SOA 落地中国“,而对于 Web 2.0,您可以访问”Web 2.0 与 SOA“”Web 2.0 新手入门“”Web 2.0 资源中心“。这些内容都会帮助您很好地理解本文中涉及的知识点。

引言

这个有关情景应用程序的系列第一部分描述了促使社区驱动 SA 开发在企业中兴起的使用模式和技术,并将其与更传统的以公司为中心的 SOA 活动作了比较。该文还分别研究了每种方法的生命周期、技术和社会方面。然后该文描述了如何在企业中使用 SA 来改进公司计算的状态。

该系列中的第二篇文章将描述 IBM SAE。构建 IBM SAE 是为了帮助个人和小型团队创建特别组合应用程序以满足即时的业务需要。您将在本文中了解企业中需要构建此类环境的更改,以及在您构建此类环境时所必须处理的挑战。特别是,您将研究企业数据访问、SA 的生命周期,以及 SA 对传统应用程序开发的影响。您还将了解一些轻量级开发工具。

本系列的最后一篇文章将研究几个 SA,并描述它们的业务情景和挑战、体系结构、切实的业务成果、支持每种解决方案的技术,以及所学习到的教训。

最近出现的诸如 Programmableweb.com(请参见参考资料以获得链接)等 Mashup 和 API 中心揭示了一种重要的快速开发方法,这种开发集中于简单应用程序的创建以满足即时和高度个性化的需要。构建 SAE 是为了研究是否可以在企业中构建这样的生态系统,并通过将一些即时的业务自动化职责从公司 IT 转移到小型团队和个人,从而为业务部门(lines of business,LOB)提供更多的自主。

为了能让 SA 企业生态系统变得更有活力,召集一些具有广泛互补技能的用户是非常重要的。

以业务为中心的用户知道在何处可以通过针对性地创建新应用程序来快速实现业务价值。以技术为中心的用户了解编程概念和数据复杂性。表 1 总结了不同的 SA 社区角色。


表 1. 以 SA 为中心的社区中的用户角色
角色属性需求
SA 用户业务用户:
  • 了解业务需要
  • 需要快速的答案
  • 拥有标准桌面工具
  • 快速找到 SA 并使用它们
  • 对 SA 进行评级和评论
  • 描述新 SA 的业务需要
  • 要求从 SA 获得实际的业务好处
SA 组装人员重要的业务用户或 LOB 开发人员:
  • 了解电子表格公式
  • 了解或接近业务需要
  • 能够执行 SA 组合
  • 使用基于浏览器的工具
  • 能够访问到一定数量的工具来适应技能和领域专业技术
  • 从可使用件 (consumable) 组合应用程序
  • 通过按示例、模板、实用程序等编程来提供指导
  • 共享 SA 并合作使用来改进它们
可使用件构建人员 LOB 或 IT 开发人员:
  • 具备传统编程技能
  • 了解集成问题
  • 使用一定数量的编程工具
  • 能够访问企业数据
  • 使用工具和实用程序来构建可使用件
  • 使用模式来指导可重用资产的创建
  • 使用轻量级承载来运行可使用件

Web 2.0 社会交互的出现意味着这种公司劳动力的无限力量和创造性变得前所未有地垂手可及和相互关联。SAE 提供了维持这些用户群体之间的交互所需要的功能,并提供了可以观察 SA 在企业中的业务好处的“实况”实验室。





回页首


SAE 体系结构

该环境的核心是 SAE 主页。该主页吸引了用户对来自社区的最新和最流行的新生事物(例如 SA、可使用件和最新的论坛线索)的注意,并以任务驱动的方式引入了工具,同时提高了对用于数据解释和内部及外部服务使用的公司指导原则的认识。

图 1 突出显示了 SAE 主页的一些主要特性。


图 1. SAE 主页
SAE 主页

图 2 展示了主要的 SAE 体系结构组件。


图 2. SAE 体系结构组件
SAE 体系结构组件

目录存储了社区创建或发现的资产。这些资产或者是指向 SA 的链接,或者是用于构造 SA 的部件。这些资产可能是 Web 服务、JavaScript 小部件、API 或代码片断——我们称之为可使用件

每个目录项描述资产的详细信息,并提供了如何使用该资产和应该联系谁的示例。该详细信息包括用标记来扩充的最基本分类。用户可以对目录项作评论,并注册他们自己的使用示例的详细信息。他们还可以添加标记,目录项和标记都可以基于流行性和相关性进行评级。然后,这种用户生成的分类法或正在变得为人所知的公众分类法 (folksonomy) 将与更传统的关键字搜索技术一起用于筛选条目。

虽然目录是开放的,可以进行匿名浏览,但是需要通过公司身份验证服务进行用户身份确认才能投稿。此身份确认将投稿人在公司目录中的联系人信息与目录项关联起来,从而进行了社区的建设。

资产本身可以承载在 SAE 基础设施上、资产贡献者或外部合作伙伴拥有的服务器上。

SAE 同时提供了关键字和基于标记的搜索服务,其他应用程序可通过 Atom data feed 和 OpenSearch API 访问这些服务。这意味着 SAE 既是 Mashup 本身,同时又提供了可包括在其它 Mashup 中的可使用件。

大多数目录视图都具有关联 Atom Feed,可以通过 Feed 阅读器订阅这些 Atom Feed,从而让用户能够获取发送给他们的新信息或社区讨论更新,而不是必须主动地去访问该目录。

SAE 工具和实用程序

SAE 工具支持正在由 SA 构建人员使用的技术模式,例如代表性状态传输(Representational State Transfer,REST)风格的 Web 服务和支持 Asynchronous JavaScript + XML (Ajax) 的 UI 小部件。通过采用这些模式作为指导原则,将会鼓励开发人员构建彼此兼容并与所提供的工具集兼容的可使用件。

Enterprise Business Innovation (EBI) REST Framework 是一个用于在企业的关系数据库中存储的数据基础上构建 REST Web 服务的工具。这个自助服务框架使得具有初步 SQL 知识的用户能够定义服务并选择响应协议,例如 JavaScript Object Notation (JSON) 或 XML。

SAE 提供了相关工具,这些工具允许获取可能仅在现有的 HTML 网页上可用的数据。同样,这些工具的重点是在废弃 (scraping) 逻辑之前创建 REST 服务 API,以便服务使用者意识不到幕后发生的事情。

SAE 还包括 IBM Mashup Starter Kit 的一个实例,IBM Mashup Starter Kit 包括 QEDWiki(用于从小部件组合页面)、Mashup Hub(用于对小部件和数据 Feed 进行编录),以及数据 Mashup 工具,此工具允许您通过组合现有的企业数据来创建数据 Feed,非常类似于 Yahoo!Pipes(请参见参考资料以获得链接)。

Project Zero(请参见参考资料以获得相关链接)引入了一个简单的环境,用于创建、组装和执行基于流行 Web 技术的应用程序。其编程模型是围绕 REST、Atom 和 Ajax 模式构建的,并包括一个用于 Groovy 和 PHP 的脚本运行时环境。

表 2 总结了所选 SAE 工具的功能。


表 2. SAE 工具功能总结
情景应用程序可使用件
QEDWiki
  • 页面布局工具
  • 可扩展的小部件库
  • 使用 RSS 和 Atom Feed
  • 小部件属性绑定
Project Zero
  • Dojo 支持
  • 自动化的页面创建
  • Eclipse 工具
EBI 框架
  • 产生 REST Web 服务
  • 可扩展的小部件库
  • 使用 RSS 和 Atom Feed
  • 小部件属性绑定
Mashup Hub
  • 产生 RSS 和 Atom Feed
  • 企业数据访问
  • 丰富的数据操作程序库
  • 可视化的组合工具
Project Zero
  • 产生和使用 REST 服务
  • 产生和使用 Atom Feed
  • PHP 或 Groovy 脚本

SAE 承载

在用户构建某个可使用件或 SA 之后,他或她必须将其部署(承载)在某个地方。上面描述的一些工具,或日益为人所知的 mashup maker,通过组合构建和执行环境来消除了部署步骤。用户从组件面板构建网页,测试,然后共享最终的应用程序,而不需要考虑基础设施。主机平台将管理组装、运行和共享的完整生命周期,并利用丰富的客户端组件来为用户提供集成开发体验。在类似于传统集成开发环境(integrated development environment,IDE)的离线模式中使用的其他工具需要承载。

SAE 提供了一组轻量级虚拟承载环境,从而消除了 SA 构建人员的基础设施管理职责。将选择这些承载的堆栈来与常用于 SA 构建的堆栈进行匹配,并将其设置为支持自助服务,从而最小化中央管理开销。典型的承载堆栈包括 Web 服务器、服务器端脚本功能和数据存储。用户可以上载代码,并做出仅影响其虚拟主机的轻微配置更改。目前,基本的 Linux、Apache、MySQL、PHP/Perl (LAMP) 和 Ruby 都在 SAE 中受支持。除了诸如通用数据存储、插件下载库和数据中介服务以外,未来的计划还包括为 Project Zero 应用程序添加类似的支持。





回页首


实际应用中的生态系统观察

自从 SAE 于 2006 年 12 月发布以来,不断增加的社区活动已经带来了一些有关这样的环境能够如何为企业提供价值的有趣见解。

应用程序生命周期

许多 SA 在被丢弃之前仅存在很短的时间,或者从未在创建它们的原始团队之外得到广泛使用,同时也有些 SA 吸引了许多人的注意。

SAE 中注册的第一批 SA 之一的 IBM Travel Maps 最初是由两位研究人员作为 PHP 竞赛的获奖项而开发的。Travel Maps 在可导航的地图上组合了对旅行者非常有用的信息,例如 IBM 办公室位置、协议酒店、机场、出租车、餐馆位置和其他有用的信息。

虽然一家 IBM 业务合作伙伴提供了用于计划和登记公司旅行的 IBM Online Travel Reservations (OTR) 自助服务系统,但是 OTR 当前未包括便利的位置映射功能或有关当地的一些有用信息。Travel Maps 提供了这些缺少的功能。该应用程序变得如此流行,以致 IBM Real Estate Operations 管理团队在 SAE 仅发布三周之后就将 Travel Maps 添加到了 IBM intranet 旅行网站中。

该应用程序通过参与体系结构 (architecture of participation) 继续发展,参与体系结构是一个用于描述社区参与的 Web 2.0 特征。较新的旅行 Mashup 添加了天气、航班状况和与客户相关的信息。

数据修改

许多与 IBM Travel Maps 相关的社区评论与该应用程序中的数据质量有关。其中许多数据过去对最终用户是隐藏的,也许仅由少数与该信息密切相联的人员使用。在对确实 了解该信息的的人公开该信息之后,错误的地方很快就会被指出来。如果 IBM 办公室的位置和其他当地信息的图形细节出现在地图上的错误地方,当地员工会将其识别出来,并通过 SAE 报告问题。错误细节会很快推送给能够修改原始数据的数据所有者。

这种社区数据审核类似于在诸如 Wikipedia 等流行的 Web 2.0 网站中看到的参与。SAE 中的相关工作现在正在进行,以自动化的形式收集最终用户反馈和支持某种遵从企业数据治理和安全策略的修改级别。

管理预期

SA 构建得再好也只能完成一件特定的工作。用户通常无法明显看出应用程序不是一个生产就绪的工具,对于构建应用程序的相关原始团队以外的用户来说尤其是如此。如果要基于 SA 的使用来做出业务决策,则潜在的用户需要了解 SA 构建人员的最初目标是非常重要的。

SAE 中的最佳实践建议 SA 构建人员在其 SA 描述中提供足够的详细信息,并包括从 SA 指回 SAE 目录的链接,以便用户能够发现该 SA 的出处,对其做出评级,并提供反馈。有一个特殊的小部件已经创建完成,构建人员可以在其 SA 中包括该小部件以提供这样的链接。在将来的版本中,这个小部件将与 SA 构建工具集成,以使其成为使用该工具来构建的任何 SA 的不可或缺的一部分。

性能

在传统应用程序开发中,大量的资源用于通过构建设计良好的端到端体系结构来确保良好的性能。对于 SA,应用程序通常是使用不在开发人员控制之下的组件来快速构建的。例如,获取数据的唯一方法是通过跨越多个数据源的低效或复杂查询,包括 Web 服务、多个数据库以及网页(通过抓取技术)。在这种情况下,优化数据收集的可能就非常少。

这是使过去不可用的数据变得可用和使数据性能良好之间的一个权衡。缓存技术可以为这种情况提供帮助,尤其是当 SA 通常是围绕相对非易失性的数据构建时。

许多有关 SA 的社区评论抱怨说性能非常糟糕——很悲哀,最终用户很少理解 SA 的底层复杂性,因此对 SA 具有不合理的预期。当然,当 SA 变得非常流行并对业务非常关键时,公司 IT 需要考虑是否要进行投资来将 SA 优化为性能更可靠的应用程序,或者至少优化其元素。

业务价值

对于任何业务,某种技术交付的价值是关键的成功指示器。SAE 活动已经与 LOB 进行合作,以确定能够证明可测量业务价值的 SA。良好的候选 SA 关注于自动化需要频繁手动操作数据的任务。

在一个这样的案例中,25 位分析人员组成的团队在使用一个新的 SA 时观察到了 50% 的工作效率提高;在另一个案例中,完成一项任务所花的时间从 2.5 小时减少到了四分钟!这些以及其他 SA 的详细信息将在本系列的第三篇文章中进行研究。





回页首


未来发展方向

如果要实现 SA 的业务好处,提供一个支持此类应用程序在企业中的开发和使用的生态系统是至关重要的。要将企业文化转变为鼓励和包容创新思想和个人自给自足的文化,CIO 扮演着重要和富有挑战性的角色。IBM 正在积极消除技术和文化障碍以支持企业氛围。SAE 的设计目的是作为情景应用程序在企业范围的实现和采用方面的一个不断发展的试验。

需要一个基础的 SOA 来提供足够数量的可使用件,以发展此环境并为其提供自我支持所需要的动力。许多组织正在将采用 SOA 作为一个战略,但是如果公司 IT 要将 SA 作为一个重要工具来推动其增长,则向 SA 构建人员开放服务是必不可少的。

尽管初始 SAE 版本解决了这里描述的一些挑战,但是还有大量的挑战有待探索和研究,例如:

  • 通过基于角色的自动化授权系统实现对企业数据的访问。
  • 数据源头。
  • 强化总体治理,尤其是在外部产生的可使用件方面。
  • 针对业务用户的 Mashup maker 的发展。

需要更好的 SA 和可使用件构建工具来加强公司安全和治理策略,而不会对 SA 构建人员施加负担。

SAE 正在通过用于提交业务需求细节的功能来进行扩展,以使业务用户能够向技术社区清楚表达问题,技术社区可以通过构建 SA 来帮助业务用户解决问题。这个愿望列表功能是通过与 SAE 目录的其他部分相同的 Web 2.0 风格协作功能来实现的。

分享这篇文章……

digg 提交到 Digg
del.icio.u 发布到 del.icio.u
Slashdot Slashdot 一下!

在本系列的第 3 部分中,您将研究几个情景应用程序。我们专门精选了这些应用程序来代表利用 SA 解决的广泛业务挑战。其中有些挑战经常跨业务部门出现,具有普遍的相关性。其他挑战则特定于某些 LOB,但这些正是能够被情景应用程序成功解决的典型挑战。

除了总体业务上下文之外,对于所研究的每个应用程序,我们将描述在创建这些应用程序时要克服的障碍和最终解决方案的体系结构概述。您还将研究所使用的支持技术、工具和技巧,并了解它们分别实现的切实业务成果、最佳实践和学习到的教训。



参考资料

学习

获得产品和技术
  • 使用 IBM 试用软件开发您的下一个项目,可下载或索取 DVD 光盘。


讨论


作者简介

Andy Bravery photo

Mr. Bravery 是 IBM Software Group Architecture Board Incubator Projects 团队的一名高级 IT 架构师。他担任 IBM CIO 办公室的情景应用程序环境轮值首席架构师,最近因为该职位而获得了 IBM 杰出技术成就奖。Bravery 先生在诸如面向对象编程、内容管理和门户以及多通道体系结构等新兴技术领域具有丰富的工作经验他最近的工作集中于简化的编程模型和 Web 2.0 技术,以及如何在企业中应用这些技术。Bravery 先生是英国计算机协会的成员,并拥有英国伯明翰大学的物理学荣誉学位。


Luba Cherbakov photo

IBM 杰出工程师 Luba Cherbakov 是 IBM Global Services 的 Application Innovation Services 的技术负责人。在使用面向服务和基于组件的方法进行复杂企业应用程序的体系结构设计和开发方面,她是一位得到广泛认可的专家。她撰写过以下技术领域的文章,是这些领域的倡导者,并在这些领域做出了一定的贡献:面向服务的建模和体系结构(Service-Oriented Modeling and Architecture,SOMA)方法(请参阅参考资料)、参考体系结构资产、体系结构描述标准以及网格计算产品和服务。Cherbakov 女士是 IEEE 计算机学会和 ACM 的成员,拥有乔治华盛顿大学的计算机科学硕士学位,主修软件与系统,辅修人工智能与仿真。


Aroop Pandya photo

Aroop Pandya 是 IBM CIO 办公室的一名高级软件架构师。他在使用 IBM WebSphere® Application Server、IBM DB2®、NNTP 和 HTTPServer 的软件开发方面拥有广泛的经验。




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

将您的建议发给我们或者通过参加讨论与其他人分享您的想法.







回页首


IBM、IBM 徽标和 WebSphere 是 IBM 在美国和/或其他国家/地区的注册商标。 其他公司、产品或服务的名称可能是其他公司的商标或服务标志。

IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款