`
jnn
  • 浏览: 288259 次
  • 性别: 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 开发使用指南中文版"压缩包文件很可能是为初学者和有经验的开发者准备的一份详细教程,帮助他们理解和掌握Apache Camel的核心概念和实际应用。 在学习Apache Camel时,首先要理解的是它的核心...

    Camel in action(camel实战)

    - 路由是 Camel 的核心功能之一,它允许开发者定义消息应该如何在不同的端点之间流动。这包括简单的单向路由、复杂的分发路由等。 **3. 数据转换** - Camel 提供了丰富的工具来转换消息的数据格式。无论是简单的...

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

    Apache Camel 是一个强大的开源框架,专门用于构建企业级应用程序中的集成解决方案。它提供了一种声明式的方式来进行服务集成和服务编排,使得开发者可以方便地连接不同的系统、协议和API,从而构建复杂的数据流。在...

    camel 手册

    - **基本概念介绍**:解释了 Camel 中的核心概念,例如 Exchange、Message、Route、Endpoint 等。 - **示例代码分析**:提供了实际的示例代码,展示了如何使用 Camel 进行消息处理和路由配置。 #### 四、架构设计 ...

    Camel_应用开发文档.pdf

    * 微服务架构:Camel 能够帮助构建微服务架构,例如将多个微服务集成到一个系统中。 * IoT 应用:Camel 能够帮助构建 IoT 应用,例如将 sensor 数据从一个系统传输到另一个系统。 7. Camel 依赖 Camel 依赖是指在...

    ApacheCamel-JDBC

    在"Apache Camel-JDBC"这个主题中,我们可以深入探讨以下几个关键知识点: 1. **Apache Camel 概述**: Apache Camel 提供了一个丰富的组件库,涵盖了各种协议和数据格式,如HTTP、FTP、JMS、MQTT、XML和JSON等。...

    camel in action 中文版 第一章

    Camel 的基本原则之一是不会假设任何你需要处理的数据,这是很重要的一点,因为它给你们开发者一个集成任何系统的一个机会,不需要转换你的数据为另外的一种公认格式。 1.2 Camel 的主要特点 Camel 提供了高水平的...

    camel文档

    - **简介**:介绍Apache Camel的基础概念及其在企业级应用中的价值。 - **核心特性**:阐述Camel的主要功能和优势,包括其支持的各种协议、数据转换能力、错误处理机制等。 - **入门示例**:通过一个简单的示例来...

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

    ### Apache Camel 实战知识点概述 #### 一、Apache Camel 简介 - **定义**:Apache Camel 是一个强大的开源框架...书中不仅提供了丰富的理论知识,还有大量的实践案例和代码示例,是学习Camel不可或缺的经典教材之一。

    GSM0978 Camel协议文档

    Leg ID是Camel协议中的一个重要概念,用于标识一次呼叫过程中涉及的不同通信链路或“腿”。这部分内容详细介绍了Leg ID的定义、分配原则及其在呼叫处理过程中的具体应用,这对于理解和实现复杂的呼叫转移和路由功能...

    Camel in Action

    - **路线(Route)**:Camel中的路线是一种定义消息如何流动的配置模型,它包含了多个处理步骤。 - **端点(Endpoint)**:端点是Camel中用于与其他系统交互的接口,可以是文件系统、数据库、HTTP服务等。 - **处理器...

    camel-manual-2.4.0, 用户手册

    - **应用场景**:展示了每个模式的实际应用场景以及如何在 Apache Camel 中实现它们。 - **最佳实践**:分享了在实际项目中应用这些模式的最佳实践。 #### 六、烹饪书 这部分包含了一系列实用的例子,旨在帮助...

    Camel实战中文版第四章.pdf

    这一章节对于理解和掌握Camel如何与现有Java系统集成非常重要。 #### 二、ServiceActivator企业设计模式的理解 **ServiceActivator** 是一种常用的企业集成设计模式,其核心思想是在消息传递过程中通过调用业务逻辑...

    Camel_Camel3Camel6函数_

    在MATLAB编程环境中,"Camel3Camel6函数"是指用于特定数学计算或数据分析的一系列函数。这些函数可能涉及到曲线拟合、数值优化、数据处理等应用,尤其是在处理涉及非线性问题时,比如模拟生物体的驼峰形状、物理学中...

    apache camel 集成组件 教程

    《Camel in Action》是一本由 Claus Ibsen 和 Jonathan Anstey 共同撰写的书籍,这本书是学习 Apache Camel 的重要参考资料之一。书中涵盖了以下内容: - **基础知识介绍:** 第一部分“First Steps”通过两个章节...

    Camel in action PDF和源代码

    这些代码通常按照章节组织,每个章节的代码对应于该章讨论的主题,这样读者可以在实践中学习Camel的各种特性。 学习Apache Camel能够提升开发者在企业级集成项目中的能力,因为Camel的设计理念是重用和组合现有技术...

    Apache Camel 源码分析.rar

    Apache Camel 是一个强大的开源企业集成库,它提供了一种声明式的方式来定义路由和转换数据,使得构建复杂的分布式系统变得更加简单。Camel 使用一种名为“DSL”(Domain Specific Language)的语法规则,允许开发者...

    ApacheCamel-Timer

    Timer 组件是 Apache Camel 中的一个重要部分,它提供了定时触发事件的功能,类似于 Java 中的 javax.swing.Timer 或者 Quartz Scheduler。 在 Apache Camel 中,Timer 组件主要用于创建周期性的事件源,这些事件...

    Camel in action 2nd edition.pdf

    通过这本书,读者不仅可以了解Camel的基本概念和操作,还能学习到如何在实际项目中有效地应用Camel,解决企业集成中的各种挑战。虽然阅读英文书籍可能对某些读者来说有一定难度,但书中清晰的表述和实例演示将有助于...

    camel in action@

    Apache Camel是一个流行的开源Java库,它提供了强大的路由和消息转换功能,使得在分布式系统中处理数据和实现组件间的通信变得更加简单。 本书深入浅出地介绍了Camel的核心概念,包括路由规则(DSL)、组件、数据...

Global site tag (gtag.js) - Google Analytics