基本是参照微软的SOA架构来设计。
1,数据源:可以是内部的数据库,也可以是外部的Web Service,甚至是其他系统或者平台的对象模型;
2,数据访问组件:在VS.NET中使用组件类来实现,好处是有设计界面,可以把存储过程拖入到这些组件中,并可以对数据命令对象进行可视化的设计,同时其中使用DB Helper来调用存储过程的方法一致,简洁;
3,Service Agent,使用VS.NET来自动生成的;
4,和其他系统的集成,就要根据不同的情况,来使用相应的适配技术;
5,使用Typed DataSet来实现Business Entity;根据情况,可能需要把三种类型的数据源都进行映射;使用Typed DataSet来实现BE的好处是VS.NET可以快速的生成;
6,商业逻辑的组件,可能会通过访问几个(几种不同的)数据访问组件、SA和Adapter来完成相应的业务逻辑;
7,服务接口(Service Interface)或者说远程处理的(Endpoint)充当了Facade层;且在Endpoint组件中继承ServicedComponent来实现自动事务;
8,对Endpoint定义Interface,用于Client的调用,这样的好处是Client不需要部署Endpoint组件,且通过Utility的帮助,可以实现开发时进行本地调用,部署时就变成远程调用;
9,WinForm和WebForm的Client通过Endpoint的Interface来获取Typed Dataset,然后使用相应的控件来呈现这些Typed DataSet;
10,本来Endpoint通过配置成HTTP,SOAP,对于客户端来说实际上也算Web Service,但对于一些异构Client不能识别.NET的一些类型,或者对于一些轻型Client,如Device Client,可能需要实现额外的Web Service。
11,对于第10点来说,如果避免使用.NET所特有的数据类型的话,Endpoint也可以被外部系统访问。
自我总结:
这样的构架基本符合了微软的SOA,且对其中的具体组件进行了规范,充分使用了VS.NET这样的可视化开发工具。因而即能保证系统的灵活性,扩展性,伸缩性,也同时保证了开发的效率。