连接开发世界的桥梁——WCF
:
经过上世纪九十年代的发展,微软平台的相关技术基本趋于COM化,相关的周边厂商也陆续提供了很多Socket、RPC的COM封装,对于VMS等早期操作系统平台也可以寻找到很多基于报文的COM中间件。因此,WCF所面对的遗留系统绝大多数可以通过与COM世界的互操作完成,对于一些事务性控制、异步调用、对象实例池化、调用队列等高级支持也很大程度上可以借助COM+现有服务通过配置实现。

图:通过COM+集成遗留系统
上图是MCF平台基于COM+服务集成遗留系统的技术梗概,通常的实施步骤如下:
l 为每个COM类定义一个等价的Service Contract,一般而言这个Service Contract可以对应相应tlb的内容,如果是企业自主开发的COM+则可以完全可以根据IDL代码的内容定义。
l Contract的操作内容及其参数可以参考IDL中接口方法的定义。
l 具体的调用映射通过一个配置文件完成。
不过这里还存在一个比较麻烦的问题,就是与遗留系统的认证和组件访问授权问题,而且如果上层操作中要求调用过程Enlist到一个事务过程,那么还需要COM+部分也相应的开始一个吻合的事务,同时启动一个匹配的调用上下文(Transaction Context)。WCF上常用的解决办法就是把对应的COM+包装为一个Web Service,配合必要的WS-*协议可以定义同样交易隔离度的事务说明、认证和授权控制,然后根据需要可以选择把相应的Web Service借助COM+宿主进程(dllhost.exe)或者IIS宿主进程暴露给后续WCF应用处理。
0
相关文章