写点什么

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

  • 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:332065
用户头像

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

关注

评论

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

夯实信任基础 区块链正在成为价值互联网的新代言

CECBC

解读SSDB、LevelDB和RocksDB到GaussDB(for Redis)的迁移

华为云开发者联盟

数据仓库 华为云 数据迁移 GaussDB(for Redis) PB级数据库

【LeetCode】整数转罗马数字Java题解

Albert

算法 LeetCode 5月日更

Windows后渗透之权限维持

Thrash

python变量、运算符

若尘

变量 运算符 Python编程 5月日更

WAVE SUMMIT 2021 深度学习开发者峰会定档5月20日

百度大脑

深度学习 飞桨

Serverless:这真的是未来吗?(一)

Serverless Devs

运维 云原生 服务器 #Serverless

Kubernetes入门——Kubernetes日志采集与监控告警

百度开发者中心

百度 Kubernetes 云原生 kubernetes入门 技术课程

两个开源免费的软件Typora和PicGo,成了我写东西的新宠。

彭宏豪95

写作 Typora 图床 5月日更

如何防止抄袭PCB电路板

不脱发的程序猿

嵌入式 如何防止抄袭PCB电路板 PCB电路板 硬件开发

css与less,sass的奇妙之旅

less SASS

带你彻底搞懂高性能网络模式Reactor 和 Proactor

华为云开发者联盟

reactor Proactor 网络编程模式

打破固有思维(九)

Changing Lin

ELK协议栈基本介绍

五分钟学大数据

大数据 5月日更

iOS 面试策略之系统框架-UIKit

iOSer

ios 面试 语言 & 开发 系统框架

☕【Java技术之旅】走进线程池的世界(基础篇)

码界西柚

Java 线程 线程池 线程池工作原理 5月日更

如何从Docker镜像提取Dockerfile?

运维研习社

Docker Dockerfile 5月日更

Spark RDD详解

大数据技术指南

大数据 spark 5月日更

cornerstone 基础概念篇(一)

Lazy

cornerstone 脑科学 脑科学软件工程 脑影像

区块链技术如何助力构建新能源系统

CECBC

个人/团队/企业/组织申请计算机软件著作权的流程

不脱发的程序猿

程序人生 专利 软著申请 计算机软件著作

智能家居商业模式:To C向左,To B向右

不脱发的程序猿

IoT 智能家居 智能家居商业模式

深入浅出,Andorid 端屏幕采集技术实践

拍乐云Pano

android 音视频

情场失意的我,幸获师兄捞了一把,助我拿到6个大厂offer,Java岗

Java架构师迁哥

CRUD程序员勿进!全身心投入才能读懂腾讯大佬亲码的“Java微服务”学习笔记

Java架构师迁哥

区块链新基建时代 看欧科云链如何助力数字经济产业升级

CECBC

数字经济

数据中心太耗电,送你一个节能神器

华为云开发者联盟

数据中心 节能 电费 NAIE 制冷

据说学会这款数据分析工具,会被各大名企高薪哄抢!

博文视点Broadview

最强阿里巴巴历年经典面试题汇总:C++研发岗

linux大本营

c++ Linux epoll 服务器开发

区块链创新包含基础技术和应用场景两个层面

CECBC

canvas从零到一,实际案例

Vue 海报 js ts canvas

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