【正文】
Dynamic Deployment。除此之外, JBoss 實(shí)現(xiàn)了一個先進(jìn)的類下載子系統(tǒng)和部署服務(wù)。因此我們提倡并將把用 JBoss 應(yīng)用服務(wù)器設(shè)計(jì)的微內(nèi)核的應(yīng)用服務(wù)器用作一個模型。它為 MDB 管理消息目的以及基于查詢的 Java 連接器通過它的管理服務(wù)層去提供這種消息服務(wù)。 部署系統(tǒng)組件 對應(yīng)用組件來說, J2EE 規(guī)范只是少了在部署和拆卸時的明確定義,而對系統(tǒng)服務(wù)來說,在這方面做的更糟。文檔可能包含用于執(zhí)行組件的 Java 類或者任何其它的所需組件。 部署 J2EE應(yīng)用程序和系統(tǒng)服務(wù) 部署應(yīng)用程序組件 部署和拆卸標(biāo)準(zhǔn)的 J2EE 組件還沒有統(tǒng)一的標(biāo)準(zhǔn),因此每個應(yīng)用服務(wù)的提供商對組 件的部署和拆卸提供了單獨(dú)的功能于 J2EE 規(guī)范中沒有定義標(biāo)準(zhǔn)組件的包,包的格式和包內(nèi)的基于 xml 部署解釋器的位置,因此這種包對于沒有所屬權(quán)變化的應(yīng)用服務(wù)器不需要部署。在 Web 層,這種交互的例子是 servlet 到 servlet 的請求轉(zhuǎn)發(fā)。 (4) 用在參考組件運(yùn)行環(huán)境中的 JNDI 指引去指出綁定的參考 EJB 的能力 。因此我們的架構(gòu)將使用簡化的途徑,它所依賴的特征在現(xiàn)在 的大多數(shù)的應(yīng)用服務(wù)器上都可以得到。 (5) 部署指定的組件類 。 假設(shè)潛在 的應(yīng)用服務(wù)器提供了所有的設(shè)備去控制部署過程的每一步,那么在兩個J2EE 組件間確立一個連接需要涉及: (1) 部署目標(biāo)組件類 。環(huán)境中的綁定在組件部署時由部署者進(jìn)行初始化。 (2) Java 連結(jié)器的外部連接:同步消息接收,同步和異步消息發(fā)送,用連接工廠和連接接口進(jìn)行數(shù)據(jù)庫查詢。這樣由于組件的事務(wù)行為通過他的描述者來定義而且全部用 EJB 容器來處理,因此作為一個隱式獨(dú)立的 EJB 提供潛在的事務(wù)管理服務(wù)。一個 J2EE 編程者明確編寫的項(xiàng)目只有 EJB 和 Web 組件。目錄被執(zhí)行的 JNDI 環(huán)境被獨(dú)立的由容器的每個組件加以維護(hù)。 . (3) 消息目的 。軟件組件是有一系列的具體的接口和明確的上下文環(huán)境構(gòu)成。適用與商業(yè)的 J2EE 實(shí)現(xiàn)可以大量的從 BEA 系統(tǒng), IBM, Oracle 等贊助商得到。經(jīng)過初始化說明和第一個服務(wù)實(shí)現(xiàn)后,該技術(shù),更顯著的說 EJB 技術(shù),已經(jīng)明顯地從純粹的分布式計(jì)算模型轉(zhuǎn)向了本地交互。 企業(yè)信息系統(tǒng)或者數(shù) 據(jù)層 這一層指的就是企業(yè)信息系統(tǒng), 比如 關(guān)系數(shù)據(jù)庫, ERP 系統(tǒng),消息系統(tǒng)等。它們在調(diào)用風(fēng)格(同步和異步,本地和遠(yuǎn)程)與狀態(tài)(完全狀態(tài),不可持久狀態(tài),可持久)方面不同。這些組件提供了持久化機(jī)制和事務(wù)支持。這些組件負(fù)責(zé)把業(yè)務(wù)數(shù)據(jù)傳遞給終端用戶。屬于各層的 J2EE 組件在開發(fā)時遵守具體的J2EE 標(biāo)準(zhǔn)。 (4) 各種各樣的人物角色 。 J2EE. J2EE 是開發(fā)多層企業(yè)應(yīng)用 JAVA 程序的綜合性的標(biāo)準(zhǔn)。應(yīng)用組件被塞入這種確立它們運(yùn)行環(huán)境和規(guī)定它們交互的框架中。第 4 部分更深入的描述了有關(guān)這種架構(gòu)特別重要的和有趣的內(nèi)部機(jī)制。我們相信通過動態(tài)部署和拆卸系統(tǒng)服務(wù)來重構(gòu)應(yīng)用服務(wù)器對構(gòu)建高效資源框架的動態(tài)分布部署的 J2EE 應(yīng)用程序來說是非常必要的。根據(jù)這些配置使先前部署的復(fù)制組件在新的路徑中得以匹配和復(fù)用的努力正在做出。一種靈活的系統(tǒng)類型用來定義組件接口和端口的兼容性。 (4) 能夠復(fù)用服務(wù)和組件從而高效的利用網(wǎng)路節(jié)點(diǎn)資源。在需要跨越多個節(jié)點(diǎn)服務(wù)器的廣域網(wǎng)配置中,這將更加復(fù)雜,因?yàn)楦嗟谋憷麅?nèi)部節(jié)點(diǎn)通信的系統(tǒng)服務(wù)需要配置和啟動,而且多種配置數(shù)據(jù)比如 IP 地址,端口號, JNDI 名字和其他的數(shù)據(jù)在多 個節(jié)點(diǎn)的配置文件 中必須維持一致性。 應(yīng)用智能監(jiān)視和人工智能規(guī)劃方法再結(jié)合那個研究得出的結(jié)論,我們看到通過動態(tài)布置基于動態(tài)監(jiān)視的額外的應(yīng)用組件,在廣域網(wǎng)中符合工業(yè)標(biāo)準(zhǔn)基于組件的應(yīng)用程序中動態(tài)的 可適應(yīng)性是可以實(shí)現(xiàn)的。 (2) 廣域垂直層需要復(fù)制應(yīng)用層組件而且需要維持和原組件間的一致性 。這種應(yīng)用程序通常被部署在公司的內(nèi)部網(wǎng)或者是因特網(wǎng)上,以高 事務(wù)容量,大量的用戶和覆蓋范圍廣的訪問為特征,它通常會被部署在中央?yún)^(qū)域,采用服務(wù)器集群來均衡負(fù)載從而支持用戶下載。 基于 J2EE在 分布式環(huán)境下 的底層結(jié)構(gòu)的 自動 動態(tài)配置的應(yīng)用 Anatoly Akkerman, Alexander Totok, and Vijay Karamcheti 摘要: 為了實(shí)現(xiàn)廣域網(wǎng)中符合工業(yè)標(biāo)準(zhǔn)基于組件的應(yīng)用程序中動態(tài)的可適應(yīng)性,我們需要一種框架來在這樣的環(huán)境里自動化地配置 J2EE 應(yīng)用程序。但是這種平均負(fù)荷的方法被證明只對減少應(yīng)用轉(zhuǎn)發(fā)的用戶可以察覺的反應(yīng)時間有效,而對于減少網(wǎng)絡(luò)方面的延遲作用不大,垂直分割(例如 …運(yùn)行網(wǎng)絡(luò)層和事務(wù)層在不同的虛擬機(jī))被用于錯誤分離和均衡負(fù)荷,但是它是不符合實(shí)際的由于遠(yuǎn)程調(diào)運(yùn)的大量使用顯著地增加了運(yùn)行時時間。 (3) 新加的復(fù)制組件可以被動態(tài)配置以滿足新的需要 。然而,為了實(shí)現(xiàn)這種動態(tài)可適性,我們需要一種框架來在這樣的環(huán)境里自動化地配置 J2EE 應(yīng)用程序。這種分布式配置框架必須滿足: (1) 聲明內(nèi)部組件一致性規(guī)范和定義它對組件配置部署的影響。 (5) 提供上述便利而不 會 增加應(yīng)用程序員的設(shè)計(jì)負(fù)擔(dān)。一種為配置組件屬性而開發(fā)的定義和表述語言允許內(nèi)部組件間獨(dú)立的規(guī)范和組件間屬性的繼承。我們把這種 架構(gòu)作為 JBoss 開源 java 應(yīng)用服務(wù)器的一部分加以實(shí)現(xiàn),在幾個 J2EE 樣本程序比如 Java PetStore,, RUB 和 TPC_W_NYU中進(jìn)行測試。本文如下部分是這樣組織的。第五部分描述了如何實(shí)現(xiàn)這種架構(gòu),相關(guān)聯(lián)的工作將在第六部分介紹。這通常是通過容器,組件持有者來實(shí)現(xiàn)的。J2EE 規(guī)范定義如下: (1) 組件編程模型 。 (5) 兼容性檢驗(yàn)裝置和編譯測試程序 。 表現(xiàn)層或者網(wǎng)絡(luò)層 這一層實(shí)際上又被分為客戶端和服務(wù)器端。數(shù)據(jù)本身通常從業(yè)務(wù)層獲得有時也從企業(yè)信息系統(tǒng)層直接獲得。 EJB 中的組件通過 RMI 被調(diào)用。同步調(diào)用的 EJB 組件通過特定的工廠代理對象來表現(xiàn)自己。業(yè)務(wù)層和持久層在資源適配器的幫助下與該層進(jìn)行通信。轉(zhuǎn)變的背后有合理的性能有關(guān)的原因,然而分布式的特征現(xiàn)在還存在。包括 JBoss 和 JOnAS 在 內(nèi)的開源實(shí)現(xiàn)據(jù)稱兼容性也不錯。它可以被獨(dú)立的部署而且易于被第三方重構(gòu)。 (4) 數(shù)據(jù)源 。該種環(huán)境下的綁定機(jī)制通常由組件部署的解釋者加以配置。這些用戶編寫的組件彼此交互而且系統(tǒng)服務(wù)可以是明顯的也可以是隱含的。 組件間的鏈接 遠(yuǎn)程交互 J2EE 僅定義了三種可以在不同應(yīng)用服務(wù)器間傳遞的基本組件間連接類型。 (3) Java 連接器的內(nèi)部連接:異步消息傳遞進(jìn)入消息驅(qū)動 Bean 只能使用Activation Spec 對象。這些綁定被假設(shè)為是靜態(tài)的,因?yàn)橐?guī)格中沒有提供任何的容器和組件間協(xié)議去提示綁定發(fā)生了變化。 (2) 創(chuàng)建一個特定的 Java 對象用作目標(biāo)組件代理。 (6) 在主機(jī)的命名服務(wù)中,創(chuàng)建和進(jìn)行指定組件的運(yùn)行環(huán)境 。 (1) 動態(tài)部署消息目的和數(shù)據(jù)源的能力 。 在只有相同的應(yīng)用服務(wù)器的架構(gòu)中,上面的功能對通過簡單的部署控制解釋器方式來控件間的連接已經(jīng)足夠了。在 EJB 層,這種交互的例子是 CMP 實(shí)體關(guān)系和通過 EJB 本地接口的調(diào)用。具體變化的例子有: (1) 支持或者取代標(biāo)準(zhǔn)所有者解釋器的新的所有者解釋器的產(chǎn)生 。相應(yīng)地, 部署解釋器也可以簡單地用 URL 來索引代碼。對系統(tǒng)服務(wù)來說不僅沒有具體的定義一個標(biāo)準(zhǔn)化的部署,實(shí)際上,這個規(guī)格甚至連沒有強(qiáng)調(diào)在生命周期屬性方面的要求,更不用手強(qiáng)調(diào)依賴也潛在的系統(tǒng)服務(wù)的應(yīng)用組件 的明確規(guī)范了取而代之的是它定義了部署者的角色,這個角色負(fù)責(zé)確保像組件的本性和系統(tǒng)的解釋器所暗示的那樣,所需的服務(wù)是基于應(yīng)用組件對系統(tǒng)服務(wù)依賴性的基礎(chǔ)之上。考慮到應(yīng)用層可能通常只用到了應(yīng)用服務(wù)器所提供的服務(wù)的一個子集,根據(jù) 應(yīng)用層的需要允許遞增的配置服務(wù)的組件應(yīng)用服務(wù)器允許更高效的利用多種資源。在該模型中,一個微型的服務(wù)包括了系統(tǒng)調(diào)用總線,一個穩(wěn)健的類下載子系統(tǒng),一些命名子系統(tǒng)和一個動態(tài)配置子系統(tǒng)。所有其它的 JBoss 是動態(tài)配置的,并外在的表現(xiàn)為具有良好機(jī)制和生命周期的 JMX 利用應(yīng)用組件去設(shè)計(jì)相關(guān)功能,并且只有需要的系統(tǒng)服務(wù)才會得到合理配置和部署! 參考文獻(xiàn) [1] Matt Bishop. Computer Security: Art and Science. New York, 2021 [2] Matt Bishop. Vulnerabilities Analysis. Proceedings of the Second International Symposium on Recent Advances in Intrusion Detection. Los Angeles 2021 [3] Balasubra maniyan. Architecture for Intrusion Detection using Autonomous Agents[M]. Department of Computer Sciences, Purdue University, 1998. Infrastructure for Automatic Dynamic Deployment Of J2EE Application in Distributed Environments Anatoly Akkerman, Alexander Totok, and Vijay Karamcheti Abstract: in order to achieve such dynamic adaptation, we need an infrastructure for automating J2EE application deployment in such an environment. This need is quite evident to anyone who has ever tried deploying a J2EE application even on a single application server, which is a task that involves a great deal of configuration of both the system services and application ponents. Key words: j2ee。 1 Introduction In recent years, we have seen a significant growth in ponentbased enterprise application development. These applications are typically deployed on pany Intras or on the Inter and are characterized by high transaction volume, large numbers of users and wide area access. Traditionally they are deployed in a central location, using server clustering with load balancing (horizontal partitioning) to sustain user load. However, horizontal partitioning has been shown very efficient only in reducing applicationrelated overheads of userperceived response times, without having much effect on workinduced latencies. Vertical partitioning (., running web tier and business tier in separate VMs) has been used for fault isolation and load balancing but it is sometimes impractical due to significant runtime overheads (even if one would keep the tiers on a fast localarea work) related to heavy use of remote invocations. Recent work [14] in the context of J2EE ponent based applications h