一、什么是企业级程序(Enterprise Application)?
具有以下特点的程序:
(1) 围绕商业目的;
(2) 分布分层的程序架构。
二、企业级应用的架构发展历史
Host/Terminal(主机/终端,终端不具备处理能力,数据由主机处理)
终端为哑终端,可接受命令,不处理命令
优点:安全(不能直接访问)
性能优越(目前关键应用仍在使用)
缺点:使用代价过高,设备昂贵1·
升级维护困难
C/S(Client/Server客户端/服务器端)
终端拥有一定的计算能力,应用架构演变为C/S架构
Multi-layered(多层架构)
Sample:Browser——Web Server——EJB Server——Database
三、为什么要使用EJB,即使用EJB的动机是什么?
(1) 大型的企业级程序分解为分层分布的应用,必须使用EJB;
(2) 构建多层程序架构;
(3) 各层独立,专注自己擅长的领域;
(4) 采用EJB可以不用考虑中间件服务(Middleware Service)
Tips:中间件服务
1,RMI(Remote Method Invocations, 远程调用)
2,Load Balancing(负载均衡,将访问负荷分散到各个服务器中)
3,Transparent Fail-over(透明的故障切换)
4,Clustering(集群,用多个小的服务器代替大型机)
5,Back-end-Integration(后端集成,用现有的、新开发的系统如何去集成遗留的系统)
6,Transaction事务(全局/局部)全局事务(分布式事务)局部事务(在同一数据库联接内的事务)
7,Dynamic Redeployment(动态重新部署,在不停止原系统的情况下,部署新的系统)
8,System Management(系统管理)
9,Threading(多线程处理)
10,Message-oriented Middleware面向消息的中间件(异步的调用编程)
11,Component Life Cycle(组件的生命周期管理)
12,Resource pooling(资源池)
13,Security(安全)
14,Caching(缓存)
四、什么是EJB?
EJB是采用Java语言开发、部署服务器端的分布式组件的标准和框架。
分布式组件:程序=业务+底层中间件服务
组件:按照一定的规范开发,并部署到相应的容器中适当的对象和相关部署文件。
分布式组件:多个容器之间的组件需要进行跨容器调用。
EJB:动态可伸缩的、可靠、安全的组件框架。
与中间件服务提供商无关,采用EJB开发,不用考虑容器。
五、EJB可以用在哪些地方?
业务运算。
六、EJB的价值
(1) 行业标准(Industry standard)
(2) 便携性
(3) 快速开发
七、EJB的运行机制
(1) 代理/委托模式
代理模式:存根(Stub)和拦截器(Request interceptor)都使用了同一个远程接口(Remote Interface)。
委托模式:拦截器将业务请求委托EJB来负责。
(2) 显示中间件服务:
缺点:生产率底下,代码维护困难(中间件服务与业务逻辑纠缠)
优点:细粒度地控制中间件服务
什么叫粒度:对象的相对大小,对客户端暴露的细节的程度。
(3) 隐式中间件服务:
不直接调用中间件,采用配置文件来声明中间件服务,容器自动调用。
优点:相对与显示中间件服务,开发进度加快,容易维护。
缺点:粗粒度,只能在方法级来声明中间件服务,稍微影响性能。
Request interceptor:拦截器,拦截中间件服务,负责调用相应的中间件API,业务调用交给相应的API。
Stub/Skeleton:屏蔽了网络调用的细节,拦截器屏蔽了中间件调用的细节,EJB只需考虑对象的调用,
Stub、Skeleton、Request Interceptor由容器生成。
编程需要写的类:业务接口(Remote Interface),EJB,客户端(Client,用于访问EJB)。
EJB是怎么运行的:
(1) 开发出来的EJB对应的Stub被应用服务器或容器(如 Sun Application Server)绑定到JNDI服务器,名称为全限定名。Stub相当于远程对象在本地的代理,屏蔽了网络调用,编码,解码,协议转换等细节。
(2) 客户端通过上下文(Context),找到Stub
八、EJB生态系统的八个角色
九、SOA(面向服务架构)
(1) 程序由多个服务构成;
(2) 服务是由一组相关的组件构成,完成某个特定的业务功能,服务可由不同的编程语言实现;
服务通过HTTP协议,SOAP、WSDL等相关协议实现的一种分布式应用架构。
SOA(面向服务的架构)和EJB的关系
SOAP(简单对象访问协议)
WSDL(Web服务描述语言)(Web Services)
EJB发布为Web服务,从而实现SOA。
十、Java EE相关知识
(1) Java EE是一个标准;
(2) Java EE是用来开发多层、分布式企业应用的平台。