業務場景
在美國,每種處方藥都必須經過食品與藥物管理局 (FDA) 的批準。在審批過程中,必須將有關藥品的詳細信息提供給食品與藥物管理局,還必須提供所有可能的分銷商信息,如藥房、醫院等。必須提供的確切信息在一個名為 HL7 結構化產品標記 (SPL) 的標準 XML 模式中描述,它是 HL7 標準的一部分。
該標準最初是以 PDF 文檔格式進行描述的,該標準的當前版本定義了一個完整描述藥物的 XML 模式,其中包括商標名稱、類屬名、劑量表、活性成分和非活性成分等等。包括的信息主要供醫藥公司向食品與藥物管理局提出申請,以便得到對處方藥的批準,食品與藥物管理局要求必須以標準格式提供這些信息。后來公眾可以通過注冊獲得這些信息,但各國的提供方式又各不相同。在美國,SPL 信息可以通過 National Library of Medicine 獲得。因此,該標準除了作為一種有用的工具便于信息交換外,法律也強制要求遵守此標準,這也是該標準受到廣泛支持的重要原因。
本文描述一個虛構的醫藥公司,介紹如何設置可供客戶和食品與藥物管理局訪問的 Web 服務,以便獲得其藥品的 SPL 文檔。符合 SPL 的實際數據存儲在 DB2 Version 9 pureXML 數據庫中。Web 服務通過企業服務總線 (ESB) 公開,后者使用 WebSphere ESB 產品實現。將這兩種產品集成在一起有助于提供這樣一個解決方案,即通過標準 Web 服務接口公開 SPL 服務。
盡管本文中的示例基于衛生保健行業的標準,但這種方法同樣適用于所有基于 XML 的其他特定行業標準。
使用企業服務總線構建解決方案
ESB 可以向公司內部企業網絡的內部和外部使用者公開一些虛擬的服務接口。這些接口之所以是虛擬的,是因為它們向服務請求程序提供的數據和功能與實際的服務提供程序所提供的不相同,無論是在協議、位置方面還是在數據格式方面都不相同。ESB 可以將服務提供程序提供的數據格式映射到請求程序,具體方法是通過直接轉換實現(例如,使用 XSLT 樣式表),或者使用從其他數據源檢索的數據進行增補。如果必須向一些新的使用者提供現有功能或數據(可能需要支持某種標準),ESB 可以進行必要的處理而不會影響現有的應用程序。
在此虛擬的場景中,醫藥公司希望將其藥品信息以上文描述的標準化 SPL 格式公開。此公司使用 DB2 Version 9 pureXML 存儲實際數據,利用產品的內置支持來處理 XML 數據。該信息是通過 ESB 進行訪問的,ESB 接收對 SPL 信息的請求,并將這些信息轉發到內部服務,內部服務本身不處理這些信息,而是返回技術信息,使 ESB 能夠從數據庫中檢索符合 SPL 的文檔。圖 1 顯示了解決方案的體系結構。
在圖 1 中,ESB 使用內部服務提供程序和 Web 服務接口在 DB2 pureXML 上檢索 SPL 信息,然后將檢索到的信息以 XML 文檔的形式返回給請求程序。此外,ESB 還可以作為 Web 服務直接公開數據庫的 XQuery 功能,而不必使用任何其他內部服務提供程序。內部服務的具體利用方式對請求程序是完全透明的,因為請求程序僅使用 ESB 提供的虛擬服務接口。
本文的其余部分將介紹如何構建此類解決方案,在該解決方案中,當 WebSphere ESB 中運行的中介模塊從內部服務提供程序獲得所需的 UUID 信息后,將顯式調用 DB2 pureXML 提供的 XQuery 功能。