??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲综合伊人久久大杳蕉,亚洲二区在线视频,亚洲乱码无码永久不卡在线http://www.tkk7.com/yesjoy/category/7266.html<font color="red">?lt;/font><font color="blue">d爬山 所以艰?dL 所以苦?lt;/font><font color="red">?lt;/font>zh-cnTue, 07 Sep 2010 03:01:47 GMTTue, 07 Sep 2010 03:01:47 GMT60J2EE 全面?/title><link>http://www.tkk7.com/yesjoy/articles/29994.html</link><dc:creator>★yesjoy?/dc:creator><author>★yesjoy?/author><pubDate>Thu, 09 Feb 2006 01:23:00 GMT</pubDate><guid>http://www.tkk7.com/yesjoy/articles/29994.html</guid><wfw:comment>http://www.tkk7.com/yesjoy/comments/29994.html</wfw:comment><comments>http://www.tkk7.com/yesjoy/articles/29994.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yesjoy/comments/commentRss/29994.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yesjoy/services/trackbacks/29994.html</trackback:ping><description><![CDATA[本文从五个方面对J2EEq行了比较全面的介绍。从J2EE的概念说P到它的优势,到J2EE典型的四层模型,和它的框架结构,最后是J2EE十三U核心技术的一个简介。本文分门别cȝ对J2EE中的服务Q组Ӟ层次Q容器,API都做了比较详l的介绍Q相信看完此文,读者会对J2EE有一个更清晰的认识?BR><BR>一. J2EE的概?BR>目前QJava 2q_?个版本,它们是适用于小型设备和卡的Java 2q_Micro版(Java 2 Platform Micro EditionQJ2MEQ、适用于桌面系l的Java 2q_标准版(Java 2 Platform Standard EditionQJ2SEQ、适用于创建服务器应用E序和服务的Java2q_企业版(Java 2 Platform Enterprise EditionQJ2EEQ?BR>J2EE是一U利用Java 2q_来简化企业解x案的开发、部|和理相关的复杂问题的体系l构。J2EE技术的基础是核心Javaq_或Java 2q_的标准版QJ2EE不仅巩固了标准版中的许多优点Q例?~写一ơ、随处运?的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式{等Q同时还提供了对 EJBQEnterprise JavaBeansQ、Java Servlets API、JSPQJava Server PagesQ以及XML技术的全面支持。其最l目的就是成Z个能够企业开发者大q羃短投攑ָ场时间的<BR>体系l构?BR>J2EE体系l构提供中间层集成框架用来满x需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供l一的开发^収ͼJ2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持Q完全支持Enterprise JavaBeansQ有良好的向导支持打包和部v应用Q添加目录支持,增强了安全机Ӟ提高了性能?BR><BR>? J2EE的优?BR>J2EE为搭建具有可伸羃性、灵zL、易l护性的商务pȝ提供了良好的机制:<BR>保留现存的IT资: ׃企业必须适应新的商业需求,利用已有的企业信息系l方面的投资Q而不是重新制定全盘方案就变得很重要。这P一个以渐进的(而不是激q的Q全盘否定的Q方式徏立在已有pȝ之上的服务器端^台机制是公司所需求的。J2EE架构可以充分利用用户原有的投资,如一些公怋用的BEA Tuxedo、IBM CICS, IBM Encina,、Inprise VisiBroker 以及Netscape Application Server。这之所以成为可能是因ؓJ2EE拥有q泛的业界支持和一些重要的'企业计算'领域供应商的参与。每一个供应商都对现有的客h供了不用废弃已有投资Q进入可UL的J2EE领域的升U途径。由于基于J2EEq_的品几乎能够在M操作pȝ和硬仉|上q行Q现有的操作pȝ和硬件也<BR>能被保留使用?BR>高效的开? J2EE允许公司把一些通用的、很J琐的服务端d交给中间件供应商d成。这样开发h员可以集中精力在如何创徏商业逻辑上,相应地羃短了开发时间。高U中间g供应商提供以下这些复杂的中间件服?<BR>状态管理服?nbsp;-- 让开发h员写更少的代码,不用兛_如何理状态,q样能够更快地完成程序开发?BR>持箋性服?nbsp;-- 让开发h员不用对数据讉K逻辑q行~码p~写应用E序Q能生成?BR>dyQ与数据库无关的应用E序Q这U应用程序更易于开发与l护?BR>分布式共享数据对象CACHE服务 -- 让开发h员编刉性能的系l,极大提高整体部v?BR>伸羃性?BR>支持异构环境: J2EE能够开发部|在异构环境中的可移植程序。基于J2EE的应用程序不<BR>依赖M特定操作pȝ、中间g、硬件。因此设计合理的ZJ2EE的程序只需开发一?BR>可部v到各U^台。这在典型的异构企业计算环境中是十分关键的。J2EE标准也允?BR>客户订购与J2EE兼容的第三方的现成的lgQ把他们部v到异构环境中Q节省了p?BR>制订整个Ҏ所需的费用?BR>可׾~? 企业必须要选择一U服务器端^収ͼq种q_应能提供极佳的可伸羃性去满那些在他们系l上q行商业q作的大Ҏ客户。基于J2EEq_的应用程序可被部|到各种操作pȝ上。例如可被部|到高端UNIX与大型机pȝQ这U系l单机可支持64?56个处理器。(q是NT服务器所望尘莫及的)J2EE领域的供应商提供了更为广泛的负蝲q{略。能消除pȝ中的瓉Q允许多台服务器集成部v。这U部|可达数千个处理器,实现可高度׾~的pȝQ满x来商业应用的需要?BR>E_的可用? 一个服务器端^台必能全天候运转以满公司客户、合作伙伴的需要。因为INTERNET是全球化的、无处不在的Q即使在夜间按计划停Z可能造成严重损失。若是意外停机,那会有灾难性后果。J2EE部v到可靠的操作环境中,他们支持长期的可用性。一些J2EE部v在WINDOWS环境中,客户也可选择健壮性能更好的操作系l如Sun Solaris、IBM OS/390。最健壮的操作系l可辑ֈ99.999%的可用性或每年只需5分钟停机旉。这是实时性很强商业系l理想的选择?BR><BR><BR>? J2EE 的四层模?BR>J2EE使用多层的分布式应用模型Q应用逻辑按功能划分ؓlgQ各个应用组件根据他?BR>所在的层分布在不同的机器上。事实上Qsun设计J2EE的初h是ؓ了解决两层模?cl<BR>ient/server)的弊端,在传l模式中Q客L担当了过多的角色而显得臃肿,在这U模<BR>式中Q第一ơ部|的时候比较容易,但难于升U或改进Q可伸展性也不理惻I而且l常<BR>Z某种专有的协议——通常是某U数据库协议。它使得重用业务逻辑和界面逻辑非常<BR>困难。现在J2EE 的多层企业应用模型两层化模型中的不同层面切分成许多层。一?BR>多层化应用能够ؓ不同的每U服务提供一个独立的层,以下?nbsp;J2EE 典型的四层结?<BR>q行在客L机器上的客户层组?BR>q行在J2EE服务器上的Web层组?BR>q行在J2EE服务器上的业务逻辑层组?BR>q行在EIS服务器上的企业信息系l?Enterprise information system)层Y?BR>J2EE应用E序lg<BR>J2EE应用E序是由lg构成?J2EElg是具有独立功能的软g单元Q它们通过相关的类<BR>和文件组装成J2EE应用E序Qƈ与其他组件交互。J2EE说明书中定义了以下的J2EElg<BR>:<BR>应用客户端程序和applets是客户层lg.<BR>Java Servlet和JavaServer Pages(JSP)是web层组?<BR>Enterprise JavaBeans(EJB)是业务层lg.<BR>客户层组?BR>J2EE应用E序可以是基于web方式?也可以是Z传统方式?<BR>web 层组件J2EE web层组件可以是JSP 面或Servlets.按照J2EE规范Q静态的HTML面<BR><BR><BR>和Applets不算是web层组件?BR>正如下图所C的客户层那Pweb层可能包含某?nbsp;JavaBean 对象来处理用戯入,q把<BR>输入发送给q行在业务层上的enterprise bean 来进行处理?BR>业务层组?BR>业务层代码的逻辑用来满银行Q零售,金融{特D商务领域的需?p行在业务层上<BR>的enterprise bean q行处理. 下图表明了一个enterprise bean 是如何从客户端程?BR>接收数据Q进行处?如果必要的话), q发送到EIS 层储存的Q这个过E也可以逆向q?BR>行?BR>有三U企业的bean: 会话(session) beans, 实体(entity) beans, ?nbsp;消息驱动(mes<BR>sage-driven) beans. 会话bean 表示与客LE序的时交? 当客LE序执行完后<BR>, 会话bean 和相x据就会消? 相反, 实体bean 表示数据库的表中一行永久的记录<BR>. 当客LE序中止或服务器关闭? ׃有潜在的服务保证实体bean 的数据得以保?BR>.消息驱动 bean l合了会话bean ?nbsp;JMS的消息监听器的特? 允许一个业务层lg?BR>步接收JMS 消息.<BR>企业信息pȝ?BR>企业信息pȝ层处理企业信息系lY件包括企业基pȝ例如企业资源计划 (ERP)<BR>, 大型Z务处? 数据库系l?和其它的遗留信息pȝ. 例如QJ2EE 应用lg可能?BR>了数据库q接需要访问企业信息系l?BR>? J2EE 的结?BR>q种ZlgQ具有^台无x的J2EE l构使得J2EE E序的编写十分简单,因ؓ业务<BR>逻辑被封装成可复用的lgQƈ且J2EE 服务器以容器的Ş式ؓ所有的lgcd提供后台<BR>服务. 因ؓ你不用自己开发这U服? 所以你可以集中_֊解决手头的业务问?<BR><BR><BR>容器和服?BR>容器讄定制了J2EE服务器所提供得内在支持,包括安全Q事务管理,JNDI(Java Nami<BR>ng and Directory Interface)d,q程q接{服务,以下列出最重要的几U服务:<BR>J2EE安全(Security)模型可以让你配置 web lg或enterprise bean ,q样只有被授?BR>的用h能访问系l资? 每一客户属于一个特别的角色Q而每个角色只允许Ȁzȝ?BR>的方法。你应在enterprise bean的布|描qC声明角色和可被激zȝҎ。由于这U声<BR>明性的ҎQ你不必~写加强安全性的规则?BR>J2EE 事务理QTransaction ManagementQ模型让你指定组成一个事务中所有方法间?BR>关系Q这样一个事务中的所有方法被当成一个单一的单? 当客LȀzM个enterpri<BR>se bean中的ҎQ容器介入一理事务。因有容器管理事务,在enterprise bean中不<BR>必对事务的边界进行编码。要求控制分布式事务的代码会非常复杂。你只需在布|描q?BR>文g中声明enterprise bean的事务属性,而不用编写ƈ调试复杂的代码。容器将L?BR>件ƈZ处理此enterprise bean的事务?BR>JNDI d(JNDI Lookup)服务向企业内的多重名字和目录服务提供了一个统一的接?q?BR>样应用程序组件可以访问名字和目录服务.<BR>J2EEq程q接QRemote Client ConnectivityQ模型管理客L和enterprise bean间的<BR>低层交互. 当一个enterprise bean创徏? 一个客L可以调用它的Ҏp它和客户<BR>端位于同一虚拟Z一?<BR>生存周期理QLife Cycle ManagementQ模型管理enterprise bean的创建和U除,一?BR>enterprise bean在其生存周期中将会历l几U状态。容器创建enterprise beanQƈ?BR>可用实例池与zd状态中Ud他,而最l将其从容器中移除。即使可以调用enterprise<BR> bean的create及removeҎQ容器也会在后台执行这些Q务?BR><BR><BR>数据库连接池QDatabase Connection PoolingQ模型是一个有价值的资源。获取数据库<BR>q接是一耗时的工作,而且q接数非常有限。容器通过理q接池来~和q些问题?BR>enterprise bean可从池中q速获取连接。在bean释放q接之可为其他bean使用?BR>容器cd<BR>J2EE应用lg可以安装部vC下几U容器中?<BR>EJB 容器理所有J2EE 应用E序中企业bean 的执? enterprise bean 和它们的?BR>器运行在J2EE 服务器上.<BR>Web 容器理所有J2EE 应用E序中JSP面和Servletlg的执? Web lg和它们的?BR>器运行在J2EE 服务器上.<BR>应用E序客户端容器管理所有J2EE应用E序中应用程序客Llg的执? 应用E序?BR>L和它们的容器q行在J2EE 服务器上.<BR>Applet 容器是运行在客户端机器上的web览器和 Java 插g的结?<BR>? J2EE的核心API与组?BR>J2EEq_׃整套服务QServicesQ、应用程序接口(APIsQ和协议构成Q它对开发基<BR>于Web的多层应用提供了功能支持Q下面对J2EE中的13U技术规范进行简单的描述(限于<BR>幅Q这里只能进行简单的描述):<BR>JDBC(Java Database Connectivity):<BR>JDBC API问不同的数据库提供了一U统一的途径Q象ODBC一PJDBC对开发者屏?BR>了一些细节问题,另外QJDCBҎ据库的访问也hq_无关性?BR>JNDI(Java Name and Directory Interface):<BR>JNDI API被用于执行名字和目录服务。它提供了一致的模型来存取和操作企业U的资源<BR>如DNS和LDAPQ本地文件系l,或应用服务器中的对象?BR><BR><BR>EJB(Enterprise JavaBean):<BR>J2EE技术之所以赢得某体广泛重视的原因之一是EJB。它们提供了一个框架来开发和?BR>施分布式商务逻辑Q由此很显著地简化了h可׾~性和高度复杂的企业应用的开?BR>。EJB规范定义了EJBlg在何时如何与它们的容器进行交互作用。容器负责提供公用的<BR>服务Q例如目录服务、事务管理、安全性、资源缓冲池以及定w性。但q里值得注意?BR>是,EJBq不是实现J2EE的唯一途径。正是由于J2EE的开放性,使得有的厂商能够以一U?BR>和EJBq的方式来辑ֈ同样的目的?BR>RMI(Remote Method Invoke):<BR>正如其名字所表示的那PRMI协议调用q程对象上方法。它使用了序列化方式在客L<BR>和服务器端传递数据。RMI是一U被EJB使用的更底层的协议?BR>Java IDL/CORBA:<BR>在Java IDL的支持下Q开发h员可以将Java和CORBA集成在一赗?nbsp;他们可以创徏Java?BR>象ƈ使之可在CORBA ORB中展开, 或者他们还可以创徏Javacdƈ作ؓ和其它ORB一起展开<BR>的CORBA对象的客戗后一U方法提供了另外一U途径Q通过它Java可以被用于将你的?BR>的应用和旧的pȝ盔R成?BR>JSP(Java Server Pages):<BR>JSP面由HTML代码和嵌入其中的Java代码所l成。服务器在页面被客户端所h以后?BR>q些Java代码q行处理Q然后将生成的HTML面q回l客L的浏览器?BR>Java Servlet:<BR>Servlet是一U小型的JavaE序Q它扩展了Web服务器的功能。作ZU服务器端的应用<BR>Q当被请求时开始执行,q和CGI Perl脚本很相伹{Servlet提供的功能大多与JSPcM<BR>Q不q实现的方式不同。JSP通常是大多数HTML代码中嵌入少量的Java代码Q而servlet<BR><BR><BR>s全部由Java写成q且生成HTML?BR>XML(Extensible Markup Language):<BR>XML是一U可以用来定义其它标记语a的语a。它被用来在不同的商务过E中׃n数据?BR>XML的发展和Java是相互独立的Q但是,它和Javah的相同目标正是^**立性。通过<BR>Java和XML的组合,您可以得C个完的hq?*立性的解决Ҏ?BR>JMS(Java Message Service):<BR>MS是用于和面向消息的中间g怺通信的应用程序接?API)。它既支持点对点的域Q有<BR>支持发布/订阅(publish/subscribe)cd的域Qƈ且提供对下列cd的支持:l认可的<BR>消息传?事务型消息的传递,一致性消息和h持久性的订阅者支持。JMSq提供了?BR>一U方式来Ҏ的应用与旧的后台pȝ盔R成?BR>JTA(Java Transaction Architecture):<BR>JTA定义了一U标准的APIQ应用系l由此可以访问各U事务监控?BR>JTS(Java Transaction Service):<BR>JTS是CORBA OTS事务监控的基本的实现。JTS规定了事务管理器的实现方式。该事务理<BR>器是在高层支持Java Transaction API (JTA)规范Qƈ且在较底层实现OMG OTS specif<BR>ication的Java映像。JTS事务理器ؓ应用服务器、资源管理器、独立的应用以及通信<BR>资源理器提供了事务服务?BR>JavaMail:<BR>JavaMail是用于存取邮件服务器的APIQ它提供了一套邮件服务器的抽象类。不仅支持S<BR>MTP服务器,也支持IMAP服务器?BR>JTA(JavaBeans Activation Framework):<BR>JavaMail利用JAF来处理MIME~码的邮仉件?nbsp;<BR><img src ="http://www.tkk7.com/yesjoy/aggbug/29994.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yesjoy/" target="_blank">★yesjoy?/a> 2006-02-09 09:23 <a href="http://www.tkk7.com/yesjoy/articles/29994.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>步入J2EE架构和过E(2Q?/title><link>http://www.tkk7.com/yesjoy/articles/29675.html</link><dc:creator>★yesjoy?/dc:creator><author>★yesjoy?/author><pubDate>Mon, 06 Feb 2006 03:33:00 GMT</pubDate><guid>http://www.tkk7.com/yesjoy/articles/29675.html</guid><wfw:comment>http://www.tkk7.com/yesjoy/comments/29675.html</wfw:comment><comments>http://www.tkk7.com/yesjoy/articles/29675.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yesjoy/comments/commentRss/29675.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yesjoy/services/trackbacks/29675.html</trackback:ping><description><![CDATA[4?nbsp;对象设计 <BR>在架构规范的指导下,设计从技术上扩展和修改了分析l果。虽然分析阶D늚领域对象建模应该与技术细节无养I但是对象设计完全依赖于技术因素,包括q_、语a的类型和架构开发阶D选择的供应商。分析时Q抬头望着星星Q但在设计阶D,则要脚踏实地。理ZQؓ了维持业务对象的基本属性和行ؓQ除非绝对必要,不应该破坏它们?nbsp; <P></P> <P>在架构结果的指导下,详细设计工作应该说明所有类的规|包括必须实现的属性、它们的详细接口和伪代码或操作的U文本描q。规D明应该够详l得和模型囄合时Q它可以提供所有必ȝ~码信息。在许多自动化Y件生产过E中Q我们可以从面向对象囄成代码框架。图5? 说明了对一些领域对象的高层和详l设计对象。注意桩QstubQ和框架QskeletonQ在图中l常是不可见的,因ؓ它们对设计h员和~程员来说是透明的。我它们包括在?中以说明EJB的基部分?nbsp;</P> <P><BR><IMG src="http://info.shangdu.com/new/adpic/200351002229.jpg" onload="javascript:if(this.width>screen.width-333)this.width=screen.width-333" border=0><BR>? 对象设计模型Q订单EJB详细设计 </P> <P>在完成了详细对象设计后,q需要完成领域对象的对象-关系映射。原因是虽然面向对象Ҏ学现在非常流行,但是大多数流行且成熟的持l性存储却是关pd的。另外,在许多情况下Q客LIT基础设施已经反映了对商业RDBMS供应商的投资和偏爱。所以,领域对象{换成关系模型或数据库表是非常重要的。虽然有许多容器理的持l性工P但它们不能取代好的关pL据库设计?nbsp;</P> <P>5?nbsp;实现 </P> <P>在良好的架构和详l设计条件下Q实现应该是一个明的d。另外,因ؓ我们设计和实现架构原型阶D늚U向联合部分Q所以实现阶D应该更没有什么值得惊讶的。在许多l织中,开发者经常过早地到达实现阶段。尤其当理者盯着开发h员确保在~码Q而不是做他们认ؓ在浪费公司时间的其他事情Ӟq种情况变得更加严重?nbsp;</P> <P>l果Q不再花数小时或数天l出UML草图Q而是通常在发Ҏ周或数月~码的同时测试自qx。由于在q种情况下,所有地架构军_和设计都是在~码阶段做出来的Q所以经常过了数月后才发现开发的方向出错了?nbsp;</P> <P>6?nbsp;验证 </P> <P>验证包括试验证pȝ按设计要求运行ƈ满需求。验证过E发生在整个开发生命周期的开发和产品环境中。单元测试、集成测试和用户试本n是非常重要的主题?nbsp;</P> <P>7?nbsp;装配和部|?nbsp;</P> <P>构g装配和解x案部|在J2EE开发中特别重要。开发和产品环境可能非常不同。如果EJB在系l中Q你需要用供应商特定的工具得到容器自动生成的c,因ؓQ正如我以前指出的,Web和应用程序构仉|对不同的供应商来说是不同的。你也必考虑要部|的pȝ是否含有供应商特定代码实现。在可扩展架构中Q系l结构应该是E_的但也应该在不媄响整个系l的条g下支持新或老构件的增量部v?nbsp;</P> <P>8?nbsp;q行和维?nbsp;</P> <P>在最后阶D,应用E序C用户手中Q你必须l他们提供培训和文。用户会发现错误q可能要求新Ҏ。你必须适当地改变管理过E来处理q些情况。你不必Z部v一个新构g或取代老构件而关闭一个正在运行的pȝ?nbsp;</P> <P>架构开发过E?nbsp;</P> <P>知道了必d多架构决定,因此我们必须为架构开发描l一个过E。对于一个企业来说通常有许多应用项目,它们中的一些可能跨数q_l果是系l演化包含许多周期。在你的领域里存在着许多跨越多个目的通用需求。你应该不费力地在它的生命周期或其他目中用以前项目周期的可扩展且可重用的架构。ؓ一pd软g应用提供同属l构和行为的通用框架和可重用软g架构是非帔R要的?nbsp;</P> <P>如果是第一个J2EE目Q架构必d原型、测试、度量、分析ƈ在P代中q行推敲。蓝图提供了许多好的设计指导和实践,宠物店示例程序可以作Z个很好的参考架构。最有效地快速、高质量发布好的解决Ҏ的方法是接受和扩展蓝囑֏考架构ƈ插入你自q业务构g。你最后要做的是攚wR轮?nbsp;</P> <P>接受一个参考架?nbsp;</P> <P>我的理解,宠物店架构的_֍是模?视图-控制和命令模式。你可以这些模式应用到以WebZ心和以EJBZ心的pȝ中。对于每个领域对象,视图用嵌套的JSP表示。控制器处理相关的业务事Ӟ领域对象装业务逻辑、事物和安全。我们用门户servlet作ؓ中心控制器接受和截获所有用L动作。它业务事件分发给特定的调用领域对象改变持l状态的领域对象控制器。依靠事件处理结果,控制器选择下一个要展现的视图。下面是我们可以修改q在大多数J2EE应用E序中用的主要构gQ?nbsp;</P> <P>a?nbsp;MainServletQ门hӞWeb容器和框架之间的接口 </P> <P>b?nbsp;ModelUpdateListenerQ获得模型更C件对象的接口 </P> <P>c?nbsp;ModelUpdateNotifierQ当更新模型事g发生旉知侦听?nbsp;</P> <P>d?nbsp;RequestProcessorQ处理所有从MainServlet来的h?nbsp;</P> <P>e?nbsp;RequestHandlerQ即插即用请求处理构件接?nbsp;</P> <P>f?nbsp;RequestHandlerMappingQ包含请求处理映规?nbsp;</P> <P>g?nbsp;RequestToEventTranslatorQ中心请求处理器Ҏh处理映射规则代理x即用h处理构g的请求。将httph转换Z务事?nbsp;</P> <P>h?nbsp;EstoreEventQ业务事?nbsp;</P> <P>i?nbsp;ShoppingClientControllerWebImplQ代理EJB层门h制器 </P> <P>j?nbsp;ScreenflowManagerQ控制屏q流Q选择视图 </P> <P>k?nbsp;ModelUpdateManagerQEJB层模型更新管理器Q通知什么模型由于事件发生了改变 </P> <P>l?nbsp;ShoppingClientControllerEJBQEJB层门P为EJB客户提供q程服务 </P> <P>m?nbsp;StateMachineQ中心事件处理器Q根据状态处理映规则代理即插即用处理构件的事g处理 </P> <P>n?nbsp;StateHandlerQEJB层状态处理接?nbsp;</P> <P>o?nbsp;StateHandlerMappingQ包含状态处理映规?nbsp;</P> <P>扩展参考架?nbsp;</P> <P>虽然蓝图CZE序是一个好的v点,但应该根据每个项目或领域修改它。设计模式是可重用的微体pȝ构,可以使用它扩展参考架构。提供了一l有用的J2EE模式目录的蓝囑֒23?四h?模式都是非常不错的资源。例如,如果x展参考架构支持工作流理Q你可以在部|或q行时动态地在中心控制器注册事g处理器。中心控制器会询问每个注册的事g处理器直C个处理器q回消息表明C命o铄末端?nbsp;</P> <P>插入你的业务构g </P> <P>J2EE技术对每个人都是一LQ但是不同的领域Q我们要解决的问题是不同的。一旦徏立了一个基本的J2EE框架Q必dC些用例来说明架构实可以Z的领域服务。可以通过选用捕获pȝ关键功能的场景来实现Q这些场景经怋用来展现关键的技术风险。从领域分析模型入手Q可以象我们在图5?中那样将领域对象映射成高层和低层设计模型。实C层设计模型ƈ试是否真正在工作。如果每件事都按计划q行Q那么重新评估风险开始下一个P代,扩展要考虑的场景ƈ选择更多的场景扩展架构的覆盖范围。经q几ơP代后Q原始的架构原型应该变得E_。识别要购买的构Ӟ要保留的遗留pȝ和怎样它们对接。下一步是软g设计Q你可以使用设计指导中规定好的类似方法和q程l箋开发?nbsp;</P> <P>一步一?nbsp;</P> <P>我们使用一个过E来一个复杂问题分解ؓ较小的几个问题,q得我们可以更Ҏ的理解和解决它们。在本文中,我们J2EE开发分解ؓ八个步骤Q主要集中在架构和设计。我已经阐述了重要的架构qؓ架构军_提供了一个过E。我也讨ZJ2EE架构师的角色和可交付产品?nbsp;</P> <P>学习使用q些步骤开发J2EE解决Ҏp学习跌的步骤一栗首先需要自觉ƈ持之以恒地练习基本步骤。但是,一旦你对它们相当熟悉后Q应该将它们攑֜一起ƈ注意力更多地集中在规模、速度、流和特定上下文中每一步的节奏。但永远不要让一个过E限制了创造性。而应该接受和扩展q程以满qD需要。记住,最l目的是提供满客户需求的完整的J2EE解决Ҏ?nbsp;</P> <P></P><img src ="http://www.tkk7.com/yesjoy/aggbug/29675.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yesjoy/" target="_blank">★yesjoy?/a> 2006-02-06 11:33 <a href="http://www.tkk7.com/yesjoy/articles/29675.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>步入J2EE架构和过E(1Q?/title><link>http://www.tkk7.com/yesjoy/articles/29673.html</link><dc:creator>★yesjoy?/dc:creator><author>★yesjoy?/author><pubDate>Mon, 06 Feb 2006 03:25:00 GMT</pubDate><guid>http://www.tkk7.com/yesjoy/articles/29673.html</guid><wfw:comment>http://www.tkk7.com/yesjoy/comments/29673.html</wfw:comment><comments>http://www.tkk7.com/yesjoy/articles/29673.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yesjoy/comments/commentRss/29673.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yesjoy/services/trackbacks/29673.html</trackback:ping><description><![CDATA[<TABLE cellSpacing=0 cellPadding=5 width=610> <TBODY> <TR> <TD><FONT class=c style="FONT-SIZE: 14px">摘要  <P></P> <P>Java2企业版(J2EEQ^台由四个关键部分构成Q规D明、参考实现、兼Ҏ测试套件和蓝图QBluePrintQ计划。蓝图描l了分布式组件架构最好的实践和设计指导方针。本文基于Rationall一q程和BluePrintCZE序介绍一个八步骤J2EE开发方法学。通过阅读q篇文章Q你可以了解许多重要的J2EE架构的话题,q且能够扩展和修改这个简单的Ҏ来解册q有的业务问题?nbsp;</P> <P>在商业世界里Q我们用Java2 企业版(J2EEQ解决业务问题、开发商业Y件或者提供{包服务。如果一家公司想使用多层体系l构建造一个电子商务网站,通常在整个开发生命周期中需要涉及到理者、架构师Q设计h员、编Eh员、测试h员和数据库专家?nbsp;</P> <P>Z使不同部门能高效率地工作Q他们经帔R要一个Y件开发过E。一些经典的开发过E包括瀑布模型、快速应用开发(RADQ和极限~程QXPQ。本文我们将集中于一个流行的软g工程q程Q即Rationall一q程QRUPQ。RUP提供了一个给角色分配d和责ȝ严格Ҏ。它的目标是保证我们在预期的q度和预内开发出满用户需求的高质量Y件?nbsp;</P> <P>我在J2EE开发中使用RUPZ以下三个原因。首先,RUP以架构ؓ中心Q在资源分配给全面开发之前,它先开发一个可执行的架构原型。其ơ,RUP是P代ƈZ构g的。该架构基线通常包括一个框架或基础设施以便于通过q代增加构gQ在不媄响系l其他部分的前提下定制和扩展一个系l的功能。最后,RUP利用一门工业标准语a--UMLQ可视化建模pȝ的架构和构g。RUP有四个不同的开发阶D:初始、细化、构造和UM。然而,本文从技术角度覆盖了J2EE开发的八个必要zdQ主要集中在pȝ架构?nbsp;</P> <P>1?nbsp;需求分?nbsp;</P> <P>需求分析描q系l应该做什么或不应该做什么得开发者和客户可以{v一份原始的商业合同。可以用业务概c领域术语、用例和用户界面QUIQ模型Ş成功能需求文。对于非功能需求,如性能和事务,可以在需求文档附件中详细说明。根据参与项目深度的不同Q确定在U怸q是使用HTML建造高层UI模型?nbsp;</P> <P>? 展现了一个典型电子商务系l中的两个用例。查看订单(viewOrderQ用例告诉我们一个用户通过Web界面登陆pȝ、查看订单列表,点击链接查看特定订单的详l信息。增加订单项QaddLineItemQ用例告诉我们浏览品列表、选择感兴的产品q将它们d到购买订单中?nbsp;</P> <P><A target=_blank><IMG alt=按此在新H口览囄 src="http://info.shangdu.com/new/images/onimg/ai/15007.jpg" onload="javascript:if(this.width>screen.width-333)this.width=screen.width-333" border=0></A><BR>? 订购用例 </P> <P>2?nbsp;面向对象分析 </P> <P>分析人员构造问题领域模型:cR对象和交互。分析应该与技术和实现l节无关Qƈ包含一个理想的模型。对象分析可以帮助理解问题ƈ获得关于问题领域的知识。因Z务过E的改变比信息技术的改变要慢得多Q所以必要l持一个不含技术细节的U领域模型?nbsp;</P> <P>q两个步?-需求分析和面向对象分析--不是J2EEҎ的;对许多面向对象方法学来说Q它们都非常通用。图2 昄了一个宠物店CZE序的高层对象分析模型。它用图例说明了我们从需求分析用例中识别的主要概c我们把q些概念建模成对象ƈ标识它们的关pR?nbsp;</P> <P><A target=_blank><IMG alt=按此在新H口览囄 src="http://info.shangdu.com/new/images/onimg/ai/15008.jpg" onload="javascript:if(this.width>screen.width-333)this.width=screen.width-333" border=0></A><BR>? 更高层分析模型:宠物店领?nbsp;</P> <P>需求和对象分析的结果是为J2EE架构的开发提供切入点。ؓ了开发架构,可以选择一个纵向联合部分(vertical pieceQ?-l常是关键部分,如订单领域对象模?-q行对象设计、实现、测试和部v。(U向联合部分Q一个RUP概念Q是指系l的一部分。v始点是图1所C的用例子集和图3所C的领域分析模型。一个纵向联合部分的实现l果是一个全功能的微系l,包括UI层的JSPQ中间层业务对象如EJB和后端数据库。)可以从原型中获得的l验应用于领域对象ƈ作ؓ对象设计阶段的指对{?nbsp;</P> <P><A target=_blank><IMG alt=按此在新H口览囄 src="http://info.shangdu.com/new/images/onimg/ai/15009.jpg" onload="javascript:if(this.width>screen.width-333)this.width=screen.width-333" border=0></A><BR>? 详细对象分析Q订?nbsp;</P> <P>3?nbsp;架构规格说明 </P> <P>l过前面两个步骤Q业务领域问题和需求应该比较明了。现在,我们工作集中在技术策略和架构上。架构是指所有构件组合定义系l的一个蓝图:l构、接口和通讯机制。我们可以进一步将架构分ؓ企业U和应用U架构?nbsp;</P> <P>企业U系l架?nbsp;</P> <P>企业U系l架构包括硬件和软g基础设施、网l布局、开发、测试、生产环境等{。它反映了一个企业的长期投资。开发前Q需要评估已存在的Y件和g基础设施Q如果不完全支持J2EE的话Q增加新构g更新已存在系l。你需要彻底地评估gQ包括计机、\由器、网l{换器和网l布局Q因为它们都影响到系l的性能和可靠性。图4 昄了一个可能的多层|络布局?nbsp;</P> <P><A target=_blank><IMG alt=按此在新H口览囄 src="http://info.shangdu.com/new/images/onimg/ai/15010.jpg" onload="javascript:if(this.width>screen.width-333)this.width=screen.width-333" border=0></A><BR>? 企业U架构:|络布局 </P> <P>如图4所C的一个多层企业架构包括以下几个主要构gQ?nbsp;</P> <P><BR>一个Web览器客LQ可能在也可能不在客Ll织的防火墙?nbsp;<BR>一个HTTP服务器,是一个对公众开攄Web服务器。它通常位于一个称作DMZ的子|内 <BR>Web容器主表C层和可能的业务逻辑构g <BR>应用E序容器M务逻辑构g <BR>关系数据库管理系l(RDBMSQ和数据库主数据、数据逻辑 </P> <P><BR>你用的pȝ架构cd依赖于安全、性能和可靠性的需求,也依赖于l织的胦政状c在~少l验的情况下Q也可以适当C一个修理厂电话订购一台简单地二手计算机。Internet上有许多开放源代码的操作系l、Web服务器、应用程序服务器和数据库理pȝ。得到这些系l的代h只是几百元和熬几个通宵?nbsp;</P> <P>象许多华街金融机构q样的高端客户也讔R要一个连l支持安全、高吞吐量交易和不可预料|络通讯的系l。在q种情况下,Z定wQ通常需要将Web服务器和应用E序服务器集配|成一个n层架构?nbsp;</P> <P>q需要评估Y件基设施Q包括Web服务器、安全管理Y件、应用程序服务器、域名管理服务器、数据库理pȝ和第三方软g构g。如果还没有购买应用E序服务器,选择一个J2EE供应商将是评估过E的一个重要方面。应该注意到不同的供应商对J2EE的实现程度是不同的,一些供应商只支持老的J2EE版本。另外,一些Web容器或应用程序容器可能比其他的速度要快。除了实现J2EE规范外,许多供应商还出售J2EE基础构g或框架。选择一个稳定的提供支持的J2EE供应商也非常关键。你可以在系l基设施层面上购买或开发的通用功能包括Q?nbsp;</P> <P><BR>事务 <BR>国际化和本地?nbsp;<BR>集群和对象分?nbsp;<BR>应用E序性能度量和剖?nbsp;<BR>通讯 <BR>工作管?nbsp;<BR>入口和个性化理 <BR>层对层通讯协议 <BR>安全和防火墙 </P> <P><BR>应用架构 </P> <P>应用架构参考一个特定的目和规范徏立在企业U系l架构的上层。在基础设施完成后,架构师研I怎样构造一个特定的应用。如果你的企业架构仅部分支持老的J2EE版本Q可以先升你的pȝ。如果由于预或旉关系不能升Q那么必d更老版本规定的技术范围内开展工作。虽然构造企业重用构g非常重要Q但是必首先要能够使用。这里的最l目标是满客户的需?-一ơ一个项目?nbsp;</P> <P>架构师不是设计师Q架构和设计是完全不同。一个应用架构的范围包括pȝ的主要结构、架构设计模式和可以在上面增加构件的框架。架构主要关注的是非功能性方面,而设计关注应用业务用例将领域对象模型转换成技术对象模型。应用架构是目的结构,一个特D的应用E序。通过应用架构开发,你通常必须要做的应用架构决定包括: </P> <P><BR>层之间进行功能划?nbsp;<BR>领域对象建模 <BR>要保护的遗留pȝ <BR>要购买的软g构g <BR>要开发的构g <BR>怎样集成W三Ҏ?nbsp;</P> <P><BR>?的订单领域对象说明了怎样寚w域对象进行徏模。利用当前的Java技术,可以领域对象分布在作ؓ开发者管理持l性对象的Web容器中、应用程序服务器的EJB中或者作为RDBMS宿主的Java存储q程中?nbsp;</P> <P>在宠物店蓝图中,我们订单对象设计成一个实体beanQ一个详l对象和一个数据访问对象,如图5和后面的?所C。当你看到这个的时候,你应该意识到架构的重要性。ؓ什么分析模型中的一个领域对象映成q么多对象?如果改变设计Q会出现什么问题?你也许听说过EJB的好处,但是要注意不同供应商的性能是不同的。当一U新技术到来的时候,你需要在投入全面设计之前q行一些研I。你可以l常地将设计和实现领域对象模型纵向联合部分的l验应用到其他许多领域对象中。这是架构开发的内容?nbsp;<BR><A target=_blank><IMG alt=按此在新H口览囄 src="http://info.shangdu.com/new/images/onimg/ai/15011.jpg" onload="javascript:if(this.width>screen.width-333)this.width=screen.width-333" border=0></A><BR>? 企业U架构:|络布局 </P> <P>如图4所C的一个多层企业架构包括以下几个主要构gQ?nbsp;</P> <P><BR>一个Web览器客LQ可能在也可能不在客Ll织的防火墙?nbsp;<BR>一个HTTP服务器,是一个对公众开攄Web服务器。它通常位于一个称作DMZ的子|内 <BR>Web容器主表C层和可能的业务逻辑构g <BR>应用E序容器M务逻辑构g <BR>关系数据库管理系l(RDBMSQ和数据库主数据、数据逻辑 </P> <P><BR>你用的pȝ架构cd依赖于安全、性能和可靠性的需求,也依赖于l织的胦政状c在~少l验的情况下Q也可以适当C一个修理厂电话订购一台简单地二手计算机。Internet上有许多开放源代码的操作系l、Web服务器、应用程序服务器和数据库理pȝ。得到这些系l的代h只是几百元和熬几个通宵?nbsp;</P> <P>象许多华街金融机构q样的高端客户也讔R要一个连l支持安全、高吞吐量交易和不可预料|络通讯的系l。在q种情况下,Z定wQ通常需要将Web服务器和应用E序服务器集配|成一个n层架构?nbsp;</P> <P>q需要评估Y件基设施Q包括Web服务器、安全管理Y件、应用程序服务器、域名管理服务器、数据库理pȝ和第三方软g构g。如果还没有购买应用E序服务器,选择一个J2EE供应商将是评估过E的一个重要方面。应该注意到不同的供应商对J2EE的实现程度是不同的,一些供应商只支持老的J2EE版本。另外,一些Web容器或应用程序容器可能比其他的速度要快。除了实现J2EE规范外,许多供应商还出售J2EE基础构g或框架。选择一个稳定的提供支持的J2EE供应商也非常关键。你可以在系l基设施层面上购买或开发的通用功能包括Q?nbsp;</P> <P><BR>事务 <BR>国际化和本地?nbsp;<BR>集群和对象分?nbsp;<BR>应用E序性能度量和剖?nbsp;<BR>通讯 <BR>工作管?nbsp;<BR>入口和个性化理 <BR>层对层通讯协议 <BR>安全和防火墙 </P> <P><BR>应用架构 </P> <P>应用架构参考一个特定的目和规范徏立在企业U系l架构的上层。在基础设施完成后,架构师研I怎样构造一个特定的应用。如果你的企业架构仅部分支持老的J2EE版本Q可以先升你的pȝ。如果由于预或旉关系不能升Q那么必d更老版本规定的技术范围内开展工作。虽然构造企业重用构g非常重要Q但是必首先要能够使用。这里的最l目标是满客户的需?-一ơ一个项目?nbsp;</P> <P>架构师不是设计师Q架构和设计是完全不同。一个应用架构的范围包括pȝ的主要结构、架构设计模式和可以在上面增加构件的框架。架构主要关注的是非功能性方面,而设计关注应用业务用例将领域对象模型转换成技术对象模型。应用架构是目的结构,一个特D的应用E序。通过应用架构开发,你通常必须要做的应用架构决定包括: </P> <P><BR>层之间进行功能划?nbsp;<BR>领域对象建模 <BR>要保护的遗留pȝ <BR>要购买的软g构g <BR>要开发的构g <BR>怎样集成W三Ҏ?nbsp;</P> <P><BR>?的订单领域对象说明了怎样寚w域对象进行徏模。利用当前的Java技术,可以领域对象分布在作ؓ开发者管理持l性对象的Web容器中、应用程序服务器的EJB中或者作为RDBMS宿主的Java存储q程中?nbsp;</P> <P>在宠物店蓝图中,我们订单对象设计成一个实体beanQ一个详l对象和一个数据访问对象,如图5和后面的?所C。当你看到这个的时候,你应该意识到架构的重要性。ؓ什么分析模型中的一个领域对象映成q么多对象?如果改变设计Q会出现什么问题?你也许听说过EJB的好处,但是要注意不同供应商的性能是不同的。当一U新技术到来的时候,你需要在投入全面设计之前q行一些研I。你可以l常地将设计和实现领域对象模型纵向联合部分的l验应用到其他许多领域对象中。这是架构开发的内容?nbsp;<BR></FONT></P></TD></TR> <TR> <TD align=right> <SCRIPT language=JavaScript> <!-- Begin if (window.print) { document.write('?a href="#" onClick="javascript:window.print()"><font color=cc0000>打印本文</font></a>?'); } // End --> </SCRIPT> </TD></TR></TBODY></TABLE><img src ="http://www.tkk7.com/yesjoy/aggbug/29673.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yesjoy/" target="_blank">★yesjoy?/a> 2006-02-06 11:25 <a href="http://www.tkk7.com/yesjoy/articles/29673.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://0827fang.com" target="_blank">һƬ߹ۿ</a>| <a href="http://beidemei.com" target="_blank">ŷ޾Ʒ</a>| <a href="http://jjwgzx.com" target="_blank">վ߹ۿ</a>| <a href="http://www-006688.com" target="_blank">penƵѹۿ</a>| <a href="http://48eh.com" target="_blank">һƵ</a>| <a href="http://kwknc.com" target="_blank">վ߹ۿ</a>| <a href="http://96j6.com" target="_blank">˺ݺۺϾþ޸</a>| <a href="http://zhuanjiao521.com" target="_blank">޾ƷӰ</a>| <a href="http://shaonvfushi.com" target="_blank">A</a>| <a href="http://s8sb.com" target="_blank">hƬ߲Ѹ</a>| <a href="http://ywjh666.com" target="_blank">Ʒþþ</a>| <a href="http://av520av.com" target="_blank">þùѹۿƷ3</a>| <a href="http://987566.com" target="_blank">˳վ߹ۿŶ </a>| <a href="http://zuche001.com" target="_blank">ַ߹ۿ</a>| <a href="http://pjappuiehjdkhsjkssd2.com" target="_blank">41515hh</a>| <a href="http://zzo8.com" target="_blank">ۺɫɫ</a>| <a href="http://yangguang882.com" target="_blank">ҹһëƬƵ</a>| <a href="http://038037.com" target="_blank">㽶97Ƶ</a>| <a href="http://hidiaoyan.com" target="_blank">ۺר</a>| <a href="http://339258.com" target="_blank">aëƬѹۿ</a>| <a href="http://www-01313.com" target="_blank">޾Ʒ߹ۿ</a>| <a href="http://cnepu.com" target="_blank">av벻߹ۿ</a>| <a href="http://fenxiangceo.com" target="_blank">޾Ʒþþþ</a>| <a href="http://yese889.com" target="_blank">Ƶۿwww</a>| <a href="http://hnqkzj.com" target="_blank">ĻƵ߹ۿ</a>| <a href="http://wanguoshan.com" target="_blank">ƵĻ</a>| <a href="http://mysb123.com" target="_blank">Ļ˾Ʒһվ</a>| <a href="http://hnshlt.com" target="_blank">ƵѹۿƵ </a>| <a href="http://ddxsrd.com" target="_blank">޾ƷŮþþþ9999</a>| <a href="http://074g8.com" target="_blank">߳aëƬѲ </a>| <a href="http://zanyoo.com" target="_blank">99þþùƷ</a>| <a href="http://hljjlhl.com" target="_blank">AV߹ۿ</a>| <a href="http://zgj688.com" target="_blank">СƵ߹ۿ</a>| <a href="http://zgj688.com" target="_blank">þŮվ</a>| <a href="http://yuezhaoming.com" target="_blank">Ļ</a>| <a href="http://zfzz008.com" target="_blank">޾Ʒa vС˵</a>| <a href="http://yamashida.com" target="_blank">18ëƬѲ</a>| <a href="http://6609929.com" target="_blank">ѾƷƵ</a>| <a href="http://600c20.com" target="_blank">޹Ů޹</a>| <a href="http://8mav938.com" target="_blank">޳?vƬ</a>| <a href="http://591se591se.com" target="_blank">97ƵѲ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>