所在位置:首页 -- 技术培训 -- 架构设计 -- J2EE架构设计

J2EE架构设计


课程简介:
这门课程适合对基于Java EE技术的企业软件系统负有总体软件架构的学员。学员还要求能深入了解企业架构师的作用,并希望在n层企业系统中使用Java EE技术。现有的架构师也可以通过学习这门课程,了解如何使用Java EE技术提高其企业系统中服务的质量。

 

预备知识:
- 为了成功学习这门课程,学员必须具备以下能力
- 了解Java EE技术,包括web技术、servlet、JavaServer Pages和了解应用服务器(Tomcat,Resin,Weblogic,websphere任意一种)
- 熟悉JDBC技术,最好了解任意一种ORM技术(Hibernate,IBatis)
- 描述分布式计算和通信概念  
- 进行面向对象软件系统的分析和设计
- 使用UML记号对面向对象的系统进行建模

预期目标:
- 软件架构的本质
- 软件架构的设计过程
- 软件架构模式
- 深入理解J2EE和架构模式和反模式,以及如何对架构重构
- 深入理解J2EE架构各层(表示层/业务逻辑层/数据存取层/基础服务层/实体层)如何设计和如何权衡
- 深入理解J2EE 技术(JSP,TagLib,Ajax,EJB,JPA以及常见的开源技术Spring和Hibernate,Ibatis)
- 充分运用Java EE组件技术,解决典型的系统架构问题
- 使用Java EE蓝图中的技术和Java EE 模式目录中的解决方案,推导出软件系统
- 使用工程权衡技术,用高性价比的方式应对服务质量要求
- 描述架构提交物中架构和产品的作用
- 列举并描述大型企业系统中常见的问题

培训指导思想:
-
结合客户的实际需求,适当增加客户感兴趣的内容,删除一些理论性强而客户又很少用到的内容。同时参考了国外主要机构的相关培训课程。
- SUN SL-425 Developing Architectures for Enterprise Java Applications
- BEA Certified Architect
- BEA Certified Developer Certification

时间
内容
练习与实验
Day1

内容一:介绍基本的架构概念
- 理解企业应用中的难题
- 定义软件架构
- 理解软件架构需求
- 理解架构师的作用、责任和交付项目
- 理解使用统一建模语言(UML)的架构模型
- 理解架构与设计之间的差别和相似点

内容二:理解架构质量属性度量
- 描述企业应用的系统性度量
- 描述用于改善系统性度量的一般做法
- 对服务质量(QoS)的要求划分优先级
- 检查是否存在良好的机遇,并进行权衡
- 结合实际项目案例分析,质量属性的权衡

内容三:J2EE核心技术
- J2EE平台概述
- Web应用技术
- Servlet,JSP,JSPTaglib,JSF
- EJB技术,JMS,JTA,JNDI
- JDBC,JPA
- Java EE5 新特性
- 基于J2EE 核心技术的架构

内容四:J2EE开源框架
- Better,Faster,Lighter Java
- 经常使用的J2EE开源框架
- Web层常见框架Struts1/2,Webwork,JSF
- 业务逻辑层常见开源框架
- 数据存取层常见开源框架

内容五:J2EE技术和其他对比(.Net, Ruby/Rails,LAMP)
- J2EE技术和。Net技术对比
- J2EE技术和Ruby/Rails技术对比
- J2EE技术和相关PHP技术对比

内容六:检查系统架构应于开发的风险
- 了解分布式企业系统的关键风险因素
- 设计灵活的对象模型
- 理解创建网络模型的指导原则
- 验证事务/异常/性能/安全的设计
- 规划系统容量

相关案例介绍及分析
Day2
 
 
 
 
 
 
 
 
 
 
 

内容一:J2EE分层架构模式
-
J2EE架构模式
- 表示层的设计原则和注意事项
- 业务逻辑层的设计原则和注意事项
- 持久化层的设计原则和注意事项
- 基础服务架构层设计原则和注意事项
- 业务实体层的设计原则和注意事项

内容二:开发客户端层的架构
- 理解信息架构客户端层的注意事项
- 理解如何选择满足具体应用要求的用户界面设备
- 描述如何在客户端层上实现重复使用
- 理解开发基于Java桌面的应用的策略
- 熟悉客户端层的安全注意事项

内容三:Web层的架构
- 描述与开发Web层相关的角色
- 理解分离注意事项
- 描述有关实施Web层展示问题的策略
- 描述有关实施Web层数据问题的策略
- 描述有关管理Web层展示、数据和逻辑问题的策略
- 理解面向请求的和面向组件的Web层框架的优点和缺点
- 描述有关在Web层中实施验证和授权的策略
- 解决Web应用扩展问题  

