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等技术
分享到:
相关推荐
J2EE Architecture 介绍web,mvc,架构,EJB规则,bean
J2EE Architecture and Design Patterns J2EE Architecture and Design Patterns
Lightweight J2EE Architecture 轻量级J2EE架构
The Spring Framework Introduction To Lightweight j2Ee Architecture.pdf
1-2 J2EE Connector Architecture Specification • November 2003 The connector architecture defines a set of scalable, secure, and transactional mechanisms that enable the integration of EISs with ...
J2EE Architecture An Overview(part2)源码及flash课件 (共三部分,请下载完毕后解压)
应用开发与运作平台J2EE Architecture Overview
J2EE Architecture An Overview的源码及flash课件 (共3部分,请下载完毕后解压)
J2EE Architecture An Overview(part3)源码及flash课件 (共三部分,请下载完毕后解压)
Practical J2EE Application Architecture 经典书籍,供大家参考。
J2EE Connector Architecture and Enterprise Application Integration一本很不错的书
介绍j2EE connector Architecture
McGrawHill-Practical J2EE Application Architecture
J2EE 连接器架构(J2EE Connector Architecture, JCA)简介
Addison-Wesley - J2EE Connector Architecture and Enterprise Application Integration.pdf
good description about how to build up one best J2EE architecture application
The gain a good understanding of J2EE Architecture and technologies
Adapter 适配器开发 Adapter 适配器开发
In this chapter, we discuss the high-level choices in developing a J2EE architecture, and how to decide which parts of J2EE to use to solve real problems. We'll look at: ❑ Distributed and non-...