构建企业专业技能定位系统: 第 2 部分:专业技能定位器解决方案架构

本文介绍在 IBM 内部实现的一个专业技能定位系统的解决方案架构,该架构有一个叫做 “专业技能定位器” 的有趣名称。在本系列的这部分中,我们将介绍专业技能定位器系统的用例模型、解决方案架构、数据模型和架构决策。

Galina Grunin, IT 架构师, IBM

Galina GruninGalina Grunin 于 2001 年加入 IBM。她是一名经过认证的 IT 架构师,目前正在研究业务敏捷性应用程序。



Erich Walls, IT 架构师, IBM

Erich WallsErich Walls 于 1997 年加入 IBM,在过去 10 年,他一直是 IBM 的一名 IT 架构师。Erich 目前是 CIO 组织的一名资深 IT 架构师,同时获得了 IBM 和 OpenGroup 的认证,他关注的领域是知识管理和销售支持。



2011 年 12 月 30 日

简介

企业专业技能定位器系统必须尽可能灵活,同时独立于技术和标准。此系统需要允许其他企业应用程序利用自己的解决方案中的专业技能定位器 (EL)。本文将探讨构建企业专业技能定位系统所需的用例、解决方案架构、技术、数据模型和关键架构决策。

用例模型

专业技能定位器的主要用例将在下面的用例模型中描述。它包含以下 6 个角色:

  • 最终用户:与系统交互来定位专家、搜索知识库或向系统提交问题的用户
  • SME:业务部门提名或自己提名的主题专家,他在系统内注册,以帮助其他人。SME 可从企业内的 “社交媒体” 中找到。社交媒体包含出版物、wiki、博客、专利、会议演示等。例如,许多发表云计算相关博客文章和/或提交云计算相关专利的人可能是云计算领域的专家。
  • 管理员:管理专业技能区域分类的用户,通常是可通过确保分类有效并登记了专家来帮助他人获得利益的利益相关者。
  • 质量保证经理、问题路由器、协作代理:一些系统角色,他们提供问题管理和路由,还提供即时消息协作服务。

用例模型

用例模型

解决方案架构

选择一种服务组件架构 (SCA) 作为专业技能定位器的主要架构模型。专业技能定位器的一项关键需求是保持尽可能灵活,同时尽可能独立于技术和标准。这使其他企业应用程序能够在他们自己的解决方案中利用专业技能定位器解决方案。SCA 是以 SOA 中某种标准的形式出现的,提供了一种解耦服务实现和服务程序集的方式。这使开发人员能够专注于业务逻辑,同时提供多种技术的绑定。架构模型演示了解决方案架构及其组件。

架构模型

架构模型

专业技能定位器中的一个主要组件是分类法管理。它定义了以下词汇:专业技能区域,这是一种基于专业或业务部门调整的分类。例如,行业咨询、软件产品、销售团队等。分类法是对高级专业技能的一种分类。每种分类法可分解为称作 “专业技能” 的知识主题。专业技能可进一步分解为更细粒度的知识子主题,在专业技能分层分类法中创建 “子节点”。

专家管理组件提供了映射服务,将一个 SME 映射到在分类法管理中定义的专业技能。SME 也可以指定既定的专业技能分类法之外的没有标签的专业技能。SME 可通过 API 调用自动填充专业技能标签,以便可基于 SME 在企业内的社交媒体活动来检索标签。

另一个专业技能定位器组件提供了专业技能搜索和分类法浏览服务,通过这些服务找到在专业技能定位器系统中注册的 SME。可以调用 API 来确定社交邻近性、从用户到 SME 的社交路径并定位 “潜在专家”,他们未在系统中注册,但依据他们的社交媒体活动而被视为专家,社交媒体示例包括出版物、专利、分配给他们的标签等。

