Java 2 Platform,Enterprise Edition(J2EE)从来都很重要,并且J2EE1.4甚至增加了更多的规范和功能。对于设法掌握所有新特性和扩展特性的经验丰富的IT人员来说,J2EE可能是无法抗拒的。但对不熟悉J2EE的人来说,J2EE规范和所有与J2EE相关的技术可能是令人害怕的。
J2EE的作者认识到了J2EE的复杂性,并且已经提供了大量的文档和称为J2EE“蓝图”的示例。这些蓝图指导开发人员正确使用J2EE以及相关技术。本文讨论最新版本的J2EE Enterprise BluePrint,介绍充分利用它们的几个指导原则。
根据SUN Web站点的说法,Enterprise BluePrint是“定义端到端解决方案的应用程序编程模型”,并且包括“指导原则、模式和用于实际应用程序方案的代码”。他们使J2EE开发人员能够“构建健壮的、可伸缩的和便于移植的解决方案”。
Sun为几个不同的技术领域,包括Enterprise、Wireless、Performance和 Web Service提供蓝图集。
Sun的Enterprise BluePrint是描述利用J2EE技术解决实际企业级问题的资源集。这些资源包括开发指导原则、设计模式,以及特别是示例项目。示例项目说明在复杂的多层环境,包括Web层(servlet和 JavaServer Page)、业务层(Enterprise JavaBean)和集成层(Java Message Service、Java Database Connectivity)等环境中的J2EE技术的适当应用。
Enterprise BluePrint提供有关于每种J2EE组件技术的最有效使用方法及其它们的交互作用、会话和实体bean的正确使用方法、容器管理的持久性和bean管理的持久性之间的折衷,以及如何保证J2EE企业应用程序安全等方面的详细信息。与完整的、复杂的企业应用程序源代码相配合,Enterprise BluePrint为J2EE开发将大量的信息和经验浓缩在一个有结合性的、文档完备的最佳实践集中。
J2EE指导原则
J2EE蓝图的目标是让J2EE的开发人员们管理复杂的情况、利用社团经验和重用已被证实的方法和设计。Sun 将几本关于J2EE架构和设计的图书内容作为蓝图的一部分――不仅仅是几节或者几章,而是由J2EE的创造者们编写的全部J2EE书籍。这些书中最重要的一本是“Designing Enterprise Applications with the J2EE Platform, 2nd Edition and Designing Web Services with the J2EE 1.4 Platform”。
因为这些书籍讨论J2EE技术的工作原理、您应该如何使用它们和J2EE组件框架背后的设计基本原则,以及这些基本原则如何驱动组件之间的交互,所以它们很重要。总体的J2EE框架是如此的复杂,以至于在不理解基本理论的情况下,很难知道如何使用它。Enterprise BluePrint指导原则以这些书和其他在线文章的形式,解释了如何使用J2EE技术以及使用原因。
J2EE 1.4教程
另一个指导原则集是J2EE 1.4教程,该教程介绍了J2EE中的大量技术,包括JAXP、JAX-RPC、SAAJ、JAXR、servlet、JSP、JSTL、JavaServer Faces、国际化、会话bean、实体bean、消息驱动bean、EJB查询语言、事务、安全性和JMS。
教程中逐步讨论了这些技术,说明如何使J2EE示例系统运行、如何使用指定技术以及每种技术在基于J2EE的企业应用程序中的作用。本教程对于刚刚从事J2EE开发的开发人员和经验丰富的Java开发人员都很重要,特别是后者中那些想学习更多特定新J2EE技术(例如Web services或者JavaServer Faces)或者现有技术(例如EJB)新特性的人。
核心J2EE设计模式
设计模式在软件设计(以及开发)中起着重要的作用。因为设计模式为公共的设计问题提供已证实的解决方案,并概述各种设计决策的优缺点。此外,由于设计模式不是提供某一问题的特定“解决方案”(例如,库、组件或对象方法),而是提供解决设计问题的一组设计准则,所以设计模式可重用于任何领域或者专业的设计中。
设计模式已经非常普遍,因为它们可以很好地使用简单术语,例如“工厂方法”、“迭代器”、“策略”等,简便地描述具体软件设计和它们的相关信息(例如目的、动机、结构、参与者、因果关系、已知用途以及相关模式)。
作为蓝图的一部分,Sun提供了J2EE设计模式目录(在Core J2EE 模式中也可以用)。这些设计模式是在指导原则中已记录的软件设计和架构的基础,并用示例应用程序表示。核心J2EE设计模式为设计众多类型的企业应用程序打下了坚实的基础,而且适用于J2EE特定解决方案之外一般的企业软件设计。
设计模式太多了,以至于本文无法全部给出,但有几种模式在Enterprise BluePrint中起着重要的作用。Business Delegate模式使Web(表示)层与业务逻辑的具体实现分离。例如,某一JSP页面可能直接依赖于将某些数据表示给终端用户的EJB调用(和相应的服务查找)。
这要求在该JSP页面中有一个复杂的scriptlet,并且如果该JSP页面依赖业务层的任何变化,将非常难以维护。利用Business Delegate将表示和基本的EJB实现隔离,使JSP页面变得简单而且易于维护,从而可以更改业务层。例如,用数据访问对象(Data Access Object,DAO)替代EJB。
DAO是另一种广泛使用的设计模式。它抽象并封装所有对基本数据源(例如数据库或者XML文件)的访问。DAO隐藏基本数据源及其存储格式。这样可以简化基于DAO的业务对象(例如Business Delegate),并允许移植到不同的数据源(例如,文件到数据库).
企业应用程序示例
Enterprise BluePrint含有两个主要应用程序来说明J2EE技术。这两个应用程序都是基于J2EE的强大企业应用程序,充分利用了所有其他的蓝图资源(指导原则、模式等)。这些合作完成某一解决方案的特有J2EE技术示例是蓝图令人关注的焦点。
最初开发的蓝图项目,Pet Store,举例说明了正确使用不同类型EJB的方法,使用servlet和JSP页面及以指导原则和核心模式为基础的基于Web的接口如何依靠这些bean。最新的蓝图介绍了Adventure Builder,这是一个基于J2EE 1.4技术的Web应用程序。它主要关注于Web层和Web services,在业务层没有使用EJB。
因为两个示例应用程序都将J2EE技术利用到其环境中,所以两个应用程序都很重要。它们不仅仅是简单的代码片段或者示例,而是正在使用中的、逼真的企业应用程序。两个示例应用程序演示了掌握各种技术的工作方法以及综合利用各种技术的具体方法,举例说明了指导原则和设计模式,使得他们更容易理解。此外,您可以将它用做开发自己企业应用程序的起点。
总的来说,Enterprise BluePrint提供了学习开发J2EE企业应用程序的完整资源集。指导原则、设计模式和示例应用程序对J2EE初学者和专家一样都非常有价值。利用蓝图中的大量信息和经验,您可以极大地提高您下一个应用程序的性能。