开拓完整J2EE办理方案的八个步调
当前位置:以往代写 > JAVA 教程 >开拓完整J2EE办理方案的八个步调
2019-06-14

开拓完整J2EE办理方案的八个步调

开拓完整J2EE办理方案的八个步调

副标题#e#

摘要

Java 2企业版本(The Java 2 Enterprise Edition,J2EE)平台由4个主要的部门构成:类型,参考实现,兼容性测试包和BluePrints措施。BluePrints描写了一个漫衍式组件体系的最佳操练和设计指导目的。这篇文章先容了一个由八个步调构成的J2EE开拓要领论,该要领是基于Rational Unified Process和BluePrints应用例子的。通过这篇文章,你将可以更好地领略J2EE体系的很多重要主题,而且可以应用这些常识来扩展和修改这个简朴的要领论,从而办理各类特定的贸易问题。

在贸易规模,我们利用Java 2企业版本(J2EE)来办理贸易问题,开拓贸易的软件,可能为其它的贸易项目提供接洽的处事。假如一个公司要利用多层的体系来成立一个电子商务的网站,在其整个开拓周期中,凡是都需要司理、体系构建人员、设计人员、编程人员、测试人员和数据库专家参加进来。

为了让差异的部门可以有效地事情,我们凡是都需要一个软件开拓流程。一个经典的开拓流程包罗有瀑布模子、快速应用开拓(RAD)和最终编程。在这篇文章中,我们将会合先容一个风行的软件设计流程–Rational Unified Process(RUP)。RUP提供了一个专门的要领来为差异的脚色分派任务。它的方针是在一个可估量进度和预算内,确保我们出产出高质量的软件以切适用户的需要。

我利用RUP作J2EE开拓有三个方面的原因。首先,RUP是以体系为中心的;在提交资源作全方位的开拓之前,它首先开拓出一个可执行的体系原型。第二,RUP是迭代的并且是基于组件的。该体系的根基凡是是包括有一个架构,它可以利便地通过迭代地增加组件,从而在不影响系统其它部门的基本上,自界说和扩展一个系统的成果。第三。RUP利用一个家产尺度的语言–UML,可以将系统的体系和组件以可视化的模子展示。RUP有4个差异的开拓阶段:初始(inception), 细化(elaboration), 构建(construction)和转换(transition)。这篇文章将从一个技能的概念来先容J2EE开拓的8个根基步调,它是维持以体系为中心的。

1、需求阐明

需求阐明用来描写系统应该和不该该做什么,从而开拓者和用户可以建设一个初始化的贸易接洽。你可以用贸易的观念、该规模的术语、框图可能其它要领将成果性的需求写成文档,而非成果性的需求,譬喻机能和事务,可以写在附加的需求文档中。你可以用文本可能HTML来建设高级此外UI模子,采纳哪种方法,要看你在该项目中参与的深度。

图一展示了一个典范的电子商务系统。viewOrder图说明的是一个用户通过web登录至系统,查察订单的列表,而且可点击进去查察每张订单的细节。addLineItems说明的是用户欣赏产物目次,选择感乐趣的产物,而且将它们插手到购置订单中。

开辟完整J2EE治理方案的八个法式

******************图一************

II、面向工具的阐明

阐明发生问题域模子:类、工具和交互。你的阐明应该离开任何的技能可能实现的细节,而应该包括有一个抱负的模子。工具阐明可辅佐你领略问题和得到问题规模方面的常识。你必需维护一个纯规模的模子,它不包括技能的细节,这是由于贸易流程的改变要比信息技能慢得多。

上面的两步–需求阐明和面向工具的阐明并不是J2EE特有的,对付很多面向工具的要领论来说,都是很常见的。图2展示了一个高级此外工具阐明模子,它是一个宠物店的例子应用。它说明白我们由需求阐明use cases中确定的主要观念。我们将这些观念模子化到工具中,而且确定它们的干系。

开辟完整J2EE治理方案的八个法式

****************图二*****************