为实现选择了以下技术(产品):

  • 应用服务器 (WebSphere Application Server)
  • RDBS/搜索:解决方案使用 DB2/DB2 NetSearch Extender 实现,但可以结合使用任何具有搜索功能的 RDMS 或 RDBS 及信息检索软件库,比如 Apache Lucene。
  • 即时消息 (Lotus Sametime)
  • 服务组件架构 (Apache Tuscany)
  • AJAX 工具包 (Dojo)
  • 应用程序框架 (Spring)

下面的架构片段图演示了相关架构。

架构片段

架构片段图

数据模型

企业专业技能定位器数据模型包含表示用户配置文件、专家配置文件、专业技能分类法结构、技能字典、以前询问的问题和即时消息交换的实体。该数据模型还包含各种映射表(比如专家到技能或专业技能的映射表)和访问控制列表,以管理不同的专业技能分类法水平。数据模型图显示了专业技能定位器的高级数据模型。

数据模型

数据模型图

架构决策

应该采用哪些技术来实现专业技能定位器服务,以提供来自企业内的远程站点的不同访问绑定的灵活性?例如,一种协助销售人员的移动应用程序可以显示特定软件产品方面的专家。关于专家的数据将由专业技能定位器提供,但在实现专业技能定位器时,可能并不知道专业技能定位器与移动应用程序之间的通信协议或绑定。请注意,这些架构决策是在开始实现相关操作之前做出的。

对多种调用协议的支持
问题陈述:

专业技能定位数据需要从企业内多个来源(或站点)访问和/或更新。这些不同的站点可以实现不同的技术或语言,从而可以访问专业技能定位器服务,检索数据或进行更新。例如,一个远程站点可以实现 Dojo,但需要通过 JSON-RPC 访问专业技能定位器服务,另一个站点希望通过基于 SOAP 的 Web 服务访问 EL 服务,还有一个站点通过 HTTP 访问,或者其他站点通过 JMS、RSS、ATOM 访问,等等。

动机:

标准的采用。利用更新的技术实现快速开发。对基础架构的适应能力发生了变化。服务的实现方式使任何演示技术都能够访问服务,换句话说,演示层和服务实现之间存在松散耦合。

服务组件架构 (SCA) 是以 SOA 中的某种标准形式出现,SCA 的愿景是开发人员将仅需要专注于开发业务逻辑,SCA 还提供了单一的编程模型来调用组件。另外,SCA 允许一个组件拥有多个可配置的绑定。

备用方案:
  1. Fabric 3:具有很高的风险,它是 SCA 标准的开源实现,专注于自动化的服务配备和管理。但是,它仍然是 Beta 版本。
  2. Apache Tuscany:风险较低,受 Websphere Application Server 6.x 及更高版本支持。它是开源的,简化了开发 SOA 解决方案的任务,为 SOA 开发和管理提供了一个基于服务组件架构 (SCA) 标准的综合基础架构。它使服务开发人员能够创建仅包含业务逻辑的可重用服务。协议从业务逻辑中分离出来,并由广泛的可插拔绑定来处理。应用程序可轻松适应基础架构更改,无需重新进行编码,因为协议是通过可插拔的绑定来处理的,并且以声明性的方式处理服务质量(事务、安全性)。SCA 提供了一种轻量型的运行时。依据 SCA 规范的定义,Tuscany 运行时支持集成 Java、BPEL、Java EE、Spring 等。此外,Apache Tuscany 开发团队正在实现对 JAX-RS 绑定的支持,使 RESTful API 实现变得更加轻松。 Apache Tuscany 图

    Apache Tuscany 图

    注意:企业服务总线 (ESB) 通常用于使软件组件能够彼此查找和调用,无论它们的实现中使用了何种技术。ESB 一般不从整体上描述复合应用程序。它位于组件之间并管理从一个组件传递到另一个的消息。相反。Tuscany 和 SCA 允许 ESB 描述整个复合应用程序。但是,Tuscany 可轻松集成 ESB 来利用其服务间消息路由和转换功能。Tuscany 为利用 SCA 组件之间丰富的服务交互模式提供了良好支持。描述交互组件的位置的模式包括:

    本地:交互组件在相同的 JVM 中运行。Tuscany 使用内存型通信。

    远程:交互组件位于不同的 JVM 中,这些 JVM 也可能在不同的物理机器上运行。可将远程绑定(比如 JSON-RPC、Web 服务等)用于要交互的组件。无论位于何处,以下交互模式专注于消息交换样式。

    请求响应:调用组件希望在每次发出请求后立即响应。

    单向:调用组件在发出请求后不等待响应。

    对话式:调用组件通过在调用和被调用组件之间维护的通用上下文的方式,发送一系列彼此关联的相关请求。

    回调:在未来某个时刻从被调用的组件对调用组件进行调用。

  3. Websphere® Process Server:特定于供应商的实现。WPS 是相对重量级的,在专业技能定位器系统中没有对复杂工作流的需求。

决策:

采用 Apache Tuscany,因为 IBM Tuscany 开发社区提供了大量支持,并且采用 Apache Tuscany 将有助于快速开发,这将帮助满足日程安排、标准采用和对多种绑定的支持。上面的 Apache Tuscany 图展示了多种外部来源如何与企业专业技能定位器服务交互,以及这些服务如何与 ESB 和/或外部来源集成。

演示层技术

问题陈述:

基于需求,已经确定最终用户将需要使用一种基于 Web 的用户界面来搜索专业技能,将他们自身注册为专家,或者搜索潜在的专家。他们还需要使用用户界面来创建基于社区或组的专业技能发现和视图报告。应该使用哪些技术来开发基于 Web 的用户界面?

动机:

  • 采用企业战略建议。
  • 利用更大的企业社区资产贡献。
  • 改进用户体验

备用方案:

  1. Dojo(AJAX 工具包):Dojo 提供了大量具有生产质量的部件。因为 Dojo 完全是使用 JavaScript 编写的,所以更容易调试(比如使用 Firebug)和开发现有部件的扩展。
  2. Google Web 工具包 (GWT):不同于 Dojo,GWT 没有提供大量开箱即用的部件。企业开发人员要么必须花费大量时间来开发基本部件,要么依赖于第三方供应商。
  3. JQuery:Jquery 的结构与 Dojo 不同,相对于整个应用程序演示层,它更适合开发独立的部件。

决策:

将 Dojo 用于 Web 演示层实现。

应用程序框架

问题陈述:

哪种框架和技术更适合企业专业技能定位系统的服务器级开发?

动机:

使用一种行业标准的轻量型解决方案来构建 J2EE 应用程序,轻松集成 Tuscany,并且可以提供可测试性和松散的耦合。

备用方案:

  1. Spring Framework / Spring JDBC:低风险。广泛使用且最新型的开源框架。专业技能定位器数据库最常被用于进行数据检索。Spring JDBC 提供了完整的持久性功能,而没有 ORM 开销。Spring 还提供了一种一致的异常分层结构,可将特定于数据库供应商的已确定异常转换为更加一致的运行时异常,后者仅可在指定的应用程序层中捕获。
  2. Hibernate 和 JPA:低风险。专业技能定位数据库最常用于数据检索,因此使用 Hibernate 等 ORM 产品将不会提供超过其开销的足够收益。

决策:

使用 Spring/Spring JDBC。

结束语

第一部分介绍了如何应用 SOA 模式来满足专业技能定位系统需求,以及如何获得参考架构。在本文中,我们了解了构建独立于技术和标准的灵活企业定位系统所需的解决方案架构、数据模型、实现技术。

参考资料

学习

获得产品和技术

  • 以最适合您的方式 评估 IBM 产品:下载产品试用版、在线使用产品、在云环境中使用产品,或在 SOA 沙盒 中花几小时学习如何有效实现面向服务的架构。

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=SOA and web services
ArticleID=783425
ArticleTitle=构建企业专业技能定位系统: 第 2 部分:专业技能定位器解决方案架构
publish-date=12302011