每周学一些J2EE,作点笔记。
目标:能熟练使用Websphere做J2EE的开发工作。
加油!加油!!加油!!!
1. 架构
1) 组件:一个应用级的软件单元 J2SE拥有JavaBeans;J2EE拥有EJB(Enterprise JavaBeans) 2) 系统级实体容器 提供:运行支持、生命周期管理、安全、部署、线程 3) applet和客户应用程序 客户端组件执行自己的Java虚拟机(JVM) 4) WEB组件: 软件实体,响应请求 通常为基于WEB的应用提供用户接口 J2EE的两种组件:◎Servlets ◎JavaServer Pages(JSP)
2. WEB组件
1) Servlet 扩展WEB服务器的功能 接收客户端请求,并将动态结果返回给客户端 返回的结果通常以HTML或XML文档的形式呈现 2) JavaServer Pages(JSP) 为客户端提供动态的内容 基于文本的文档 处理请求 建立响应 包含: 格式化WEB文档的模板数据 为WEB文档产生动态内容的JSP元素和小脚本 3) WEB组件包含在容器中 不同类型的容器: Servelet 支持HTTP JSP WEB容器可以访问J2EE服务,并可与API服务交互
3. Enterprise JavaBeans(EJB)架构
1) 服务器端技术 开发并部署企业应用系统的商业逻辑组件,是基于分布式事务处理的企业级应用程序的组件。 2) 两类企业Beans:Session Beans和Entity Beans 3) Session Beans会话Beans ◆ 为客户端提供服务,通常是单客户端/服务器模式下 ◆ 操作Session Beans:完成计算、通过客户端访问数据库 ◆ 可能是业务动作 ◆ 如果它的容器崩溃,会话Beans是不可被修复的 4) Entity Beans实体Beans ◆ 对数据库中的数据提供了一种对象的视图 经过实体Beans的数据一般是以如下的数据方式存储:Rational数据库管理系统;大型机里的老数据 ◆ 实体Beans可以和它所代表的数据一同存活下去。如果不再使用,实体Beans就会被终止 ◆ 被主键所识别 ◆ 如果它的容器崩溃,实体Beans(包括主键和远程参考)是可以被修复的,在服务器重启时,实体Beans存储的信息会被放到新的容器里。 5) EJB组件容器 ◆ 主管企业Beans ◆ 提供业务和持久服务 ◆ 提供访问J2EE服务,以及与API交互的途径
4. J2EE角色
1) 角色是特有的 2) 一个组织只需将角色稍作更改就能符合自己的特定环境 3) 角色是: ◆ J2EE Product Provider(J2EE成品提供者) ◆ Application Component Provider(应用组件提供者) ◆ Application Assembler(应用程序汇编器) ◆ Deployer(部署者) ◆ System Administrator(系统管理者) ◆ Tool Provider(工具提供者) 4) J2EE Product Provider ◆ 典型的IT产品提供者 ◆ 通过提供以下服务,运行J2EE成品: ◎ 组件容器 ◎ J2EE平台 的API ◎ 其它在J2EE声明里已经定义的特点:在J2EE声明里未清楚定义的,IT产品提供者可以利用这点来扩展他们的产品 5) Application Component Provider ◆ 提供: ◎ HTML文本设计器 ◎ 编程用的代码编辑器 ◎ EJB开发 ◆ 本角色使用一定的工具来制作出J2EE应用程序及组件 ◎ 本角色是开发J2EE平台,或是在J2EE平台上做企业应用开发的关键。
5. 系统管理员
6) 应用程序汇编器 ◆ 通过汇编部件,将提供的应用程序组件汇编成一个完整的J2EE应用程序 ◆ 以企业归档文件(.ear后缀)的形式传递 ◆ 为企业应用程序的部署提供汇编指令:为应用程序额外地描述 ◎ SQL文件的放置 ◎ 相关数据库需执行的脚本 ◎ 建立表格或数据库 7) 部署者 ◆ 特定操作环境里的专家 ◆ 负责: ◎ 部署web应用程序 ◎ 部署EJB ◆ 部署过程通常是三级过程 ◎ 企业应用程序的安装 ◎ 配置 ◎ 执行 8) 系统管理员负责 ◆ 配置和管理企业的数据计算及网络建设 ◆ 监督部署的J2EE应用程序运行时的情况 ◆ 可能需要使用一些专门的运行时监测和管理工具来完成任务
6. Tool Provider(工具提供者):提供用于应用程序组件部署及打包的工具
◆ 分为两类 ◎ 独立的平台工具:可用于所有的开发环境 ◎ 非独立的平台工具:可用于应用程序的部署、管理和监测,必须注意此类工具都是专用于某个环境的,注意每个特定角色的限制
※不需在J2EE Product Provider和Tool Provider角色上花太多时间
以下内容系转载:
EJB的体系结构: EJB的上层的分布式应用程序是基于对象组件模型的,低层的事务服务用了API技术。EJB技术简化了用JAVA语言编写的企业应用系统的开发,配置,和执行。EJB的体系结构的规范由Sun Microsystems公司制定。Inprise的EJB容器是基于1.1版的规范。 EJB技术定义了一组可重用的组件:Enterprise Beans。你可以利用这些组件,象搭积木一样的建立你的分布式应用程序。当你把代码写好之后,这些组件就被组合到特定的文件中去。每个文件有一个或多个Enterprise Beans,在加上一些配置参数。最后,这些Enterprise Beans被配置到一个装了EJB容器的平台上。客户能够通过这些Beans的home接口,定位到某个Beans,并产生这个beans的一个实例。这样,客户就能够调用Beans的应用方法和远程接口。 EJB服务器作为容器和低层平台的桥梁管理着EJB容器和函数。它向EJB容器提供了访问系统服务的能力。例如:数据库的管理和事务的管理,或者对于其它的Enterprise的应用服务器。 所有的EJB 实例都运行在EJB容器中。容器提供了系统级的服务,控制了EJB的生命周期。因为容器掌握了绝大多数系统级的issues(呵呵,不知道怎么翻译)。Enterprise Beans 的开发者不需要应用逻辑考虑进来。通常来说,EJB容器掌握了以下的系统级issues. 1、Security--配置描述器(The Deployment descriptor)定义了客户能够访问的不同的应用函数。容器通过只允许授权的客户访问这些函数来达到这个效果。 2、Remote Connectivity--容器为远程链接管理着低层的通信issues,而且对Enterprise Beas的开发者和客户都隐藏了通信issues.Enterprise Beans的开发者在编写应用方法的时候,就象是在条用本地的平台一样的。客户也不清楚他们调用的方法可能是在远程被处理的。 3、Life Cycle managment--客户简单的创建一个Enterprise beans的实例,并通常取消一个实例。而容器管理着Enterprise Beans的实例,使Enterprise Beans实现最大的效能和内存利用率。容器能够这样来激活和去活Enterprise Beans,保持众多客户共享的实例池。等等。 4、Trasction management—配置描述器定义了Enterprise beans 的事务处理的需求。容器管理着那些管理分布式事务处理的复杂的issues。这些事务可能要在不同的平台之间更新数据库。容器使这些事务之间互相独立,互不干扰。保证所有的更新数据库都是成功发生的,否者,就回滚到事务处理之前的状态。 Enterprise Beans 组件: Enterprise Beans 是基于分布式事务处理的企业级应用程序的组件。所有的Enterprise beans都有如下的特点: Enterprise beans包含了处理企业数据的应用逻辑。Enterprise beans provider定义了Enterprise beans的客户界面(Enterprise beans 的远程界面)。这样的界面不受容器和服务器的影响。于是,当一个Enterprise beans被集合到一个应用程序中去时,不用更改代码和重新编译。Enterprise beans能够被定制各种系统级的服务,例如安全和事务处理的特性,都不是属于Enterprise beans class的。而是由配置和组装应用程序的工具来实现。有两种类型的Enterprise beans: Session beans 和 entity beans.(还有一种message driven bean,这里暂时不加讨论) Session beans: Session beans 是一种作为单个的client执行的对象。作为对远程的任务请求的相应,容器产生一个Session beans 的实例。一个Session beans有一个client.从某种程度上来说,一个Session bean 对于服务器来说就代表了它的那个client.Session beans 也能用于事务,它能够更新共享的数据,但它不直接描绘这些共享的数据。 Session beans 的生命周期是相对较短的。典型的是,只有当client保持会话的时候,Session beans 才是活着的。一旦client退出了,Session beans 就不再与client相联系了。Session beans被看成是瞬时的,因为如果容器崩溃了,那么client必须重新建立一个新的Session对象来继续会话。 一个Session bean典型的声明了与client的互操作或者会话。也就是说,Session bean了在客户会话期间,通过方法的调用,掌握Client的信息。一个具有状态的Session bean称为有状态的Session bean.当client终止与Session beans互操作的时候.会话终止了,而且,bean 也不再拥有状态值。 一个Session bean也可能是一个无状态的 session bean.无状态的Session beans并不掌握它的客户的信息或者状态。Client能够调用beans的方法来完成一些操作。但是,beans只是在方法调用的时候才知道client的参数变量。当方法调用完成以后,beans并不继续保持这些参数变量。这样,所有的无状态的session beans的实例都是相同的,除非它正在方法调用期间。这样,无状态的Session beans就能够支持多个client.容器能够声明一个无状态的Session beans.能够将任何Session beans指定给任何client. Entity Beans: Entity Beans对数据库中的数据提供了一种对象的视图。例如:一个Entity bean能够模拟数据库表中一行相关的数据。多个client能够共享访问同一个Entity bean.多个client也能够同时的访问同一个Entity bean.Entity beans通过事务的上下文来访问或更新下层的数据。这样,数据的完整性就能够被保证。 Entity Beans能存活相对教长的时间,并且状态是持续的。只要数据库中的数据存在,Entity beans就一直存活。而不是按照应用程序或者服务进程来说的。即使EJB容器崩溃了,Entity beans也是存活的。Entity Beans生命周期能够被容器或者 Beans自己管理。如果由容器控制着保证 Entity beans持续的issus。如果由Beans自己管理,就必须写Entity beans的代码,包括访问数据库的调用。 Entity Beans是由主键(primary key 一种唯一的对象标识符)标识的。通常,主键与标识数据库中的一块数据,例如一个表中的一行,的主键是相同的。主键是client能够定位特定的数据块。 EJB roles: EJB体系结构通过把编程的过程分为6个不同的角色而使开发复杂的的应用系统变的简单。6个不同的角色,每个都有特定的任务。6个角色包括下层的服务,应用程序的开发,配置和操作说明(issues) EJB体系结构能够简化应用程序开发人员的工作。在EJB体系结构中,容器和代理服务承担了很多在其他环境中又程序设计人员承担的工作。这样的代理提供了很多原来需要程序设计人员编写代码的系统级的服务。 Infrastructure roles;(下层构造角色) EJB Server Providor服务提供者是典型的提供分布式低层服务的代理。EJB服务提供者提供了一个分布式应用程序开发者需要的平台和设施。也提供了分布式程序的运行时环境。 EJB Container Providor 容器提供者是分布式系统,事务处理,安全方面的专家容器提供者提供了一个EJB的配置工具,和这些配置实例的运行时支持。 一个容器对一个或多个EJB来说,是一个运行时系统。它将Enterprise Beans和EJB服务,包括事务服务,安全服务,分布式网络管理等胶合在一起。容器是既是一个定制的代码和对特定的 Enterprise beans产生详细代码的工具。容器也提供了一个配置Enterprisebeans的工具和管理监视应用程序的方法。