2. Web Service
这里不再说了,已经去掉了。
3. Business Tier
Business 层是应用系统的核心,包括体现用户的商业运算逻辑的Business Logic;还有保障Business Logic运算安全和完整性的事务,日志,安全验证,性能管理等辅助逻辑。在设计Business Tier的时候要考虑的问题有:
l)可扩展性
i.将接口进行到底
在Business实现层之上,建议抽出一个接口层,遵循一般原则提倡接口编程, Business Components都从一个或者一个以上接口继承,在调用代码中调用类工厂产生实例,在代用代码中建议不要使用此类的new操作符。
ii.设计模式的应用
适当应用模式,可以增加程序的灵活性,可扩展性。(在设计中经常用到Factory,Adapter,Singleton,Decorate,Command,Template等模式,建议可以重点了解一下这些模式。有时间可以详读GOF的设计模式)Example:从Business结构,划分为CRUD(增查改删,称为“四架马车”)和其它具体业务实现的Components,这里用Decorate模式,简单实现一个继承的过程,如果你要继承两个基类,可以考虑使用此模式,当然,即使不继承基类,用Interface+Adapter同样可以实现多继承。
2)区分业务逻辑
所谓区分业务逻辑实际上在上面的描述中已有提及,大致上可以分为两类,一类是商业业务逻辑,一类则是软件功能性逻辑,起辅助保障上述逻辑用,如事务,日志,安全验证等。第二类的使用频率高,实现又是非常类同的,如果提取出来,那复用价值是很高的。 这种区分早有定义,把抽出来的部分称之为CrossCut或者叫Aspect。这个就是AOP在事务,日志,安全验证方面的应用。先来看一下CrossCut(Aspect)的结构表示图:
3)MS组件、服务的是应用
这里的服务和组件主要是讲是在Application infrastructure中的元素,如COM+,MSMQ,IIS,AD等等。这里常用到的两种COM+和MSMQ。
i.COM+
如果应用系统需要使用分布式事务,或者的确希望把组件编程一个服务,那么就可以使用COM+,当然这也造成部署的不方便。
ii.MSMQ
消息队列,主要使用于异步处理。比如,在业务处理过程中要发一封邮件,如果采用消息队列来做,不管当前的邮件服务忙,还是根本就不能工作,用户可以转回来处理其它业务而不必等待。
4. DataAccess Tier
数据访问层,是用来隔离系统访问不同的数据媒体或者系统外服务(比如,其它系统的Web Service等)用的。
l)将接口进行到底
2)or-Mapping,OR Mapping所带来的好处这里就不多说了。我们先来谈一下下面的几个概念。