08 訂閱轉換后端搭建(python后端開發需要學什么)

时间:2024-05-03 13:21:05 编辑: 来源:

EE

中南大學 羅新星 畢文杰

企業應用系統的開發一直面臨著重大挑戰:一方面,企業應用系統面對的是一個異構的分布式環境,它必須支持與已有系統的集成性和與其他系統的互操作性;另一方面,作為為客戶、合作伙伴和企業內部提供信息服務的平臺,企業系統還必須具有高可用性、安全性、可靠性和可伸縮性。這些要求再加上復雜多變的用戶需求和不斷伸縮的交付時間,使得企業系統的開發越來越困難。開發商和廣大程序員一直在努力推動和殷切期待一個成熟、標準的企業平臺來簡化和規范企業系統的開發和部署。Java技術的出現,尤其是J2EE(Java 2 Platform Enterprise Edition)平臺的推出正是這種努力的結果,也使得企業系統的開發由此變得更加快速和方便。需要指出的是,J2EE本身是一個標準,它為不同廠商創建平臺產品提供了標準,使不同J2EE平臺產品之間的交互成為可能。

J2EE旅程

Java于1996年由Sun公司推出,當時它的主要用途是制作產生動態網頁的Applet。后來,人們發現Java的“一次開發,多次運行”、純面向對象的特性、垃圾回收機制和內置的安全特別適合于開發企業應用系統。于是,企業應用開發商紛紛在Java標準版的基礎上各自擴展出許多企業應用API,其結果導致基于Java的企業應用呈爆炸式增長。但是各企業系統API之間又不能相互兼容,破壞了Java的平臺獨立性。鑒于此,Sun公司聯合IBM、Oracle、BEA等大型企業應用系統開發商于1998年共同制訂了一個基于Java組件技術的企業應用系統開發規范,該規范定義了一個多層企業信息系統的標準平臺,旨在簡化和規范企業應用系統的開發和部署。這一規范和其定義的平臺就構成了J2EE。目前J2EE的最新版本是J2EE 1.3。需要注意的是,J2EE本身是一個標準,而不是一個現成的產品(雖然現在有很多符合J2EE標準的產品),它由以下幾個部分組成:

J2EE規范。該規范定義了J2EE平臺的體系結構、平臺角色及J2EE中每種服務和核心API的實現要求。它是J2EE應用服務器開發商的大綱。

J2EE兼容性測試站點。Sun公司提供的一個測試J2EE應用服務器是否符合J2EE規范的站點,對通過該站點測試的產品,Sun公司將發放兼容性證書。

J2EE參考實現。即J2EE SDK,它既是Sun公司自己對J2EE規范的一個非商業性實現,又是為開發基于J2EE企業級應用系統原型提供的一個免費的底層開發環境。

J2EE實施指南。即BluePrints文檔,該文檔通過實例來指導開發人員如何去開發一個基于J2EE的多層企業應用系統。

組件-容器 搭建體系架構

J2EE規范定義了一個基于組件的多層企業應用系統開發平臺,其邏輯結構如圖1所示。圖中的橢圓形表示組件,大矩形表示容器,包含向下文字的小矩形表示API,箭頭表示訪問,箭頭線上的文字表示相應的協議。

J2EE是一個基于組件-容器模型的系統平臺,其核心概念是容器。容器是指為特定組件提供服務的一個標準化的運行時環境,Java虛擬機就是一個典型的容器。組件是一個可以部署的程序單元,它以某種方式運行在容器中,容器封裝了J2EE底層的API,為組件提供事務處理、數據訪問、安全性、持久性等服務。在J2EE中組件和組件之間并不直接訪問,而是通過容器提供的協議和方法來相互調用。組件和容器間的關系通過“協議”來定義。容器的底層是J2EE服務器,它為容器提供J2EE中定義的各種服務和API。一個J2EE服務器(也叫J2EE應用服務器)可以支持一種或多種容器。在圖1中,你可能已經注意到每個容器的服務包括兩部分:J2SE(Java 2 Platform Standard Edition)和一組擴展的服務。這是因為J2EE是以Java標準版為基礎的,各容器在J2SE之上再根據需要提供一些擴展的服務,如目錄服務、事務管理、數據訪問、消息機制、安全性等。

J2ee的核心——EJB

J2EE定義了四種組件:Applet組件、Application客戶組件、Web組件及EJB(Enterprise JavaBeans)組件。其中Applet和Application客戶組件在客戶端運行,J2EE通過Java插件為Applet提供運行環境,Application客戶的容器就是本地Java虛擬機。Web及EJB組件在服務端運行。J2EE中包含兩種Web組件:JSP和Servlet。它們是Web服務器的功能擴展,都能生成動態Web頁面。不同的是JSP是將Java代碼嵌入到HTML中,服務器負責解釋執行,生成結果返回用戶(與ASP技術相似)。而Servlet是單獨的Java類,它動態生成HTML文件返回給客戶。Web組件的容器比較典型的就是基于Java的Web服務器。

EJB是J2EE平臺的核心,也是J2EE得到業界廣泛關注和支持的主要原因。我們知道,J2EE的一個主要目的就是簡化企業應用系統的開發,使程序員將主要精力放在商業邏輯的開發上。EJB正是基于這種思想的服務器端技術,它本身也是一種規范,該規范定義了一個可重用的組件框架來實現分布式的、面向對象的商業邏輯。EJB的核心思想是將商業邏輯與底層的系統邏輯分開,使開發者只需關心商業邏輯,而由EJB容器實現目錄服務、事務處理、持久性、安全性等底層系統邏輯。

一個可部署的EJB組件包含3個部分:

