平台無關

平台無關性就是一種語言在計算機上的運行不受平台的約束,一次編譯,到處執行 。

概述

平台無關就是一種語言在計算機上的運行不受平台的約束,一次編譯,到處執行。 平台無關有兩種:原始碼級和目標代碼級。而C和C++具有一定程度的原始碼級平台無關,表明用C或C++寫的應用程式不用修改只需重新編譯就可以在不同平台上運行。而Java編譯出來的是位元組碼,去到哪個平台都能用,只要有那個平台的JDK就可以運行,所以,Java程式的最大優勢就是平台無關。

影響平台無關性的因素: 首先影響的因素是程式平台的部署。第二個影響的因素是程式平台的版本。第三個因素是本地方法。第四個因素是非標準運行時庫。第五個因素是對虛擬機的依賴。最後一個和平台無關性的因素是對用戶界面的依賴。

平台無關的訪問控制

目前,多數作業系統訪問控制機制的不完善,是其容易被攻擊的根本原因,訪問控制機制的實施已成為各個作業系統的迫切需求。然而對訪問控制實施的研究一般針對單個系統,當需要對新的作業系統進行安全加固時,往往需要重新開發新的訪問控制模組。不同的安全實現,致使各個系統的安全配置也大相逕庭,使得安全管理員的維護工作也相當繁瑣。為了提高訪問控制模組的可移植性,減少在新系統上實施訪問控制時的重複工作,使不同作業系統具有相同的安全配置方法,必需設計一個可以方便的實施到不同作業系統中的訪問控制框架,也就是平台無關的訪問控制 。

平台間差異

操作集合不同。每個平台的操作集不同,以檔案系統的實現來例, Linux 類作業系統中虛擬檔案系統涉及的操作,如 Superblock、Inode等操作是 Windows 不支持的; 同樣 Windows 系統有一些特色操作。故而各個平台 都需要自己定義操作集合,操作集合的不同影響到了OSHL的實現。

核心對象不同。以進程為例,在Linux中每個進程由一個 Task_ Struct 對象來描述,而在 Windows 中,每個進程由 Peprocess 結構來表示。而且不同的系統有特有核心對象,例如 Superblock 只會出現在 Linux 類系統中。 核心對象的差異使得必須為不同的平台定義不同的核心對象集合。

核心 API不同。由於安全機制一般被放在核心空間執行,安全機制需要使用時間、鎖、記憶體分配以及輸入輸出等操作,完成這些操作的 API在不同平台下有不同的實現,要使得安全機制不依賴於具體的平台,必須消除安全機制對核心 API 的依賴。

重要的系統資源不用。不同作業系統的實現具有很大差異,每種系統都有獨特的重要資源,比如 Linux 類的偽檔案系統、 Windows下的註冊表等系統關鍵資源,應該受到安全機制保護。所以,在設計安全模組時必須提供特定的機制保護這類資源 。

PIFAC(平台無關的訪問控制)

PIFAC 將訪問控制的實現分為三層:作業系統 Hook 層(OSHL)、平台抽象層(PAL)以及核心安全伺服器層(CSS)。OSHL 層的作用是截獲作業系統的關鍵操作後, 交給CSS進行安全判斷,然後根據 CSS返回的結果, 允許或者拒絕該操作。OSHL 層在不同的平台下有不 同的實現,起到系統監控的作用。PAL層的作用是為 CSS層提供平台抽象,使得設計CSS時不需要考慮各個平台的不同點;為 OSHL層提供安全對象管理等功能。CSS層的作用是實現動態多策略安全模型以使 CSS可以滿足多樣的安全需求。CSS接到 OSHL層的請求後,根據配置做出判斷並且將判斷結果返回給 OSHL層 。

系統實現與分析

PIFAC 已經在Windows、Linux以及 Rtems 系 統上實施,總結了在新平台上實施PIFAC的步驟:
(1) 選擇合適的安全對象,或者定義新的安全對象。

