国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

服務(wù)器端Java三劍客

2019-11-18 12:42:27
字體:
供稿:網(wǎng)友

  java獲得的廣泛支持和相對(duì)簡單的開發(fā)過程已經(jīng)使它成為很多應(yīng)用的首選語言。尤其在未來的Web應(yīng)用中,比如xml數(shù)據(jù)流和復(fù)雜的大容量事務(wù)處理,更需要健壯的Java解決方案。
  
    Java程序可以在兩個(gè)地方執(zhí)行:用戶臺(tái)式機(jī)上的客戶端瀏覽器和網(wǎng)絡(luò)服務(wù)器。Java在瀏覽器中的使用已經(jīng)讓人們親身體會(huì)到了它的好處,在將來更將發(fā)揮越來越大的作用。除了受到某些安全性和帶寬限制以外,由于利用Java可以在頁面中方便地實(shí)現(xiàn)活動(dòng)內(nèi)容,它已經(jīng)受到了人們的廣泛認(rèn)可。而在服務(wù)器端,使用Java結(jié)合動(dòng)態(tài)Html也已成為目前商業(yè)解決方案中最實(shí)用的技術(shù)。
  
    假如選擇了Java作為商業(yè)邏輯的實(shí)現(xiàn)語言,那么Java服務(wù)器小應(yīng)用程序和企業(yè)JavaBeans(EJB)可以將應(yīng)用程序生命周期中發(fā)生的變化很好地加以隔離。更具體一點(diǎn)兒說,比如在數(shù)據(jù)庫服務(wù)器中的存儲(chǔ)過程,同樣也可以從Java中受益,直接使用Java進(jìn)行開發(fā)。
  
    一、服務(wù)器端與客戶端的異同
  
    在客戶端使用Java,需要考慮的事情不太多。現(xiàn)在在客戶端瀏覽器中支持的內(nèi)置Java類主要由Microsoft或Netscape決定。當(dāng)然,最終的Java應(yīng)用還要受到用戶所能得到的帶寬限制。另外在許多情況下,系統(tǒng)的組織安全策略會(huì)把Java內(nèi)容拒之于防火墻外。這時(shí)你所需要做的惟一決定可能就是選擇一個(gè)合適的Java IDE(集成開發(fā)環(huán)境),這完全可以根據(jù)個(gè)人喜好確定。然而,假如在服務(wù)器端使用Java(假設(shè)在一個(gè)干凈的環(huán)境中),需要考慮的事情可能就多一些。你首先必須弄清楚所使用的是何種Web服務(wù)器,以及打算采用什么事務(wù)治理器。一旦決定在服務(wù)器端使用Java,還必須考慮內(nèi)部網(wǎng)到防火墻之間的一些基礎(chǔ)設(shè)施的安全問題。
  
    在理想的情況下,服務(wù)器端的Java是一個(gè)開放的開發(fā)模型,并不受特定的IDE限制。在選擇Java服務(wù)器基礎(chǔ)設(shè)施的時(shí)候,我們應(yīng)該著重考慮服務(wù)器到底能夠提供什么樣的Java執(zhí)行環(huán)境。雖然不同的Java環(huán)境所提供的服務(wù)有所不同,但是一般都提供了基本Java類庫。本文主要考察三種不同的服務(wù)器端Java開發(fā)環(huán)境:由IBM的WebSphere提供的Java服務(wù)器小應(yīng)用程序引擎、GemStone系統(tǒng)公司為EJB設(shè)計(jì)的應(yīng)用程序服務(wù)器、以及Oracle公司的Oracle 8i中將Java作為存儲(chǔ)過程編寫語言的專門開發(fā)環(huán)境。這些產(chǎn)品分別代表了開發(fā)中不同的例子,當(dāng)然各個(gè)公司也提供了別的Java支持產(chǎn)品(比如,IBM和Oracle都支持EJB)。
  
    二、Java服務(wù)器小應(yīng)用模型
  
    Java服務(wù)器小應(yīng)用模型最大的特點(diǎn)就是它提供了一個(gè)標(biāo)準(zhǔn)的、統(tǒng)一的API和環(huán)境,開發(fā)者可以使用統(tǒng)一廠商產(chǎn)品,而且它很好地解決了CGI進(jìn)程模型中的性能問題。并保證了Java的安全性。
  
  在開始討論之前,有必要首先提及無處不在的Java服務(wù)器小應(yīng)用API。Java服務(wù)器小應(yīng)用程序引擎是指能通過API方式向Java應(yīng)用程序提供服務(wù)的Java虛擬機(jī),它規(guī)定了與Web服務(wù)器進(jìn)程通信的協(xié)議。服務(wù)器小應(yīng)用API包括兩個(gè)軟件包:
  
    javax.servlet和javax.servlet.http。服務(wù)器小應(yīng)用引擎(一般就是Web服務(wù)器)負(fù)責(zé)加載用戶類,治理線程和多個(gè)客戶請(qǐng)求。引擎產(chǎn)生服務(wù)器小應(yīng)用程序的實(shí)例,并且創(chuàng)建所需的配置和會(huì)話對(duì)象。引擎同時(shí)還負(fù)責(zé)中止服務(wù)器小應(yīng)用程序,執(zhí)行垃圾收集。服務(wù)器小應(yīng)用API提供了一個(gè)簡單的對(duì)象框架來支持基于HTML的客戶,它包括用于檢索服務(wù)器請(qǐng)求的對(duì)象、一個(gè)簡單的流接口和其他高級(jí)特征,諸如cookies、會(huì)話跟蹤和線程支持等。"stock"服務(wù)器引擎提供了傳統(tǒng)意義上的服務(wù),比如會(huì)話、cookies;標(biāo)準(zhǔn)Java類庫,比如JDBC(Java數(shù)據(jù)庫互連)以及提供到企業(yè)數(shù)據(jù)的訪問接口。但是假如你需要更多的功能的話,WebSphere和GemStone/J都對(duì)服務(wù)器小應(yīng)用程序引擎進(jìn)行了增強(qiáng),為標(biāo)準(zhǔn)引擎提供了基本的治理和配置服務(wù)以及其他的高級(jí)事務(wù)處理和對(duì)象持久化服務(wù)。
  
    使用Java服務(wù)器小應(yīng)用API,只要簡單地將Java加到服務(wù)器中,安裝一個(gè)Java IDE和支持Java 服務(wù)器小應(yīng)用程序的Web服務(wù)器(大多數(shù)都支持),一切就都預(yù)備好了。通俗地講,可以將服務(wù)器小應(yīng)用API看成Java的CGI。與真正的CGI腳本不同的是,服務(wù)器端的Java提供(但不保證)創(chuàng)建可重用的對(duì)象框架,而CGI腳本不提供支持對(duì)象框架的任何設(shè)施。Java服務(wù)器小應(yīng)用模型最大的特點(diǎn)就是它提供了一個(gè)標(biāo)準(zhǔn)的、統(tǒng)一的API和環(huán)境,開發(fā)者可以使用統(tǒng)一的商業(yè)化產(chǎn)品,而且它很好地解決了CGI進(jìn)程模型中的性能問題(每個(gè)服務(wù)器小應(yīng)用程序是一個(gè)線程)。服務(wù)器小應(yīng)用程序在自己的上下文中執(zhí)行,從而可以保證Java的安全性和應(yīng)用程序服務(wù)。由于JVM(Java 虛擬機(jī))在自己的用戶進(jìn)程中執(zhí)行,任何調(diào)用NSAPI/ISAPI(Netscape API/Internet服務(wù)器API)服務(wù)器小應(yīng)用程序出現(xiàn)的異常都不會(huì)導(dǎo)致系統(tǒng)崩潰或者影響Web服務(wù)器進(jìn)程的性能。除此以外,用戶還可以使用所有其他為Java平臺(tái)開發(fā)的類庫、工具和API。
  
    但是服務(wù)器小應(yīng)用模型也有其不足之處,比如在采用這種模型時(shí),必須考慮性能問題。給定兩個(gè)完全相同的服務(wù)器和Web服務(wù)器進(jìn)程,采用Java服務(wù)器小應(yīng)用解決方案時(shí),就會(huì)導(dǎo)致Web服務(wù)器和JVM之間上下文的切換,產(chǎn)生額外的開銷。另外,假如采用NSAPI/ISAPI解決方案可以直接利用本地代碼編寫,避免了解釋Java字節(jié)碼時(shí)的開銷。雖然服務(wù)器小應(yīng)用在出錯(cuò)時(shí)不會(huì)影響Web服務(wù)器的正常執(zhí)行,但是它會(huì)影響到整體的應(yīng)用程序。
  
  三、WebSphere
  
    IBM的WebSphere是專為Java服務(wù)器端應(yīng)用開發(fā)的產(chǎn)品,它將關(guān)于Apache Web服務(wù)器的開發(fā)和連接治理等服務(wù)集成在WebSphere應(yīng)用程序服務(wù)器(WAS)中。除了提供基本的Web服務(wù)器的功能以外,WAS運(yùn)行環(huán)境還可以作為微軟的Internet信息服務(wù)器(IIS)和Netscape的Navigator/Communicator的附加程序,充當(dāng)服務(wù)器小應(yīng)用程序治理器的代理。
  
    WebSphere包括許多簡化服務(wù)器小應(yīng)用程序開發(fā)和治理的功能。WebSphere中包含了一個(gè)WASRunner類,可以在標(biāo)準(zhǔn)模式中啟動(dòng)應(yīng)用程序服務(wù)器,利用外部的IDE進(jìn)行程序的調(diào)試。Web服務(wù)器附加程序在啟動(dòng)時(shí)會(huì)自動(dòng)檢查WASRunner,并和它連接,所以開發(fā)者可以使用產(chǎn)品中運(yùn)行的同一Web服務(wù)器環(huán)境進(jìn)行工作。
  
    每一個(gè)服務(wù)器小應(yīng)用程序都與一個(gè)配置相關(guān)聯(lián)。這個(gè)配置通常由應(yīng)用程序服務(wù)治理器來治理。IBM在其WebSphere中包含了一個(gè)有趣的類,可以在XML文檔中治理這些信息,包括名稱、描述、初始化參數(shù)以及服務(wù)器小應(yīng)用程序的一個(gè)頁面列表。IBM同時(shí)提供了PageListServlet和XMLServerConfig兩個(gè)類來簡化XML文檔的創(chuàng)建和讀取。WebSphere還有專門用于簡化站點(diǎn)治理和開發(fā)任務(wù)的模塊,可以用于監(jiān)視服務(wù)器小應(yīng)用程序的執(zhí)行、連接、資源使用和響應(yīng)時(shí)間。
  
    四、GemStone/J
  
    假如使用Java處理一個(gè)大型企業(yè)的商業(yè)規(guī)則,可能對(duì)性能(可擴(kuò)展性和可用性)和成本(指減小編寫和維護(hù)的代碼)比較敏感。GemStone/J是一個(gè)功能強(qiáng)大的Java應(yīng)用程序服務(wù)器,可以支持服務(wù)器小應(yīng)用程序,EJB,CORBA(通用對(duì)象代理體系結(jié)構(gòu))以及分布式JavaBeans。它同時(shí)還提供了事務(wù)治理、安全性、對(duì)象存儲(chǔ)以及通信與消息等服務(wù)。
  
    GemStone在服務(wù)器小應(yīng)用程序引擎之上又提供了一些附加的服務(wù)。根據(jù)用戶的需要,GemStone/J可以支持Java對(duì)象的持久化,改變了應(yīng)用程序開發(fā)者必須自己通過對(duì)象--關(guān)系型或者對(duì)象型序列化的方式來檢索和創(chuàng)建對(duì)象的歷史。通過擴(kuò)展JVM,GemStone實(shí)現(xiàn)了一個(gè)持久緩存體系結(jié)構(gòu)。
  
    除了在程序變遷的過程中可以存儲(chǔ)對(duì)象以外,這種體系結(jié)構(gòu)還可以向運(yùn)行在多個(gè)Java虛擬機(jī)上的應(yīng)用程序提供狀態(tài)信息和應(yīng)用邏輯。服務(wù)器小應(yīng)用程序和JavaBeans可以分布在多個(gè)虛擬機(jī)平臺(tái)上,或擴(kuò)展到別的服務(wù)器中,從而可以獲得較高的性能和可用性。 為了簡化任務(wù),GemStone/J在事務(wù)中封裝了會(huì)話操作。它的對(duì)象治理監(jiān)視器(OTM)支持開始、提交、滾回和加鎖等擴(kuò)展的服務(wù)。GemStone治理員可以從緩沖區(qū)中配置服務(wù)器小應(yīng)用程序所需的事務(wù)控制級(jí)別,而不用進(jìn)行額外的編碼。Java開發(fā)者可以通過響應(yīng)GemStone環(huán)境產(chǎn)生的事件來治理非關(guān)系型事務(wù)的一致性。
  
    五、Oracle 8i
  
    Oracle有一個(gè)應(yīng)用程序服務(wù)器產(chǎn)品,不過我們真正感愛好的是Java語言在經(jīng)典數(shù)據(jù)庫環(huán)境中的使用。作為服務(wù)器可執(zhí)行程序的一部分,Oracle 8i包括了一個(gè)在進(jìn)程空間中執(zhí)行的JVM,它與RDBMS內(nèi)核共享存儲(chǔ)堆。Oracle的JVM是一個(gè)與JDK 1.1.6兼容的環(huán)境。所有的數(shù)據(jù)庫客戶(比如查詢工具、報(bào)表生成器和胖客戶應(yīng)用程序)都可以調(diào)用基于Java的存儲(chǔ)過程。調(diào)用方法與調(diào)用傳統(tǒng)的存儲(chǔ)過程沒有任何區(qū)別。所以在很短的時(shí)間內(nèi)可以支持大量的客戶程序。用Java編寫的存儲(chǔ)過程可以從整個(gè)環(huán)境中得到好處。它們以編譯好的形式儲(chǔ)存,自動(dòng)在多個(gè)用戶間實(shí)現(xiàn)緩存。通過對(duì)激活程序賦予不同的特權(quán)可以實(shí)現(xiàn)對(duì)它們的訪問控制。
  
    為了使用Java,程序員可以使用自己喜好的IDE開發(fā)類,然后完成下面兩個(gè)額外的步驟。首先數(shù)據(jù)庫需要知道類中的哪些方法將從SQL環(huán)境中調(diào)用。接下來程序員就可以編寫一個(gè)Oracle PL/SQL調(diào)用規(guī)范,定義要從SQL中調(diào)用哪些Java方法。然后程序員就需要將參數(shù)和返回類型映射到SQL環(huán)境中的對(duì)應(yīng)部分。
  
    在Java類中,可以用標(biāo)準(zhǔn)的JDBC調(diào)用來訪問關(guān)系數(shù)據(jù)庫。從可移植性和較快的執(zhí)行速度上考慮,這種調(diào)用顯得很有意義。JDBC是Java中訪問關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)方法。通常JDBC在遠(yuǎn)程進(jìn)程之間使用。在Oracle RDBMS中,Oracle已經(jīng)將JDBC實(shí)現(xiàn)為JVM的一部分。然而,由于JDBC實(shí)現(xiàn)結(jié)構(gòu)上的差異,這種訪問方法要比遠(yuǎn)程方法快得多。RDBMS中的JDBC直接訪問底層的內(nèi)部庫和內(nèi)存,避免了額外的網(wǎng)絡(luò)訪問、進(jìn)程間通信或進(jìn)程上下文的切換等開銷,這些都大大節(jié)省了時(shí)間。
  
    Oracle提供的所有Java類為了在執(zhí)行時(shí)速度更快,都已經(jīng)編譯成了本地代碼。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 昭平县| 龙州县| 成都市| 郑州市| 普定县| 株洲市| 尖扎县| 通山县| 通道| 深水埗区| 河南省| 隆子县| 曲麻莱县| 宣威市| 巩义市| 年辖:市辖区| 施甸县| 鄂托克前旗| 平顺县| 通城县| 陆川县| 高唐县| 吐鲁番市| 集安市| 石阡县| 峨眉山市| 前郭尔| 黄陵县| 许昌县| 平南县| 筠连县| 本溪| 张家港市| 信丰县| 桓仁| 金华市| 昭通市| 昭苏县| 滁州市| 剑阁县| 丰顺县|