企业应用的模式
企业应用领域要解决的问题在某些方面要比做一个工具软件、或者一个电信通信软件等复杂的得多,比如纷杂的企业数据,各具特色的业务规则,变化莫测的用户需求。因此企业应用开发技术从CORBA、COM、J2EE、_NET等等,层出不穷,每一种技术的出现,都为企业问题的解决题供了一种思路,一个选择。
既然企业的问题是特定,那么我们就可以把问题进行分类,并把每一类问题的解决方法记录下来,这样,就形成了一套我们解决问题的思路,这就是模式。模式的核心就是特定的解决方案,它有效且有足够的通用性。借用一下Christopher Alexander给出的模式的定义:“每一个模式描述了一个在我们周围不断重复发生的问题以及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。
模式的关键点是它们来源于实践,他必须观察人们的工作过程,发现其中好的设计,并找出这些解决方案的核心,一旦发现了某个模式,那将是非常有价值的。当然,如果要学习一个模式,只是需要了解这些模式是干什么的、解决了那些问题、是如何解决问题的,就足够了。
企业架构的领域问题有许多,如分层架构、Web表现、业务逻辑、数据库映射、并发、会话、分布策略、异步通信、安全、错误处理、集群、应用集成、架构重构。在此只选择了其中企业级应用程序的分层、构建基于Web的用户界面、构建领域业务逻辑、将内存模块关联到关系数据库、事务与并发、无状态环境下的会话状态、分布策略等七个方面的问题进行了总结讨论。
企业应用的特点与术语
企业应用是什么是一个比较难以回答问题,但通常企业应用一般会涉及到持久化数据、会涉及到大量的数据、会涉及多人同时访问数据、会涉及到大量操作数据的用户界面屏幕,还会有一些特定的业务逻辑,尽管在企业应用中,业务逻辑通常是最没有逻辑的。
企业应用中性能的要求:
响应时间是系统完成一次外部请求所需的时间。
响应性是系统响应请求的速度有多快。
等待时间是获得系统任何形式响应的最小时间,如果在本机一般都会得到响应,如果在远程计算机上,响应时间就跟传输时间相关了。
吞吐率是给定时间内能够处理多大的请求量,对企业应用,吞吐率通常是每秒的事务数(tps)来度量。
在此处,对用户体验最明显的是响应性,有时候,为了响应性,损失一些响应时间或者吞吐率是值得的。
负载是关于系统当前负荷的表述,负荷可以是多种多样的,比如可以用连接的用户数来表示负荷,通常作为其他指标的背景:如20个用户响应时间5秒。
负载敏感度是指响应时间随负载变化的程度。
效率是性能除以资源。
系统的容量是指最大有效负载或吞吐率的指标。
可伸缩性是指系统中增加资源(通常是硬件)对系统性能的影响。一个可伸缩的系统允许在添加了硬件后,能够有性能上的合理提高。垂直可伸缩通常指增加服务器性能,水平可伸缩通常指增加服务器数目。