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等技术