`
jnn
  • 浏览: 283301 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Camel中的几个重要概念之 Endpoint

    博客分类:
  • ESB
阅读更多

前段时间和一些朋友聊过Apache Camel , 他们都反映一个问题就是有关Camel构架的介绍文档很少。其实在Camel发行包中所带的文档Camel Manual 就有一段对Camel内部设计有一个比较好的介绍。我在这里把其中大部分的内容 翻译成了中文,希望能对大家了解Camel有所帮助。

Endpoint
Endpoint这个词以前经常被用来描述进程间通信。例如,在客户端与服务器之间的通讯,客户端是一个Endpoint和服务器是另外一个Endpoint。根据不同的情况下,一个Endpoint可能指的地址,如一个TCP通信的(主机:端口)对,也可能是指与这个地址相对应的一个软件实体。例如,如果大家使用“ www.example.com:80 ”来描述一个Endpoint。这些Endpoint可能是指实际的端口上的主机名称(即地址) ,也可能是指与地址相关的的网页服务器(即在这个地址之上运行的软件地址) 。通常情况下,这种地址和在这个地址之上运行的软件之前的区别并不是一个重要问题。

一些中间件技术可以使一些软件实体的绑定在相同的物理地址上。例如, CORBA是一种面向对象的远程过程调用( RPC )的中间件标准。如果一个CORBA的服务器进程包含几个对象,客户端可以与这些在同一物理地址(主机:端口)之上的任意对象进行通讯 ,但当客户端想与特定对象进行通讯是, 需要指定这个对象的逻辑地址(在CORBA中称为IOR)。 IOR是由物理地址(主机:端口) ,以及一个唯一识别的对象在其服务器进程标识所组成。 (IOR还包含了与此本次讨论无关其他一些额外的信息。)当谈论CORBA的时候,有些人可能会使用“endpoint”来描述CORBA的服务器的物理地址,而其他人可能使用Endpoint来描述一个CORBA对象的逻辑地址,和其他人可能会使用这个词来描述下面这些:

    * CORBA的服务器进程的物理地址(主机:端口)
    * CORBA对象的逻辑地址(主机:端口加上编号)
    * CORBA的服务器进程(相对重量级的软件实体)
    * 一个基于CORBA对象(一个轻量级的软件实体)


正因为如此,你可以看到Endpoint这个词至少在两方面是模糊的。首先,它可能是指一个地址或联络软件实体在该地址。其次,粒度上可能是模糊的:一个重量级与轻量级的软件实体,或物理地址与逻辑地址。了解了Endpoint这个名词在不同场景下的不同描述可以帮助我们更好地理解为什么Camel中的Endpoint。

Camel中的Endpoint支持许多不同的通信技术。以下是Camel所支持Endpoint。

    * 一个JMS队列。
    * 一个Web服务。
    * 一个文件。文件可能听起来不是一个典型的Endoint端点。但是你可以这么想,一些应用系统会把信息写到一个文件中,然后另一个应用程序可能读取该文件获得这一信息。
    * 一个FTP服务器。
    * 一个电子邮件地址。客户可以发送邮件到电子邮件地址,和一台服务器可以读取的这个从邮件服务器传入的邮件。
    * 一个POJO (普通旧Java对象)。

分享到:
评论
29 楼 singer_wang 2009-02-25  
现在很多开源项目都有中国人参与,tuscany,cxf,camel。。。
很是欣慰,相信这对中国软件技术水平的提高的作用是不可估量的。
28 楼 jnn 2009-02-24  
ha,  Camel 2.0 还在开发呢!
不过应该很快就有2.0 MileStone 1 的发布了。
其实Camel还是很容易上手的, 有空大家可以读一下Camel自带的Camel Manual
里面包含了很多重要概念和使用手册还有教程示例。


yschen 写道
Camel蛮好用的,我上一个项目就用了,那时是1.4到1.5 
现在出2.0了; 蛮快的。
Camel文档虽不多,但我觉得自带的文档已经差不多够了,不过搞这东东,还是会E文好。
我们是因为跟老外合作的一个项目,所以用了这东东。

27 楼 portrait 2009-02-24  
yschen 写道
Camel蛮好用的,我上一个项目就用了,那时是1.4到1.5 
现在出2.0了; 蛮快的。
Camel文档虽不多,但我觉得自带的文档已经差不多够了,不过搞这东东,还是会E文好。
我们是因为跟老外合作的一个项目,所以用了这东东。

楼上的能不能共享店经验啊,也想用camel,怎么入手啊
26 楼 yschen 2009-02-23  
Camel蛮好用的,我上一个项目就用了,那时是1.4到1.5 
现在出2.0了; 蛮快的。
Camel文档虽不多,但我觉得自带的文档已经差不多够了,不过搞这东东,还是会E文好。
我们是因为跟老外合作的一个项目,所以用了这东东。
25 楼 portrait 2009-02-20  
jnn 写道
honno 写道
jnn 写道
portrait 写道
camel和mule的功能有多少是一样的?
我要模拟消息发到activemq然后有esb接收,处理,再返回,camel做得到吗?


建议还是好好读读Camel的wikihttp://cwiki.apache.org/CAMEL/
其中camel 和 mule的区别 http://cwiki.apache.org/CAMEL/how-does-camel-compare-to-mule.html
你的那个需求可以用 camel-jms component 来解决 http://camel.apache.org/jms.html
当然也可以用ActiveMQ 5.x 中包含的 camel activemq component http://camel.apache.org/activemq.html 来实现。


我认为camel 的核心功能是一个消息路由引擎,它实现了EIP这本书中的很多企业集成模式。activemq,servicemix都可以使用camel来实现消息的路由。

而mule中也实现了这些企业集成模式,所以或多或少二者有些功能是重复的。

另外,mule是03年发起的项目,camel是后起之秀,07年才开始孵化的项目。


Camel 起初是在07年作为ActiveMQ的子项目发展起来的, 在今年1月,Camel正式成为Apache的顶级项目。
在这里预告一下Camel 1.6 马上就要Release了。

Camel与Mule最大的区别就是Camel十分小巧,你只需要把它作为一个库就可以直接使用了。
还有就是Mule的软件许可协议不是对商业使用友好的, 如果要在Mule的基础上做增值服务是不能直接使用的。
而Camel使用的是Apache license,你可以在其之上封装你自己的商业产品,而不需要付任何费用。

如果要在Mule的基础上做增值服务是不能直接使用的,要付多少费用知道吗?怎么计算的啊?一年付多少,还是一下子付清的啊?
24 楼 careprad 2009-02-20  
servicemix is a shot!
23 楼 daniel514 2009-02-16  
jnn 写道
daniel514 写道
我现在想模拟的一个系统是这样的:
系统基于Spring框架 -> 系统中嵌入CXF框架,达到分布式 -> 在CXF框架下,客户端和服务器端之间的XML通信能够利用ActiveMQ来实现。
我想到了利用Camel来整合,但不知道applicationContext.xml文件应该怎样配置
、相应的JavaBean应该怎么样编写?

有没有一个demo 让我学习一下呢?


这里有个例子http://cwiki.apache.org/CAMEL/better-jms-transport-for-cxf-webservice-using-apache-camel.html



多谢楼主了,能够顺利跑起来了,JMS接收、发送成功了!
接下来,下一步可能要对XML文件,进行WS-Security处理咯
22 楼 jnn 2009-02-16  
daniel514 写道
我现在想模拟的一个系统是这样的:
系统基于Spring框架 -> 系统中嵌入CXF框架,达到分布式 -> 在CXF框架下,客户端和服务器端之间的XML通信能够利用ActiveMQ来实现。
我想到了利用Camel来整合,但不知道applicationContext.xml文件应该怎样配置
、相应的JavaBean应该怎么样编写?

有没有一个demo 让我学习一下呢?


这里有个例子http://cwiki.apache.org/CAMEL/better-jms-transport-for-cxf-webservice-using-apache-camel.html
21 楼 daniel514 2009-02-16  
我现在想模拟的一个系统是这样的:
系统基于Spring框架 -> 系统中嵌入CXF框架,达到分布式 -> 在CXF框架下,客户端和服务器端之间的XML通信能够利用ActiveMQ来实现。
我想到了利用Camel来整合,但不知道applicationContext.xml文件应该怎样配置
、相应的JavaBean应该怎么样编写?

有没有一个demo 让我学习一下呢?
20 楼 jnn 2009-02-12  
honno 写道
jnn 写道
portrait 写道
camel和mule的功能有多少是一样的?
我要模拟消息发到activemq然后有esb接收,处理,再返回,camel做得到吗?


建议还是好好读读Camel的wikihttp://cwiki.apache.org/CAMEL/
其中camel 和 mule的区别 http://cwiki.apache.org/CAMEL/how-does-camel-compare-to-mule.html
你的那个需求可以用 camel-jms component 来解决 http://camel.apache.org/jms.html
当然也可以用ActiveMQ 5.x 中包含的 camel activemq component http://camel.apache.org/activemq.html 来实现。


我认为camel 的核心功能是一个消息路由引擎,它实现了EIP这本书中的很多企业集成模式。activemq,servicemix都可以使用camel来实现消息的路由。

而mule中也实现了这些企业集成模式,所以或多或少二者有些功能是重复的。

另外,mule是03年发起的项目,camel是后起之秀,07年才开始孵化的项目。


Camel 起初是在07年作为ActiveMQ的子项目发展起来的, 在今年1月,Camel正式成为Apache的顶级项目。
在这里预告一下Camel 1.6 马上就要Release了。

Camel与Mule最大的区别就是Camel十分小巧,你只需要把它作为一个库就可以直接使用了。
还有就是Mule的软件许可协议不是对商业使用友好的, 如果要在Mule的基础上做增值服务是不能直接使用的。
而Camel使用的是Apache license,你可以在其之上封装你自己的商业产品,而不需要付任何费用。
19 楼 honno 2009-02-10  
jnn 写道
portrait 写道
camel和mule的功能有多少是一样的?
我要模拟消息发到activemq然后有esb接收,处理,再返回,camel做得到吗?


建议还是好好读读Camel的wikihttp://cwiki.apache.org/CAMEL/
其中camel 和 mule的区别 http://cwiki.apache.org/CAMEL/how-does-camel-compare-to-mule.html
你的那个需求可以用 camel-jms component 来解决 http://camel.apache.org/jms.html
当然也可以用ActiveMQ 5.x 中包含的 camel activemq component http://camel.apache.org/activemq.html 来实现。


我认为camel 的核心功能是一个消息路由引擎,它实现了EIP这本书中的很多企业集成模式。activemq,servicemix都可以使用camel来实现消息的路由。

而mule中也实现了这些企业集成模式,所以或多或少二者有些功能是重复的。

另外,mule是03年发起的项目,camel是后起之秀,07年才开始孵化的项目。
18 楼 jnn 2009-02-09  
portrait 写道
camel和mule的功能有多少是一样的?
我要模拟消息发到activemq然后有esb接收,处理,再返回,camel做得到吗?


建议还是好好读读Camel的wikihttp://cwiki.apache.org/CAMEL/
其中camel 和 mule的区别 http://cwiki.apache.org/CAMEL/how-does-camel-compare-to-mule.html
你的那个需求可以用 camel-jms component 来解决 http://camel.apache.org/jms.html
当然也可以用ActiveMQ 5.x 中包含的 camel activemq component http://camel.apache.org/activemq.html 来实现。
17 楼 portrait 2009-02-09  
怎么没人看吗?还是没人做过啊
16 楼 portrait 2009-02-09  
camel和mule的功能有多少是一样的?
我要模拟消息发到activemq然后有esb接收,处理,再返回,camel做得到吗?
15 楼 portrait 2009-02-08  
jnn 写道
portrait 写道
jnn 写道
boyingking 写道
jnn 写道
boyingking 写道
又见Jnn,哪天出来聚聚,跟你学习学习^_^

Ah, 在这碰到你了。

还有就是我现在参加了每个月一次 coding-for-fun活动, 有机会我们可以在那现场hacking一把


好啊,年前那次活动本来想去的,结果没抽出时间来。下次一定去


哈, 那就下次活动的时候见了。
我可以给大家介绍一下正在开发的Camel 2.0 有啥新东西

jnn,我很想认识你,这次公司叫我带队开发ESB产品,我好迷茫,我虽然工作好几年了,但是对SOA这块东西并不是很了解,我现在在选ESB产品,你能不能给我点建议?


这个月应该会有一次coding-for-fun 的活动, 我们可以在那见面

我在上海哎 55555555555555
14 楼 jnn 2009-02-08  
honno 写道
jnn 写道
boyingking 写道
jnn 写道
boyingking 写道
又见Jnn,哪天出来聚聚,跟你学习学习^_^

Ah, 在这碰到你了。

还有就是我现在参加了每个月一次 coding-for-fun活动, 有机会我们可以在那现场hacking一把


好啊,年前那次活动本来想去的,结果没抽出时间来。下次一定去


哈, 那就下次活动的时候见了。
我可以给大家介绍一下正在开发的Camel 2.0 有啥新东西


    在上次举办的《SOA草根聚会(北京地区)》第一期的活动上,jnn就分享了CXF和开源项目的一些idea,希望jnn抽出时间参加我们即将主办的《SOA草根聚会(北京地区)》第二期,和大家共同分享一下Camel 2.0。
     Camel实现了EIP一书的诸多模式,现在也提供了eclipse插件,发展非常迅速。


我不喜欢为了商业商品做秀而大吹特吹SOA, ESB 这些buzz words,其实我更喜欢大家把问题都过来,现场hacking,用程序员的方式看看Camel是否真的可以解决你在实际工作中遇到的问题, 当然这样也能帮我们把Camel做得更好。

13 楼 jnn 2009-02-08  
portrait 写道
jnn 写道
boyingking 写道
jnn 写道
boyingking 写道
又见Jnn,哪天出来聚聚,跟你学习学习^_^

Ah, 在这碰到你了。

还有就是我现在参加了每个月一次 coding-for-fun活动, 有机会我们可以在那现场hacking一把


好啊,年前那次活动本来想去的,结果没抽出时间来。下次一定去


哈, 那就下次活动的时候见了。
我可以给大家介绍一下正在开发的Camel 2.0 有啥新东西

jnn,我很想认识你,这次公司叫我带队开发ESB产品,我好迷茫,我虽然工作好几年了,但是对SOA这块东西并不是很了解,我现在在选ESB产品,你能不能给我点建议?


这个月应该会有一次coding-for-fun 的活动, 我们可以在那见面
12 楼 rrsy23 2009-02-08  
ESB开发一个失败一个!
因为什么是ESB,我们需要什么样的ESB都没有完全定义好!
11 楼 portrait 2009-02-07  
jnn 写道
boyingking 写道
jnn 写道
boyingking 写道
又见Jnn,哪天出来聚聚,跟你学习学习^_^

Ah, 在这碰到你了。

还有就是我现在参加了每个月一次 coding-for-fun活动, 有机会我们可以在那现场hacking一把


好啊,年前那次活动本来想去的,结果没抽出时间来。下次一定去


哈, 那就下次活动的时候见了。
我可以给大家介绍一下正在开发的Camel 2.0 有啥新东西

jnn,我很想认识你,这次公司叫我带队开发ESB产品,我好迷茫,我虽然工作好几年了,但是对SOA这块东西并不是很了解,我现在在选ESB产品,你能不能给我点建议?
10 楼 honno 2009-02-06  
jnn 写道
boyingking 写道
jnn 写道
boyingking 写道
又见Jnn,哪天出来聚聚,跟你学习学习^_^

Ah, 在这碰到你了。

还有就是我现在参加了每个月一次 coding-for-fun活动, 有机会我们可以在那现场hacking一把


好啊,年前那次活动本来想去的,结果没抽出时间来。下次一定去


哈, 那就下次活动的时候见了。
我可以给大家介绍一下正在开发的Camel 2.0 有啥新东西


    在上次举办的《SOA草根聚会(北京地区)》第一期的活动上,jnn就分享了CXF和开源项目的一些idea,希望jnn抽出时间参加我们即将主办的《SOA草根聚会(北京地区)》第二期,和大家共同分享一下Camel 2.0。
     Camel实现了EIP一书的诸多模式,现在也提供了eclipse插件,发展非常迅速。

相关推荐

    Apache Camel中文开发使用指南.zip

    Apache Camel 开发使用指南中文版

    Camel in action(camel实战)

    Apache Camel is a Java framework that lets you implement the standard enterprise integration patterns in a few lines of code. With a concise but sophisticated DSL you snap integration logic into your ...

    Camel_Camel3Camel6函数_

    Camel3 Camel6函数等matlab源代码

    ApacheCamel-JDBC

    ApacheCamel-JDBC Apache Camel JDBC组件 代码样例Demo

    camel文档

    camel 文档

    [Camel实战].(Camel.in.Action).Claus.Ibsen&Jonathan;.Anstey.文字版

    中文名: Camel 实战 原名: Camel in Action 作者: Claus Ibsen Jonathan Anstey 资源格式: PDF 版本: 英文文字版/更新源代码 出版社: Manning书号: 9781935182368发行时间: 2010年12月 地区: 美国 语言: 英文 简介: ...

    apache-camel-demo

    Apache Camel是一个基于规则路由和中介引擎,提供企业集成模式的Java对象(POJO)的实现,通过应用程序接口(或称为陈述式的Java领域特定语言(DSL))来配置路由和中介的规则。领域特定语言意味着Apache Camel支持你...

    Camel实战中文版第四章.pdf

    Camel In Action一书第四章的中文版。

    Camel服务集成,服务编排操作文档

    Camel服务集成,服务编排操作文档

    ApacheCamel-FTP

    ApacheCamel-FTP ApacheCamel-FTP Apache Camel FTP组件 Demo 样例

    ApacheCamel-Timer

    09-ApacheCamel-Timer Apache Camel Timer组件 定时器 代码Demo

    camel-manual-2.0

    camel-manual-2.0 camel ESB EIP EAI

    camel, Apache camel 镜像.zip

    camel, Apache camel 镜像 Apache camel 是基于已知企业集成模式的强大开放源代码集成框架,它具有强大的Bean集成。简介flex允许你创建企业集成模式,以基于基于Java的域特定语言( 或者 Fluent API ) 或者基于 Sc

    Camel in Action.zip

    Apache Camel 作为集成项目的利器,针对应用集成场景的抽象出了一套消息交互模型,...与传统的企业集成服务总线(ESB)相比,Apache Camel的核心库非常小巧(是一个只有几M的jar包),可以方便地与其他系统进行集成。

    Camel in Action ch1

    1: Meet Camel - FREE 2: Routing with Camel - AVAILABLE Part 2 Core Camel 3: Transforming Data with Camel - AVAILABLE 4: Using Beans with Camel - AVAILABLE 5: Error Handling - AVAILABLE 6:...

    简化软件集成:一个ApacheCamel教程

    简化软件集成:一个ApacheCamel教程在本教程中,您将了解集成大型软件的一些最大挑战,以及ApacheCamel如何轻松解决这些难题。在您的软件工程中,您可能至少做了一次以下操作:1.确定应启动数据发送的业务逻辑片段。...

    camel 手册

    apache camel 的参考手册(英文版)。内容详尽,有代码,有实例。

    camel in action 中文版 第一章

    camel in action 中文版 第一章 费了很大力才找到中文版本,网上现在大多是英文版本的,上传此资粮供大家参考学习。

    Mastering.Apache.Camel

    An advanced guide to Enterprise Integration using Apache Camel About This Book Integrate your applications with Apache Camel and enhance efficiency and scalability Master all the EIPs supported by ...

    Apache Camel 源码分析.rar

    camel direct http jdbc mybatis 等等组件 骆驼 camel部分源码分析

Global site tag (gtag.js) - Google Analytics