需求和工具阐明的功效是J2EE体系开拓的一个入门点。要开拓一个别系,你可选择一个垂直的部门–凡是是一个要害的部门,譬喻是订单规模的工具模子–来作工具设计、实现、测试和开拓。(一个垂直的部门,是一个RUP观念,是系统的一小部门。开始点是use case的一个子集,如图1所示,尚有规模阐明模子,如图三所示。一个垂直部门的实现就会发生一个全成果的迷你系统,包罗所有层,譬喻用户界面层的JavaServer Pages(JSPs),中层的贸易工具,譬喻是Enterprise JavaBeans (EJBs)和靠山的数据库)。你可以将由原型中获得的履历应用到域工具中,而且将这些认识作为工具设计阶段的一个设计指导目的。

开辟完整J2EE治理方案的八个法式

**************图三*****************


#p#副标题#e#

III、体系类型

颠末前面的两个步调,贸易规模的问题和需求都应该清晰了。此刻我们将会合接头技能计策和体系上。一个别系就是各部门一起界说整个系统的蓝图:布局,接口和通信技能。我们可进一步将一个别系分别为企业和应用体系。

企业系统体系

#p#分页标题#e#

企业系统体系包围了硬件和软件架构,网络拓扑,开拓、测试和出产情况等。这些都反应了一个企业的长线投资。在开拓前,你需要评估现有的软件和硬件架构,假如它不能完全支持J2EE的话,你大概会插手新的组件和进级你现有的系统。你需要彻底地评估硬件,包罗有计较机,路由器、互换机和网络拓扑,因为它们城市影响系统的机能和不变,图4展示了一个多层的网络拓扑。

开辟完整J2EE治理方案的八个法式

**************图四***************

图4中的多层企业体系拥有以下主要的组件:

.Web欣赏器客户端,它大概处在客户端公司的防火墙后头

.HTTP处事器,它凡是处在DMZ区

.Web容器主机提供表示可能贸易逻辑组件

.应用容器提供贸易逻辑组件

.干系数据库打点系统(RDBMS)和数据库提供数据和数据逻辑

所利用的系统体系范例是按照你对安详、机能、靠得住性的需求以及你公司的财务状况而定的。要求很低时,你甚至可以利用一台二手的计较机和一条电话线。在Internet上,有很多开放源代码的操纵系统、Web处事器、应用处事器和数据库打点系统。这些系统的耗费大概只有几百美金,虽然,维护起来大概要贫苦一点。

高端的客户,譬喻很多华尔街的财务机构,它们需要的是一个支持安详、高吞吐量和可应付不行估量网络通信的系统。在这种环境下,你凡是就需要一个n层的体系,该体系带有Web处事器和应用处事器,而且配置为群集而到达容错的目标。

你还需要评估软件架构,包罗Web处事器,安详打点软件,应用处事器,域名打点处事器,数据库打点系统和第三方的软件组件,假如你还没有购置你的应用处事器,那么在评估进程中,选择一个J2EE的出产商将是一个重要的部门。我要提醒你一点,差异厂家对J2EE的实现是有很大差异的,有一些仅支持旧的J2EE版本。另外,一些Web容器可能应用容器大概要比其它的快不少。除了实现J2EE类型外,很多的厂家还售卖J2EE体系的组件可能架构。选择一个不变的J2EE厂家也是重要的,因为这样可以获得持久的支持。你凡是可以购置可能在系统体系级别开拓的成果包罗有:

。事务处理惩罚

。国际化和当地化

。群集和工具漫衍

。Session打点

。应用机能丈量和描写

。动静

。事情流打点

。进口和本性化打点

。层到层通信协议

。安详和防火墙

#p#副标题#e#

应用体系

应用体系成立在企业系统体系之上,指的是一个出格的项目可能应用。在架构完成后,体系成立人员就会研究如何成立一个专门的应用。假如你的企业体系只是支持一个旧的J2EE版本,你大概就需要首先进级你的系统。假如由于预算可能时间干系而不能做进级,那么就必需在旧版本的技能限制下事情。重要的是,要成立企业级的可重用组件。最终的方针是要满意客户的需要。

