写点什么

通用信息模型,助你构建丰富语义的服务

  • 2010-09-14
  • 本文字数:947 字

    阅读完需:约 3 分钟

成功实施 SOA 的必备要素之一是服务消息在语义上的互操作性。通常,为实现这一点,服务消息 / 接口应该基于行业相关的通用信息模型(Common Information Model,简称 CIM)。因为 CIM 是抽象的,所以绝大多数情况下都需要对 CIM 进行扩展,其原因有很多,可能是出于整合的目的而加入某些附加的数据,也可能需要加入某些元素,让其承载服务组件的某些业务逻辑。Gandhi Sivakumar 和 Ram Viswanathan 在 DeveloperWorks 的一篇新文章中介绍了 3 个典型的 CIM 层,并界定了它们各自的特性。

两位作者认为,核心 CIM 层是基础,它

……包括原始发布的行业模型,比如电信管理论坛为电信行业定义的共享信息数据模型(SID)和 IBM 为金融行业定义的 IBM 金融服务模型(又称 IFW),它们包含一些抽象实体,它们的属性和关系。

这一层通常是预定义的,但是可以稍微对其进行客户化,如添加一些缺失的数据定义、关系和唯一命名标识等。这一层一般有其独立的命名空间,这样服务规范生成工具就可将它作为一个独立的基础层来维护,从而与其他 CIM 层相分离。

弱化 CIM 层是对核心 CIM 层的扩展,它:

……包括一些扩展的 CIM 实体,这些实体能够传达纯粹的业务语义……通常,除非在业务的角度有其他的方法保证这些元素的存在,并能进一步通过抽象术语来表示它们,不然,建模工具一定要为它们的声明实现可视化,以使它们可出现在服务接口中。

弱化 CIM 层是核心 CIM 层的扩展,它提供了更多的属性、对象、关系和接口。该层包含了大量的实现服务所需但在核心 CIM 中找不到的那些与业务相关的实体。一般来说,这一层是最动态的,而且随着服务中要求增加越来越多的功能,它也在不断地发展。

最后,最弱化 CIM 层

……包括纯粹为整合的目标所需的对象、属性、接口和方法。譬如,与实体相关的消息头、控制结果和连接服务操作以及弱化 / 核心 CIM 层所需的实体。需注意的是该层必须与弱化 CIM 和核心 CIM 层共存,而这两层又是通过服务操作连接起来。

此层的目的纯粹是提供为实现整合及控制功能所需的那些实体。

本文为在 SOA 实施中采用行业特定的 CIM 模型带来了一个良好定义的多层次的方法。文中提到的明确分离的核心、服务相关和整合相关的扩展,有利于更好地维护 SOA 的语义模型。

查看英文原文: Using the Common Information Model for Building Semantic Services

2010-09-14 03:332163
用户头像

发布了 184 篇内容, 共 87.1 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

Linux入门系列1--环境准备及Linux安装

程序员潘Sir

Linux centos 运维 操作系统

LeetCode题解:88. 合并两个有序数组,双指针+从后往前,JavaScript,详细注释

Lee Chen

大前端 LeetCode

话题讨论 | 特斯拉和拼多多杠上了,你有什么看法?

InfoQ写作社区官方

写作平台 话题讨论

linux入门系列4--vi/vim编辑器

程序员潘Sir

vim Linux centos7 操作系统 VI

吐血整理Windows电脑入侵自检大全

BigYoung

黑客 windows 日志 异常 自检

Django2.x中url路由的path()与re_path()参数解释

BigYoung

django path url re_path 参数

当代一线城市年轻人工作生活实录(HR篇)

Learun

Java 敏捷开发 快速开发 .net core

白话讲解:消息队列到底解决了什么问题?

博文视点Broadview

读书笔记 分布式 RocketMQ 中间件 消息队列

Kotlin这么火!如何快速从Java过渡到Kotlin

华章IT

Java kotlin 协程 安卓

跟我一起基于Karma搭建一个测试环境(上)

Jack Q

大前端 Karma 测试框架搭建

CIC国信公链:做坚实的底层技术支撑,让区块链为现代农业插上腾飞的翅膀

CNG农业公链

区块链 农业发展 CIC国信公链 CNG农业链 赵其刚

Django 表单处理流程详解

BigYoung

django 表单 流程

为什么越来越多的非计算机领域企业,在自主做软件时都选择使用快速开发工具?

Learun

Java 敏捷开发 快速开发 .net core

「分布式一致性协议」从2PC、3PC、Paxos到 ZAB

大头星

十年磨一剑-BIGO全球音视频技术解决方案

InfoQ_3597a20b53cc

人工智能 大数据 技术

linux入门系列2--CentOs图形界面操作及目录结构

程序员潘Sir

Linux centos7 操作系统 系统运维

linux入门系列5--新手必会的linux命令

程序员潘Sir

Linux centos7 Shell linux命令 linux操作

随着区块链技术的成熟,全球企业开始拥抱公共区块链

CECBC

区块链技术 公共区块链

为什么越来越多的非计算机领域企业,在自主做软件时都选择使用快速开发工具?

Philips

Java 敏捷开发 快速开发 .net core

《漫威复联》PC版游戏即将登陆,英特尔为其独家 CPU 合作伙伴

最新动态

Nginx配置80端口用于多个域名

石云升

nginx 域名配置 80端口共用

Windows AD巡检报错处理

BigYoung

windows AD 报错 巡检

CentOS 7 配置Supervisor 服务遇到的坑总结

BigYoung

centos 报错 Supervisor

彻底解决雪花算法时间回拨问题新方案

柿子

算法 雪花算法

lgloo Software 的 Jira Cloud 转型之旅

Atlassian

项目管理 DevOps 敏捷开发 Jira Cloud

低/零代码平台的优点有哪些?

代码制造者

编程语言 低代码 零代码 信息化 编程开发

linux入门系列3--常见的linux远程登陆管理工具

程序员潘Sir

Linux xshell securecrt putty finallshell

不懂 ZooKeeper?没关系,这一篇给你讲的明明白白

大头星

Java zookeeper 分布式

当代一线城市年轻人工作生活实录(HR篇)

Philips

Java 敏捷开发 快速开发 .net core

对于一款软件而言,完备的功能固然重要,但交互体验也不该被忽视

Learun

Java 敏捷开发 快速开发 .net core

艺术与科技的碰撞!Tristan Easton携手英特尔为漫威粉丝带来十代酷睿《复联》收藏版

最新动态

通用信息模型,助你构建丰富语义的服务_SOA_Boris Lublinsky_InfoQ精选文章