《第02章-EJB设计——体系结构ppt课件.ppt》由会员分享,可在线阅读,更多相关《第02章-EJB设计——体系结构ppt课件.ppt(60页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、EJB 体系结构经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用内容提要nEJB体系结构中的构件nEJB容器nEJB客户nEJB容器服务nEJB开发角色EJB体系结构中的构件经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用一、EJB体系结构中的构件nEJB体系结构由6种构件组成nEnterprise BeannHome InterfacenRemote InterfacenEJB ContainernEJB ServernEJB C
2、lient经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用1、Enterprise BeannEnterprise Beann包含商业逻辑代码的Java类n提供商业方法供调用n被部署到EJB应用服务器上n可以被组装形成大型的EJB应用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用1、Enterprise BeannEJB执行支持客户应用解决实际问题的任务n例如某Enterprise bean为客户应用完成如下任务:n从数据库中获取
3、最新的股票价格,并根据价格计算当前的收益值经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用(1)Session BeannEnterprise bean包含三种类型,第一类为Session bean。nSession bean存在于客户应用与应用服务器交互的时间段内nSession bean中的数据不保存在数据库中nSession bean可以是有状态的或无状态的经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用(1)Session
4、BeannStateless Session Beann在方法调用中间不维护任何状态n同时可以处理多个客户应用的请求nStateful Session Beann要跨方法调用保存会话状态n同时只处理一个客户应用的请求经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用(2)Entity Beann第二类Enterprise bean是Entity BeannEntity Bean代表数据库中的记录nEntity Bean在数据库中的数据存在期间都会存在nEntity Bean可以被多个客户应用访问经营者提供商品或者服
5、务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用(3)Message Driven Beann第三类Enterprise bean是Message Driven BeannMessage Driver Bean用来处理异步消息nMessage Driver Bean一般不是由客户端调用的n当有异步消息发送到某Message Driven Bean,容器会调用Message Driven Bean的回调方法OnMessage经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价
6、款或接受服务的费用2、Home InterfacenEJB体系结构中的另一类构件是Home InterfacenHome Interface包含enterprise bean生命周期管理的相关方法n客户程序使用Home Interface创建或删除enterprise bean的实例经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用3、Remote InterfacenEJB体系结构中的另一类构件是Remote InterfacenRemote Interface包含enterprise bean实现的商业方法的定
7、义n定义了enterprise bean提供的服务n客户程序只能通过remote interface访问enterprise bean实现的商业方法,不能直接调用。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用4、Local Interface与LocalHome InterfacenEJB 2.0中引入了本地接口nLocal接口完成与Remote接口类似的功能nLocalHome接口完成与Home接口类似的功能n本地接口的不同之处在于客户应用通过本地接口发起的调用是本地调用n比远程接口有更高的效率n要求客户应
8、用和enterprise bean在同一个进程(虚拟机)内n例如一个Session Bean要访问同一容器内的某个Entity Bean,可以使用Entity Bean的本地接口以获得更高的执行效率经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用二、EJB容器(EJB Container)nEJB ContainernEJB Container为enterprise bean提供运行环境,并管理运行于其中的enterprise beann理论上讲,一个EJB容器可以包含任何数量的enterprise bean经营
9、者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用(1)EJB ContainernEJB Container为enterprise bean的执行提供系统级的服务n如自动将enterprise bean的home interface注册到一个目录服务中n自动注册服务支持客户应用查找定位enterprise bean的实例经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用(2)EJB ServernEJB ServernEJB Server
10、是遵循EJB定义的构件模型的CTM实现n一个EJB Server可以包含一个或多个EJB容器经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用(2)EJB ServernEJB Server为EJB容器的运行提供服务框架n服务框架支持系统级服务n如JNDI服务:JNDI服务是一种命名目录服务,支持客户应用在网络环境中访问enterprise bean经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用三、EJB客户nEJB体系结构中另一种
11、构件是EJB客户nEJB客户是调用enterprise bean提供的商业方法的应用nEJB支持多种形式的客户经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用三、EJB客户nEJB客户可以是独立的Java程序,也可以是运行在Web服务器上的servlet或JSP。nServlet或JSP形式的EJB客户端响应Web客户的请求经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用三、EJB客户nEJB客户还可以是其它的enterprise
12、beann例如session bean经常作为entity bean的客户端来访问持久数据经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用几点说明n每个enterprise bean都有一个home interface(和/或localhome interface)和一个remote interface(和/或local interface)。n从使用服务的角度来看,程序员可以认为EJB Container和EJB Server提供的服务都是由容器提供的。四、EJB容器服务运行时服务经营者提供商品或者服务有欺诈行
13、为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用EJB容器服务nEJB容器为enterprise bean的执行与管理提供服务n程序员可以在部署描述符中声明这些服务的使用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用1、Remote Client ConnectivitynRemote Client Connectivity是EJB容器提供的最基本的服务:n该服务支持远端的客户应用访问enterprise bean经营者提供商品或者服务有欺诈行为的,应当按照消
14、费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用1、Remote Client ConnectivitynEJB容器使用JNDI服务将enterprise bean的home interface注册到一个目录服务中;n客户应用通过JNDI服务接口获取特定enterprise bean的home接口的引用。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2、Life Cycle ManagementnEJB容器向enterprise bean提供生命周期管理服务n生命周期管理服务
15、支持管理enterprise bean的生命周期n基于生命周期管理服务,enterprise bean可以为来自多个客户应用的请求服务经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2、Life Cycle Managementn在处理来自多个客户应用的请求时,EJB容器会改变enterprise bean的状态nEnterprise bean的状态表明EJB容器中是否存在enterprise bean的实例。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买
16、商品的价款或接受服务的费用2、Life Cycle ManagementEJB容器创建容器创建enterprise bean的实例的实例EJB容器中不存在容器中不存在enterprise bean的实例的实例n例如当客户应用请求某个enterprise bean的商业方法时,如果EJB容器中不存在该enterprise bean的实例,EBJ容器就会为该enterprise bean创建一个实例。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2、Life Cycle Managementn当一个enterpri
17、se bean的实例不再被客户程序使用时,EJB容器会删除其实例。EJB容器删除容器删除enterprise bean的实例的实例enterprise bean的实例的实例不再被客户应用使用不再被客户应用使用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2、Life Cycle ManagementnEnterprise bean的生命周期包含三个状态nPooled State nReady StatenNo State经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额
18、为消费者购买商品的价款或接受服务的费用2、Life Cycle ManagementnPooled StatenPooled状态表明enterprise bean的实例存在于对象池中n处于pooled状态的enterprise bean实例不与任何EJB对象关联nEJB对象:类型为远程接口的对象,要提供服务需要和真正的enterprise bean实例关联。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2、Life Cycle ManagementnReady Staten处于ready状态的enterpris
19、e bean实例建立了与EJB对象的关联n可以处理客户应用的请求经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2、Life Cycle ManagementnNo StatenNo状态表明EJB容器中不存在enterprise bean的实例n该状态表明一个enterprise bean生命周期的开始与结束经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用3、Declarative Transaction Managementn声明
20、性事务管理n声明性事务管理服务自动管理客户应用与enterprise bean交互的开始与结束EJB容器管理客户应用容器管理客户应用与与enterprise bean之间的交互之间的交互经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用3、Declarative Transaction Managementn声明性事务管理基于程序员在部署描述符中声明的enterprise bean的事务属性。nEnterprise bean的事务属性表明了在一个事务中,enterprise bean与客户应用交互的方式。经营者提供
21、商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用3、Declarative Transaction Managementn例如如果一个enterprise bean的事务属性为Required,则表明如果客户应用使用了事务控制,则商业方法在客户应用的事务中执行,否则在容器管理的事务中执行。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用Transaction attributesTransaction attributesClients tr
22、ansactionTransaction with business methodTransaction with resource managerRequiredNoneT2T2T1T1T1RequiresNewNoneT2T2T1T2T2SupportNoneNoneNoneT1T1T1T1:客户端控制事务 T2:容器控制事务NONE:没有事务控制 ERROR:出错经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用Transaction attributes(cont)Transaction attribute
23、sClients transactionTransaction with business methodTransaction with resource managerNotSupportNoneNoneNoneT1NoneNoneMandatoryNoneERRORN/AT1T1T1NeverNoneNoneNoneT1ERRORN/AT1:客户端控制事务 T2:容器控制事务NONE:没有事务控制 ERROR:出错经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用4、Security Managementn安全
24、性管理n安全性管理保证只有授权用户才能够访问EJB应用中的enterprise bean。授权用户授权用户未授权用户未授权用户经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用ACLAccess Control Listn安全性管理基于ACLAccess Control ListnACL定义了EJB应用所使用的安全性角色n一个安全性角色代表了一组有权访问EJB应用的用户nACL还为每个安全性角色定义了方法许可权(Method Permission)n方法许可定义了该角色可以访问的一组home和remote接口的方法
25、n每个该角色的用户都可以调用这些方法经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用ACLn基于ACL,安全性管理服务允许ACL中所包含的用户访问EJB应用。授权用户授权用户未授权用户未授权用户经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用5、Persistence Managementn持久性管理n持久性管理管理entity bean数据的存储与获取nEJB容器提供持久性管理所采用的机制是与具体的厂商相关的。EJB容器管理容器管
26、理Entity Bean数据的存储与获取数据的存储与获取经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用6、Resource Managementn资源管理n资源管理服务管理大量的enterprise beann这些bean在处理客户应用的请求时需要用到资源n资源管理服务将这些资源在大量的enterprise bean之间共享EJB容器管理大量的容器管理大量的enterprise bean经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的
27、费用6、Resource Managementn数据库连接资源n建立数据库连接是很耗时的n资源管理服务维护一组活跃的数据库连接nEnterprise bean可以快速的获取可用的数据库连接n一个enterprise bean释放的数据库连接可以被其它bean重用数据库连接数据库连接五、EJB开发角色经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用EJB开发角色nEJB将开发部署EJB应用的任务划分到了六个角色nEnterprise Bean ProvidernApplication AssemblernEJB D
28、eployernEJB Server ProvidernEJB Container ProvidernSystem Administrator经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用1、Enterprise Bean ProvidernEnterprise Bean Providern编写EJB应用所需的构件,分别是n可重用商业构件(如Enterprise Bean)nHome InterfacenRemote InterfacenDeployment Descriptor编写编写EJB应用所需的构件应用
29、所需的构件经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用1、Enterprise Bean ProvidernEnterprise Bean Provider编写的第一类构件是可重用的商业构件,如enterprise beannEnterprise bean包含应用的商业逻辑Enterprise Bean经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用1、Enterprise Bean ProvidernEnterprise Be
30、an Provider编写的第二类构件是home interfacenHome Interface包含enterprise bean生命周期管理的相关方法nEnterprise Bean Provider编写的第三类构件是remote interfacenRemote Interface包含商业方法的定义Home InterfaceRemote Interface经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用1、Enterprise Bean ProviderDeploymentDescriptornEnter
31、prise Bean Provider编写的第四类构件是Deployment Descriptorn在部署描述符中,Enterprise Bean Provider指明enterprise bean的名字、事务属性、以及安全性角色等经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2、Application AssemblernApplication Assemblern组合enterprise bean以构建大型应用n每个enterprise bean在它所构成的应用中完成一定的功能组合组合Enterprise
32、Bean以构建大型应用以构建大型应用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2、Application AssemblernApplication Assembler在部署描述符中编写组装enterprise bean的代码n这些代码中包含构成应用的多个enterprise bean之间关联的定义n这些关联将多个enterprise bean组装成应用Enterprise Bean之间的关联之间的关联经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商
33、品的价款或接受服务的费用3、EJB Server ProvidernEJB Server Providern为EJB容器提供运行时环境n提供的产品是EJB服务器n为EJB容器提供服务框架为为EJB容器容器提供运行时环境提供运行时环境经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用4、EJB Container ProvidernEJB Container Providern为enterprise bean的执行提供系统级服务n如home接口的自动注册n提供部署工具n支持将enterprise bean部署到EJB
34、容器中n提供图形化用户界面,支持部署描述符展现为为Enterprise Bean的执行提供系统级服务的执行提供系统级服务提供部署工具提供部署工具经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用一点说明n一般不明确区分EJB Container Provider与EJB Server Providern二者通常由相同的厂商来充当不明确区分不明确区分EJB Container Provider与与EJB Server Provider经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔
35、偿的金额为消费者购买商品的价款或接受服务的费用5、EJB DeployernEJB Deployern将enterprise bean安装到运行环境中n利用EJB Container Provider提供的部署工具安装enterprise beannEJB Deployer可以将enterprise bean部署到运行环境中时可以对其进行定制化将将Enterprise Bean安装到运行环境中安装到运行环境中经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用5、EJB Deployern例如部署时配置enterpr
36、ise bean的安全性角色nEJB Deployer在部署时将enterprise bean所使用的安全性角色关联到运行环境中的安全性角色上。将将Enterprise Bean安装到运行环境中安装到运行环境中经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用6、System AdministratornSystem Administratorn监控、维护EJB Server与部署的enterprise bean的日常运行监控、维护监控、维护EJB Server与与部署的部署的Enterprise Beans经营者
37、提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用6、System Administratorn系统管理员的第二个任务是配置EJB服务器与EJB容器n除此之外,系统管理员还要进行安全管理n如为某个安全性角色添加一个用户配置配置EJB Server与与EJB Container经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用6、System Administratorn系统管理员的第四个任务是处理系统级错误n当客户应用与EJB服务器交互时,可能会发生系统级的错误n例如网络中的某台计算机失效n系统管理员应及时发行并处理类似的系统级错误处理系统级错误处理系统级错误