1) 首先请求消息会流到 Database Lookup 元素,该元素根据请求消息中所带的航班号和航班原定起飞日期,从数据库中查询出已订了该航班的所有乘客的信息(名称和电话号码),然后把所有的乘客信息填充到请求消息中的预设字段。经过了这一步,消息流中已经包含了乘客的信息。
2) 消息经过 MessageLogger 元素,该元素进行一些消息日志的记录
3) 当消息流到 MessageFilter 元素的时候进行分流,分离出到底是应该是调用延误航班的服务还是取消航班的服务。我们在请求信息中包含了一个字段flag,默认情况下我们规定都流向调用取消航班服务。如果这个字段的值是 delay 的话,流向延误航班。MessageFilter 的配置如图6所示:
图6 MessageFilter 的端子
输出有两个,default 默认流向取消航班服务,notifyDelay 流向延误航班服务。我们使用 XPath 对消息内容中 flag 的值进行判断:
/body/notifyFlightInfo2Users/notifyCondition/flag [self: node ()=’delay’]
如图7所示。
图7 定义 MessageFilter 的 pattern
4) 经过过滤后,延误航班消息和取消航班消息分别流向各自的服务,由于我们的请求消息的格式和航班服务本身所要求的格式不一致,所以我们必须要对消息的格式进行匹配,使之符合航班服务要求的格式,这个时候 XSLTransformation 可以起作用了,我们以取消航班服务为例,如图8:
图8 取消航班的格式匹配视图
Target 一栏是航班服务的消息格式,它需要用户名称(userId)和提示信息(notifyInfo)两个信息,而 Source 一栏是请求消息的格式。通过把请求消息中的信息和目标消息中的信息进行匹配,我们能够得到被航班服务接受的消息格式。
5) 最后当航班服务处理完之后,我们也需要使用 XSLTransformation 把服务返回的结果信息转化成 FlightNotifyUserMediation 能够接受的信息格式。如图9:
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
WPS/WESB绑定:玩转EJB绑定(下)
我们继续使用EJB导出绑定选择的业务场景:贷款的审批。假设负责审批的工作人员要先获得贷款申请者的信用后再决定是否接受当前贷款人的贷款申请……
-
WPS/WESB绑定:玩转EJB绑定(上)
面向服务的体系架构(SOA)提出了把功能包装成服务的设计理念。服务组件架构(SCA)是一种实现SOA理念的方式。作为编程模型和框架,SCA定义了描述服务……
-
WBM和WID 6.1.2 之间的模型同步(下)
WBM提供将业务模型转换为业务流程的功能。业务分析师可以导出将要导入 WID中的业务流程,以便集成开发人员能够处理业务流程。
-
WBM和WID 6.1.2 之间的模型同步(上)
为支持迭代开发,跨产品同步支持已经被添加到WebSphere Business Modeler和WebSphere Integration Developer V6.1.2中。