J2EE Architecture(4)
在Java语言从客户机/服务器环境发展为分布式平台后,J2EE应运而生。
1、J2EE要素
1)J2EE规范和API
J2EE规范旨在提供一个基于标准的组件框架,供构建兼容的企业应用程序。
“规范”是一组规则,描述J2EE API的特性和标准。
这些特性和标准主要用来指导企业服务器厂商。J2EE平台厂商提供的应用程序和服务器要满足核心规则集合的要求。
J2EE规范包含若干个规范和API,故J2EE规范称为“规范的规范”。
J2EE核心规范包含的内容:
(1)EJB(Enterprise Java Bean)
(2)Servlet
(3)JSP(Java Server Page)
与服务有关的规范有:
(1)JNDI(Java Naming and Directory Interface)Java命名和目录接口
(2)JDBC(Java Database Connectivity)Java数据库连接
(3)JTS(Java Transaction Services)Java事务服务和JTA(Java Transaction API)Java事务API
(4)JMS(Java Message Service)Java消息服务
支持规范包括:
(1)JavaMail
(2)JAF(JavaBeans Activation Framework)JavaBean激活框架
(3)J2EE Connector Architecture(J2EE连接器架构)
J2EE API指所有相关规范的API。一些API必须由厂商当做服务器和容器开发的一部分而实现,其它则由企业应用程序的开发人员实现。
企业应用程序的重要API包括:
(1)Servlet API和Filter API
(2)JSP API
(3)EJB API
2)J2EE参考实现
参考实现(Reference Implementation,RI)是一个J2EE操作平台,有两个作用:
(1)允许开发人员体验和理解J2EE的工作原理;
(2)开发人员可以创建一个小企业应用程序,执行必要的功能测试,并检查说开发应用程序的移植性。
3)J2EE蓝图
蓝图是一个高级指南,详细描述如何利用J2EE技术构建企业应用程序。
J2EE蓝图提供了最佳实践、策略建议、指南、设计模式和架构模式等。
J2EE蓝图不仅包含建议和指南,还讨论一个简单的Java Pet Store示例程序。
4)J2EE兼容测试套件
4.1)兼容测试套件(Compatibility Test Suite,CTS)是Sun公司为J2EE应用服务器提供的服务,该服务还颁发“兼容J2EE”的证书。
这是一项收费服务,它对应用服务器集合进行一系列测试,易检查应用服务器是否满足规范中声明的所有要求。
测试套件面向创建企业平台服务器的厂商。
J2EE兼容测试套件包含对应用服务器的大量测试。如J2EE 1.3兼容测试套件包含15000多项针对J2EE各方面的测试。
CTS测试分为三种类型:
注:CTS测试不执行与企业应用程序非功能部分相关的任何测试,不检查或验证性能和安全性等方面。
(1)签名测试
用于检查应用服务器对J2EE所有规范和规则的实现,只检查必须的方面,不检查和验证规范以外的任何内容。
(2)API测试
用于验证产品是否正确实现了所有需要的应用程序编程接口,还检查各个API的行为是否符合规范要求。
(3)集成测试
也称“端到端测试”。用于分析应用程序的API,以及底层机制或服务提供者。
行为测试跨越多层:从客户层一直到数据层。
集成测试不仅分析测试“请求”部分,还检查测试“响应”部分。
集成测试模拟用户的实时交互,结果在后端数据层更新数据,在用户接收端接收响应。
4.2)J2EE应用程序验证包
J2EE应用程序验证包(Application Verification Kit,AVK)是一组工具和验证程序,可帮助J2EE应用开发人员测试应用程序,可测试J2EE应用程序是否正确使用各个API,并测试应用程序在多个J2EE兼容应用服务器上的移植性。
与CTS不同,AVK免费。CTS测试用于评估应用服务器、容器和其它相关环境;AVK则用于测试应用程序本身。
J2EE AVK的工具和程序通过在以下两个阶段运行测试来确保符合J2EE规范:
(1)静态验证测试
确定了应用程序套件的“部署描述符”符合规范要求,且不包含任何特定厂商专用的方法。
(2)运行时验证测试
通过运行J2EE应用程序来确定调用的EJB组件方法、Web服务方法和Web组件的均衡性。