J2EE Course 2018/11/20.

Slides:



Advertisements
Similar presentations
1 Java 语言程序设计 计算机系 鲍金玲. 2 引子 甲骨文 甲骨文是全球最大的信息管理软件及服务供应商,成立于 1977 年,公司总部 设在美国加利福尼亚州的红木城( Redwood Shores ),全球员工达 名, 包括 名开发人员、 7500 多名技术支持人员和.
Advertisements

云计算辅助教学风云录 黎加厚 上海师范大学教育技术系 2010年8月9日.
第16章 代理模式 Website:
Bomgar Remote Support 最安全的遠端資訊服務系統平台
第1章 Java语言概述.
微软与高校信息化 李 志 霄 博士 首席技术官 微软(中国)有限公司.
思科Oracle RAC解决方案 Starry Wu UCS -GC.
第 11 章 網際網路與資料庫系統.
网格 及其应用的一些相关技术 高能所计算中心 于传松
第八讲 J2EE安全机制.
J2EE Struts 和Spring 的区别.
建设数字化的卫生监督体系 深 圳 市 卫 生 监 督 所 2006年4月.
第8章 系統架構.
網頁技術簡介.
Windows 2000/XP网络组建与系统管理 李燕 中南分校.
大型主机应用上的开放系统和中间件 2011年度教育部-IBM精品课程
第1章 java简介及环境搭建 第1章 Java简介及开发环境搭建.
第八章 分析與設計階段 – 物件導向設計(OOD)
云实践引导产业升级 沈寓实 博士 教授 MBA 中国云体系产业创新战略联盟秘书长 微软云计算中国区总监 WinHEC 2015
Microsoft .NET 第4組 十月15, 2002 B 陳東傑 B 蔣佳勳
JSP程式設計 基本概論 歐陽芳泉 Fang-Chuan Ou Yang
形式语言与网络 计算环境构建 1.
软件设计模式与体系结构课程设计 周 宇 College of Information Science and Technology
J2EE 培训课程.
如何促進即時路況資訊傳播以利導航應用產業發展
Mobile & Embedded DevCon 2005 朱敏博士 微软有限公司
Arena System Technology Architecture 系统技术架构 1、Database V2(Lotus Notes)V3(Oracle8i) 2、Application Server SilverStream2.53 (Java as server side programming.
第五章 信息与系统集成技术 概述 数据流集成技术 信息流集成技术 信息管理集成技术 流程重组与业务流程集成 企业门户集成 企业集成架构
分布式对象标准介绍 企业要构建多层分布式系统,必须遵循分布式标准,基于什么样的标准将直接影响到企业应用系统的开放性和可扩展性。目前业界分布式对象技术主要有三种架构标准: Microsoft的COM/DCOM/COM+ OMG组织的 CORBA。 Sun Microsystems的Enterprise.
从UNIX到Windows的 电信软件移植实践
Chapter 3 Case Studies.
Chap 3 資料庫模型與處理架構.
彰化縣政府補助辦理網頁設計資料庫應用班 資料庫簡介 建國技術學院資管系 饒瑞佶.
單元3:軟體設計 3-2 順序圖(Sequence Diagrams)
高级Web技术 复 习.
在一定程度上 人类的思维产生于 简单个体之间的相互作用 ——Marvin Minsky.
第5章 方案工程(Solutions Engineering)
JBOSS安装配置及WebWork的集成
SAP 架構及基本操作 SAP前端軟體安裝與登入 Logical View of the SAP System SAP登入 IDES
Oracle Containers for J2EE(OC4J) 独立版
「寬頻匯流網路管理」教材 模組四: 第一章 網路管理架構
第4章 商务逻辑层及其技术.
第一讲 J2EE基础 博和利初级培训 —开发技能.
GT4安装与开发 李长华.
第5章 方案工程(Solutions Engineering)
校園網路架構介紹與資源利用 主講人:趙志宏 圖書資訊館網路通訊組.
第4章(1) 空间数据库 —数据库理论基础 北京建筑工程学院 王文宇.
軟體工程:如何開發軟體? 把它看成是一件工程。 那麼就會有一些工具、技術、方法,也有管理的議題。
服務於中國研究的網絡基礎設施 A Cyberinfrastructure for Historical China Studies
第11章 系统结构与包模型模型.
Dr. Ming Qiu Xiamen University Software School
Microsoft SQL Server 2008 報表服務_設計
Breaking and Fixing Authentication over TLS
SAP R/3架構及前端軟體安裝 Logical View of the R/3 System SAP Frontend 6.2安裝
第1章 Java语言概述 学习目标 本章要点 上机练习 习 题.
企业级分布式应用平台 —— Orbix 2000 CTO 张 恂 博讯科技(上海)有限公司 2001年3月.
虚 拟 仪 器 virtual instrument
Java Server Faces 参考书籍 Java Server Faces 核心编程.
從 ER 到 Logical Schema ──兼談Schema Integration
模式与实践:Windows Mobile 5.0应用程序架构
DEV 343 VS2005超快速开发方案/EEP2006控件包.
Web Service 尹伟铭
SAP 架構及基本操作 SAP前端軟體安裝與登入 Logical View of the SAP System SAP登入 IDES
IEEM 5352 Enterprise Integration
DEV 343 VS2005超快速开发方案/EEP2006控件包.
11 Overview Cloud Computing 2012 NTHU. CS Che-Rung Lee
蔺华 ISV开发合作经理 平台及开发技术部 微软(中国)有限公司
案例分析: THE NEXTGEN POS SYSTEM
SAP 架構及前端軟體安裝 Logical View of the SAP System SAP Frontend 7.1安裝 SAP登入
Presentation transcript:

J2EE Course 2018/11/20

参考书 Designing Enterprise Applications with the J2EE Platform, Second Edition Architecting and Designing J2EE Applications,SL-425 Core J2EE Patterns 2018/11/20

内容 J2EE架构 EJB基础 EJB设计模式 2018/11/20

J2EE架构 2018/11/20

J2EE Platform 分布的,多层的 Client tier提供用户界面 Middle tier为客户端提供服务,实现应用的业务逻辑 后台的EIS系统提供数据管理 典型J2EE环境中的组件和服务 2018/11/20

J2EE应用程序场景 Multitier Application Scenario Stand-Alone Client Scenario Web-Centric Application Scenario Business-to-Business Scenario 2018/11/20

J2EE应用程序场景 Multitier Application Scenario Stand-Alone Client Scenario Web-Centric Application Scenario Business-to-Business Scenario 2018/11/20

J2EE应用程序场景 Multitier Application Scenario Stand-Alone Client Scenario Web-Centric Application Scenario Business-to-Business Scenario 2018/11/20

J2EE应用程序场景 Multitier Application Scenario Stand-Alone Client Scenario Web-Centric Application Scenario Business-to-Business Scenario 2018/11/20

J2EE应用程序场景 Multitier Application Scenario Stand-Alone Client Scenario Web-Centric Application Scenario Business-to-Business Scenario 2018/11/20

J2EE组件和容器 Client components Web components EJB components Applet Application client Java Web Start-enabled rich client Wireless client Web components Servlet Jsp EJB components Session bean Entity bean Message-driven bean 2018/11/20

J2EE平台服务和服务技术 J2EE平台提供一系列服务,并允许以统一的方式访问这些服务 平台服务(Platform Service) 简化编程的工作, 允许在部署时间对组件和应用程序进行定制 应用程序或组件可以使用被部署环境中的资源 服务技术(Service Technologies) 允许应用程序以统一的方式访问各种服务 标准的API,供组件开发人员使用服务 标准的SPI,供J2EE产品提供商实现服务 2018/11/20

平台服务 Naming services Deployment Services Transaction Services 可以在不改变组件源码的情况下定制组件 使用一个名字访问数据库连接,其他的组件等资源 Deployment Services 在打包和部署定制应用程序/组件 部署描述符 J2EE.ear=client.jar+web.war+ejb.jar+connector.rar Transaction Services Flat:不允许嵌套事务 Distributed:支持分布式事务 Security Services 认证(Authentication) 授权(Authorization) 2018/11/20

服务技术 Java Naming and Directory Interface(JNDI) JDBC API JDBC 2.0 Core API JDBC 2.0 Extension API,连接池和分布式事务支持 Java Transaction API and Service(JTA,JTS) JTA JTS Java Connector Architecture(JTA) 连接J2EE平台和EIS Java API for XML Processing Technology DOM:Document Object Model SAX:Event-based Model XSLT 2018/11/20

通信技术 Internet Protocols Remote Method Invocation Protocols TCP/IP HTTP 1.0 SSL 3.0 Remote Method Invocation Protocols Object Management Group Protocols JavaIDL RMI-IIOP Message Technologies Java Message Service API JavaMail API JavaBeans Activation Framework API Data Formats HTML 3.2 Image files JAR file Class file XML 2018/11/20

EJB基础 2018/11/20

为创建 EJB 服务器端组件,Enterprise Bean 开发人员提供了两个定义 bean 商业方法的公共接口——Remote接口和Home接口(或者Local接口和LocalHome接口),以及真正的 bean 实现类——Bean Class。 客户机使用 bean 的公共接口来创建、操作 bean,以及从服务器除去 bean。 bean实现类在运行时被实例化。 EJB的构成 2018/11/20

EJB的构成 Bean实现类: Entity Bean的实现类实现javax.ejb.EntityB ean接口。 Session Bean的实现类实现javax.ejb.Sess ionBean接口。 Message-driven Bean的实现类实现javax.ejb. Message DrivenBean接口。 Bean实现类要实现Remote/Local接口中定义的商业方法,以及Home/LocalHome接口中定义的创建、破坏、查找方法。 EJB的构成 2018/11/20

EJB2.0中Session Bean和Entity Bean可以有两种客户端视图——Local Client View和Remote Client View: Remote Client View适用于分布式环境,对Remot/Home接口方法的调用都是远程调用,因此对性能有一定的影响(特别是在细粒度的情况下)。 Local Client View避免了远程方法调用的开销,但是客户端和服务器必须存在于同一JVM中,同时失去了分布式环境带来的好处。 EJB的构成 Remote Client View Local Client View 2018/11/20

EJB的构成 Home/LocalHome接口: Factory Home接口继承javax.ejb.EJBHome接口。 LocalHome接口继承javax.ejb.EJBLocalHome接口。 Home接口中都要定义bean的创建、破坏、查找方法。 EJB的构成 2018/11/20

EJB的构成 Remote/Local接口: Delegate 供客户端调用商业方法的接口。 Remote接口继承javax.ejb.EJBObject接口。 Local接口继承javax.ejb.EJBLocalObject接口。 两个接口中都要定义bean的商业方法。 EJB的构成 2018/11/20

EJB的构成-类图 2018/11/20

EJB的构成-部署描述符 ejb-jar.xml <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" " http://java.sun.com/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> 2018/11/20

EJB的构成-打包 Remote/Home接口及实现类的class文件,实体Bean还包括primary key class 部署描述符(META-INF/ejb-jar.xml) 2018/11/20

EJB容器 2018/11/20

EJB容器 在部署EJB时,容器会为每个EJB: 根据Home接口和Remote接口产生Home Object和Remote Object 生成stub和skeleton 根据部署描述符设置安全环境 根据部署描述符设置事务环境 在JNDI名称空间中注册EJB——包括Home接口、资源引用等 为CMP的实体Bean创建数据库表 2018/11/20

EJB容器 客户端在访问EJB时: 通过JNDI查找到Home Object的引用 通过Home Interface上的create方法创建一个Remote Object Home Object会创建并返回一个Remote Object 调用Remote Interface上的商业方法 Remote Object截取调用进行处理,然后委托Bean Class完成商业方法 Remote Object截取Bean Class的返回进行处理,然后将结果返回给客户端 2018/11/20

EJB容器 Bean Class在执行商业方法时可以访问容器: 可以通过EJBContext对象(它是对容器的直接引用)请求关于环境的信息:如Client的身份、事务的状态以及自身的引用。 可以通过JNDI访问资源,如JDBC连接、其它的EJB等。 2018/11/20

EJB容器 容器在管理EJB生命周期过程中,通过回调方法通知EJB状态的变化: Bean Class实现并响应这些回调方法,进行相应的处理 不同类型的EJB回调方法各不相同,如Session Bean包括:ejbCreate;ejbRemove;ejbPassivate;ejbActivate。 2018/11/20

Enterpise Bean Entity Bean Session Bean Message-Driven Beans Container-Managed Persistent Entity Bean Bean-Managed Persistent Entity Bean Session Bean Stateful Session Bean Stateless Session Bean Message-Driven Beans 2018/11/20

EJB设计模式 Session Facade Business Delegate Value Object Composite Entity Value Object Assembler Value List Handler Data Access Object Service Locator 2018/11/20

Session Facade Context: In a multi-tiered application, business logic is encapsulated in server–side components. Business components expose interfaces and complexity to clients. Problem: Application clients need to use business components to fulfill their responsibilities. The BusinessObjects expose their interfaces and clients access the business objects directly. This introduces a tight coupling between business components and clients. In some scenarios, several business components may be used in succession. This exposes clients to dependencies between BusinessObjects, and can introduce network chattiness. BusinessObjects are not protected from misuse or abuse by clients. Forces Clients need a simpler interface. The number of BusinessObjects exposed over the network must be reduced. The client should not have to manage interactions between business components. A unified service layer must be provided for coarsegrained access by all clients, based on use cases. BusinessObjects and clients should be decoupled. Solution A Session bean as a Façade encapsulates complex interactions between the business objects in a workflow. The Session Façade will be responsible for: locating, creating, and modifying the business objects Providing a uniform coarse-grained access layer to all clients Handling relationships between business objects 2018/11/20

Session Facade 2018/11/20

Session Facade 2018/11/20

Business Delegate Context: The system exposes the entire business service API to its clients, often across a network. Problem: Presentation tier components are interacting directly with business services, exposing the underlying implementation details of the service API. Additionally, the presentation tier components that use the service API make too many calls over the network. If the implementation of the business services change, all the exposed implementation code in the presentation tier will also need to change. Forces Presentation tier clients need access to business services. Service APIs may change as business requirements evolve. There is a need to minimize coupling between presentation tier clients and the business service API, hiding underlying implementation details of the service, such as lookup and access. The system would benefit from a caching mechanism for service information. There is a need to minimize the network traffic between client and business services. Solution Use a business delegate to reduce coupling between presentation tier clients and business services. The business delegate hides the underlying implementation details of the business service, such as look–up and access details of EJBs. 2018/11/20

Business Delegate 2018/11/20

Business Delegate 2018/11/20

Value Object 2018/11/20

Value Object 2018/11/20

The End 2018/11/20