Camel中的几个重要概念之 Endpoint前段时间和一些朋友聊过Apache Camel, 他们都反映一个问题就是有关Camel
Camel中的几个重要概念之 Endpoint
前段时间和一些朋友聊过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对象)。
好啊,年前那次活动本来想去的,结果没抽出时间来。下次一定去
哈, 那就下次活动的时候见了。
我可以给大家介绍一下正在开发的Camel 2.0 有啥新东西

在上次举办的《SOA草根聚会(北京地区)》第一期的活动上,jnn就分享了CXF和开源项目的一些idea,希望jnn抽出时间参加我们即将主办的《SOA草根聚会(北京地区)》第二期,和大家共同分享一下Camel 2.0。
Camel实现了EIP一书的诸多模式,现在也提供了eclipse插件,发展非常迅速。
好啊,年前那次活动本来想去的,结果没抽出时间来。下次一定去
哈, 那就下次活动的时候见了。
我可以给大家介绍一下正在开发的Camel 2.0 有啥新东西

jnn,我很想认识你,这次公司叫我带队开发ESB产品,我好迷茫,我虽然工作好几年了,但是对SOA这块东西并不是很了解,我现在在选ESB产品,你能不能给我点建议?
好啊,年前那次活动本来想去的,结果没抽出时间来。下次一定去
哈, 那就下次活动的时候见了。
我可以给大家介绍一下正在开发的Camel 2.0 有啥新东西

jnn,我很想认识你,这次公司叫我带队开发ESB产品,我好迷茫,我虽然工作好几年了,但是对SOA这块东西并不是很了解,我现在在选ESB产品,你能不能给我点建议?
这个月应该会有一次coding-for-fun 的活动, 我们可以在那见面

好啊,年前那次活动本来想去的,结果没抽出时间来。下次一定去
哈, 那就下次活动的时候见了。
我可以给大家介绍一下正在开发的Camel 2.0 有啥新东西

在上次举办的《SOA草根聚会(北京地区)》第一期的活动上,jnn就分享了CXF和开源项目的一些idea,希望jnn抽出时间参加我们即将主办的《SOA草根聚会(北京地区)》第二期,和大家共同分享一下Camel 2.0。
Camel实现了EIP一书的诸多模式,现在也提供了eclipse插件,发展非常迅速。
我不喜欢为了商业商品做秀而大吹特吹SOA, ESB 这些buzz words,其实我更喜欢大家把问题都过来,现场hacking,用程序员的方式看看Camel是否真的可以解决你在实际工作中遇到的问题, 当然这样也能帮我们把Camel做得更好。
好啊,年前那次活动本来想去的,结果没抽出时间来。下次一定去
哈, 那就下次活动的时候见了。
我可以给大家介绍一下正在开发的Camel 2.0 有啥新东西

jnn,我很想认识你,这次公司叫我带队开发ESB产品,我好迷茫,我虽然工作好几年了,但是对SOA这块东西并不是很了解,我现在在选ESB产品,你能不能给我点建议?
这个月应该会有一次coding-for-fun 的活动, 我们可以在那见面

我在上海哎 55555555555555
接下来,下一步可能要对XML文件,进行WS-Security处理咯 24 楼 careprad 2009-02-20 servicemix is a shot! 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的基础上做增值服务是不能直接使用的,要付多少费用知道吗?怎么计算的啊?一年付多少,还是一下子付清的啊? 26 楼 yschen 2009-02-23 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,怎么入手啊 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文好。
我们是因为跟老外合作的一个项目,所以用了这东东。
29 楼 singer_wang 2009-02-25 现在很多开源项目都有中国人参与,tuscany,cxf,camel。。。
很是欣慰,相信这对中国软件技术水平的提高的作用是不可估量的。