一个别系成立者并不是一个设计者;体系和设计是两件差异的工作。一个应用体系的范畴是系统的主要布局、它的体系设计模式以及你可以在上面增加组件的架构。体系主要是涉及实现的非成果性方面,而设计是和贸易的use cases有关,use cases是指你应用来转换域工具模子为一个技能工具模子的部门。应用体系是项目标布局,一个专门的应用。你凡是在应用体系布局开拓时要作出的抉择包罗有:

。层间的成果分别

。模子域工具

。以前的系统需要生存的对象

。购置的软件组件

。需要成立的组件

。如何集成第三方的组件

图3中的订单域工具表明白你如何做到模子化域工具。对付当前的Java技能,你可以将域工具漫衍在几个处所,包罗有作为开拓者打点的一连工具放在Web容器中,作为EJB放在应用处事器中,可能作为存储进程放在RDBMS主机中。

在宠物店的设计图中,我们将订单工具设计为一个实体bean、一个细节的工具和一个数据会见工具,如图5和后头的图6所示。当你看到这些时,你将会认识到其体系的重要性。你可以想一下为什么一个在阐明模子的域工具被映射为这么多工具,以及假如改变该设计的话,将会产生什么工作。你也许已经听到过EJB的长处,不外要留意的是差异厂家实现起来的机能是有区此外。当新技能到来时,在将其放在到一个系统之前,你需要做研究而且动手做一些测试。其实所谓体系的开拓,就是将设计和实现域工具模子的垂直块转换为设计其它很多域工具。

开辟完整J2EE治理方案的八个法式

*****************图5*********************

#p#分页标题#e#

在J2EE呈现的早期,一些面向工具的设计者实验将域工具映射到实体bean中,而且将它们在层间传送。他们拥有很是好的UML框图,不外获得的功效是一个慢的系统,这是由于不须要的网络通信造成的。由工具阐明直接进入工具设计,而没有一个别系的设计,没有清楚地领略一个新技能,这样凡是城市导致一个项目失败。

可交付的体系

由于J2EE体系是一个相对新的主题,因此一个可交付的J2EE体系并没有很好地界说。在宠物店的例子应用中,是很丢脸出体系在那边竣事和设计在那边开始。文档由高级此外应用体系查抄、Model-View-Controller设计模式的接头和一个别系概览开始。初级此外文档就是源代码。没有UML框图。Sun的J2EE企业体系认证的委派部门要求所有的可交付体系都用UML暗示。不外,这里仅暗示为一个类框图、一个组件框图和一些工具交互框图,。这些对付一个真正的J2EE应用来说都是不敷够的。要开始的话,体系类型和流程至少需要以下的方面:

.一份系统体系文档,用来描写你现有的硬件、软件、网络拓扑和其它的组件

.一个应用体系文档,用来描写应用的主要布局,包罗所有对付体系有重要浸染的组件、use case组件和以前的组件的一个逻辑视图

.一个新组件设计指导目的,用来描写所有的设计目的和体系抉择,表明全部这些抉择,而且说明假如选择其它的选项会有什么大概的功效。这些目的应该包括所有重要的根基抉择,以便举办新组件的设计时可遵从这些划定,以维持系统体系的完整性

。一个事情体系原型来评估新的技能;从开拓和设置J2EE应用中获取履历;成立体系架构;通过丈量机能、扩展性来预示所冒的风险;尚有向客户证明你的要领是可行的

在你开拓过几个J2EE方案而且得到更多的履历后,原型将不再那么重要,这时一些UML框图和一些设计目的就大概已经足够了。

#p#副标题#e#

IV、工具设计

在体系类型的指导下,设计可在技能上扩展和适应阐明的功效。阐明阶段时,域工具模子化应该和技能的细节无关,而工具设计时则是和技能因素密切相关的,包罗在体系开拓阶段时,回收哪一类的平台、语言和厂家。理论上,你不要修改贸易工具,除非是为了维护它们根基的属性和行为而必需这样做。

