- 相關(guān)推薦
EJB的開(kāi)發(fā)優(yōu)勢
EJB是sun的服務(wù)器端組件模型,最大的用處是部署分布式應用程序當然,還有許多方式可以實(shí)現分布式應用,類(lèi)似微軟的.net技術(shù)。憑借java跨平臺的優(yōu)勢,用EJB技術(shù)部署的分布式系統可以不限于特定的平臺。下面主要介紹采用EJB開(kāi)發(fā)的三個(gè)優(yōu)勢。
JAVA語(yǔ)言已經(jīng)慢慢的在成為主流的開(kāi)發(fā)語(yǔ)言之一,或者說(shuō)現在已經(jīng)成為了主流的開(kāi)發(fā)語(yǔ)言。在JAVA語(yǔ)言平臺上,也出現了多種開(kāi)發(fā)模型。對于剛入門(mén)的JAVA程序員來(lái)說(shuō),也許面對這么多的開(kāi)發(fā)模型,會(huì )眼花繚亂,不知道該如何選擇。筆者剛開(kāi)始接觸JAVA語(yǔ)言的時(shí)候沒(méi)有多少的開(kāi)發(fā)模型可以選擇。而前幾年筆者也遇到了這個(gè)問(wèn)題。
可選的開(kāi)發(fā)模型比較多,筆者必須選擇一個(gè)開(kāi)發(fā)模型作為未來(lái)自己的主攻方向。因為人的精力是有限的,特別是我們做程序開(kāi)發(fā)的。我們要把有限的精力花在刀口上。筆者在這里向大家推薦EJB開(kāi)發(fā)模型。
這個(gè)EJB本質(zhì)上就是一個(gè)被管理的組件,存在于J2EE容器中,由J2EE容器進(jìn)行創(chuàng )建、控制和銷(xiāo)毀。J2EE容器復雜控制當前存在的EJB數目和EJB所使用的資源。在重負載的情況下,即使是客戶(hù)端正在使用的EJB,也將被返回到實(shí)例池,如此的話(huà),這個(gè)EJB實(shí)例還可以供其他客戶(hù)端使用,從而提高EJB實(shí)例的利用率。
雖然J2EE官方也是推薦使用EJB,但是這并不是一個(gè)強制性的措施。程序開(kāi)發(fā)人員除了利用EJB之外,還可以利用JSP或者單機版的JAVA應用程序等等。但是如果應用程序需要不斷的升級、性能要求比較高等等,那么筆者就向大家推薦使用EJB,主要有如下三個(gè)方面的原因。
一、可以隱藏管道代碼。
現在音樂(lè )噴泉在各地迅速的被采用,成為高科技景觀(guān)的一個(gè)代表之作。程序員在開(kāi)發(fā)這個(gè)應用程序的時(shí)候,程序人員需要用到這些管道,但是并不需要知道這些水管的具體走向。這不是程序開(kāi)發(fā)人員所需要關(guān)注的內容。程序開(kāi)發(fā)人員之需要直接使用這些現成的管道即可。我們把這些管道就叫做“管道代碼”。其實(shí)程序開(kāi)發(fā)人員有時(shí)候就好像一個(gè)工業(yè)設計師。工業(yè)設計師在設計洗澡用的花撒水籠頭的時(shí)候,其根本不用關(guān)心自來(lái)水管道。
為什么呢?因為自來(lái)水管道都是采用同一的標準,水壓的話(huà)也是國家有一個(gè)強制性的標準。為此在需要使用管道的時(shí)候,設計者之需要直接引用這些標準化的參數即可。在早期的一些開(kāi)發(fā)模型中,如最原始的 CORBA開(kāi)發(fā)模型,程序開(kāi)發(fā)人員不得不便寫(xiě)大量的代碼來(lái)完成同Corba環(huán)境的交互、連接、注冊過(guò)程。其實(shí)這些代碼就是通常所說(shuō)的管道代碼。而如果采用 EJB模型的話(huà)則可以最大限度的減少這些管道代碼的編寫(xiě)工作。
如程序開(kāi)發(fā)人員通過(guò)聲明屬性就可以無(wú)需要編寫(xiě)代碼來(lái)控制這些功能即可指定組件的事務(wù)性為;不用通過(guò)編寫(xiě)管道代碼來(lái)定義EJB組件之間的關(guān)系以及所需要用到的資源,因為可部署的J2EE應用程序在部署描述信息中定義了多個(gè)EJB組件之間的關(guān)系同時(shí)定義了EJB組件所需要用到的資源;如每個(gè)Bean 都遵循一個(gè)定義的聲明周期和一套規則,為此程序開(kāi)發(fā)人員不需要知道“管道”的設計,而只需要知道管道接口的參數即可,如此的話(huà)系統代碼與應用程序代碼之間就是兩個(gè)互相獨立的內容。
顯然,通過(guò)J2EE提供的EJB組件,可以讓程序開(kāi)發(fā)人員將精力集中在業(yè)務(wù)代碼的編寫(xiě)上,而盡量減少編寫(xiě)管道代碼。這不僅可以提高應用程序的開(kāi)發(fā)效率,而且把管道代碼與應用程序代碼獨立開(kāi)來(lái),也利于后續的調試與維護。這就是筆者推薦使用EJB模型來(lái)開(kāi)發(fā)JAVA應用程序的第一個(gè)原因。
二、EJB預定義了一些復雜的處理機制。
在應用程序開(kāi)發(fā)的過(guò)程中,或多或少有一些共性的內容。如需要進(jìn)行應用程序的生命周期管理,需要進(jìn)行命名和注冊,需要進(jìn)行事務(wù)管理等等。如果每次在開(kāi)發(fā)應用程序的時(shí)候,都需要從零開(kāi)始來(lái)開(kāi)發(fā)這些功能,那么工作量就會(huì )很大,而且代碼的重復利用性也會(huì )比較差。為了解決這些問(wèn)題,EJB提供了一些預定義的服務(wù),把一些應用程序開(kāi)發(fā)中要用到的服務(wù)集成到J2EE開(kāi)發(fā)環(huán)境中。需要用到這些服務(wù)的時(shí)候,程序開(kāi)發(fā)人員之需要聲明一下或者通過(guò)少量的代碼就可以調用這些服務(wù),實(shí)現一些復雜的控制管理機制。
如在應用程序開(kāi)發(fā)中,為了保持數據的一致性事務(wù)管理機制是必須要實(shí)現的一個(gè)機制。如果在應用程序層面沒(méi)有實(shí)現事務(wù)管理機制的話(huà),則當同一個(gè)業(yè)務(wù)涉及到多條記錄的時(shí)候,很容易破壞數據的一致性。而如果從零開(kāi)始來(lái)編寫(xiě)事務(wù)處理機制代碼的話(huà),那么工作量會(huì )很大。在EJB的容器服務(wù)中就預先提供了事務(wù)管理的解決方式,程序開(kāi)發(fā)人員可以憑借這個(gè)預定義地解決方案輕松的創(chuàng )建事務(wù)、處理與控制事務(wù)等等。
如在應用程序開(kāi)發(fā)中命名與注冊也是很麻煩的一件工作。而EJB也提供另一個(gè)命名與注冊的容器,EJB容器和服務(wù)器為 EJB提供了對命名服務(wù)的訪(fǎng)問(wèn)。遠程和本地客戶(hù)端使用這些服務(wù)來(lái)尋找EJB;EJB組件本身也使用這些服務(wù)來(lái)查詢(xún)自身所需要的資源。也就好說(shuō),程序開(kāi)發(fā)人員在應用程序開(kāi)發(fā)中不用通過(guò)代碼來(lái)實(shí)現命名與注冊服務(wù),而直接調用EJB組件中的命名與注冊容器即可。這個(gè)容器會(huì )自動(dòng)生成相關(guān)的代碼來(lái)完成所需要實(shí)現的功能。
另外,EJB組件還提供了生命周期管理容器、安全性和訪(fǎng)問(wèn)控制容器、持久性容器等等,通過(guò)這些容器可以讓程序開(kāi)發(fā)人員少寫(xiě)大量的代碼,不僅可以提高程序的開(kāi)發(fā)效率,而且同意了這些基礎性?xún)热萁鉀Q方案。這也有利于后來(lái)的人員了解源代碼,有利于應用管理軟件的后續升級。
三、用戶(hù)接口與底層業(yè)務(wù)功隔離。
在企業(yè)管理中共性與個(gè)性是并存的,這也體現在了企業(yè)的管理軟件上。如同一家企業(yè),如果管理者的文化背景不同,其或許多同一個(gè)業(yè)務(wù)具有不同的管理方式。這個(gè)用我們程序開(kāi)發(fā)人員專(zhuān)業(yè)的術(shù)語(yǔ)來(lái)講就是用戶(hù)接口不同。但是其背后的管理模型是相同的,也就是說(shuō)其業(yè)務(wù)功能是相同的。
如利用JAVA語(yǔ)言開(kāi)發(fā)的一個(gè)訂單管理系統,其訂單的處理機制是相同的,都在數據庫中建立相關(guān)的紀錄并在保存記錄之前進(jìn)行數據有效性的審核。但是不同的訂單類(lèi)型其處理方式可能稍有不同。如對于預付訂單,必須要先收到客戶(hù)的款項才能夠下訂單給生產(chǎn)部門(mén)安排生產(chǎn)或者倉庫部門(mén)準備出貨;如對于倉庫訂單,則在流程處理上不需要經(jīng)過(guò)生產(chǎn)而直接轉到倉庫出貨等等。
也就說(shuō)是,10種不同類(lèi)型的訂單,其80%的功能是相同的,而又20%的內容由于管理方式或者其他的原因而有所不同。在這種情況下難道要寫(xiě)十個(gè)不同的代碼來(lái)實(shí)現這十種不同的需求嗎?
在EJB開(kāi)發(fā)模型中不用這么復雜,因為EJB允許獨立于表達層開(kāi)發(fā)和部署業(yè)務(wù)功能。如上面這個(gè)訂單管理需求,程序開(kāi)發(fā)人員可以利用EJB模型來(lái)實(shí)現底層的功能(80%的共性?xún)热?,然后再無(wú)需重新設計或者開(kāi)發(fā)整個(gè)應用程序或者銷(xiāo)售訂單管理模塊的情況下,可以利用不同的用戶(hù)接口來(lái)實(shí)現用戶(hù)的不同需求。
這就好像父母與子女的關(guān)系,F把父母的特性定義好,然后再根據不同的需要生養不同的子女即可(用戶(hù)接口)。由于子女繼承了父母的全部特性。那么只需要把用戶(hù)需要實(shí)現的一些個(gè)性特點(diǎn)嫁接到子女身上即可。
所以這種業(yè)務(wù)需求與業(yè)務(wù)功能相分離,各自獨立的特征,是EJB開(kāi)發(fā)模型的最大優(yōu)勢。程序開(kāi)發(fā)人員可以利用EJB實(shí)現分布式應用程序,將用戶(hù)接口與底層業(yè)務(wù)功能隔離開(kāi)來(lái)。
【EJB的開(kāi)發(fā)優(yōu)勢】相關(guān)文章:
淺析使用struts框架開(kāi)發(fā)web應用的優(yōu)勢11-02
網(wǎng)絡(luò )營(yíng)銷(xiāo)的優(yōu)勢有哪些優(yōu)勢09-09
西班牙留學(xué)生的優(yōu)勢與就業(yè)優(yōu)勢分析05-25
新加坡留學(xué)優(yōu)勢07-23
日本留學(xué)優(yōu)勢10-11
西班牙的留學(xué)優(yōu)勢06-23
留學(xué)日本的優(yōu)勢09-07
留學(xué)荷蘭的優(yōu)勢09-20
留學(xué)瑞士的優(yōu)勢10-30