如何把C/S架构较为平滑的切换到SOA架构

现有系统的模式采用 UI -->Service-->IService->Data的模式.
boss说想要做一个可以很容易切换到WebService的方式.
于是绞尽脑汁,变成如下模式  UI->WebService->Service-->IService-->Data
而WebService的对象一定要实现这个IService的接口.

由于大部分的WebService的代码都是直接调用Service对应的对象的对应的方法,
那么,我们可以利用反射获取dll对应的类,接口,方法,返回值,参数等等信息.
利用这些信息,我们可以生成WebService对应的99%的代码.
当然了,生成后,可能还需要更改目录,更改命名空间

对于客户端,我们还需要生成一个代理类,来实现ISerivce对应的类,这样我们调用WebService就可以通过接口的方式来调用了,这个代理类,也是可以通过代码生成工具生成,代码的模式和WebService的代码类似.

此外,必须强调的是,UI生成Service层对象的,不能直接使用构造函数,必须使用接口+工厂类.
这样修改的时候只需要修改工厂类即可达到切换的功能,更甚者,可以用Castle来作动态的调用.

不过总得来说webservice还是限制蛮多的.

posted @ 2007-05-16 17:31  深渊野鱼  阅读(532)  评论(0编辑  收藏  举报