内容四:基于Ajax技术架构
- 传统BS应用系统的缺点
- RIA应用的诞生原因
- Ajax应用系统
- 基于Ajax的BS架构

内容五:基于Struts1/2技术架构
- 开发基于Struts的Web应用程序
- 将MVC应用于您的应用程序架构
- 使用单元测试来测试Struts应用程序
- 运用重要的Struts最佳实践
- 使用常用的Struts扩展功能提高生产效率
- 保护Struts应用程序的安全 

内容六:基于JSF技术架构
-
使用基于组件和事件驱动的JavaServer Faces框架开发Web应用程序
- JSF的应用与开发
- JSF组件的开发
- JSF最佳实践

相关案例介绍及分析
Day3

内容一:业务逻辑层的架构
-
理解有关使用企业应用容器服务的价值
- 描述用于实施域模型服务的架构选项
- 描述用于实施域模型实体的架构选项
- 分发域模型组件
- 理解例外处理和日志的最佳做法

内容二:基于EJB业务逻辑层的架构
- 深入理解EJB原理和EJB30新特性
- EJB的核心服务
- EJB事务管理
- EJB异常处理
- EJB拦截服务
- 如果基于EJB技术进行构建业务逻辑层
- EJB项目经验

内容三:基于Spring业务逻辑层的架构
- Spring轻量级容器技术
- Spring的Ioc/DI技术
- Spring的数据存取技术
- Spring AOP技术
- Sping事务管理
- Spring在业务逻辑层的应用
- Spring项目经验

相关案例介绍及分析

Day4

内容一:开发集成和资源层的架构
- 描述与企业信息系统(EIS)集成相关的难题
- 描述集成层的角色
- 描述EIS资源层
- 回顾Java集成技术和最佳做法,以及和其他系统集成
- 数据存取架构模式
- 数据存取架构技术发展
- 数据存取架构的策略
- 数据存取层事务和连接管理模式  

内容二:数据存取技术基石-JDBC
- JDBC概述和JDBC Driver类型选择
- 使用JDBC进行数据库访问和JDBC 核心类
- JDBC连接池的原理和使用
- DataSource原理和使用
- JDBC3.0/4.0新特性
- 数据存取层的性能监控和调优(结合应用服务器) 

内容三:基于ORM数据存取技术-Hibernate和JPA
- J2EE数据存取技术
- Hibrnate映射技术
- Hibernate 对象实体级联
- Hinbernate缓存处理
- Hinbernate并发控制与锁的管理
- Hinbernate事务管理
- JPA技术概述
- Hinbernate项目经验

内容四:基于SQLMapper数据存取技术-IBatis
- What is iBATIS?
- Working with mapped statements
- Executing nonquery statements
- Using advanced query techniques
- Transactions
- Using Dynamic SQL
vImproving performance with caching

内容五:J2EE架构的事务管理
- 事务的概述
- 本地事务和分布式事务JTA
- 本地事务的管理的模式
- 分布式事务管理的模式
- 声明方式和编程方式事务管理
- 事务,锁,并发

内容六:J2EE架构的安全管理
- 分析分布式计算环境中的安全影响
- 理解Java EE技术中的安全服务
- 理解Web服务的安全要求
- 基于Spring Acegi安全架构设计

相关案例介绍及分析

Day5

内容一:J2EE架构时性能考虑
- 架构时的性能考虑
- J2EE项目调优概述
- 利用应用服务器的调优
- web层架构的性能考虑
- 业务逻辑的性能设计考虑
- 数据访问层的性能  

内容二:J2EE架构模式
- 描述J2EE模式的哲学
- 描述J2EE模式体系中的J2EE模式和层
- 介绍表示层模式
- 介绍业务逻辑层模式
- 介绍数据访问层模式
- 定义反模式
- 描述集成层反模式
- 描述业务层反模式
- 描述展示层反模式  

内容三:J2EE架构设计专题技术
- J2EE异常处理
- J2EE事务管理
- 缓存技术在架构之中的应用
- AOP技术在架构之中的应用
- J2EE架构的数据校验
- 可扩展性和可靠性对架构的影响
- 安全性在架构的考虑
- 分布式计算中数据传输的特点
- 多个实际项目的架构分析(为何这样设计/优点/缺点/当初的考虑)

内容四:J2EE架构案例
- 电信行业J2EE架构项目案例分析
- 电力行业J2EE架构项目案例分析
- 政府行业J2EE架构项目案例分析
- 金融行业J2EE架构项目案例分析
- 重点分析为何这样设计/优点/缺点/当初的考虑

相关案例介绍及分析