Remote 接口 Remote接口定義EJB組件中提供的可供用戶調用的方法,也就是通常所說的實現商業邏輯的函數或過程(如計算商品價格的函數),以供遠程客戶端調用。在EJB組件部署到容器的時候,容器會自動生成Remote接口相應的實例,即EJB對象,它負責代理用戶的調用請求。

Home接口 Home接口定義一組方法來創建新的EJB對象,查找、定位和清除已有的EJB對象。在EJB組件部署時容器也會自動生成相應的Home對象,該對象負責查找和創建EJB對象,返回EJB對象的引用給客戶;用戶利用該引用調用EJB組件的方法,得到結果;最后Home對象清除EJB對象。我們可以形象地稱Home接口為EJB對象的工廠。

Enterprise Beans類 Enterprise Beans類是商業邏輯的具體實現類。其可供用戶調用的方法在Remote接口中定義。根據功能不同,EJB 2.0規范中定義了三種Enterprise Beans:會話Beans(Session Beans)、實體Beans(Entity Beans)和消息驅動Beans(Message-driven Beans)。

會話Beans分無狀態和有狀態兩種。一般無狀態的會話Beans模擬商業邏輯,比如計算價格等。有狀態的會話Beans通常模擬一個客戶會話,它會臨時保存客戶信息,根據客戶要求調用其他Beans來存取數據。兩種會話Beans都不保存狀態信息或數據,當客戶斷開連接或服務器關閉時,會話Beans也隨之消失。一個會話Beans的典型例子是網站上的購物車。

實體Beans模擬商業數據,它表示一個數據存儲,可以是狀態信息或數據庫中的一條紀錄。實體Beans在客戶斷開連接或服務器關閉后,仍有服務保證其數據得以保存。一個實體Beans的典型例子就是客戶賬號信息。

消息驅動Beans在行為上很像會話Beans。不同的是僅在需要向這些Beans發送消息時才調用消息驅動Beans,比如在需要的時候發送用戶確認信息等。

另外,在提交和部署EJB組件時,還需要兩個文件:部署描述文件,容器根據該文件來部署Enterprise Beans,提供所要求的服務;EJB jar文件,它是提交給EJB容器的一個部署單元,容器(應用服務器)在部署時解開它,裝入Enterprise Beans。

EJB容器非常復雜,一般由專業的J2EE應用服務器開發商提供,比較流行的EJB容器由IBM的WebShpere、BEA公司的WebLogic Server、Sun公司的iPlant等應用服務器提供。EJB容器除了為EJB提供事務處理、目錄服務、持久性管理和安全性服務外,還負責EJB的部署、發布和生命周期管理。

平臺標準服務

服務是組件和容器之間,以及容器和J2EE服務器之間的接口,在實現層面上它就是一系列API和協議。J2EE平臺定義了一組標準的服務,其中有些服務是由J2SE提供的,有些則是J2EE對Java的擴展。

目錄服務 JNDI(Java Name and Directory) API為應用程序提供了一個統一的接口來完成標準的目錄操作,由于JNDI是獨立于目錄協議的,應用程序可以用它訪問各種目錄服務,如LDAP、NDS、DNS等。

數據訪問 JDBC(Java Database Connectivity) API為訪問不同類型的數據庫提供了統一的途徑,屏蔽了不同數據庫的細節,具有平臺無關性。J2EE平臺除了要求核心的JDBC API(包含在J2SE中)外,還要求擴展的JDBC API 2.0,它支持行集、連接池和分布式的事務處理。

事務處理 JTA(Java Transaction Architecture)定義了一組標準的接口,為應用系統提供可靠的事務處理支持。JTS(Java Transaction Service)是CORBA OTS事務監控的Java實現。JTS規定了事務管理器的實現方式,該事務管理器在高層支持JTA標準,在底層實現了OMG OTS規范的Java映射。

消息服務 JMS(Java Message Service)是一組用于和面向消息的中間件相互通信的API。

它既支持點對點的消息通信,也支持發布/訂閱式的消息通信。 電子郵件 JavaMail API允許在應用程序中以獨立于平臺、獨立于協議的方式收發電子郵件。JAF(JavaBeans Activation Framework)負責處理MIME編碼,JavaMail利用JAF來處理MIME編碼的郵件附件。

CORBA兼容接口 RMI(遠程方法調用)是在分布式對象間通信的Java本地方法,它使應用程序調用遠程方法像調用本地方法一樣,不需要考慮所調用對象的位置。RMI-IIOP是RMI的擴展,是符合CORBA標準的對象通信協議,也是J2EE默認的組件通信協議。Java IDL允許J2EE應用組件通過IIOP協議訪問外部的CORBA對象。

安全服務 JAAS(Java Authentication and Authorization Service)用兩個步驟實現安全性:認證,即由用戶提供認證信息(如用戶名和密碼)來獲得系統認證,這一過程又稱之為登錄;授權,在被確認為合法用戶后,系統根據用戶的角色授予其相應的權限。J2EE的授權是基于安全角色的概念,一個安全角色是一個擁有相同權限的邏輯組。J2EE的安全角色由應用組件提供商來定義。

Web服務支持 目前J2EE還不提供對Web服務的支持。Sun提供了一套API及其實現WSDP作為對J2EE的擴展,但目前還不是J2EE規范的內容。在WSDP中,JAXP用來解析XML文檔;JAXR向UDDI服務器注冊Web Services;JTX/RPC用基于XML的協議(如SOAP)來發送和接收XML文檔;JWSDL處理WSDL文檔。雖然J2EE不是為Web服務而生,但它現在

搜索关键词: