技术开发 频道

运用语义整合技术 四步骤改进SOA

要建立支持本体论的SOA,有以下四个步骤:

    第一步:分析业务流程。

    业务流程通常都包含一系列基于条件的任务执行。这些条件可能需要语义能力来展现其智能化的路由选择。我们将这些地方定义为“可变点”,或者是需要推理能力来实现语义特性的区域。

    每个任务可能都具有几个可变因素,或者对于每个可变因素,都可能具有多个可能的取值。而且未来的业务需求可能会引入新的可变因素,或者已有可变因素有新的取值可能。例如,早期人们认为物理形态只有固态和液态两种,而随着科学的发展,人们才逐渐认可了气态是另一种物理形态。因此,在定义本体论模型时,每一个变量都对应一个数据字典,可以不断地进行扩展,以保证能够满足未来新的业务需求。

    第二步:建立本体论模型。

    本体论是用术语概念和关系来定义。本体论的概念实现为类。本体论中的关系被定义为术语的“对象属性”和“数据类型属性”。从可变点组件到本体论模型中元素的映射,能够帮助建立其本体论模型。

    要准确地识别出业务流程中的任务和可变点,从而最终将它们映射为本体论模型中的元素,建立起有用的模型,必须要有足够的业务知识。开源的本体论建模编辑器和基于知识模型的框架工具,如Protege可以用于本体论建模。

    第三步:创建上下文相关的参与者。

    接下来要做的是,创建运行时的组件,它们在执行时按照条件调用本体论模型中的元素,并根据上下文具体条件执行不同的分支。实现这一点的一种方式是使用基于Java语言的技术。使用业务流程执行语言(BPEL)和模块的概念,业务流程会被封装为一个线性流程。而使用本体论的运行时组件则映射为决定正确服务调用的端点。

    通过定义“策略”和“断言”,能够实现充分的语义特性。“策略”会决定流程的可用性,并决定端点调用的服务,定义哪个地方可以使用什么服务。“断言”包含了本体论中映射的所有可能变量取值。运行时对包含端点的判断是基于“断言”与“策略”二者之间的非常好的匹配原则的。

    第四步:实现网络服务。

    网络服务提供最终的业务服务。他们是最终的执行点,包含了实际的业务功能。作用于网络服务的策略,是需要包含新服务端点任务的必要组成部分。

    改进SOA实施

    语义整合被用于各行各业,例如金融服务行业和医疗药品行业,而作为支持本体论的语义整合,其应用范围会更加广泛。我们将建立的支持本体论的SOA体系结构应用在了一个典型的业务领域——禁毒。所有的禁毒活动都需要化学和生物样品,这些样品的管理包括了获取、注册、保存和分发。我们的本体论模型通过动态地调用不同的网络服务实现了对样品获取活动的支持。

    这个系统大致是这样的:一个研究员请求样品(上面的第一步),这个请求发出了一个BPEL过程(第二步),其中,这个业务流程模型的BPEL引擎包括了对一个上下文相关调用的请求(第三步),然后这个调用会与本体论模型引擎相互作用,并根据条件查询相关的“断言”和“策略”。结果会根据具体条件选择适当的网络服务执行(第四步)。

    通过将专业业务领域的流程建模为工作流,并同时建立业务流程模型和本体论模型,本体论可以用来实现语义整合。本体论模型中的类和关系可以基于专业领域的知识和业务流程创建。

    如果基于本体论的SOA实现得不好,随着时间的推移,它可能会变得越来越复杂,而且难以维护。但如果实现得好,用本体论创建智能软件代理就会是一种非常好的方法,能够帮助实现对用户友好度很强的软件,帮助企业用户更好地作出准确及时的决策,加速企业内外部信息的共享。
 

0
相关文章