在体系决策的指导下,一个具体的设计说明应该提到所有类的类型,包罗须要的实现属性,它们具体的接口和伪代码可能操纵的纯文本描写。类型的具体水平应该到达只要和模子框图团结,就可获得所有须要的编程信息。在很多自动化的软件出产流程中,你可以从面向工具的框图中发生代码的框架。要留意的是stub和skeleton凡是是无需在框图中展示出来的,因为它们对付设计者和编程者来说都是透明的。我在图6中包括它们只是为了说明EJB的根基点。

开辟完整J2EE治理方案的八个法式

****************图六**************

在你完成具体的工具设计后,你就完成了域工具的工具相关映射。这样做的原因是,固然面向工具的要领论在今朝是较量先进的,不外最风行和耐久的商店都是干系型的。另外,一个客户的IT架构在很多方面都已经反应了现有的投资和贸易RDBMS厂家的选择。因此将域工具模子转换为干系模子可能数据库表长短常重要的。有许多容器打点的东西,不外它们不能取代一个好的干系数据库设计。

V、实现

有了一个好的架构和细节设计,实现将是一个很清晰的任务。另外,由于我们在体系原型阶段设计和实现了系统的一个垂直部门,因此在实现阶段我们不会遇到许多贫苦工作。在很多公司中,开拓者凡是都是过早进入实现阶段,出格是当司理在监督他们的时候,因为对付他们,做其它的工作便是挥霍公司的时间。

功效是,不再花时间来画UML框图,而是在代码开拓中测试想法,这要花数礼拜和几个月的时间,在这种景象下,所有的体系决策和设计都是在代码阶段作出的,凡是要在几个月后才会发明开拓已经进入了一个错误的偏向。

VI、确认

确认包罗有测试以验证该系统切合设计而且满意需求。在整个开拓周期中,验证产生在开拓和安装阶段。单位测试、集成测试和用户容忍度测试都是重要的主题

   VII、组合和设置

#p#分页标题#e#

组件装配和方案设置在J2EE的开拓中是出格重要的。开拓和安装的情况大概是完全差异的。假如EJB处在系统中,你需要利用厂家的专门东西来提生发生容器的类,上面我也提到过,Web可能应用组件的设置对付差异的厂家都是纷歧样的。你还必需思量要设置的系统是否拥有任何厂家指定的代码实现。在一个可扩展的体系中,系统的布局应该是不变的,可是应该可以支持增加设置新的可能旧的组件,而无需影响整个系统。

VIII、运作和维护

在最后的阶段,应用交付到用户的手中,你必需为他们提供培训、文档和教诲。用户将会发明问题和大概会提出新的改造。你必需通过正确地修改打点进程来处理惩罚这些需求。你无需为了设置一个新的组件可能替换一个旧的组件而封锁一个正在事情的系统。

体系开拓流程

我们必需做很多体系的抉择,因此我们必需整理出一个别系开拓的流程。对付一个企业来说,凡是有很多应用项目,个中的一些甚至会超过几年,从而导致系统环绕很多周期而变革。在你的规模中,很多同样的项目中城市呈现同样的需求。你应该很容易地从头利用一个扩展的和可重用的体系,它们大概在上个项目周期可能其它的项目中。这样会有一个对普遍架构的需求,可重用的软件架构可为家属式的软件应用提供一个普遍的架构。

假如这是你的首个J2EE项目,你的体系必需被原型化,举办测试、阐明,然后再反复。BluePrint提供了很多好的设计指导目的和最佳的操练,宠物店的例子也是一个很好的参考体系。要很快地提出一个好的而且是高质量的办理方案的有效要领是利用和扩展BluePrint参考体系,然后插入到你本身的贸易组件中。

#p#副标题#e#

利用参考体系

就我的领略来说,宠物店体系的本质是Model-View-Controller和Command模子。你可以将这些模子应用到以Web-centric和EJB-centric的系统。对付每个域工具,一个视图是用嵌套的JSP表示。一个controller处理惩罚与贸易相关的事件,而域工具封装贸易逻辑、事务和安详。我们利用前台的servlet作为中央的controller,以吸收息争释所有用户的操纵。它分配贸易事件到指定的域工具controllers,这些controllers可挪用域工具来改变一连的状态。按照这个事件处理惩罚的功效,一个controller选择下一个显示的视图。以下的组件对付体系都是很重要的,我们可以修改而且应用在大部门的J2EE应用:

