JBI与SCA的区别
http://jnn.blogbus.com/logs/2010052.html
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://jnn.blogbus.com/logs/2010052.html
最近我在做有关ESB的开发工作,发现我们的产品(开源的Celtix http://celtix.objectweb.org) 要支持JBI和SCA两个标准。这让我困惑了好久,JBI和SCA有什么区别呢?
前几天好好在网上收罗了一番,现在把收获到的东西和大家分享一下:
JBI definition http://www.theserverside.com/news/thread.tss?thread_id=35053
SCA 与JBI的区别 http://azur.typepad.com/bpel/2005/12/sca_jbi_and_mor.html
上面的链接有详细的讨论,我简单整理了一下。
JBI 的由来
Java One 2005 had a very heavy emphasis on JSR-208, Java Business
Integration. However, he says, "there seemed to be some folks with
confused looks on their faces in some JBI talks." As a response, he's
written a blog entry on what JBI actually is
<http://radio.weblogs.com/0112098/2005/07/07.html#a530>.
JBI是提供了一些简单的API定义, 这些定义包括 Normalized
Message Service , 在一个Router组件,以及一个管理模型用来管理服务
的部署集成,例如 routing engines, BPEL engines, rule systems, transformation engines
JBI提供了一个逻辑的XML消息网络, 这一网络能够很容易的映射到
HTTP, email 和 JMS/MOM ,并很方便地适应遗留系统,二进制地传输,
和RPC系统(EJB和CORBA)。 JBI可以看做是对JMS的更高层次的逻辑
抽象,并提供了不同的消息交换方式( 单步, 请求应答等)
什么是SCA ,它试图解决什么样的问题?
WSDL 在增强应用之间的可连接性以及互操作性方面迈出了一大步。
然而,WSDL只关注了服务接口,它并不提供描述一个服务所依赖的其它服务,
以及这个服务所需要使用的配置策略和服务之间的依赖关系。
单独通过WSDL 很难实现服务之间的组合调用。
SCA比WSDL走的更远的方面是定义了一个服务组件模型以及一个服务组装模型。服务模型提供了比WSDL更多的功能,它允许服务开发者不单定义服务的接口而且还可以定义 这个服务和其他服务的依赖关系,以及这些交互(事务,安全,以及可靠 传输)之间的策略 还有服务所可能提供的配置功能。
一个SCA模型对等于一个SOA项目,模型允许开发者组装一组服务组件,解决引用依赖和使用策略。这是一个很大的进步,因为当前的SOA平台需要开发者自己获取那些私有的服务部署引用,甚至有时要在他们的服务实现中写hard code.
SCA与JBI的区别
SCA的美丽之处在用它关注的重点只是SOA开发这 所看到和接触到的。 SCA并没有关注用来执行SCA模块的runtime是如何构架的。 这个runtime可以实现为一个将所有的SCA服务组件编译成为Java classes的丑陋的单一服务,或者是一组模块化的引擎(每个组件一个的那种),这些引擎可以通过 一个企业服务总线来进行通讯。
JBI从另一个方面来说就是一组关注创建一个开发的,可扩这的以及标准组件的企业服务总线。 这样它的内核是和SCA有一些重合的地方。同时两者之间也存在互补的机制。
说它们互补,为什么不把他们绑定在一起呢。 这里有两方面的原因。
第一个原因 是JBI关注的是如果将一组引擎组装并运行 于一个JVM中。 相反SCA在另一方面并不将一个模块约束单个JVM中。 一个SCA模块可以执行在一个JVM中,同时它也可以很方便的将这些引擎部署在不同的进程甚至是不同的节点上。
第二个原因 是 SCA不但支持Java而且还支持C,在今后也许还会支持C#,php。 而JBI只是SCA的一个实现方式,而不是唯一的选择。
JBI与SCA的区别相关推荐
- 概念篇-SOA,ESB, JBI, SCA区别
SOA – ESB ESB是一种支持SOA实施的技术选择. SOA – JBI JBI是Java领域一种支持SOA实施的技术选择. SOA – SCA SCA是一种支持SOA实施的技术选择. SOA ...
- Java开源Web Service(转)
为什么80%的码农都做不了架构师?>>> Axis Apache Axis 是Apache WebService项目中的子项目,其最初起源于IBM的"SOAP4J& ...
- 转一篇Java基础的文章,比较有深度的,就转来收藏了
Java基础知识[上] 收藏 此文于2009-09-29被推荐到CSDN首页 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没有考虑到会坚持往后边写,这次应该是更新该内容 ...
- 应用系统间数据传输方式总结
转载自https://www.cnblogs.com/yanayana/p/8831303.html 一.应用间接口技术 1.文件 两系统间约定文件服务器地址.文件命名规则.文件内容格式等内容,通过 ...
- apache 基金会 project 概述
==================================================== Ambari 是一种基于Web的工具,支持Apache Hadoop集群的供应.管理和监控.A ...
- Java SpringBoot框架依赖汇总
本文阅读格式更佳的版本:Java SpringBoot框架依赖汇总 SpringBoot是Spring家族中的一个全新的框架,它用来简化Spring应用程序的创建和开发过程,提供了各种依赖项以简化构建 ...
- java基础和规范一
(最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没有考虑到会坚持往后边写,这次应该是更新该内容.而且很讨厌写基础的东西,内容比较琐碎,而且整理起来总会很多,有可能会打散成两 ...
- Apache Camel:基于企业集成模式(EIP)的开源集成框架
本资源由 伯乐在线 - 唐尤华 整理 Apache Camel 是一个功能强大的开源集成框架,基于企业集成模式(EIP)提供了强大的Bean集成功能. 介绍 通过Camel可以用企业集成模式创建路由和 ...
- 深入解读ESB与SOA的关系
深入解读ESB与SOA的关系 时至今日,SOA的概念渐渐清晰了. 有关ESB的概念,已经吵了好多年了,还是没有定论. 我个人认为,ESB本来就是抽象的概念,而且内涵丰富,在不同的场合含义不同.因此应该 ...
最新文章
- Cacti部署及常用插件安装(2)
- linux内核网络协议栈--监控和调优:发送数据(三十)
- day04-视图/配置文件/静态文件的基本使用
- 面试问到 Redis 事务,我脸都绿了。。
- java特性多态,90%的人看完都说好
- 2015年10月13日
- Spark集群,多个版本Python/Python Package管理
- Xstream 学习地址
- 递归法全排列java_实验一 分治与递归—全排列 java算法
- 数据库系统和文件系统的区别
- 计算机快捷键任务管理器,任务管理器快捷键,小编教你电脑如何打开任务管理器...
- 什么是 Refresh Token
- 第三章 准备工作 极值点
- Linux实用命令之 xdg-open 打开资源管理器
- rtk手簿Android代码,中海达rtk手机测量软件(Hi-Survey Road)
- Python爬虫的应用:统记词频
- Android实现截屏和截长图功能的几种方法
- 如何获得免费虚拟主机,云服务器呢?(免费)
- 双模式IT:企业IT部门是否能够肩负双重劳动力角色的概念?
- GTD时间管理,如何收集?| 每天成就更大成功
热门文章
- Python之字典类型数据常见操作及排序
- torch.nn.functional.pad(input, pad, mode=‘constant‘, value=0)
- 2013\Province_Java_C\2.组素数
- 3.Vue 条件渲染
- 《信息学奥赛一本通》 高精除以低精。输入两个正整数,求它们的商(做整除)。
- C语言中的各输出格式含义
- 【机器视觉】 set_fuzzy_measure算子
- 【机器视觉】 dev_update_window算子
- 【Qt】2D绘图之双缓冲绘图
- 【Linux】一步一步学Linux——chmod命令(110)