小女巫 发表于 2015-1-18 11:24:27

JAVA网页设计J2EE买卖框架:构建框架

首先第一点:jsp,servlet,javabean这些最基本的,嘿嘿,就算你是高手的话,在大行的企业级应用的话还是需要框架的,一个好的框架确实能构解决许多问题。j2ee便宜的盘算才能和不休增添的收集带宽增进了以组件为基本的散布式盘算程序的开展。以组件为基本的散布式程序是一个服务架构。它由物理上自力的盘算机上的分歧的使用组件组成。对用户来讲,它们就像是运转在一台呆板上的单一使用程序。有几个要素增进了散布式体系的使用,而不是传统的会合式体系。
・散布式使用:一些义务自己就是散布的。这个特征决意必要多个agent互助事情。在这类情形下,定位和猎取无效的和最必要的盘算才能及数据具有优先权。
・牢靠性:由于体系的共享、互助和散布的特征,体系中不存在一个单个的失利点。利用新的容错、恢复和散布同步手艺,更好的牢靠性能够失掉满意。
・可扩大性:对使用的需求日趋单一,准确的计划体系,就能够经由过程增添新的服务和硬件来处置更多的负载。
・功能:因为处置触及到更多的使用局限,这些困难从实质上讲愈来愈庞大。为懂得决日趋庞大的成绩,我们必要更快的盘算机,这些盘算机在能够承受的代价下具有更高的盘算才能。
・经济性:猎取不异品级的盘算才能,利用散布在多台呆板的体系其用度能够更低一些
关于用户来讲,经由过程收集互连的异构盘算机上的异构使用体系就像是在单台物理呆板上的尺度的使用体系。要到达如许的通明度,散布是体系必要在以下方面做到通明。
・数据定位:关于体系用户来讲,他们不必要晓得数据位于收集中的哪个中央
・失利:对体系用户来讲,他们不必要存眷数据的分歧性
・复制:体系用户不必要晓得数据是怎样被复制的
・散布:体系用户不必要晓得盘算才能和数据怎样经由过程体系被散布的
散布式体系同意用户通明的保留、存取和操纵来最多个盘算机的数据,能在体系产生妨碍的时分保持数据的完全性。对散布式数据和买卖的办理分红当地和全局两个级别。当地数据办理者或资本办理者可以会见和操纵当地数据和资本。资本办理者供应了数据的通明定位,数据模子和数据库的平安与受权把持。当地的买卖办理器卖力处置盘算体系买卖的初始化、监控和停止。散布式买卖体系将收集中相干的买卖视为单一买卖从而扩大了当地买卖体系的局限。
买卖是一组语句的汇合暗示一个事情单位,他们必需作为一个单位被实行。买卖是位于资本上的操纵的一个序列好比读、写或是更新。这些操纵序列将体系由一个不乱态转化为新的不乱态。为了实在的反应体系中的实体,一个买卖应当具有上面的特征:
・原子性:这个特征指全体都做或是全体都不做。操纵序列大概是乐成大概是失利。一个买卖应当被以为是一个单一的操纵单位。完成的买卖应当被提交,没有完成的买卖应当被回滚或是恢复为它的入手下手形态。毫不大概只要部合作作被提交。
・分歧性:一个买卖反应了资本之间的一种一连性。分歧性体贴的是准确反应资本形态的现实。分歧性的例子无数据库的完成性、表格中主键的独一性等。
・自力性:一个买卖在它提交前不该该将本人的了局表露给别的并发的买卖。自力性确保不会往会见正被更新的数据。自力性的另外一个名字是序列化。
・耐久性:一个完成的买卖的了局应当被保留上去,不克不及由于体系毛病而从数据库中扫除失落。资本办理者应当确保体系失利的时分买卖的了局不会被改动。

买卖处置的基础道理
为了反应实体的实在形态,每个买卖都应当具有上述四种特征。会合式盘算情况的使用组件和资本被定位到一台单个的呆板上,买卖办理仅仅包含一个运转在单一呆板上的当地的数据办理者。与此分歧,散布式盘算情况中一切的资本被散布在多个体系中。在这类情形下,买卖办理包含两个级别当地和全局。一个当地买卖包含单个当地资本办理中的举动。一个散布式或是全局的买卖在多个体系中被实行。它实行必要全局买卖办理体系和以是触及到的体系的当地数据办理者协同事情。资本办理者和买卖办理者,也是作为买卖处置监控者是一个买卖体系的两个次要的元素。在一个会合式体系中,买卖处置监督器和资本办理者被集成到DBMS服务总。为了撑持以组件为基本的散布式体系更初级的特征,将TP监督器从资本办理者平分离出来是需要的。

