个人对软件设计及架构的总结:
1.软件设计
Java 跨平台、虚拟机, .Net 的CLR
J2EE:一组规范,多种JSR的组合,Servlet、JSP、EJB、JDBC,JNDI,JMS
JTA、RMI等等
目标:企业应用
2.企业应用的特点,这也是J2EE诞生的原因
企业应用的特点
1. 涉及到持久化数据
2. 很多人同时访问数据
3. 含有大量操作数据的用户界面
4. 与散布在企业内部或周围的其他的应用集成
5. 各种异构系统的概念含有不一致性
6. 业务逻辑通常是最没有逻辑的东西
7. 企业应用并非都是大型的,但可能都为企业提供巨大的价值 ,
因此需要更强的健壮性、可扩展性和异常处理能力
3.经典道理:
l
l 计算机科学里,没有任何问题是不能通过增加额外的附加层而得到解决的。
发展历史:
Flat File-〉事务处理系统(处理并发访问)-〉RDB(SQL)
-〉C/S应用(客户端负责数据获取和呈现,并直接访问数据库)
-〉受数据库的物理连接的限制,决定了客户端的最大连接数
-〉银弹:分层 |----【连接池】
-〉三层架构 ,n-tier(中间件) [tier & layer ]
J2EE通过分层与AOP
4.系统架构
原则:接口实现分离、开闭、迪米特、依赖倒置、里氏替换
分层: presentation layer: mvc "databind " look & feel " i18n
Service layer: 接口实现分离" Service Locater" Facade
Business layer : BPM "Domain Model
Data Access layer: DAO ----DB independence
事务:本地事务、声明式、编程式
安全:CA、SSL、SOO、LDAP
5.企业架构
Zachman: 5W1H
n 数据(WHAT)
n 功能(HOW)
n 网络(WHERE)
n 人员(WHO)
n 时间(WHEN)
n 动机(WHY)
TOGAF: 4 Architeture
ADM
6.应用整合
SOA-----WebService
-------ESB 应用互联
-------SCA 服务组件
-------BPEL 业务编排