http://www.codeplex.com/esb
这是一个开源代码,已经放到了微软的MSDN,主要是为了包装biztalk server2006r2的功能,提供一个更为完善的Enterprise Service Bus.
最近仔细研究了一下这个东西,发现他在biztalk server2006r2上面主要做的事情包括以下:
最主要的就是摆脱Orchestration ,实现一些轻量级别的路由功能
1.Itinerary Processing :实现了一种通过在消息内部添加一些属性,使得后台可以通过pipeline来将消息动态发送到不同send port或者调用不同的Orchestration ;;
这样的好处在于我们可以通过消息属性动态选择需要执行什么操作,也就是调用者自己决定调用哪些服务,而不是在ESB里面配置好,缺点在于调用方需要知道服务的名称,处理的顺序,不够松耦合
2.还有就是可以通过receivepipiline里面定义好的类似ESBReceiveXML之类的东西来分析制定好的策略等(这里是设置在pipeline里面的属性里面的,可以配置的)来动态选择发送端口等等
you can use the components to dynamically resolve endpoint location, set routing properties, and resolve and execute BizTalk maps at the messaging level without using an orchestration
这样的好处在于,我们可以定义好一个接收端口(指定文件之类的方式),一个发送端口(不需要指定任何东西),调用者发来一个消息,我们可以直接发到目标端口,但是可以通过修改接受端口的一些配置,使得消息动态的发送到其他目的地,这只是一个避免使用Orchestration 而是使用配置来动态路由的功能,也还有点用
其他功能,包括
Exception,提供了一些现成的sendport, pipeline,方便吧错误发送到数据库,给错误消息进行了新的包装,可以用它自己的infopath处理或者展现在portal上面,这个挺有用,甚至可以将其他业务系统的错误也发送到这里统一处理
Namespace,利用现成的pipeline组件,根据消息里面的一些信息,通过配置好的规则,添加删除消息的namespace
BizTalk Operations:一些web service,对biztlak进行管理查询
UDDI Web service :通过这个service查询uddi,也可以发布(例子程序提供了界面)到uddi,等于包装了UDDI的功能,这个还比较有用
所有的功能可以通过web service调用,也可以利用pipeline组件或者一些公共组件(helper)进行一些操作
Portal:最主要是对exception的管理展示统计等等