买卖办理分类
买卖性企业体系的最一般的布局以下:
・小形式TP:这类布局不必要任何自力的买卖办理两头件。每个SQL语句都被以为是一个独自的买卖
・这类体例利用数据库的存储历程来处置更新。因为多半的RDBMS供应商供应一些集成的TP工具,每个买卖都被界说为一个存储历程。这类体例带有一个复礼服务器。主服务器数据经由过程存储历程来更新,第二份数据经由过程利用复礼服务器来被复制。
・年夜形式TP:这类体例被用于企业级其余买卖体系。它必要对原有体系供应一个接口。它利用一个散布式的买卖办理器来处置买卖更新。它分为两个子类,一种,利用一个自力的买卖办理器,比方CICS,Encina,Tuxedo或是TopEnd.第二种,TP监督器被放进到使用服务器中像Websphere或iPlanet使用服务器或是微软的买卖服务器。

有两种体例用来讲明买卖。
・企图式:在企图式买卖标准中,一组或是一个操纵序列被界说成一个买卖。最一般的体例是标志那些实行买卖处置操纵的线程。买卖能够经由过程作废标志被挂起。经由过程明白的复制买卖高低文(丛挂出发点到从头启动点)稍后从头启动买卖。提交哀求批示一切介入的资本办理器永世纪录买卖操纵发生的影响。回滚哀求让资本办理器打消买卖操纵的影响。
・传播鼓吹式:以组件为基本的买卖处置体系,像基于EJB的使用服务器和微软的买卖服务器的COM,撑持declarative买卖标准。这类体例,在设置的时分,组件被标志为一个买卖。这有两方面的寄义。起首,买卖的职责从使用程序转移到组件的宿主容器。第二,买卖的无效工夫从使用程序的构建延后到了组建设置的时分。

买卖滋生(propagation)
一个全局或是散布式买卖由一些子买卖构成,它被作为一个单一的可重猎取的原子单位。全局买卖办理器的义务是经由过程调剂分歧的资本办理器来会见在分歧体系中的数据从而办理散布式买卖。因为在一个买卖中有多个使用组件和资本介入,以是买卖办理器应当在买卖产生的时分创建和纪录下买卖的形态。这个功效能够经由过程利用买卖高低文来获得。买卖高低文是资本上的买卖操纵和挪用这些操纵的组件间的一个纽带。在买卖产生过程当中,一切介入买卖的线程共享不异的买卖高低文。在一个买卖过程当中,买卖高低文的局限逻辑上包裹了一切实行在买卖资本上的操纵。买卖办理器必要剖析买卖哀求并将买卖分化成多个子买卖,复制买卖高低文,并将他们发送给相干联的资本办理者。在资本办理者的把持下,买卖高低文一般来讲是通明存在的。

资本办理器依托称之为资本退役这一历程来关照买卖办理器本人到场了买卖。买卖办理器坚持了买卖中到场的一切的资本的轨迹,经由过程两段式提交和恢复协定调剂资本办理者的买卖事情体现。在买卖的最初,不管是提交仍是回滚,一切被利用的资本都要被删撤除。买卖办理者必需要监控买卖的实行决意提交仍是回滚买卖的变更以确保买卖的原子性。

两段式提交
买卖办理者和一切买卖有关的资本中的两段式提交协定确保了资本办理者或是提交或是保持买卖。以下图所示,当使用程序发送买卖提交哀求的时分,买卖办理者发送PREPARE_TO_COMMIT哀求给一切被挪用的资本办理者。一切的资本办理者依次发送一个应对标明本人是不是做好提交的筹办。仅仅当一切的资本办理者都筹办好提交,买卖办理者发送一个提交哀求COMMIT给一切的资本办理者。大概,买卖办理者发送一个回滚哀求(ABORT)给资本办理者,买卖被回滚。
固然2PC包管了买卖的自治,但必须的处置负载太重,常常发生更新抵触,出格是存在反复数据的时分。数据复制是削减抵触的一个体例,仅仅在基于买卖的更新滋生不是必须的时分有效。多半散布式体系平行的接纳这两种体例响应婚配使用程序的需求。

在两段式提交(2PC)和复礼服务器办法间是品衡的。二者基础分歧的地方在于买卖级上的一个操纵和另外一个操纵是周期性的更新。引导目标是1)尽量小的坚持数据复制2)假如数据作为一个买卖必要同步,拷贝数目少并利用2PC,3)4)假如收集和节点不成靠,利用复礼服务器。
同步把持是另外一个相当主要的功效。它同意多个用户同时会见数据,增添了体系的吞吐量和实行。在获得统一个逻辑了局的时分,体系同意买卖同步举行仿佛他们是一连地实行的。互助把持批准多个买卖同时读和更新数据,它包含买卖调剂和买卖实行期所需资本的办理。年夜多半买卖的串行化都是依托锁机制,好比两段式锁办法,工夫磋办法。两段式锁算法是最一般的使用在散布式买卖体系中的手艺能够获得同步更新和互助把持。一般,供给商分离互助把持手艺好比2PL,分歧性把持手艺如2PC,超时把持为懂得殊死锁,分离成一个单一的完成为全局散布式买卖办理。

行列式买卖处置
间接买卖历程是同步的,后来买卖创立者被堵塞直到买卖办理器入手下手运转为止。不幸的是,买卖的客户端或是服务端通讯偶然候会失利。偶然候,有些买卖的哀求品级有很高,必要优先处置。这类同步买卖处置形式没法很好的处置这些情形。这招致了利用行列的异步买卖处置形式的开展。行列是一种买卖资本,行列上的操纵包含进队和出队。在J2EE平台界说了两种机制处置行列。一种是利用原生JMSAPI,另外一种是使用动静Bean,它被界说在EJB2.0中。
买卖中的JMSAPI
使用组件的开辟者不该该在单一买卖里利用JMS哀求-应对典范。直到买卖被提交,一个JMS动静不会被送达给它的终极方针,在统一个买卖里应对的承受决不会产生。由于一个容器办理着一个代表bean的JMS会话的买卖。createQueueSession(boolentransacted,intacknowledgeMode)和createTopsession(booleantransacted,intacknowledgeMode)办法的参数被疏忽。我们倡议组件开辟者指定一个被处置过的会话供应0作为acknowledgement的值。记着JMS的acknowledge()办法不管是在一个买卖里仍是在一个没有指明的买卖高低文都不应利用,这一点很主要。在一个未断定的买卖高低文动静切实其实认是经由过程带有JMSAUTO_ACKNOWLEDGE标记的容器来处置的。

Message-drivenbeans
动静驱动beans
一个动静驱动bean是一个异步动静的消耗者,当一个JMS动静抵达时由容器来挪用。从客户的角度看,动静驱动bean是一个JMS动静的消耗者它在服务器端完成了一些营业逻辑。客户经过JMS经由过程发送动静给JMS方针(行列或是主题)来会见动静驱动bean,由于动静驱动bean类是一个动静监听者。动静驱动bean没有home和remote接口,它是无形态的。它们像无形态的sessionbean:当他们没有包含在服务一个客户真个动静中,一切的bean实例都是一样的。一个动静驱动bean实例由容器创立作为消耗者处置动静历程。容器把持它的性命期。但是,实例动静驱动bean的实例的实例变量能够经由过程客户真个动静操纵保持本人的形态。
这类情形包含一个开放的数据库毗连和一个对EJB对象的援用。动静驱动的bean形式正开展成为一个企业bean,它被异步伐用来处置承受的JMS动静。对它的开辟事情好像其他的JMS动静监听器一样复杂。依托容器供应的动静驱动bean实例池,它也能够同时处置一串动静。
尺度
散布式TP情况的通明方针请求买卖办理者和带有资本办理者的TMs之间应当具有协同事情的才能。今朝,有两个开放尺度,即X/OpenDTP形式和ISOTP形式。对一个开放情况中来至分歧供应者的买卖办理者能够经由过程ISOTP协定相互通讯。ISOTP并没有太多的跟随者。另外一个方面,X/Open散布式买卖处置形式是由一个开放构造提出的尺度。今朝多半贸易化的买卖处置和干系数据库办理计划供应商都遵守这个尺度。这个形式次要道理:
・使用组件完成了买卖操纵
・资本办理器来把持资本
・买卖办理者和资本办理者协同处置一个全局买卖
上面是这个形式出格被说起的次要方面
・TX接口:这个接口位于哀求和买卖办理者之间由买卖办理者完成。它经由过程将使用程序组件和买卖操纵绑定的体例来供应买卖的分别服务。
・XA接口:这个接口位于资本办理者和买卖办理者之间。当买卖办理者(或TP监督器)和RDBMS或是EIS的资本办理器都撑持XA接口时,他们可以被构造在一同被处置。这是尺度中最主要的托言已被业界所承受
Figure3.X/OpenDTPstandard
X/OpenDTP形式在产业界已普遍的利用。贸易化的买卖办理软件像TXSeries/Encina,Tuxedo,TopEnd和AT&TGIS都撑持TX接口。年夜多半的贸易化数据库如Oracle,Sybase,Informix和微软的SQLServer和动静两头件产物如IBM的MQSeries和微软的MSMQServer都完成了XA接口。
SomeJ2EEconfigurations