MainServlet: 前台的组件是Web容器和该架构之间的接口

ModelUpdateListener: 是获取模子更新事件的工具的接口

ModelUpdateNotifier:在更新模子事件产生的时候通知监听者

RequestProcessor: 处理惩罚由MainServlet吸收的全部请求

RequestHandler:plug-n-play请求处理惩罚器组件的接口

RequestHandlerMapping:包括有请求处理惩罚器映射法则

RequestToEventTranslator:按照请求处理惩罚器的映射法则,中央请求处理惩罚器委派请求处理惩罚到plug-n-play请求处理惩罚组件。到贸易事件的透明http请求

EStoreEvent: 贸易事件

ShoppingClientControllerWebImpl: Proxy-to-EJB层前台节制器

ScreenflowManager: 节制屏幕流,选择视图

ModelUpdateManager: EJB层模子更新打点器,传递由于一个事件而导致的模子修改

ShoppingClientControllerEJB: EJB层前台,为EJB客户提供长途处事

StateMachine:中央事件处理惩罚器,按照状态处理惩罚器的映射法则,委派事件处理惩罚至plug-n-play处理惩罚器组件

StateHandler: EJB层状态处理惩罚器接口

StateHandlerMapping: 包括状态处理惩罚器映射法则

扩展参考体系

BluePrint的例子应用是一个好的起点,你还应该修改它以共同差异的项目和规模。设计模子是可重用的微体系,你可以利用它来扩展参考体系。BluePrint提供了一个很是有用的J2EE模子目次,而23个“Gang of Four”模子都是极好的资源。譬喻,假如你想扩展参考体系以支持事情流打点,你可以在设置可能运行时利用中央controller来动态注册事件处理惩罚器。中央controller要求每个注册的事件处理惩罚器处理惩罚一个事件,直到一个处理惩罚器返回一个指示已经达到呼吁串末端的信息。

插入你的贸易组件

J2EE技能对付每小我私家都是一样的,可是对付差异的规模,我们需要办理的问题都是差异的。一旦你成立了一个根基的J2EE框架,你就必需操作一些use cases来展示该体系可为你的规模事情。你可以通过选择一些景象,最好是该系统的一个重要的成果,可能利用得最多的并且可带来明明的技能上的冒险的景象。由域阐明模子开始,然后实验映射你的域工具到高端和低端的设计模子,就象我们在图5和6中的所示。实现初级此外设计模子,而且测试看它是否真正地运作。假如所有都如设想般运作,你就可以再反复上一步,即找冒险的景象、更多的设想来测试以扩展体系的包围。在颠末重复的验证后,初始化的体系原型应该就会变得不变。你可以认识到哪些组件是可以购置的,旧系统的哪些方面是应该保存的,以及如作甚它们做接口。下一步就是软件设计,你可以利用设计指南中指定的雷同要领和流程来举办继承的开拓。

按部就班

#p#分页标题#e#

我们利用了一个流程的形式,将一个巨大的问题解析为几个小的部门,以便我们能更容易地领略息争决它们。在这篇文章中,我们将J2EE的开拓解析为8个步调,会合先容了体系和设计。我这里先容了重要的体系主题和作出体系抉择的一个流程。我还接头了J2EE体系的脚色和可交付。

进修通过这些步调来开拓J2EE的方案就象进修舞蹈一样。你首先需要自觉和僵持不懈地操练根基的舞步。一旦你熟悉了它们,你就会想到将它们放在一起,而且更会合在曲子里每步的巨细、速度、流和节拍。不外你不该该被一个流程来限制你的缔造力。相反,你应该利用和扩展该流程来满意你的特定需要。要记着,你的最终方针是设计出一个完整的J2EE方案来满意你的客户需求。

    关键字:

在线提交作业