




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
305设计模式305设计模式参考书DesigningEnterpriseApplicationswiththeJ2EEPlatform,SecondEditionArchitectingandDesigningJ2EEApplications,SL-425CoreJ2EEPatterns12/11/20222参考书DesigningEnterpriseApplic最新305设计模式课件最新305设计模式课件最新305设计模式课件最新305设计模式课件最新305设计模式课件最新305设计模式课件J2EE应用程序场景MultitierApplicationScenarioStand-AloneClientScenarioWeb-CentricApplicationScenarioBusiness-to-BusinessScenario12/11/20229J2EE应用程序场景MultitierApplicatioJ2EE应用程序场景MultitierApplicationScenarioStand-AloneClientScenarioWeb-CentricApplicationScenarioBusiness-to-BusinessScenario12/11/202210J2EE应用程序场景MultitierApplicatioJ2EE组件和容器ClientcomponentsAppletApplicationclientJavaWebStart-enabledrichclientWirelessclientWebcomponentsServletJspEJBcomponentsSessionbeanEntitybeanMessage-drivenbean12/11/202211J2EE组件和容器Clientcomponents12/1J2EE平台服务和服务技术J2EE平台提供一系列服务,并允许以统一的方式访问这些服务平台服务(PlatformService)简化编程的工作,允许在部署时间对组件和应用程序进行定制应用程序或组件可以使用被部署环境中的资源服务技术(ServiceTechnologies)允许应用程序以统一的方式访问各种服务标准的API,供组件开发人员使用服务标准的SPI,供J2EE产品提供商实现服务12/11/202212J2EE平台服务和服务技术J2EE平平台服务Namingservices可以在不改变组件源码的情况下定制组件使用一个名字访问数据库连接,其他的组件等资源DeploymentServices在打包和部署定制应用程序/组件部署描述符J2EE.ear=client.jar+web.war+ejb.jar+connector.rarTransactionServicesFlat:不允许嵌套事务Distributed:支持分布式事务SecurityServices认证(Authentication)授权(Authorization)12/11/202213平台服务Namingservices12/10/20221服务技术JavaNamingandDirectoryInterface(JNDI)JDBCAPIJDBC2.0CoreAPIJDBC2.0ExtensionAPI,连接池和分布式事务支持JavaTransactionAPIandService(JTA,JTS)JTAJTSJavaConnectorArchitecture(JTA)连接J2EE平台和EISJavaAPIforXMLProcessingTechnologyDOM:DocumentObjectModelSAX:Event-basedModelXSLT12/11/202214服务技术JavaNamingandDirectory通信技术InternetProtocolsTCP/IPHTTP1.0SSL3.0RemoteMethodInvocationProtocolsObjectManagementGroupProtocolsJavaIDLRMI-IIOPMessageTechnologiesJavaMessageServiceAPIJavaMailAPIJavaBeansActivationFrameworkAPIDataFormatsHTML3.2ImagefilesJARfileClassfileXML12/11/202215通信技术InternetProtocols12/10/20EJB基础12/11/202216EJB基础12/10/202216EJB的构成为创建EJB服务器端组件,Enterprise
Bean开发人员提供了两个定义bean商业方法的公共接口——Remote接口和Home接口(或者Local接口和LocalHome接口),以及真正的bean实现类——Bean
Class。客户机使用bean的公共接口来创建、操作bean,以及从服务器除去bean。bean实现类在运行时被实例化。12/11/202217EJB的构成为创建EJB服务器端组件,EnterprisEJB的构成Bean实现类:EntityBean的实现类实现javax.ejb.EntityBean接口。SessionBean的实现类实现javax.ejb.SessionBean接口。Message-drivenBean的实现类实现javax.ejb.MessageDrivenBean接口。Bean实现类要实现Remote/Local接口中定义的商业方法,以及Home/LocalHome接口中定义的创建、破坏、查找方法。12/11/202218EJB的构成Bean实现类:12/10/202218EJB的构成EJB2.0中SessionBean和EntityBean可以有两种客户端视图——Local
Client
View和Remote
Client
View:Remote
Client
View适用于分布式环境,对Remot/Home接口方法的调用都是远程调用,因此对性能有一定的影响(特别是在细粒度的情况下)。Local
Client
View避免了远程方法调用的开销,但是客户端和服务器必须存在于同一JVM中,同时失去了分布式环境带来的好处。RemoteClientViewLocalClientView12/11/202219EJB的构成EJB2.0中SessionBean和EntiEJB的构成Home/LocalHome接口:FactoryHome接口继承javax.ejb.EJBHome接口。LocalHome接口继承javax.ejb.EJBLocalHome接口。Home接口中都要定义bean的创建、破坏、查找方法。12/11/202220EJB的构成Home/LocalHome接口:12/10/2EJB的构成Remote/Local接口:Delegate供客户端调用商业方法的接口。Remote接口继承javax.ejb.EJBObject接口。Local接口继承javax.ejb.EJBLocalObject接口。两个接口中都要定义bean的商业方法。12/11/202221EJB的构成Remote/Local接口:12/10/202EJB的构成-类图12/11/202222EJB的构成-类图12/10/202222EJB的构成-部署描述符ejb-jar.xml<!DOCTYPEejb-jarPUBLIC"-//SunMicrosystems,Inc.//DTDEnterpriseJavaBeans2.0//EN""/dtd/ejb-jar_2_0.dtd"><ejb-jar><enterprise-beans><session><ejb-name>Hello</ejb-name><home>examples.HelloHome</home><remote>examples.Hello</remote><local-home>examples.HelloLocalHome</local-home><local>examples.HelloLocal</local><ejb-class>examples.HelloBean</ejb-class><session-type>Stateless</session-type><transaction-type>Container</transaction-type></session></enterprise-beans></ejb-jar>12/11/202223EJB的构成-部署描述符ejb-jar.xml12/10/2EJB的构成-打包Remote/Home接口及实现类的class文件,实体Bean还包括primarykeyclass代码中依赖的其他class文件,如参数、返回值以及自定义异常等类型部署描述符(META-INF/ejb-jar.xml)12/11/202224EJB的构成-打包Remote/Home接口及实现类的claEJB容器12/11/202225EJB容器12/10/202225EJB容器在部署EJB时,容器会为每个EJB:根据Home接口和Remote接口产生HomeObject和RemoteObject生成stub和skeleton根据部署描述符设置安全环境根据部署描述符设置事务环境在JNDI名称空间中注册EJB——包括Home接口、资源引用等为CMP的实体Bean创建数据库表12/11/202226EJB容器在部署EJB时,容器会为每个EJB:12/10/2EJB容器客户端在访问EJB时:通过JNDI查找到HomeObject的引用通过HomeInterface上的create方法创建一个RemoteObjectHomeObject会创建并返回一个RemoteObject调用RemoteInterface上的商业方法RemoteObject截取调用进行处理,然后委托BeanClass完成商业方法RemoteObject截取BeanClass的返回进行处理,然后将结果返回给客户端12/11/202227EJB容器客户端在访问EJB时:12/10/202227EJB容器BeanClass在执行商业方法时可以访问容器:可以通过EJBContext对象(它是对容器的直接引用)请求关于环境的信息:如Client的身份、事务的状态以及自身的引用。可以通过JNDI访问资源,如JDBC连接、其它的EJB等。12/11/202228EJB容器BeanClass在执行商业方法时可以访问容器:EJB容器容器在管理EJB生命周期过程中,通过回调方法通知EJB状态的变化:BeanClass实现并响应这些回调方法,进行相应的处理不同类型的EJB回调方法各不相同,如SessionBean包括:ejbCreate;ejbRemove;ejbPassivate;ejbActivate。12/11/202229EJB容器容器在管理EJB生命周期过程中,通过回调方法通知EEnterpiseBeanEntityBeanContainer-ManagedPersistentEntityBeanBean-ManagedPersistentEntityBeanSessionBeanStatefulSessionBeanStatelessSessionBeanMessage-DrivenBeans12/11/202230EnterpiseBeanEntityBean12/10EJB设计模式SessionFacadeBusinessDelegateValueObjectCompositeEntityValueObjectAssemblerValueListHandlerDataAccessObjectServiceLocator12/11/202231EJB设计模式SessionFacade12/10/202SessionFacadeContext:
Inamulti-tieredapplication,businesslogicisencapsulatedinserver–sidecomponents.Businesscomponentsexposeinterfacesandcomplexitytoclients.Problem:Applicationclientsneedtousebusinesscomponentstofulfilltheirresponsibilities.TheBusinessObjectsexposetheirinterfacesandclientsaccessthebusinessobjectsdirectly.Thisintroducesatightcouplingbetweenbusinesscomponentsandclients.Insomescenarios,severalbusinesscomponentsmaybeusedinsuccession.ThisexposesclientstodependenciesbetweenBusinessObjects,andcanintroducenetworkchattiness.BusinessObjectsarenotprotectedfrommisuseorabusebyclients.ForcesClientsneedasimplerinterface.ThenumberofBusinessObjectsexposedoverthenetworkmustbereduced.Theclientshouldnothavetomanageinteractionsbetweenbusinesscomponents.Aunifiedservicelayermustbeprovidedforcoarsegrainedaccessbyallclients,basedonusecases.BusinessObjectsandclientsshouldbedecoupled.SolutionASessionbeanasaFaçadeencapsulatescomplexinteractionsbetweenthebusinessobjectsinaworkflow.TheSessionFaçadewillberesponsiblefor:locating,creating,andmodifyingthebusinessobjectsProvidingauniformcoarse-grainedaccesslayertoallclientsHandlingrelationshipsbetweenbusinessobjects12/11/202232SessionFacadeContext:12/10/2SessionFacade12/11/202233SessionFacade12/10/202233SessionFacade12/11/202234SessionFacade12/10/202234BusinessDelegateContext: ThesystemexposestheentirebusinessserviceAPItoitsclients,oftenacrossanetwork.Problem: Presentationtiercomponentsareinteractingdirectlywithbusinessservices,exposingtheunderlyingimplementationdetailsoftheserviceAPI.Additionally,thepresentationtiercomponentsthatusetheserviceAPImaketoomanycallsoverthenetwork.Iftheimplementationofthebusinessserviceschange,alltheexposedimplementationcodeinthepresentationtierwillalsoneedtochange.ForcesPresentationtierclientsneedaccesstobusinessservices.ServiceAPIsmaychangeasbusinessrequirementsevolve.ThereisaneedtominimizecouplingbetweenpresentationtierclientsandthebusinessserviceAPI,hidingunderlyingimplementationdetailsoftheservice,suchaslookupandaccess.Thesystemwouldbenefitfromacachingmechanismforserviceinformation.Thereisaneedtominimizethenetworktrafficbetweenclientandbusinessservices.SolutionUseabusinessdelegatetoreducecouplingbetweenpresentationtierclientsandbusinessservices.Thebusinessdelegatehidestheunderlyingimplementationdetailsofthebusinessservice,suchaslook–upandaccessdetailsofEJBs.12/11/202235BusinessDelegateContext:12/1BusinessDelegate12/11/202236BusinessDelegate12/10/202236BusinessDelegate12/11/202237BusinessDelegate12/10/202237ValueObject12/11/202238ValueObject12/10/202238ValueObject12/11/202239ValueObject12/10/202239TheEnd12/11/202240TheEnd12/10/202240
结束语谢谢大家聆听!!!41
结束语谢谢大家聆听!!!41305设计模式305设计模式参考书DesigningEnterpriseApplicationswiththeJ2EEPlatform,SecondEditionArchitectingandDesigningJ2EEApplications,SL-425CoreJ2EEPatterns12/11/202243参考书DesigningEnterpriseApplic最新305设计模式课件最新305设计模式课件最新305设计模式课件最新305设计模式课件最新305设计模式课件最新305设计模式课件J2EE应用程序场景MultitierApplicationScenarioStand-AloneClientScenarioWeb-CentricApplicationScenarioBusiness-to-BusinessScenario12/11/202250J2EE应用程序场景MultitierApplicatioJ2EE应用程序场景MultitierApplicationScenarioStand-AloneClientScenarioWeb-CentricApplicationScenarioBusiness-to-BusinessScenario12/11/202251J2EE应用程序场景MultitierApplicatioJ2EE组件和容器ClientcomponentsAppletApplicationclientJavaWebStart-enabledrichclientWirelessclientWebcomponentsServletJspEJBcomponentsSessionbeanEntitybeanMessage-drivenbean12/11/202252J2EE组件和容器Clientcomponents12/1J2EE平台服务和服务技术J2EE平台提供一系列服务,并允许以统一的方式访问这些服务平台服务(PlatformService)简化编程的工作,允许在部署时间对组件和应用程序进行定制应用程序或组件可以使用被部署环境中的资源服务技术(ServiceTechnologies)允许应用程序以统一的方式访问各种服务标准的API,供组件开发人员使用服务标准的SPI,供J2EE产品提供商实现服务12/11/202253J2EE平台服务和服务技术J2EE平平台服务Namingservices可以在不改变组件源码的情况下定制组件使用一个名字访问数据库连接,其他的组件等资源DeploymentServices在打包和部署定制应用程序/组件部署描述符J2EE.ear=client.jar+web.war+ejb.jar+connector.rarTransactionServicesFlat:不允许嵌套事务Distributed:支持分布式事务SecurityServices认证(Authentication)授权(Authorization)12/11/202254平台服务Namingservices12/10/20221服务技术JavaNamingandDirectoryInterface(JNDI)JDBCAPIJDBC2.0CoreAPIJDBC2.0ExtensionAPI,连接池和分布式事务支持JavaTransactionAPIandService(JTA,JTS)JTAJTSJavaConnectorArchitecture(JTA)连接J2EE平台和EISJavaAPIforXMLProcessingTechnologyDOM:DocumentObjectModelSAX:Event-basedModelXSLT12/11/202255服务技术JavaNamingandDirectory通信技术InternetProtocolsTCP/IPHTTP1.0SSL3.0RemoteMethodInvocationProtocolsObjectManagementGroupProtocolsJavaIDLRMI-IIOPMessageTechnologiesJavaMessageServiceAPIJavaMailAPIJavaBeansActivationFrameworkAPIDataFormatsHTML3.2ImagefilesJARfileClassfileXML12/11/202256通信技术InternetProtocols12/10/20EJB基础12/11/202257EJB基础12/10/202216EJB的构成为创建EJB服务器端组件,Enterprise
Bean开发人员提供了两个定义bean商业方法的公共接口——Remote接口和Home接口(或者Local接口和LocalHome接口),以及真正的bean实现类——Bean
Class。客户机使用bean的公共接口来创建、操作bean,以及从服务器除去bean。bean实现类在运行时被实例化。12/11/202258EJB的构成为创建EJB服务器端组件,EnterprisEJB的构成Bean实现类:EntityBean的实现类实现javax.ejb.EntityBean接口。SessionBean的实现类实现javax.ejb.SessionBean接口。Message-drivenBean的实现类实现javax.ejb.MessageDrivenBean接口。Bean实现类要实现Remote/Local接口中定义的商业方法,以及Home/LocalHome接口中定义的创建、破坏、查找方法。12/11/202259EJB的构成Bean实现类:12/10/202218EJB的构成EJB2.0中SessionBean和EntityBean可以有两种客户端视图——Local
Client
View和Remote
Client
View:Remote
Client
View适用于分布式环境,对Remot/Home接口方法的调用都是远程调用,因此对性能有一定的影响(特别是在细粒度的情况下)。Local
Client
View避免了远程方法调用的开销,但是客户端和服务器必须存在于同一JVM中,同时失去了分布式环境带来的好处。RemoteClientViewLocalClientView12/11/202260EJB的构成EJB2.0中SessionBean和EntiEJB的构成Home/LocalHome接口:FactoryHome接口继承javax.ejb.EJBHome接口。LocalHome接口继承javax.ejb.EJBLocalHome接口。Home接口中都要定义bean的创建、破坏、查找方法。12/11/202261EJB的构成Home/LocalHome接口:12/10/2EJB的构成Remote/Local接口:Delegate供客户端调用商业方法的接口。Remote接口继承javax.ejb.EJBObject接口。Local接口继承javax.ejb.EJBLocalObject接口。两个接口中都要定义bean的商业方法。12/11/202262EJB的构成Remote/Local接口:12/10/202EJB的构成-类图12/11/202263EJB的构成-类图12/10/202222EJB的构成-部署描述符ejb-jar.xml<!DOCTYPEejb-jarPUBLIC"-//SunMicrosystems,Inc.//DTDEnterpriseJavaBeans2.0//EN""/dtd/ejb-jar_2_0.dtd"><ejb-jar><enterprise-beans><session><ejb-name>Hello</ejb-name><home>examples.HelloHome</home><remote>examples.Hello</remote><local-home>examples.HelloLocalHome</local-home><local>examples.HelloLocal</local><ejb-class>examples.HelloBean</ejb-class><session-type>Stateless</session-type><transaction-type>Container</transaction-type></session></enterprise-beans></ejb-jar>12/11/202264EJB的构成-部署描述符ejb-jar.xml12/10/2EJB的构成-打包Remote/Home接口及实现类的class文件,实体Bean还包括primarykeyclass代码中依赖的其他class文件,如参数、返回值以及自定义异常等类型部署描述符(META-INF/ejb-jar.xml)12/11/202265EJB的构成-打包Remote/Home接口及实现类的claEJB容器12/11/202266EJB容器12/10/202225EJB容器在部署EJB时,容器会为每个EJB:根据Home接口和Remote接口产生HomeObject和RemoteObject生成stub和skeleton根据部署描述符设置安全环境根据部署描述符设置事务环境在JNDI名称空间中注册EJB——包括Home接口、资源引用等为CMP的实体Bean创建数据库表12/11/202267EJB容器在部署EJB时,容器会为每个EJB:12/10/2EJB容器客户端在访问EJB时:通过JNDI查找到HomeObject的引用通过HomeInterface上的create方法创建一个RemoteObjectHomeObject会创建并返回一个RemoteObject调用RemoteInterface上的商业方法RemoteObject截取调用进行处理,然后委托BeanClass完成商业方法RemoteObject截取BeanClass的返回进行处理,然后将结果返回给客户端12/11/202268EJB容器客户端在访问EJB时:12/10/202227EJB容器BeanClass在执行商业方法时可以访问容器:可以通过EJBContext对象(它是对容器的直接引用)请求关于环境的信息:如Client的身份、事务的状态以及自身的引用。可以通过JNDI访问资源,如JDBC连接、其它的EJB等。12/11/202269EJB容器BeanClass在执行商业方法时可以访问容器:EJB容器容器在管理EJB生命周期过程中,通过回调方法通知EJB状态的变化:BeanClass实现并响应这些回调方法,进行相应的处理不同类型的EJB回调方法各不相同,如SessionBean包括:ejbCreate;ejbRemove;ejbPassivate;ejbActivate。12/11/202270EJB容器容器在管理EJB生命周期过程中,通过回调方法通知EEnterpiseBeanEntityBeanContainer-ManagedPersistentEntityBeanBean-ManagedPersistentEntityBeanSessionBeanStatefulSessionBeanStatelessSessionBeanMessage-DrivenBeans12/11/202271EnterpiseBeanEntityBean12/10EJB设计模式SessionFacadeBusinessDelegateValueObjectCompositeEntityValueObjectAssemblerValueListHandlerDataAccessObjectServiceLocator12/11/202272EJB设计模式SessionFacade12/10/202SessionFacadeContext:
Inamulti-tieredapplication,businesslogicisencapsulatedinserver–sidecomponents.Businesscomponentsexposeinterfacesandcomplexitytoclients.Problem:Applicationclientsneedtousebusinesscomponentstofulfilltheirresponsibilities.TheBusinessObjectsexposetheirinterfacesandclientsaccessthebusinessobjectsdirectly.Thisintroducesatightcouplingbetweenbusinesscomponentsandclients.Insomescenarios,severalbusinesscomponentsmaybeusedinsuccession.ThisexposesclientstodependenciesbetweenBusinessObjects,andcanintroducenetworkchattiness.BusinessObjectsarenotprotectedfrommisuseorabusebyclients.ForcesClientsneedasimplerinterface.ThenumberofBusinessObjectsexposedoverthenetworkmustbereduced.Theclientshouldnothavetomanageinteractionsbetweenbusinesscomponents.Aunifiedservicelayermustbeprovidedforcoarsegrainedaccessbyallclients,basedonusecases.BusinessObjectsandclientsshouldbedecoupled.SolutionASessionbeanasaFaçadeencapsulatescomplexinteractionsbetweenthebusinessobjectsinaworkflow.TheSessionFaçadewillberesponsiblefor:locating,creating,andmodifyingthebusinessobjectsProvidingauniformcoarse-grainedaccesslayertoallclientsHandlingrelationshipsbetweenbusinessobjects12/11
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度合伙法律咨询服务公司合同解除与客户信息保密协议
- 意象油画在《雪霁》系列创作中的实践和探索
- 叶利钦时期俄印关系研究
- (准)均相碳基电子传递介质在光敏化产氢中的作用机制研究
- 2025年大规格石英玻璃扩散管项目建议书
- 2025年煤炭综合采掘机械设备项目合作计划书
- 金属炊具制造企业数字化转型与智慧升级战略研究报告
- 女风衣企业数字化转型与智慧升级战略研究报告
- 毛皮帽企业ESG实践与创新战略研究报告
- 醛醚、醛酚及相关含氧基醛企业县域市场拓展与下沉战略研究报告
- 人教版(2024)七年级英语上册新教材的变化及教学建议课件
- 2025年中考语文一轮复习:九年级上册知识点梳理
- 2025年新闻部工作计划
- 中国近代史纲要西安财经大学练习题复习资料
- 中国成人ICU镇痛和镇静治疗指南解读
- 延长保修服务合同
- 2025中考英语作文19个热点话题及范文
- 2023三年级英语下册 Unit 1 How are you第3课时说课稿 湘少版
- 铁路典型事故案例分析
- 米伊林《十万个为什么》导读课课件
- 《处方药和非处方药管理现状、存在的问题及完善对策研究》6900字(论文)
评论
0/150
提交评论