概述
從企業套用的開發、部署、運行到維護各個階段,Apusic套用伺服器3.0基於各種現有的被廣泛接受的工業標準,包括J2EE?1.2和1.3規範、XML相關規範、Web Services相關規範、數據交換以及各種安全方面的協定和標準,為企業套用提供了一個可靠、高效的開發、部署和維護的平台。
簡單分析
1.1. 基於工業標準和規範的解決方案 Apusic遵循的相關工業標準、規範和已實現的API如下:
1.1.1. J2EE?相關
RMI/IIOP
JDBC?3.0及JDBC?2.0擴展
EJB?2.0
EJB?1.1
Servlets2.3
JSP?1.2
JMS1.1
JTS
JTA1.0
JCE1.2
JSSE
JavaMail?1.2
JAF1.0
JAXP1.1
JNDI
JMX1.2
JAAS
JSR-77
1.1.2. XML相關規範
XML1.0
XML Namespaces 1.0
SAX 2.0 API
DOM Level 2 Core Recommendation
XSL 1.0
1.1.3. WebServices相關規範
JAX-RPC1.0
JAXM1.1
SAAJ1.1
JAXR1.0
SOAP1.1
SOAP with Attachments
WSDL1.1
UDDI2.0
1.1.4. Internet相關協定及標準
TCP/IP protocol family
HTTP 1.0
SSL 3.0
以下依次介紹
伺服器特性:
除提供了對以上規範、標準的支持和對相關API的實現之外,Apusic提供了很多獨有的極具競爭力的特性,致力於降低分散式多層企業套用的設計、開發、部署和維護成本,提高生產效率,而同時不影響企業套用遵循相關的標準和規範。
按照多層企業套用的分層方式,從以下三個層次概述Apusic套用伺服器3.0的特性。
表示層: 多層套用模型中的表示層主要被用於與瀏覽器、桌面套用、無線設備及其他客戶端的互動,Apusic套用伺服器支持所有的客戶機/伺服器的互動機制。
在基於J2EE?編程模型的套用中,
表示層主要使用JSP、Servlets 編程模型,對於Apusic套用伺服器,還支持諸如Java Applets、Java Application或其他ActiveX組件的客戶類型。
對於通過
瀏覽器進行的Http請求,Apusic套用伺服器提供了一個高效可靠的Web伺服器。通過使用Servlet和JSP實例池、結果快取、JSP編譯調試工具等工具和技術,對於部署於伺服器上的JSP和Servlet,Apusic套用伺服器服提供了一個高效可靠的運行時環境和開發、部署和維護的高效易用的平台。
2.1.1. 對規範的實現
J2EE?1.3規範中包含了JSP和Servlet規範,通過使用JSP和Servlet規範,定義了J2EE企業套用中的
表示層的編程模型。通過使用JSP和Servlet,實現Web內容的動態生成。
JSP與Servlet是緊密相關的兩種編程模型,二者都生成動態的Web內容。不同之處在於Servlet使用JAVA語言編寫,而JSP的編寫還使用了HTML的擴展版本。對於使用HTML編輯器或設計器並熟悉HTML的Web設計者來說,JSP非常便利。而全部使用JAVA的Servlet更適用於JAVA程式設計師而非Web設計者。
Apusic3.0套用伺服器中的Web伺服器嚴格遵循了J2EE?規範中Servlets2.3規範和JSP1.2規範。
2.1.2. 增值特性
除了對J2EE相關JSP和Servlet規範的實現,Apusic套用伺服器中的Web容器和相關工具還提供了一些增值特性,通過這些增值特性,使得面向Apusic套用伺服器的
表示層的開發、部署、運行和維護變得更加方便和高效。
可以在單個的Apusic套用伺服器上配置多個Web站點。通過域名與套用伺服器的路徑映射實現此功能,只需指定域名即可實現對站點的訪問。
多路復用
Apusic 套用伺服器採用了多路復用(multiplexing)通訊技術。在一個TCP/IP 連線上建立多個雙向的虛擬連線,每個虛擬連線可以進行完全獨立的通訊功能。通訊雙方可以根據需要打開或關閉虛擬連線,進行通訊,實現了將多個服務統一到一個連線埠上,降低伺服器的管理成本。
使用第三方Web伺服器
除了Apusic套用伺服器內置的Web伺服器外 ,Apusic套用伺服器可以與其他現有的Web伺服器進行整合,如Apache、Microsoft IIS等,通過使用Apusic套用伺服器提供的
負載均衡功能,為企業套用提供一個更高可用性和伸縮性的平台。
負載均衡與失效恢復
Apusic套用伺服器提供了基於Web層的負載均衡的功能。當使用Apusic作為集群中的
負載均衡器時,伺服器提供了獨有的負載均衡和失效恢復的特性。
對於一個使用Apusic作為
負載均衡器的伺服器集群,當客戶請求到達負載均衡器時,負載均衡器將請求轉發到最初服務此請求的內部伺服器,如果是初次請求,則負載均衡器隨機選擇集群中的任意一個內部伺服器處理此請求;當內部伺服器處理完請求,將產生的應答返回給負載均衡器,會話數據被保存在負載均衡器上;當下一個請求到達而原先處理該請求的內部伺服器失效時,負載均衡器重新選擇一個正常的內部伺服器,這時會話數據連同請求一起被轉發給新的內部伺服器,會話數據被遷移到新的內部伺服器。
此特性以較少的
數據遷移量,較高的
容錯性,提供了基於Web層的負載均衡與失效恢復的增值特性
JSPC工具
為提高
表示層JSP的開發調試的效率,Apusic提供了一個簡單易用的JSP命令行編譯工具JSPC,通過此工具,開發者可以對JSP進行更為高效的開發和調試,通過設定相關調試工具,可以實現對JSP的源碼級調試。
最有利的是,發布套用只需要發布編譯好的jsp class,即可對jsp
原始碼提供保護,而不需要提供jsp源程式檔案,以免因為其他原因暴露jsp的
源檔案,並且,在套用運行時,避免對jsp源檔案進行編譯以節省時間。
業務邏輯層: 多層套用模型中的業務邏輯層被用於封裝套用業務邏輯,包括獨立於套用界面的
業務組件,通過套用伺服器中的組件容器提供運行時環境。 Enterprise JavaBeans?(以下稱EJB)是J2EE?套用中的
業務邏輯層的組件模型。
Apusic套用伺服器3.0版本提供了對EJB2.0規範的完全實現,同時提供了相關的增值特性,以簡化對J2EE套用邏輯層的開發、部署、管理和維護。
2.2.1. 對規範的實現
Apusic套用伺服器中的EJB容器提供對EJB的生存周期管理、
快取、持久性和事務管理等服務。 目前,J2EE規範中最新的EJB規範為2.0版本。
EJB2.0規範中定義了三種類型的EJB:Session Bean、Entity Bean和Message-driven Bean。 同時定義了相關的一些特性,如CMR、EJB QL等,為提高套用執行的效率,還定義了新的Local接口。Apusic3.0提供了對以上內容的完全實現。
Entity Bean
Entity Bean被用於表示套用中的
業務實體,通常與資料庫或傳統套用中的業務數據實體保持映射關係,可以理解為資料庫或傳統套用中的業務數據實體在記憶體中的對象表示方式。
Entity Bean的實例可由任何客戶端的請求生成實例,且不因客戶連線中斷、系統失效等原因而消失,其狀態被持久保留在資料庫或傳統套用中。
EJB2.0規範中對Entity Bean定義了新的容器管理關係模型(CMR)和Entity Bean的查詢語言EJB QL。
Session Bean
Session Bean通常被用於實現業務過程邏輯,通過對Entity Bean的操作完成業務過程並封裝過程邏輯。 儘管在需要的情況下,Session Bean可以有保持數據到持久存儲機制的能力,如資料庫,但Session Beans不是持久的。
Message-driven Bean
Message-driven Bean 是EJB2.0規範中新增的一個enterprise bean 類型,通常被用於異步接收從
客戶端傳送的訊息,觸發相應的業務處理過程。
作為Enterprise Bean,Message-driven Bean具有一些與Session Bean 和Entity Bean 相同的接口方法,但由於Message-Driven Bean 本身不處理客戶端調用,也無會話狀態,客戶只能通過向與Message Driven Bean 關聯的
佇列或主題傳送訊息從而與Message Driven Bean 進行互動,另外,Message–Driven Bean 異步地處理佇列(Queue)或主題(Topic)中的訊息,而非方法調用。
2.2.2. 增值特性
除了對EJB2.0規範的實現,Apusic套用伺服器中的EJB容器和相關
系統服務還提供了一些高端增值特性,通過這些增值特性,使得面向Apusic套用伺服器的
業務邏輯層的開發、部署、運行和維護變得更加方便、高效和可靠。
實例池
通過圖形化的配置工具或簡單修改組件配置檔案,Apusic套用伺服器可以預先裝載指定數量的對象實例到實例池中,使對客戶請求進行回響的過程更加高效。
CMP Entity Bean自動升遷
對於一個按照EJB1.1規範編寫的CMP Entity Bean,套用伺服器在運行時將其自動升級到EJB2.0,使按照EJB1.1規範編寫的EJB可以使用EJB2.0規範中提供的Lazy Loading和Smart Update技術以提高套用執行的效率,同時降低已有套用在維護上的成本。
為提高企業套用開發、調試和維護的效率,Apusic套用伺服器提供了
熱部署的功能。在運行時,可以動態地部署和修改套用中的應用程式,無需停止和重新啟動伺服器即可套用新的改動。
自動遷移及部署
不同的套用伺服器廠商提供的基於J2EE?規範實現的套用伺服器的不同,使得多數企業套用在不同的伺服器之間遷移時,需要改動一些配置,提高了套用移植的成本,Apusic套用伺服器提供了自動遷移和部署的能力,對於面向其他非Apusic套用伺服器開發的企業套用,可以不改動應用程式,而由套用伺服器自動完成移植的工作並部署到套用伺服器,大大降低了套用移植的成本。
目前對於面向Weblogic6.0和J2EE?RI開發的企業套用,可以直接使用這項功能,Apusic套用伺服器還將在此項功能上添加對當前其他主流套用伺服器的支持。
自動生成查詢
為提高面向CMP Entity Bean的開發效率和降低開發的難度,Apusic套用伺服器可為CMP Entity Bean自動生成預設的finder query。 數據層: Apusic套用伺服器模型中的數據層提供企業套用對
關係型資料庫和傳統企業套用數據的高效而可靠的訪問。使得企業套用可以通過JDBC實現對
關係型資料庫安全、可靠而且高效的訪問。目前Apusic套用伺服器提供了對最新的JDBC3.0版本的支持。任意合法的J2EE?
編程模型都可以從Apusic套用伺服器
資料庫連線池中獲得對
關係型資料庫的連線。
按照J2EE?的規範,Entity Bean被設計為與資料庫直接互動的最佳模型,但在實際的企業運用開發中,任何一種編程模型都有可能直接與資料庫進行互動,針對這種情形,Apusic套用伺服器提供了很多功能或特性,使對數據層訪問的開發更為簡單同時達到更為高效而安全的目標。
對於Session Bean、JSP、Servlets為主的J2EE套用中,頻繁訪問資料庫而缺少對應的
數據快取等機制,往往會成為企業套用的瓶頸。因此,Apusic套用伺服器提供了JDBC結果集
快取技術,通過將資料庫返回的結果集保存在記憶體中可以大幅提高套用系統的性能,同時,使用結果集快取對套用開發者是完全透明的,保證了套用的可移植特性。
JDBC語句快取
對於Session Bean、JSP、Servlets為主的J2EE套用中,頻繁訪問資料庫而缺少對應的數據快取等機制,往往會成為企業套用的瓶頸。因此,Apusic套用伺服器提供了JDBC語句快取技術,同時使用
預編譯的查詢語句,提高應用程式訪問資料庫的效率。
對於複雜的企業套用而言,對
資料庫連線池的可靠、效率,成本都有著極高的要求,Apusic套用伺服器提供了對連線資源的最佳化,使有限的資料庫連線資源得到最大程度的利用,同時,對於套用錯誤使用連線造成的死鎖或阻塞,提供了死鎖檢測的技術,而以上的特性對於用戶而言是完全透明的。
系統服務
Apusic套用伺服器提供了針對多層的分散式企業套用的諸如安全、事務等系統服務方面的核心構架。
安全
對於企業套用而言,套用伺服器所能提供的安全方面的功能是保證企業套用數據完整、邏輯完整和減少被入侵可能的 重要特性,針對多層的分散式企業套用的安全要求,Apusic套用伺服器提供了可靠高效的安全構架。同時,為應用程式的加密需求提供了一個安全、強壯、高效的JCE提供者。
身份鑑定
Apusic套用伺服器提供了面向用戶、調用過程和客戶端調用等方式的身份鑑定,通過使用用戶名和密碼、證書等等方式,將合法的套用用戶和調用程式區別於非法的入侵者。
授權
授權是使企業套用的完整性和安全性得以保證的重要因素,Apusic套用伺服器對企業套用的授權策略提供了易於配置和修改的方法與工具,同時提供了可靠安全的授權機制。
加密
對於企業套用中的敏感數據的保存和交換,Apusic提供了高效可靠的加密機制。
安全數據存儲
對於系統中的關鍵數據,如訊息、用戶信息等等,Apusic提供了極安全的內部保護存儲機制。
事務
為保證套用數據和業務邏輯的的完整性,除了提供完全符合規範和強壯的事務管理器之外,Apusic套用伺服器對Entity Bean中特別是CMP類型的組件,提供了強壯而靈活的事務構架。
死鎖檢測
能夠根據資源等待圖自動檢測出死鎖狀態,當事務發生死鎖時將其中一個
事務回滾,以釋放事務所占用的資源,使其他事務能夠繼續執行。
提供了靈活和強壯的EJB
並發控制機制,單獨分離出了並發控制部分,可以使用外掛程式的形式同時提供多種並發控制協定。
JMS全局事務
提供了一個作為事務性資源管理器的JMS 提供者(Provider),允許從JSP,Servlet, EJB 等套用組件中對JMS 進行事務性的訪問。同時,從一個單一事務邊界中允許多個套用組件訪問JMS 提供者。
Web Services支持
Web Services指的是由企業發布的完成其特別商務需求的基於Web的線上套用服務,其他的公司或者套用軟體能夠通過網際網路來訪問的線上服務。通常這些線上服務後端存在一個能完成企業某種特定功能的企業套用。
Apusic套用伺服器實現了對Web Services的支持。Apusic WebServices是一個基於Apusic 套用伺服器的Web Services實現。使用Apusic WebServices,用戶可以在Apusic 套用伺服器上創建Web Services服務,也可以使用Apusic WebServices提供的接口和工具去訪問一個Web Services服務。
結束語
Apusic套用伺服器3.0版提供了一個完全基於J2EE?1.3規範的套用伺服器產品,為分散式企業套用提供了安全、可靠、高效的開發、部署、維護的平台。同時,在降低企業套用的開發和維護成本方面,以及在提高企業套用執行效率和伺服器的易管理方面提供了相當多的增值特性,而這些特性並不以降低企業套用的可移植性為代價,相反,在提供標準功能和提供其他主流套用伺服器的同等特性的基礎上,最大限度地提高了套用的可移植特性,這是其他主流套用伺服器所無法比擬的。