J2EE Architecture(3)
1、新架构的设计原理
企业完全可以淘汰现有方案,改天换地,创建全新的解决方案,但这种做法的高昂成本令大企业望而却步,企业更愿意基于以下原理创建架构:
1)物理分布
资源的物理分布有助于将能力提高到最大限度,以满足客户的服务需求,也有利于通过防火墙处理元素。
2)逻辑层
应从逻辑上将企业应用程序功能分解为多个“层”。逻辑分层允许服务独立演化,也允许在企业应用程序中将考虑事项分开。
3)基于服务
应按“服务组件”的形式交付任何功能,不采用代码段形式。可以重用和控制这些组件,以获得令人满意的服务质量(Quality of Services,QoS)。
4)组装
要“组装”应用程序,不要“构建”应用程序;要将“服务”作为企业应用程序的构件;要通过组装“服务”来编排应用程序,不要重新构建。
5)分层
应对应用程序进行“分层”。“分层”将组件的处理与底层平台的实现分开,允许企业安装需要选择适当平台。
2、层
层从逻辑上分开,处理“各个考虑事项”。可将“层”定义为:按角色和职责划分的企业组件分区。有五个层:
1)客户层
是企业应用程序的用户界面。该层包含多个组件和容器,通过某些方式,将信息和数据呈现给最终用户。
客户层组件呈现一个适当视图,以收集查询,显示最终结果。
2)表示层
属于中间层,其组件和容器有两种职责。
一是接收客户层组件的请求,处理请求,然后将请求路由到业务层的适当组件;
二是接收业务层传来的结果,计算一个适当的视图,然后将视图路由到对应的客户端。
3)业务层
负责执行企业必须的业务逻辑。
4)集成层
是一个中间层,将前端业务逻辑层的组件与后端资源层连接起来。
本层组件应尽量确保数据库不同资源与业务逻辑层组件的无缝集成。
5)数据/资源层
逻辑和物理终端。处理企业信息和数据。
3、企业应用程序质量
1)可靠性
架构师必须精心设计,计算出合理的隔离级别,以确保企业应用程序的可靠性。
如RDBMS关系数据库管理系统提供4个不同隔离级别:未提交的读;提交的读;可重复的读;可连续的读。
2)可用性
架构师必须考虑各种情况:用户数量增长或减少;负载发生周期性或非周期性的变化;负载定期改变;无法预料的负载/高峰。
3)安全性
架构师要全面实现安全性。
4)伸缩性
用于确保在系统和应用程序负载增加时保持服务质量。
应用程序最好在不增加成本、不影响服务质量的前提下,支持更多并发连接和事务。
可通过两种方式获得伸缩性:
4.1)垂直伸缩性:可通过为当前系统添加硬件,如内存、CPU和硬盘来增加系统资源。作用有限。可能导致企业的单点故障。
4.2)水平伸缩性:通过分布多个系统增加伸缩性,是好方案。
可使多个系统形成集群,利益负载均衡机制提供伸缩性。
伸缩性对应用程序质量有正面影响,但对管理性有负面影响。架构师需综合衡量。
5)扩展性
主要针对应用软件,特别是业务模型、表示和业务相关方面。
6)易管理性
指持续维护企业系统健康和工作状况的能力。
7)性能
任何企业性能包括两类:计算性能、通信性能。
8)灵活性
指经济有效的修改当前架构,以使当前架构能轻易满足新要求的能力。
灵活性通过企业架构自身的拓扑融入企业架构。