在大型系统中应用中,一个架构设计较好的应用系统,其总体功能肯定是由很多个功能模块所组成的,而每一个功能模块所需要的数据对应到数据库中就是一个或多个表。而在架构设计中,各个功能模块相互之间的交互点越统一、越少,系统的耦合度就越低,系统各个模块的维护性及扩展性也就越好。
在一个系统中特别是较为大型的系统中,如电子商务系统,可也按照功能,切分为,订单管理系统、商品管理系统、用户管理系统、供应商管理系统...等等,在这样的应用中系统切分了、功能独立了、耦合降低了、容易维护了、可是各个系统中的通讯怎么完成呢,如果,用户系统想查询某个用户的订单信息,要怎么做呢?是要直接引用,订单系统的DLL,还是把这些需要相互调用的功能放在一个叫Common的项目中供所有子系统调用呢,或者干脆直接在用户系统中跨库查询订单库,这些方法都不优良,这个时候该到微软的利器WCF亮相的时候了,先看下面架构图
这个样设计的优点:
1.层与层之间的服务器可以灵活组合,每层中的服务器,可水平扩展(集群),可纵向扩展(按系统/域/功能切分)
2.所有中间件服务即可为本系统提供服务也可以为其他系统提供服务(甚至是第三方如:java的),提供系统间的无缝连接,系统之间的耦合不依赖于应用程序也不依赖于数据库,而依赖于服务接口。
3.所有对数据库的操作都依赖于中间件,不允许对数据库直接操作,这样即达到了数据库的安全性,又能给应用程序服务器减压,因为实际的查询工作不在由应用程序服务器的数据访问层完成,而是分担给这个中间件服务器完成。