您的位置:首页 > 运维架构 > 网站架构

J2EE架构分析

2013-08-20 21:24 260 查看
一.什么是架构?

从软件生命周期来看
RUP:初始阶段(I)->精化阶段(E)->构建阶段(C)->产品化阶段(T)
RUP的四大特征:迭代开发,基于构件的体系架构为中心,用例驱动,风险管理

系统分析师:总体规划->系统分析->系统设计->系统实施->系统运行和评价

需求->高层设计->详细设计->实施->测试->产品化

高层设计:架构设计,框架设计,系统流程设计,功能模块划分
详细设计:数据库,界面,子模块接口等

从系统的组成来看:
代码(类,方法)-->模块-->子系统-->系统

从抽象概念来看:
模式-->框架-->架构

模式:
GoF(Gang of Four,指《设计模式-可复用面向对象软件的基础》的四位作者:Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides)的“设计模式”是第一次将设计模式提升到理论高度,并将之规范化,本书提出了23种基本设计模式,自此,在可复用面向对象软件的发展过程中,新的大量的设计模式不断出现。
四个要素:1. 模式名称(pattern name)2. 问题(problem) 3. 解决方案(solution) 4. 效果(consequences)

单态,工厂方法
Command模式:回调
适配器模式:facade模式,方法功能相同,但参数和方法名称可能不同
模板方法模式:不可变方法的调用放在父类,可变方法做成抽象方法由子类来实现,即可变方法的实现放在子类
装饰器方式:包装原来的类的方法,并在原方法调用前后增加其它的功能
其它:桥接,组合,门面,代理,迭代子,责任链...

二.J2EE架构及框架

J2EE架构,J2SE

EJB是OMG成员之一的SUN推出的基于中间件技术的JAVA构件规范. 自从随J2EE推出之后, 广泛的得到了业界的支持, 已经成为应用服务器的标准技术.

从企业应用多层结构的角度, EJB是商业逻辑层的构件技术,提供了事务,分布式处理的能力,自从三层结构提出它成为了商业逻辑层的核心.
从Internet技术应用的角度来看, EJB和SERVLET, jsp一起成为新一代应用服务器的技术标准.

spring:某个时候,我曾经想是否创建这样一个框架:所有的类在ObjectPool中,你要使用就通过ObjectPool.getObject(String className)获取.后来我发现了spring.

Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。
框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。
spring(IOC Inversion of Control,AOP ):非侵入式

,EJB,JSP,Servlet,JSTL,struts,jvm,hibernate,windows

struts,spring,hibernate...所有的框架都是类似的:表面复杂,但原理简单.world is simple.灵活与复杂永远是对立面
比尔·盖茨:永远别向复杂低头

特点:模块化,分层

三.设计架构要做什么?如何展示你的设计思想?

在生命周期的每个阶段都会向下一阶段提交一定数量的文档,每一阶段的任务都会有计划,每一阶段的核心工作结束后都将进行评审.

高层设计:架构设计,框架设计,系统流程设计,功能模块划分
详细设计:数据库,界面,子模块接口等

工件:
1.软件架构设计文档
2.设计包,设计类,接口
3.分析模型,部署模型,实施模型

原则:
用例最好的表现形式是文本而不是图形
使用什么语言都不重要,重要的是你的思想
spring作者:不要过度设计,满足需求即可.(TestDriver编程)

四如何设计良好的架构?

分层的优势:将复杂的问题简单化
高内聚低耦合,拥抱变化,易于扩展,有利于适应需求的变更与业务的重新整合
可配置:配置文件的使用在架构设计中非常普遍

分离变化,开闭原则:鸭类详解

SOA(Service-Oriented Architecture):II西游四人转

定义:面向服务的体系结构(Service-Oriented Architec-ture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。
特点:对SOA的需要来源于需要使业务 IT 系统变得更加灵活,以适应业务中的改变。通过允许强定义的关系和灵活的特定实现,IT 系统既可以利用现有系统的功能,又可以准备在以后做一些改变来满足系统之间交互的需要。
SOA应用:网上银行转帐,支付宝

五经验分享

要学会使用工具.
使用工具是人区别与动物的主要标志.你需要工具,而不是工具需要你.

研究源代码是笨的方式,也是最有效的方式.
最根本的技术变革是缓慢的,而不是流行的.学技术在于学本质.不要一看到新技术就手心冒汗.JPA,Groovy

学习在于积累,总结,举一反三.

六.MyMina架构介绍

框架:
struts,spring,hibernate,mina,log4j

七工具永远是工具:每种工具都有特定的用途.广本的生产线无法造自行车。不要被工具所束缚,无招胜有招。
一个好的软件架构师必需是从程序员过来的:一个优秀的coder不一定是优秀的系统架构师,但一个优秀的系统架构师一定是一个优秀的coder
使用什么语言都不重要,重要的是你的思想
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  J2EE 架构分析