(作者 : 艾群科技 萧松瀛)
⊙吻合 J2EE 是一个重点
J2EE技术的一个优势是透过他发展出来的应用程序具备可携性。想要建
立以 J2EE 技术为背景的跨平台应用程序,程序开发者需要依照 J2EE 规
格来撰写应用程序的元件,同时需要仔细的测试它们。透过这样的过程,
可以确认撰写出来的应用程序将可以在各种通过 J2EE 技术认证的
Application Server ,而不用顾虑到作业系统平台。
建立 J2EE 应用程序让程序开发者具备几种优势,譬如,一但您精通了
几种简单的API 以及应用程序的相关设定,那么您可以很容易的将这些技
巧应用来建立更庞大而且功能更棒的 J2EE 应用程序。你可以透过统一,
而且是以元件为基础的 application model 来将您原来的程序包装进来
,比起置换掉原来既有的应用程序来说,可以省下庞大的费用。此外,透
过 J2EE 的技术,也可以管理许多应用程序共有的功能,就像是资源,交
易,系统安全,认证,资料的永续保存,名称及目录服务以及讯息服务等
等,这可以让你更加的专注在 business process 的问题上,而将一些比
较低阶的程序设计细节,留给 J2EE 系统架构处理掉。
如果你是个 IT 管理者,或是技术评估员,您想将组织带入 J2EE 平台
,那么您应该更积极的想知道 J2EE 技术包含了哪些东西,他的架构,以
及用他来建立元件的方式,程序开发者的基本角色等等,这样你才可以知
道你可以将 J2EE 应用在哪些方面。在SEM-345 (Java 2 Platform , Ent
erprise Edition: Technology Overview Seminar) 的 Seminar 中有些
相关的主题。透过两天的研讨会可以让您具备有广泛的 J2EE 技术概观
。参加的人可以学到 J2EE 的架构以及他在工业中的意义,同时也可以知
道支援 J2EE 架构的技术以及如何将 J2EE 技术应用来解决真实生活中的
一些问题。
⊙一个简短的 J2EE 架构以及技术 J2EE 不只是一个 Java 技术平台,他
也是一个完整的企业开发哲学, J2EE 系统包含了四个重要的部分
1. J2EE 平台规格J2EE 平台的规格列出了许多 APIs 以及平台开
发厂商必须要支援的 J2EE平台中,至少需要包含的某些部分。
2. 参考范例的实作部分参考范例的实作是一个免费而有用的元件
,他可以用来操控 J2EE 伺服器平台,藉以测试 J2EE 元件是否吻合 J2E
E 的要求,他可以用来展示以 J2EE 平台,也可以当作开发的原型。
3. 一组相容套件的测试这一组套件可以让平台提供厂商用来测试
他们所实作出来的 J2EE 平台是否完全吻合 J2EE 规格。
4. 设计蓝图(blueprint)设计蓝图是最佳的练习辅助,他可以简
化一些 J2EE 技术解决方案的开发者想要做的工作,譬如扩充性,以及可
用性等等。 J2EE 蓝图在公开的时候需要包括 pattern ,范例,以及文
件,这样才可以帮助设计者以及开发者在 J2EE 技术背景上建立他们的应
用程序。
如果要吻合 J2EE 标准,就必须要建立以元件为基础的应用程序,而J2EE
架构包含了三个主要的部分:
a. Components 包含展示以及企业流程逻辑。
b. Containers 则提供了元件所需要的内容管理。
c. Connectors 则提供了与企业内部的资料库连结的管道。
因此 J2EE 应用程序会根据功能面来切分各种不同的元件,而您可以安装
不同的应用程序元件在同一台或是不同的伺服器上,藉以组成一个 J2EE
应用程序。而应用程序则依照在 J2EE 多层架构环境中所在的阶层位置来
加以安装。阶层的位置可能是客户端(Client tier) ,可能是 Web tier
,或是 Business tier ,也有可能是企业内资讯系统 (Enterprise
Information System) ,如下图
+-------------+ +----------------------------------+ +----------+
| Client Tier | | Web Tier Business Tier | | EIS Tier |
+-------------+ | ----------- ------------- | +----------+
| ||(Presentation (Business || Data |
|(Web Browser)| | Logic ) Logic) | | Sources |
+-------------+ +----------------------------------+ +----------+
Middle Application Tier
J2EE Architecture
每一层都有定义好的介面 (Interface),同时也可能包含一种或是多种技
术的应用程序元件。
1. Client tier
Client tier 负责展示资料,同时也收集终端使用者(End User)的输入。
J2EE技术支援好几种形式的客户端展示方法,像是 HypertextMarkup
Language(HTML) Client, applet ,Extensible Markup Language(XML)
文件,当然也包含了以 Java 为技术背景的独立 Client 。
2. Web tier
这一个阶层负责产生展示逻辑(presentation logic) ,也接收由 HTML,
Applet , XML Client 所输入的资料,同时在产生适当的回应给使用者。
你可以在Web Server上透过Java Servlets技术,或是 JavaServer Page
(JSP)技术来实作这一层。 JSP page 允许您将您的 Web 连结到企业内部
的其他元件。当然,这一层也可以只是简单的产生动态的 Web Page ,就
如同 XML 文件的产生一般。XML则让这一层具备有跨平台的能力,透过标
准的资料格式则可以让这一层在以 Java 为技术背景的应用程序,在不同
平台间相互交换资料。
3. Business tier
这一层透过 Enterprise JavaBean (EJB) 技术实作了展示层以及企业流
程,EJB 的架构设计让开发者可以专注於建立企业流程来简化整个发展过
程,而不是让开发者浪费时间在其他琐碎的事情上。EJB 的结构也允许您
呼叫其他的应用程序。在 Session bean 可以支援 server 端的逻辑流程
的同时, Entity bean 则支援资料的永续保存。因此 Session Bean相对
於 Entity 就好像是Client 与Server 一样的关系了。应用程序的逻辑可
以在一台 application server 上执行,这样client 就可以很精简,同
时这个程序逻辑也可以被重复使用。
4. EIS tier
这一层则处理企业内部的资料系统,他也包含了企业内的基本系统,譬如
Enterprise Resource Planning (ERP),主机的交易处理,资料库系统以
及其他内部私有的资讯系统等等。这其实就是所谓的 "包装包含 ( wrap
and embrace)",就像是 J2EE技术可以让现存的Enterprise Application
来撷取关联式资料库的内容一般。
⊙架构考量
要知道的是,在考虑 J2EE 应用程序的架构以及发展时,有很多重要的因
素是需要考量的。譬如应用程序需要做时么事情?因此当我们开始架构应
用程序或是要避免过分的设计时,那么使用正确的技术就变得极为重要了
。譬如设计一个使用 EJB 为基础的应用程序就很可能就会过度的使用
Java 技术,因为我们所需要的东西用 JSP 以及JDBC 技术就已经足够了
。很重要的一点是去了解各个技术的优点,同时得权衡不同的技术来建立
一个 J2EE 应用程序,就像是考虑是不是要使用 Web Base 的解决方案还
是非 Web Base 的解决方案一般。多做一些关於交易管理,安全管理以及
部署元件等等的分析与决策,将有助於一个应用程序的设计。而别忘记的
是 J2EE 蓝图也展示了最棒的 J2EE 应用程序的范例,这些也都可以帮助
您产生您自己的应用程序架构。设计者以及资深的开发者需要引用 J2EE
技术,并且权衡这些决定,此外,也需要一些捷径来学习如何让让 J2EE
应用程序能够扩充。因此他们也需要学习如何做出一个具备灵活,效率,
安全,以及容易管理的应用程序,或是学习相关的知识。
⊙使用 J2EE 技术的基本开发角色
J2EE 的标准需要一个很清楚的区隔,这个区隔用来隔开展示层以及
Application Server 中的商业逻辑。这样的模组会产生两种基本的J2EE
应用程序开发角色,一个是 Web 元件的开发,另外一个则是商业元件
(Business component) 的开发。下图表事了在 J2EE的多层架构中,这些
角色所在的位置。
+-----------------+-----------------+
| Web | Business |
| Component | Component |
| Developer | Developer |
+---------------+ |+-------------+ | +-------------+| +--------------------+
| Client host | ||Web Server | | |Application || | Data Server |
| 1.JavaBeans | ||1.Servlets | | | Server || | 1.Enterprise Data |
| 2.HTML/XML/WML| HTTP ||2.JSP Pages | RMI |1.EJB Session|| JDBC | 2.Legacy Apps |
| 3.Applets ||| || Beans ||| 3.Backend Interface|
| 4.GUI | HTML || | | |2. EJB Entity|| | 4.Multiple Data |
| | || | | | Beans || | Sources |
+---------------+ |+-------------+ | +-------------+| +--------------------+
+-----------------+-----------------+
Developer Roles
⊙Web Component Developers
在 J2EE 平台上的 Web 元件的开发者需要撰写可以在 Web 上面执行的应
用程序,他可以是 JSP ,也可以是 Web-based 的 applets 以及 servlet
,这些技术的重点都是在於想在 Client 端展示 HTML 网页。因此 Web
元件的开发者需要了解 JSP,Servlet , Web-based 的 Applets 以及
Web 的相关技术,譬如 HTML 或是 CGI scripts 等等。
⊙Business Component Developers
在 J2EE 平台上的商业元件的开发者则需要撰写这些 business 程序码来
吻合各个领域的需求,譬如银行,零售商,或是金融机构等等。这样的开
发者则需要具备建立可以在 Enterprise Application Server执行的EJB
元件的能力。因此他也必须要了解 EJB元件如何从客户端程序来接收资料
,处理资料,并且在将他送到企业中的资讯系统来加以储存,当然,也必
须要能够从资讯系统将资料读取出来之後转给客户端的程序。曾经在主机
上使用 COBOL 或是 C++ 的程序开发者,如果能够处理商业流程的逻辑,
而且知道如何在与後端系统中找出 interface的开发者,则很适合这样的
角