亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

EJB的編程限制

2019-11-18 12:36:54
字體:
來源:轉載
供稿:網友

  EnterPRise javaBeans(EJB)是一個開發和部署分布式服務器端的、帶事務處理的、安全的商業組件的規范和結構。EJB的體系結構是J2EE的基礎和核心,J2EE定義了整個標準的應用開發體系結構和一個部署環境。在這個體系結構中,應用開發者的注重力集中在封裝商業邏輯和商業規則上,一切與基礎結構服務相關的問題和底層分配問題都由應用程序容器或服務器來處理。
  
  甚至,從屬于事務、持久化、安全等等方面的應用組件的運行時屬性都可以使用高度靈活的聲明方法在部署的環境中定制。這個體系結構定義了一個容器和一個服務器模型--容器是應用組件生存和執行的環境,而這個容器卻又借居在一個服務器之中。J2EE平臺提供了一個簡化的開發模型,它具有工業強度的可擴展性、支持合理的集成和靈活的部署,與開發商和應用服務器無關,這一切使得一些專用的應用服務器和專用的分布式對象框架變得古舊了。
  
  EJB的角色和責任
  EJB規范定義了幾個標準的角色和責任者,如下:
  
  1.EJB服務器提供商提供的應用服務器應是一個在分布式事務處理、系統服務等方面的專家。
  
  2.EJB容器提供商提供EJB組件實例運行環境和部署工具。EJB 服務器/容器提供商是典型的操作系統開發商、數據庫開發商或者是應用服務器開發商。EJB的服務器和EJB的容器應是同一個開發商提供,因為無論是在現在的EJB1.1規范(最終版)還是EJB2.0公共草稿版(正在修改)中都沒有定義兩者之間的接口。
  
  3.Bean的提供商或者EJB開發者開發的EJB組件都包涵商業邏輯及商業功能。EJB開發者提供的每一個EJB組件都應滿足以下條件:EJB的實現中應包括所有必須有的組件-容器合同方法(Contract method),如:ejbCreate(),ejbRemove()等等和一些商業方法(business method);Home接口;Remote接口;如需要還應有幫助類。Home接口為創建、刪除和查找EJB實例的方法提供簽名,Remote接口定義了商業方法的簽名。
  
  4.應用程序組裝器把一些由Bean提供商開發的EJB組件組裝成一個完整的J2EE應用程序。
  
  5.部署器在應用程序部署的目標產品環境中是專家,它在應用服務器中安裝應用組件并配置它們的事務、持久化和安全方面。這樣你就可以治理復雜的問題了,諸如:事務處理、并發處理、持久化以及安全。
  
  6.系統治理者負責服務器的配置和治理、運行監控和負載平衡。
  
  7.應用程序的用戶界面開發者負責用戶界面和表示邏輯。
  
  這篇文章的焦點集中在Bean提供商/EJB開發者方面和EJB組件實現代碼的限制方面。
  
  EJB組件的約束
  EJB的開發者并不需要在EJB的組件實現代碼中編寫系統級的服務,EJB提供商/開發者需知道并且嚴格地遵守一些限制,這些限制與開發穩定的和可移植的EJB組件的利益有關。
  
  以下是你應該回避使用的一些Java特色,并且在你的EJB組件的實現代碼中要嚴格限制它們的使用:
  
  1.使用static,非final 字段。建議你在EJB組件中把所有的static字段都聲明為final型的。這樣可以保證前后一致的運行期語義,使得EJB容器有可以在多個Java虛擬機之間分發組件實例的靈活性。
  
  2.使用線程同步原語來同步多個組件實例的運行。避免這個問題,你就可以使EJB容器靈活的在多個Java虛擬機之間分發組件實例。
  
  3.使用AWT函數完成鍵盤的輸入和顯示輸出。約束它的原因是服務器方的商業組件意味著提供商業功能而不包括用戶界面和鍵盤的I/O功能。
  
  4.使用文件訪問/java.io 操作。EJB商業組件意味著使用資源治理器如JDBC來存儲和檢索數據而不是使用文件系統API。同時,部署工具提供了在部署描述器(descriptor)中存儲環境實體,以至于EJB組件可以通過環境命名上下文用一種標準的方法進行環境實體查詢。所以,使用文件系統的需求基本上是被排除了。
  
  5.監聽和接收socket連接,或者用socket進行多路發送。EJB組件并不意味著提供網絡socket服務器功能,但是,這個體系結構使得EJB組件可以作為socket客戶或是RMI客戶并且可以和容器所治理的環境外面的代碼進行通訊。
  
  6.使用映象API查詢EJB組件由于安全規則所不能訪問的類。這個約束加強了Java平臺的安全性。
  
  7.欲創建或獲得一個類的加載器,設置或創建一個新的安全治理器,停止Java虛擬機,改變輸入、輸出和出錯流。這個約束加強了安全性同時保留了EJB容器治理運行環境的能力。
  
  8.設置socket工廠被URL's ServerSocket,Socket和Stream handler使用。避免這個特點,可以加強安全性同時保留了EJB容器治理運行環境的能力。
  
  9.使用任何方法啟動、停止和治理線程。這個約束消除了與EJB容器治理死鎖、線程和并發問題的責任相沖突的可能性。
  
  通過限制使用10-16幾個特點,你的目標是堵上一個潛在的安全漏洞:
  
  10.直接讀寫文件描述符。
  
  11.為一段特定的代碼獲得安全策略信息。
  
  12.加載原始的類庫。
  
  13.訪問Java一般角色所不能訪問的包和類。
  
  14.在包中定義一個類。
  
  15.訪問或修改安全配置對象(策略、安全、提供者、簽名者和實體)。
  
  16.使用Java序列化特點中的細分類和對象替代。
  
  17.傳遞this引用指針作為一個參數或者作為返回值返回this引用指針。你必須使用sessionContext或EntityContext中的getEJBObject()的結果。
  
  Java2平臺的安全策略
  以上所列的特點事實上正是Java編程語言和Java2標準版中的標準的、強有力的特色。EJB容器答應從J2SE中使用一些或全部的受限制的特色,盡管對于EJB組件是不可用的,但需通過J2SE的安全機制來使用而不是通過直接使用J2SE的API。
  
  Java2平臺為EJB1.1規范中的EJB容器所制定的安全策略定義了安全許可集,這些許可在EJB組件的編程限制中出現。通過這個策略,定義了一些許可諸如:java.io.FilePermission,java.net.NetPermission,java.io.reflect.ReflectPermission,
  
  java.lang.security.SecurityPermission,以便加強先前所列出的編程限制。
  
  許多EJB容器沒有加強這些限制,他們希望EJB組件開發者能遵守這些編程限制或者是帶有冒險想法違反了這些限制。違反這些限制的EJB組件,比標準方法依靠過多或過少的安全許可,都將很少能在多個EJB容器間移植。另外,代碼中都將隱藏著一些不確定的、難以猜測的問題。所有這些都足以使EJB組件開發者應該知道這些編程限制,同時也應該認真地遵守它們。
  
  任何違反了這些編程限制的EJB組件的實現代碼在編譯時都不能檢查出來,因為這些特點都是Java語言和J2SE中不可缺少的部分。
  
  對于EJB組件的這些限制同樣適用于EJB組件所使用的幫助/訪問(helper/access)類,J2EE應用程序使用Java文檔(jar)文件格式打包到一個帶.ear(代表Enterprise Archive)擴展名的文件中,這個ear文件對于發送給文件部署器來說是標準的格式。ear文件中包括在一個或多個ejb-jar文件中的EJB組件,還可能有ejb-jar所依靠的庫文件。所有ear文件中的代碼都是經過深思熟慮開發的應用程序并且都遵守編程限制和訪問許可集。
  
  未來版本的規范可能會指定通過部署工具來定制安全許可的能力,通過這種方法指定了一個合法的組件應授予的許可權限,也指定了一個標準方法的需求:如從文件系統中讀文件應有哪些要求。一些EJB容器/服務器目前在它們的部署工具中都提供了比標準權限或多或少的許可權限,這些并不是EJB1.1規范中所需要的。
  
  理解這些約束
  EJB容器是EJB組件生存和執行的運行期環境,EJB容器為EJB組件實例提供了一些服務如:事務治理、安全持久化、資源訪問、客戶端連接。EJB容器也負責EJB組件實例整個生命期的治理、擴展問題以及并發處理。所以,EJB組件就這樣借居在一個被治理的執行環境中--即EJB容器。
  
  EJB容器也是EJB組件和外部世界的中間者,它提供了客戶連接服務來答應應用程序客戶訪問和使用EJB組件所提供的功能,EJB容器通過bean的Remote和Home接口介入每一個對EJB對象方法的調用。
  
  EJB容器也是EJB組件和訪問其它各種資源和服務的中間人,因為EJB容器介入應用組件和J2EE服務,它可以透明地引入組件部署描述符所定義的服務,如:事務治理、安全、持久化、并發處理和狀態治理。
  
  資源就是一個封裝了訪問資源治理器的對象,因為一個資源工廠就是一個用來建造資源的對象。例如,一個JDBC連接代表一個實現了java.sql.Connection接口的對象,它是用來提供訪問數據庫治理系統的資源,并且實現了javax.sql.DataSource接口的對象是一個這樣JDBC連接的資源工廠。同樣,定義了許多獲得JMS、JavaMail以及URL連接的資源工廠,目前除此之外沒有其它的資源工廠了。
  
  (J2EE連接體系結構,目前正在修改,將期盼著包括J2EE未來版本的規范,這個連接體系結構定義了標準的資源適配器和依附于連接、事務、安全治理的合同,所以應用服務器將以標準和統一的方式插入各種企業信息系統,包括ERP(如SAP R/3),主框架事務處理系統和數據庫系統。
  
  因為EJB容器完全負責EJB組件的生命期、并發處理、資源訪問、安全等等,所以與容器本身的鎖定和并發治理相沖突的可能性就需要消除,許多限制都需要使用來填上潛在的安全漏洞。除了與EJB容器責任與安全沖突的問題,EJB組件還意味著僅僅聚焦于商務邏輯,它依靠于EJB容器所提供的服務而不是自己來直接解決底層的系統層的問題。
  
  可能的問題
  通常,EJB組件在容器之間的移植不可避免地與如

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品美女久久久| 成人国产精品久久久久久亚洲| 欧美激情综合色| 欧美黑人极品猛少妇色xxxxx| 欧美国产亚洲精品久久久8v| 欧美大片在线看免费观看| 精品国产一区二区三区四区在线观看| 欧美大肥婆大肥bbbbb| 91色在线视频| 国产一区二区三区欧美| 超碰91人人草人人干| 2019中文在线观看| 91精品国产91久久久久福利| 色yeye香蕉凹凸一区二区av| 国产精品视频一区二区高潮| 欧美性猛交xxxx偷拍洗澡| 久久久国产成人精品| 色爱精品视频一区| 久久福利视频导航| 亚洲精品福利在线观看| 97国产精品人人爽人人做| 国产不卡av在线| 国产偷亚洲偷欧美偷精品| 91在线视频九色| 午夜精品一区二区三区在线视| 北条麻妃一区二区三区中文字幕| 亚洲午夜精品久久久久久久久久久久| 美女福利精品视频| 97久久国产精品| 91精品久久久久久久久久久久久久| 久久亚洲国产精品成人av秋霞| 亚洲日本成人网| 日韩av在线电影网| 国产一区二区三区直播精品电影| 国产成人一区二区三区| 国产精品色婷婷视频| 91国语精品自产拍在线观看性色| 精品国产一区二区三区在线观看| 亚洲xxxx18| 亚洲欧洲av一区二区| 91嫩草在线视频| 午夜精品一区二区三区在线视频| 久久这里只有精品视频首页| 国产做受69高潮| 欧美成人精品一区二区| 日韩av不卡电影| 欧美激情精品久久久久久蜜臀| 少妇高潮 亚洲精品| 日韩在线视频网站| 中文国产亚洲喷潮| 在线日韩精品视频| 亚洲人成在线观看网站高清| 欧美激情视频一区二区| 亚洲国产精品女人久久久| 91精品国产亚洲| 欧美激情18p| 国产精品久久久久久久久久久不卡| 伊人久久精品视频| 欧美日韩国产页| 久久久久久中文| 一区二区三区视频免费在线观看| 国产精品免费久久久久久| 成人黄色免费看| 亚洲精品免费在线视频| 亚洲深夜福利网站| 精品国内产的精品视频在线观看| 福利视频导航一区| 亚洲精品久久久久久久久久久| 亚洲精品视频二区| 国产999精品视频| 久久亚洲精品国产亚洲老地址| 成人免费观看49www在线观看| 欧美日韩免费在线| 日韩女优人人人人射在线视频| 国产精品女人久久久久久| 国产精品老女人精品视频| 日韩av免费在线| 国产精品第3页| 日韩欧美在线免费| 亚洲国产天堂久久综合网| 亚洲社区在线观看| 久久男人的天堂| 亚洲美女黄色片| 丝袜情趣国产精品| 国产国产精品人在线视| 国产日韩欧美在线播放| 成人美女av在线直播| 亚洲综合社区网| 成人伊人精品色xxxx视频| 欧美贵妇videos办公室| 欧美丰满少妇xxxx| 久久在精品线影院精品国产| 91久久久久久久久久久久久| 在线亚洲午夜片av大片| 这里只有精品久久| 午夜精品三级视频福利| 九色成人免费视频| 久久久久久久成人| 欧美激情三级免费| 国产精品草莓在线免费观看| 在线精品播放av| 欧美野外猛男的大粗鳮| 亚洲午夜激情免费视频| 国产成人小视频在线观看| 久久不射热爱视频精品| 国产成人高潮免费观看精品| 国产原创欧美精品| 日av在线播放中文不卡| 国产一区二中文字幕在线看| 国产精品色午夜在线观看| 2019av中文字幕| 成人免费观看网址| 亚洲精品有码在线| 国产精品视频男人的天堂| 亚洲精品国产精品自产a区红杏吧| 2019国产精品自在线拍国产不卡| 久久久精品视频成人| 热99在线视频| 97在线免费观看| 久久亚洲国产精品成人av秋霞| 永久免费毛片在线播放不卡| 欧美在线观看视频| 国产精品视频一区二区高潮| 久久中国妇女中文字幕| 久久琪琪电影院| 精品偷拍各种wc美女嘘嘘| 国产精品美女免费看| 久久99热精品这里久久精品| 亚洲欧美国产一本综合首页| 国产成人精品视频在线观看| 久久久久亚洲精品| 欧洲亚洲女同hd| 国产精品久久久久久久久| 欧美性猛交xxxx免费看| 欧美性视频网站| 国产成人在线视频| 欧美高清在线观看| 国产精品视频一区二区三区四| 国产精品麻豆va在线播放| 在线观看国产欧美| 亚洲成**性毛茸茸| 国产亚洲精品日韩| 国产情人节一区| 92国产精品久久久久首页| 精品福利视频导航| 国产精品视频在线观看| 97国产精品免费视频| 亚洲第一在线视频| 亚洲аv电影天堂网| 亚洲桃花岛网站| 高跟丝袜一区二区三区| 青青精品视频播放| 久久久精品久久久| 草民午夜欧美限制a级福利片| 狠狠色狠狠色综合日日五| 国产精品女人久久久久久| 国产精品自拍偷拍视频| 日韩中文字幕第一页| 国产亚洲精品久久久优势| 777午夜精品福利在线观看| 91久久精品国产| 亚洲黄色有码视频| 97激碰免费视频| 亚洲美女精品成人在线视频|