写点什么

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

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

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

关注

评论

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

Linux开发_curl调用网络接口

DS小龙哥

6月月更

唐太宗把微服务的“心跳机制”玩到了极致!

悟空聊架构

微服务 Eureka 悟空聊架构 6月月更 心跳机制

Eureka的InstanceInfoReplicator类(服务注册辅助工具)

程序员欣宸

Java SpringCloud 6月月更

缓存穿透利器之「布隆过滤器」

Ayue、

redis 布隆过滤器

再次认识 WebAssembly

devpoint

typescript webassembly 6月月更

滴滴工程效能平台建设之路

laofo

互联网 DevOps 研发效能 持续交付 工程效能

DOM编程

大熊G

JavaScript 前端 6月月更

钟珊珊:被爆锤后的工程师会起飞|OneFlow U

OneFlow

自我介绍 实习

Java自定义Once方法保障单次执行

FunTester

如何进行高效简洁的电子文档管理

小炮

DOM 节点

Jason199

DOM js DOM事件 6月月更

Java String 文字(Literal)和 对象(Object)初始化

HoneyMoose

我对新能源汽车的一些看法(37/100)

hackstoic

新能源汽车 生活杂谈

Fabric.js IText 手动设置斜体 🎋

德育处主任

JavaScript 前端 canvas Fabric.js 6月月更

Java String 构造方法中的内存分配

HoneyMoose

Java String 性能和优化

HoneyMoose

一文走近ZMQ

No Silver Bullet

6月月更 ZMQ

IDE 的主题应该用亮色还是暗色?终极答案来了!

胡说云原生

ide vscode IDEA goland ide主题

Go Web 编程入门:验证器

宇宙之一粟

Go 语言 表单校验 6月月更

JAVA SOCKET编程——TCP/UDP

乌龟哥哥

6月月更

redis精讲系列介绍七-过期策略

Nick

Redis 核心技术与实战 6月月更 redis精讲 redis 过期策略 redis 底层原理

Java 字符串引用(String Interning)

HoneyMoose

Java String 手工引用指针

HoneyMoose

Gitlab运维篇之——备份及恢复

阿呆

#GitLab 备份恢复

数据治理的重要性

奔向架构师

数据治理 数据资产 6月月更

leetcode 279. Perfect Squares 完全平方数(中等)

okokabcd

LeetCode 动态规划 算法与数据结构

5道面试题,拿捏String底层原理!

码农参上

string 底层原理 死磕 Java 基础

axios框架入门教程

倔强的牛角

axios 6月月更

面试突击59:一个表中可以有多个自增列吗?

王磊

Java 面试

JVM调优简要思想及简单案例-老年代空间分配担保机制

zarmnosaj

6月月更

如何使用物联网低代码平台进行报表管理?

AIRIOT

物联网 低代码平台

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