一些J2EE布局
J2EE是一个基于架构的框架。对买卖的撑持是J2EE架构的次要方面。组件供应者可以使用Java买卖API(JTA)在组件代码中供应买卖界限。另外一方面,跟着撑持企业beans的买卖标准的发布,买卖可以由容器主动的入手下手和完成。J2EE服务器在低层完成了买卖办理者和撑持JDBCAPI的数据库体系的通讯协定,包含买卖高低文的复制机制和可选的散布式两段式提交。J2EE平台今朝撑持扁平式买卖,这类买卖中不克不及嵌套买卖。存在这类大概性,一个买卖哀求利用serverlets和jsp页面在一个买卖中会见多种EJB。每个组件同意取得一个或多个毗连以会见一个或多个资本办理器
Figure4.RecommendedJ2EEconfigurations.
必要夸大的是固然对一个特定的使用大概有多个办理计划供选择。分歧,在一切大概的设置计划中,我们激烈保举以下几种
・CaseI:Stand-aloneClient<->EJBContainer<->RDBMS/EISResources
这类布局是从两层客户服务器形式中变更而来。一样平常来讲,存在一个使用Swing写成的胖客户端,它间接和EJB中的贸易逻辑通讯。这个EJB位于使用服务器中的某个EJB容器中。
・CaseII:Browser<->WebContainer<->RDBMS/EISResources
这类设置在一个小范围的web使用程序中很广泛。撑持的用户数绝对较少,关于一个构造中的外部企业互联网体系来讲很合用
・CaseIII:Browser<->WebContainer<->EJBContainer<->RDBMS/EISResources
关于一个有大批用户必要优秀功能的体系来讲,这个布局是一个值得保举的完全的架构,这类使用具有鲁棒性和可伸缩性。
DibyenduBaksi是sun公司的一个J2ee买卖体系和框架的计划者和开辟者


你对java乐观有点盲目。java的关键就是在服务器上表现优异,而且它提供了整个开发所需要的工具。应该是说,看哪天。net有没有机会赶上java。

分手快乐 发表于 2015-1-20 23:57:05

还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。

冷月葬花魂 发表于 2015-1-30 08:09:28

学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。

海妖 发表于 2015-2-6 02:36:06

至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。

灵魂腐蚀 发表于 2015-2-9 03:23:01

另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。

愤怒的大鸟 发表于 2015-2-26 20:10:29

设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧

若相依 发表于 2015-2-26 20:12:08

Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。

兰色精灵 发表于 2015-3-8 17:12:40

Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。

简单生活 发表于 2015-3-11 05:59:14

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台

admin 发表于 2015-3-11 17:21:48

设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧

只想知道 发表于 2015-3-19 03:19:05

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

不帅 发表于 2015-3-27 03:08:15

应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
页: [1]
查看完整版本: JAVA网页设计J2EE买卖框架:构建框架