天天看点

J2EE Architecture(2)

版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/1596037

J2EE Architecture(2)

1、架构术语

架构师要有艺术家的风范。

事实证明,在任何情况下,都有必要将技术与艺术巧妙的融合在一起。

企业解决方案的架构师与其它行业或技术领域的架构师没什么不同。架构师独立于技术看问题,站在中立的角度透视系统,并注重系统组件和组件行为的抽象表示。架构师的语言独立于任何特定厂商或技术实现。

企业架构师使用一些独立于厂商的标准术语描述企业系统。部分术语如下:

1)抽象(Abstract):是事务标记,它隐藏细节,在设计中重复使用,是一种清楚的表示法。

2)边界(Boundary):指两个对象的交互区域。

3)脆度(Brittleness):指细微变化对更大系统部分的破坏程度。

4)能力(Capability):除“功能”外的能力,是“能看到”的系统质量,如可靠性和可用性等。

5)摩擦(Friction):指两个组件交互时的交互程度。

6)分层(Layering):指分离的层次结构。

7)表面(Surface Area):指将功能或方法呈现给客户端的应用程序部分。

2、架构师和设计师

1)“架构师”不考虑任何厂商专用的工具或应用程序,在概念级别处理企业问题。

架构解决方案是企业解决方案的高级表示;用矩形框等图形集表示工件,用连接的线段表示交互。

2)“设计师”研究架构师创建的“架构”细节,利用架构师建议的框架,在实现级别进行详细分析。

3)架构师必须提供足够细节,以方便设计人员和编程团队理解和实现。架构师向团队阐明“企业应用程序质量”需求;设计师的产品不仅要满足企业的“功能”需求,还要满足“企业应用程序质量”需求。

4)设计师制作设计工件,如UML(Unified Modeling Language)图,编程团队将利用这些图形实现解决方案。

5)在很多企业应用程序中,架构师可能同时担当设计师角色。

3、架构方法

架构师基于多个重要构件创建架构。如下:

1)“企业应用程序质量”和“设计目标”

“企业应用程序质量”和不涉及功能,指“能看到”的系统质量,对企业具有决定性的影响。

“企业应用程序质量”包含多个元素,如:

 (1)性能

 (2)可靠性

 (3)安全性

 (4)可用性

 (5)易管理性

 (6)可访问性

 (7)灵活性

 (8)可移植性

 (9)互操作性

有必要指出,这些质量需求与上下文有关,而且有些质量需求本质上“互相冲突”,任何企业解决方案都是各项“企业应用程序质量”折衷的结果。

“设计目标”有助于将“企业应用程序质量”运用于企业解决方案,如下的设计目标:

 (1)模块化

 (2)组件扩展性

 (3)合约等

2)流程和工件

“流程”是一系列有序步骤,有助于获得所需的解决方案。流程的输出是架构“工件”。

为便于与开发人员交流,有必要在这些工件中使用UML图。

企业解决方案通常十分复杂,且开发的应用程序不能满足动态需求,原因有以下几点:

 (1)业务瞬息万变;

 (2)业务规则全部或部分使用人工流程,将人工流程作为企业解决方案的一部分;

 (3)虽有上好的解决方案,但无法实现,它超越了应用程序和解决方案提供商的能力范围。

架构师需要确认和识别以下3种限制:

 (1)假设(Assumption)

一个应用程序不可能适用于所有企业环境,也即,应用程序的开发只有基于某些前提条件,才能使解决方案达到“有效”和“有用”的目的。这些前提条件称为假设。

假设可能有很多种,架构师要清晰地列出这些前提条件,将它们作为交付品的一部分。

架构师不能想当然地认为客户已了解假设,而应让客户和利益相关方了解一系列假设。例子如下:

 (1.1)解决方案仅在基于Windows/Intel平台的LAN企业网络上开发和交付。

 (1.2)由于解决方案在企业内部网实现,故不必执行更多安全检查。

 (1.3)企业应用程序用户的数量有限,对性能要求不高,故将应用程序部署在低端服务器即可。

 (2)风险(Risk)

风险使开发应用程序期间一些可能的重要情形带来的成本风险。企业可能遇到各个级别的风险,如应用程序开发级别、部署级别和应用程序运行时风险,也可能遇到政治风险。例子:

 (2.1)安全漏洞;

 (2.2)不可抗力;

 (2.3)依赖于专用系统/服务/格式/组件;

 (2.4)计算机病毒等引发系统故障。

 (3)约束(Constraint)

约束是规则和前提条件,在企业应用程序开发、部署、实现和运行阶段,都要满足约束的要求。

约束可能是业务规则,也可能是客户制定的、不在架构师控制和理解范围内的规则。

例子:

 (3.1)支持现有的多信息客户端;

 (3.2)在IBM AIX RISC工作站和Apple Macintosh系统上部署应用程序;

 (3.3)企业解决方案与现有的OLAP应用程序交互;

 (3.4)将HTML页面上不安全的静态内容外包出去;

 (3.5)将事务扩展到大型机和遗留系统的数据库。

3)通信机制

架构师利用架构原理、经验和专长,为指定的企业应用程序规划合乎质量标准的架构。

架构师需要选择若干种通信媒介/协议来驱动解决方案,企业常用的一些重要通信机制如下:

 (1)HTTP/HTTPS协议

 (2)RMI/IIOP

 (3)面向消息的通信

 (4)专用通信协议

4、架构技术

架构师需要精通:

1)分布式技术

2)客户机/服务器技术

3)大型机和遗留系统

4)分布系统使用的通信机制

5)事务处理和隔离级别

6)诸如XML、SOAP、WSDL和UDDI的WEB服务技术

7)JAX-RPC、JAXR和SAAJ等技术