專利名稱:用于應用的基礎服務體系結構的制作方法
技術領域:
本發明涉及一種用于應用的基礎服務體系結構,例如應用容器
(Applikations-Container),以及涉及用于該基礎服務體系結構的程序技術建 立的系統和才幾制。
背景技術:
應用(計算機程序)調用多個不同的服務,這些服務從應用的實際程 序對象的外部供應用使用。這些服務性質極其不同,并且例如包括從用 于不同應用之間通信的通信管理,到諸如身份驗證和授權的安全服務,直 到錯誤管理或者直到在建立應用的部分的使用簡檔的范圍內的服務。迄今 為止,或者將這些服務直接地且專門地實現在程序代碼的內部,因此它們 僅僅在該代碼內部可供使用;或者將這些服務完全在程序代碼之外實現, 使得程序代碼必須在精確地了解接口以及在調用無數個對應于所有可供使 用的服務的單獨的可執行程序的條件下調用該作為外部對象實現的服務。
發明內容
本發明現在要解決的技術問題是,既消除在應用內部很專門的匹配, 又消除對于組件的必要的連接的顯式定義。
上述技術問是通過按照本發明的方法解決的。
特別是,上述技術問是通過一種運行用于基礎服務的、獨立于本地版 本的服務程序代碼的方法解決的,其中,所述方法是自動地和可選擇地與 一個中心的遠程服務基礎建立聯系的,并且其中該方法包括和/或自動地支 持在線的以及離線的處理運行,其中,該方法是被嵌入到通用的運行時環 境中的,以及,該方法包括在該運行時環境中實現的由帶有標準化接口的 應用程序代碼進行調用的服務程序代碼,其中,所述服務程序代碼用于提 供應用程序代碼可以使用的規定服務的功能性。
在本發明的范圍內"機制" 一詞被理解為用于提供對應的功能性的產
品、方法和/或系統。因此,其既可以是基于硬件的裝置,或者是實現主要 按照本發明的特征的、基于軟件的方法。
特別是,機制被理解為軟件組件的邏輯結構,包括對于運行系統重要 的組件的交互和參與,而應用容器被理解為這樣的應用,其除了用于實現 功能性的實際的程序代碼之外還包括盡可能標準化的部件,這些部件在諸 如操作系統或應用軟件系列環境的規定環境中才允許實現功能性的程序代
碼的運行能力(AblaufShigkeit )。
術語應用容器,如其在此被使用的那樣,按照其在醫療技術環境中的 定義對應于德國西門子公司的系統"syngo.NET",其中,syngo.NET僅被視 為對于在此公開的發明的具體實現的一個示例性的框架,并且也可以為了 實現而采用其它的環境。按照本發明,屬于應用容器的有包含幾個基本 功能性(功能性程序代碼的運行以及允許運行)的運行時環境,以及在該 運行時環境中實現的帶有標準化接口的服務程序代碼。
標準化的接口被理解為是這樣的接口 ,其在體系結構的所有應用容器 中是相同的,因此可以按照統一的方式由應用程序代碼使用。
服務程序代碼通過調用相應的函數或對象或者釆用其它的與程序交互 的常見機制而提供了用于可以由應用程序代碼訪問的規定服務的功能性。
此外,對于所有實現的服務的類型提供了統一的接口,這可以極大地 筒化應用程序代碼的程序邏輯。
服務程序代碼可以以其整體實現為容器本身內部的服務的功能性,從
服務程序代碼也可以通過調用接口訪問在應用容器之外實現的服務的功能 性,在此,也可以在容器內部提供統一的接口 。
特別優選的是,將容器利用運行時環境、應用程序代碼和服務程序代 碼設計成一個單獨的可執行的文件(可執行程序)。
在另一種優選的實施方式中,將對于所包含的服務的每個規定服務的 服務程序代碼按照相同的方式集成在所述運行時環境中。這通過純粹的接 口定義起到了更強烈地標準化的作用。
眾多不同的服務可以在本發明的范圍中實現在容器中或者由容器引用。
例如,所述規定服務中的一個可以涉及在相同的或不同的容器中的不
同應用程序代碼之間的通信和/或在一個容器內部的應用程序代碼的相同的 或不同的模塊(任務、組件、活動)中的不同應用程序代碼之間的通信。
通信策略的設計要求關于應用或活動內部的組件如何相互通信的定 義。通信策略覆蓋了基于一般的命令-處理-設計模式的諸如客戶機/服務器 要求/反應協議、基于事件的通信、以及一般的任務管理處理之類。在此, 同步和消息格式同樣也是一個基本的方面。最有效的情況是,單個的設計 模式可以利用作為基礎的同一實現來既解決對客戶機/服務器命令的處理、 又解決批量任務管理。由此,按照本發明的區別在于一個共同的、包含在 服務程序代碼中的任務管理"機器"的不同部署內,其
-在一個機器上運行的單個進程內部的多個組件之間,
-在多個被"部署"在同一機器上的多個進程中的組件之間,
-在多個被"部署"在多個機器上的多個進程中的組件之間。
在此,解決方案在于將通信的基礎與組件分離,其中,服務是獨立 于請求和應答的。
所述規定服務中的另一個可以是應用程序代碼的安全管理。在此,安 全管理被理解為所有保證用戶被授權尤其是使用系統以及對特定的服務或 程序進行訪問的方面。
安全管理策略的設計要求關于如何管理應用和活動的定義,以便解決 安全和隱私問題。安全管理策略覆蓋了諸如身份驗證、授權以及對動作的 采集的問題。例如,安全管理可以包括對用戶的身份驗證,也就是說,在 特定的計算機上或者在容器的環境中確定用戶的身份。安全性可以按照基
于角色的方式在任務級別上實現,而在任務的功能性內部獨立于功能性。 由于該原因,實現應該是框架結構的一部分并且由應用邏輯(應用程序代 碼)屏蔽。
為了具體實現該功能性,在微軟視窗操作系統中例如提供了微軟 "Application Block, Authentication and Profile,應用模塊、身份驗證和簡檔" 作為"Enterprise-Library,企業庫,,的一部分。"Directly Services,直才妻月良務', 由微軟活動目錄或類似的與LDAP兼容的服務提供。另外,可以采用身份 管理服務,以便在大的醫院環境中在醫療成像系統中提供主用戶索引功能 性(Master-Anwender-Indexfunktionalitat )。
身份驗證定義了對于給定的上下文的可靠的用戶身份識別。下面的原
則成立
-由視窗支持的用戶管理;
-按照與應用環境(例如與DICOM)兼容的方式的基于證書的身份驗
證;
-用戶的位置變換,如通過活動目錄支持的那樣;
-單個的注冊以及上下文分離(例如,GSM ABC )。
在另一種優選的實施方式中,對于特定用戶所述安全管理包括對容器 的功能性的訪問權限和/或對通過該容器提供的數據的授權。
該授權定義了用戶對功能性或者數據的訪問權限(特權)以及在整個 系統(例如syngo.NET)中的權利。在此,下面的原則成立
-特定于任務的和基于角色的安全性,例如基于微軟A&P應用模塊 ("企業庫"的一部分);
-代碼訪問安全性構成了對于可以 "Zero-Admin " ( Null-Administration, 零管理)下載的代碼的新的挑戰。
實現了在線/離線令牌管理(Online/offline-Token-Management),例如通 過SCOB ( SCOB為Smart bzw. Adaptive Client Offline Block,智能或自適 應客戶機離線模塊)定義。
另 一種中心的令牌管理可以通過A&A ABC組件得到支持。
在另一種優選的實施方式中,所述安全管理可以替換地或者額外地包 括在該容器或應用容器內部采集由用戶進行或發起的動作。該動作也被稱 為"Auditing,審計,,的措施在應用中跟蹤用戶以及業務活動,并且將這些 信息提供給中心的或本地的審計跟蹤(Audit-Trail )。在此,下面可采用的 原則成立
-在線/離線審計跟蹤管理(Online/offline-Audit-Trail-Management),如 通過SCOB支持的那樣,
-離線采用外向隊列(Outbound-Queue),以便存儲跟蹤,
-在線采用基于SCOB的審計,
-中心的審計跟蹤管理,由SAT ABC組件支持。
為了實現安全管理,可以建立用戶簡檔,如從關于用戶以及其對應用 的特定于客戶的匹配的信息中所包含的那樣。在此,下面的原則成立
-這些簡檔可以基于微軟A&P應用模塊("企業庫"的一部分)。 -在線/離線簡檔管理(Online/offline-Profil-Management)可以由SCOB支持。
-離線采用外向隊列,以便存儲簡檔。
國在線采用基于SCOB的簡檔建立(Profilierung )。
-活動目錄支持在位置變換時用戶簡檔的"Roaming,漫游"。
在另 一種優選的實施方式中,所述規定服務中的 一個可以是對應用程
序代碼和/或容器的配置管理,用于確定和/或修改同一個配置。
為了正確地起作用,應用需要配置數據。改動策略特性的設置被視為
這樣的配置數據,其可以被存儲在中心的存儲器中作為遠程的服務體系結
構的一部分。
配置數據可以被保存在數據庫(例如XML配置文件)中、在用戶處、 在應用中或者在現場(計算機中)。例如,可以在采用微軟config.NET和所 屬的服務組件的條件下定義一個特定于客戶的配置,并且調用該配置。微 軟"企業庫"包含了可以例如用于syngo.NET配置的配置應用模塊。用戶 簡檔應該更容易用于前沿(圖形用戶界面)功能性,并且可以通過這樣的 特定于用戶的配置項得到支持,即,這些配置項可以由設置在下面的用戶 管理以及目錄服務進一步到達(漫游到)。
下面介紹特定的配置服務。
特定于用戶的配置值
在此,在特定于用戶的設置上應用下列的限制 -僅僅可以在應用的表示邏輯(Prasentationslogik)中應用, -存在眾多的可能性以及巨大的潛力使通用的"InfoPath"用戶接口可 以替代迄今為止可單獨配置的應用。 標準的配置值
對用于設置的標準值應用下列的限制
-僅僅可以在一個科(Site,現場)的范圍內并且為特定的模態應用, -匯編(Assembliemng )在所有水平上都是清楚的并且可以被用作對 于經典的特定于配置的文件的替代。 配置值的改寫
在改寫對于特定設置的標準值時下列的限制成立 -僅僅可以在現場的范圍以及模態中應用, -僅僅可以在實施設置配置文件上應用, -替代對應的標準配置值。 本地/中心的配置
下列定義被應用到本地的配置原則以及與此不同的中心配置原則上 -在線/離線配置管理由SCOB和CONF支持。 -離線采用內向/外向隊列,以便得到/設置配置數據。 在另一種優選的實施方式中,所述配置管理包含在線/離線管理,以便 使得同一個容器既可以在帶有網絡連接的運行模式中運行,又可以在沒有 網絡連接的運行模式中運行。
因此,除了其它之外,在線/離線管理優選地用于存儲關于網絡連接狀 態的信息。優選地,其包含用于確定網絡連接的狀態的網絡連接管理、 用于獨立于網絡狀態持續地管理隊列的隊列管理、以及用于管理用于容器 的數據的臨時存儲的臨時存儲器(Cache,高速緩沖存儲器)的臨時存儲器 管理。
在線/離線管理策略的設計需要關于如何管理應用或活動的定義,以便 在所有的情況下(或者在在線模式中與網絡連接,或者在離線模式中從網 絡斷開)正確地運行。例如,微軟公司的自適應客戶機離線應用模塊 (Adaptive-Client Offline-Application-Block, SCOB )使得該功能性可以實現。 在此,在微軟公司的文檔中描述了基本的原理。此外,可以按照如下的方 式極其良好地將在線/離線處理與"自適應客戶機"功能性結合即,不必 安裝在自適應客戶機工作站(Adaptive-Client-Arbeitsplatz )上運行的軟件。 其結果是,計算機體系結構以及工作站的按照本發明的體系結構能夠在沒 有任何管理開銷的條件下得到軟件。"UPLOADER,上載軟件"應用模塊使 得該功能可以實現。自適應客戶機管理的一個組成部分包含在上面提到的 所謂的"零管理",其為新的特征。這點使得(公知為"Rich-Client,肥客 戶機"應用的)較高的用戶交互性可以與零管理以及一種(公知為網絡應 用的)允許下載的功能性進行組合。
在這種情況下提及下列特征
-由微軟UPLOADER應用模塊得到支持,
-也利用基于LINUX的服務器工作。
自適應客戶機的特征在于基于網絡的瘦客戶機不可用的一個極其重要
的特征,即, 一種在線/離線模式。該特征使得,即使不存在網絡連接客戶 機也可以執行應用邏輯本身。例如,該功能性也由SCOB應用模塊支持。
自適應客戶機必須了解,其何時與網絡連接或者與網絡斷開。該功能
性也由SCOB應用模塊支持。即使自適應客戶機與網絡斷開,其也必須持 續地在一個隊列中存儲由應用產生的結果。專業人員同樣熟悉的是,可以 如何例如借助于SCOB應用模塊實現該功能性。
最后,自適應客戶機在執行應用邏輯的期間必須暫時地臨時存儲應用 產生的結果,以便獲得優化的功能。該功能性也由SCOB應用模塊和高速 緩沖存儲器應用模塊支持。
在另一種優選的實施方式中,所述服務之一是許可管理,以便管理與 所述容器相適應的許可的有效性和數目。
應用需要一種許可管理,以便保護可配置的功能性不被沒有許可地使 用。在此,除了針對機器的許可之外,也可以采用一種浮動許可。浮動許 可包含了對于現存基礎的 一定的要求
-如果應用啟動,其從中央許可服務器要求一個許可,除非已經有了。 這點要求,應用在其上啟動的機器在該時刻是與中央許可服務器連接的。
-如果應用結束了其工作并終止,其應該且必須將所請求的許可返回 到中央許可服務器。
-如果系統離線(不與網絡連接)并且應用4皮啟動,則該應用不能從 中心許可管理器請求許可。
-如果在所運行的應用(具有許可)結束時系統離線,則該應用不能 將所請求的許可返回到中央存儲器。
-如果系統在線并且所運行的應用(具有許可)崩潰(也就是說,其 不再有機會將所請求的許可返回到中央許可服務器),則該許可對于其它的 應用來說就丟失了 。
這些情境表明 一方面,浮動許可完美地適合于不具有錯誤并且連續 地在線的自適應客戶機;而另一方面,如果自適應客戶機工作在離線模式, 則其不起作用。
通常有意義的是,對于一個可處理的時間段租用浮動許可。在該租用 時間結束之前,客戶機必須根據需要更新該租用。如果客戶機既沒有更新、 也沒有釋放其許可,則中央許可服務器假設該客戶機離線并已經終止,從
而再次遞增可供使用的許可的數目。
在另一種優選的實施方式中,所述服務之一是錯誤管理,用于處理在 所述容器中出現的錯誤。在一個具體的應用例子中, 一般的錯誤處理是一
種原生(nativ)異常處理(Exception Handling )。在一種優選的實施方式中, 該功能性可以基于作為另 一 個應用模塊的微軟"企業庫"。
用于異常處理的功能性是PoP基礎服務的一部分。該版本必須也支持 具有零管理特征以及在線/離線特征的"自適應客戶機"。本地以及中心的錯 誤處理的功能性是PoP基礎服務的一部分。特別是,與現有技術相比,改 善了提供給最終用戶的消息的可讀性。
在一種優選的實施方式中,所述服務之一是對于程序代碼執行的確定 和/或記錄過程的跟蹤管理(Trace Management )。該功能性的定義是PoP基 礎服務的一部分。 一般的"跟蹤"處理優選地類似于經典的跟蹤處理。
在另 一種優選的實施方式中,所述服務之一是用于確定體系結構的組 件的使用的使用記錄。在此,該功能性的定義幫助理解,系統以及其服務 是如何由客戶使用的,并且可以在另 一種利用微軟產品實現的優選的實施 方式中作為微軟WMI管理服務的 一部分。在采用SYNG0.NET的情況下, 借助于基礎服務組件以及微軟管理控制臺提供對應的接口。原則上,可以 選擇和/或配置規定服務。
在另一方面,本發明涉及用于運行獨立于本地的版本的基礎服務的方 法一種機制以及一種方法,包括自動地連接中心的和遠程的服務基礎, 以及在通用的運行時環境內部包括和自動地支持在線的以及離線的處理運 行。
優選地,在按照本發明的機制和方法中,所述本地的基礎服務是可以 配置的,并且可以為正在使用的、該機制所釆用的組件從一個運行的可執 行程序內部的中心目錄出發到達,而不需要該組件依賴于該可執行程序本 身。由此,該機制不妨礙"框架結構獨立的布置"。
優選地,在該機制和方法中, 一個本地基礎服務允許對于作為服務使 用的組件可版本控制性(Versionierbarkeit )。
優選地,在該機制和方法中, 一個本地基礎服務允許作為服務使用的 組件的在線和離線運行。
優選地,在該機制和方法中,所述本地基礎服務可以在在線運行中與
一個中心C/S基礎服務相互協作。
優選地,在該機制和方法中,所述本地基礎服務可以被用于在通用的 容器中的服務上。
在下面的附圖描述中,結合附圖1討論一種具有其特征的不是用于限 制理解的實施例,其中,
圖1示出了用于解釋按照本發明的軟件體系結構的實施方式的基本結構。
具體實施例方式
在該實施例中,軟件體系結構是一個容器或者在網絡上分布的基礎1,
其除了別的之外例如如下組成 一個Client.dll 2,用于從應用程序代碼(未 示出)中的調用;另一個被稱為〈IS、d113的DLL,用于提供既可以通過接 口4以及接口層的"正面"5使用、又可以通過實現層的函數6和7使用的 服務。另外,在該具體的實施方式中還設置了專業人員所公知的AT.NET服 務管理器8。
在另一方面,本發明涉及一種用于程序開發的系統,該系統包括一個 開發環境,該開發環境帶有一個程序代碼本身的編譯器,該編譯器用于在 編譯中將運行時環境綁定到在按照根據本發明的可以運行的容器中的應用 程序代碼和服務程序代碼的運行中。在本發明的該方面中,描述和說明了 按照本發明的容器的產生,使得首先可以引用預制的模塊,這些預制的模 塊實現了這樣的功能性并且對于每個容器在整個系統中可以是相同的,以 便使得編程開銷最小,并且由于可能改善的錯誤檢驗而使得單個服務的質 量最高。
權利要求
1.一種運行用于基礎服務的、與本地版本無關的服務程序代碼的方法,-其中,所述方法是自動地和可選擇地與一個遠程的中心服務基礎相連接,并且該方法包括和/或自動地支持在線的以及離線的處理運行,-其中,該方法是被嵌入到通用的運行時環境中的,以及-其中,該方法包括在該運行時環境中實現的服務程序代碼,用于通過帶有標準化接口的應用程序代碼的調用,其中,所述服務程序代碼用于提供應用程序代碼可以使用的規定服務的功能性。
2. 根據權利要求1所述的方法,其特征在于,所述服務程序代碼在應 用容器內部實現所述服務的功能性。
3. 根據權利要求l或2所述的方法,其特征在于,所述服務程序代碼 用于通過調用接口訪問在所述應用容器之外實現的服務的功能性。
4. 根據權利要求1至3中任一項所述的方法,其特征在于,將所述應 用容器利用運行時環境、應用程序代碼和服務程序代碼設計成單個的和/或 可單獨執行的文件。
5. 根據權利要求1至4中任一項所述的方法,其特征在于,將對于所 包含的服務的每個規定服務的服務程序代碼按照相同的方式集成在所述運 行時環境中。
6. 根據權利要求1至5中任一項所述的方法,其中,所述規定服務中 的一個是在若干應用容器中的不同應用程序代碼的通信和/或在一個應用容 器內部的應用程序代碼的模塊中的不同應用程序代碼的通信。
7. 根據權利要求1至6中任一項所述的方法,其中,所述規定服務中 的一個是應用程序代碼的安全管理。
8. 根據權利要求7所述的方法,其特征在于,所述安全管理包括對該 應用容器的用戶的身份驗證。
9. 根據權利要求7或8所述的方法,其特征在于,所述安全管理包括 對該應用容器的功能性的訪問權限的授權和/或對通過該應用容器為特定用 戶提供的數據的授權。
10. 根據權利要求7至9中任一項所述的方法,其中,所述安全管理包 括在該應用容器內部采集由用戶進行或發起的動作。
11. 根據權利要求1至10中任一項所述的方法,其中,所述規定服務 中的 一個是對應用程序代碼和/或應用容器的配置管理,以便用于確定和/或 〃修改同一個配置。
12. 根據權利要求11所述的方法,其特征在于,所述配置管理包含在 線/離線管理,以便使得同一個應用容器既可以在帶有網絡連接的運行模式 中運行,又可以在沒有網絡連接的運行模式中運行。
13. 根據權利要求12所述的方法,其特征在于,所述在線/離線管理包 括用于確定網絡連接的狀態的網絡連接管理、用于獨立于網絡狀態持續 地管理隊列的隊列管理、和/或用于管理用于該應用容器的數據的臨時存儲 的臨時存儲器的臨時存儲器管理。
14. 根據權利要求1至13中任一項所述的方法,其中,所述服務之一 是許可管理,以便與所述應用容器相適應地管理許可的有效性和數目。
15. 根據權利要求I至14中任一項所述的方法,其中,所述許可管理 用于與可通過網絡訪問的中央許可服務器相結合使用。
16. 根據權利要求1至15中任一項所述的方法,其中,所述服務之一 是錯誤管理,所述錯誤管理用于處理在所迷應用容器中出現的錯誤。
17. 根據權利要求1至16中任一項所述的方法,其中,所述服務之一 是跟蹤對于程序代碼執行過程的確定和/或記錄。
18. 根據權利要求1至17中任一項所述的方法,其中,所述服務之一 是使用記錄,所述使用記錄用于確定該體系結構的組件的使用。
19. 一種用于程序開發的系統,包括一個開發環境,該開發環境帶有一 個程序代碼的編譯器,該編譯器用于在編譯中將運行時環境綁定到在按照 根據權利要求1至18中任一項所述的可以運行的應用容器中的應用程序代 碼以及服務程序代碼的運行中。
20. —種用于運行本地的獨立于版本的基礎服務的方法,包括自動地 與 一個中心的和遠程的服務基礎設施相連接,以及在通用的運行時環境內 部包括和自動地支持在線的以及離線的處理運行。
21. 根據權利要求20所述的方法,其中,所述本地的基礎服務是可以 配置的,并且是可以從一個運行的可執行程序內部的中心目錄出發到達為 該方法和/或一個機制而使用的組件,而不需要該組件依賴于該可執行程序 本身。
22. 根據權利要求20或21所述的方法,其中, 一個本地基礎服務允許對于作為服務使用的組件的可版本控制性。
23. 根據權利要求20至22中任一項所述的方法,其中, 一個本地基礎 服務允許作為服務使用的組件的在線和離線運行。
24. 根據權利要求20至23中任一項所述的方法,其中,所述本地基礎 服務可以在在線運行中與一個中心C/S基礎服務相協作。
25. 根據權利要求20至24中任一項所述的方法,其中,所述本地基礎 服務可以被用于在通用的容器中的服務上。
全文摘要
一種運行用于基礎服務的、獨立于本地版本的服務程序代碼的機制,其中,所述機制是自動地和可選擇地與一個遠程的中心服務基礎相連接的,并且其中,包括和/或自動地支持在線的以及離線的處理運行,并且其中,該機制是被嵌入到通用的運行時環境中的。該機制包括在該運行時環境中實現的服務程序代碼,用于通過帶有標準化接口的應用程序代碼的調用,其中,所述服務程序代碼用于提供應用程序代碼可以使用的規定服務的功能性。
文檔編號G06F9/44GK101174213SQ20071016687
公開日2008年5月7日 申請日期2007年10月23日 優先權日2006年10月30日
發明者卡爾海因茨·多恩, 盧茨·多米尼克, 安德烈亞斯·西威克, 德特利夫·貝克爾 申請人:西門子公司