Chapter01 企业级开发背景知识一、什么是企业级程序(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) 隐式中间件服务:不直接调用中间件,采用配置文件来声明中间件服务,容器自动调用。 优点:相对与显示中间件服务,开发进度加快,容易维护。 缺点:粗粒度,只能在方法级来声明中间件服务,稍微影响性能。 API: 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是用来开发多层、分布式企业应用的平台。 |
|
来自: lance library > 《EJB》