(2) 選擇合適的操作集合,實現新系統的 OSHL,並且在其中啟用 CSS。在新平台上實施 PIFAC,只需要添加新的 OSHL, 以及擴充PAL,無需對 CSS進行修改。CSS的設計支 持多個安全模型,目前已經支持RBAC、DTE等安全模型 。

平台無關模型

在基於 MDA 的軟體開發過程中,平台無關模型( PIM) 扮演著核心角色,MDA 通過建立 PIM 來生成實際執行系統,也通過修改 PIM 來修改執行系統。但目前 PIM 的建模基本靠手工編寫代碼來實現,存在著效率低、易出錯、復用難、非專業人員難以掌握等問題。而可視化建模有如下的作用:能引導人們有效地建立正確的模型;可以有效避免重複性工作,縮短開發時間;提供了存儲和管理有關信息的機制和手段,具有保持信息一致性的能力;有助於用戶生成和管理相關文檔;為復用提供方便。由此可見,如果能將 PIM 建模可視化,實現建模過程所見即所得,就可以很好地解決以上問題 。

PIM 的可視化建模方法

模型驅動架構 (MDA) 是對象管理組織 (OMG) 為解決軟體開發危機提出的軟體開發架構,其基本思想是將模型作為軟體開發的核心產品,嚴格區分系統的功能規約與實現細節。MDA 的典型開發過程分為 3 步:首先對套用領域建模生成 PIM,然後將PIM轉換為一個或多個PSM,最後將PSM轉換成代碼。其中,PIM 在描述純粹關注技術的業務邏輯中扮演了中心角色,PIM的建模是至關重要的一步,關係著 MDA 開發的成敗。

MDA 的核心是PIM,它是一個軟體系統功能和結構的形式化規範,與具體實現技術和硬體環境無關,所以 PIM 的建模語言也應是平台無關的 。

PIM 可視化建模框架的設計與實現

PIM 的 可 視 化 建 模 框 架 基 於 Visual Studio.NET平台,使用C # 作為程式語言開發完成。框架由VX形狀庫模組,VX圖畫設計模組,解析轉換模組,DTD和Schema驗證模組構成。

1.VX形狀庫
VX形狀庫模組負責定義PIM建模所需的形狀,並按特定分類規則將形狀放入分類形狀庫,所有的分類形狀庫組合在一起就是形狀庫。

2.VX圖畫設計
VX圖畫設計模組由工具箱組件、設計區組件和設計引擎組件組成,負責創建圖畫的可視化設計視窗和回響視窗中發生的各種事件。其中,工具箱組件提供和形狀庫模組互動的接口,使用創建好的形狀庫來創建形狀工具箱,創建好工具箱後,用戶就可以在工具箱中選擇形狀到設計區,進行圖畫的設計。設計區組件負責創建圖畫設計區,設計區是用戶可視化地設計圖畫的區域。用戶可以在設計區內設計新的圖畫,或導入已有的圖畫,也可以同時打開多個圖畫,相互間復用設計。

3.解析轉換
解析轉換模組負責解析圖畫,轉換成 XML文檔;或解析XML文檔,轉換成圖畫。解析圖畫,實際就是解析圖畫中的形狀以及形狀之間的位置關係,生成對應的XML代碼。具體地說,在設計好的圖畫中,形狀的名稱、屬性和屬性值都已經定義好了,解析形狀時,只需讀取這些數據,就能得到PIM描述文檔中相應的XML元素的名稱、屬性和屬性值。形狀之間的平面位置關係也已確定,解讀這些位置關係,就能得到XML元素間的邏輯位置關係,如順序、包含等。如此,就生成了完整的XML描述文檔。

4.DTD和Schema驗證
生成XML文檔後,除了語法驗證,還需要驗證其是否是“Validating XML (有效的XML文檔) ”,即驗證XML文檔中的元素、屬性、實體等是否符合DTD或Schema中的規定。

相關詞條

熱門詞條

聯絡我們