SOA:面向服务的架构
SOA的优缺点在这里就不浪费文字论述了,请参考:http://www.ibm.com/developerworks/cn/webservices/ws-goodbad/index.html
目前实现SOA的.NET技术有以下几种
1.Web Service
2.Socket
3.Remoting
4.WCF(Windows Communication Foundation)
这几种技术有以下优缺点
1.Web Service:成熟的技术,Windows中有IIS强力支持,开发简单,上手容易。但是底层自由度小,无法定制自己的安全验证,只能基于HTTP协议,无法推送数据。不过绝大部分企业和业务都无需主动推送数据。
2.Socket:不用说了,比较底层的东西,优点是可以自由的定制数据传输模式,支持TCP/IP,UDP,支持推送数据,但是实现SOA的工作量大,开发效率低,而且实现到最后其实也是一个类似于被阉割的IIS的东西。
3.Remoting:由于Remoting是使用Socket实现,所以其优缺点类似于Socket。当然,工作量会比Socket少。
4.WCF:为了实现SOA,更加深度的封装了Socket,拥有Socket的优点,并且使得开发效率大幅度提升,而且支持部署在IIS中。但是,研究了一下,配置很麻烦,开发效率达不到理想的地步。而且需要深入学习。
经过比较决定选择Web Service,毕竟相对于什么平台架构,运行效率。开发效率才是一个现代企业所追求的东西(能够对市场快速的反应是企业的核心之一)。
数据流为 客户端(Winform/Browser)->IIS->SOA Web Service->SOA Web Service Core->Controller(ORM)->DAL(DB Helper)->DB
通过SOA Web Service Core反射客户端传来的类名,方法名和参数调用Controller中的方法。这样可以避免暴露接口。
相关类:SOA Web Service(仅作为一个部署的接口,仅包含接收字符串的“CallMethod”一个Web Method,调用SOA Web Service Core),SOA Web Service Core(解析客户端穿过来的XML/JSON,序列化成对象,反射调用Controller中的方法,包括调用加密,解密和验证的功能),AOP(用来做日志和权限验证),ORM,Model(实体层),DAL(数据访问层),Common(公共方法类),Controller(包括所有的业务逻辑,可以调用AOP做日志和权限验证)
待续........