2011年7月12日 星期二

(轉) MES系統的Web Service應用

引言

    隨著電腦網路技術的發展,石油行業資訊化程度越來越高,利用Internet 交流資訊實現網路化企業正在逐步實現。充分地利用現有資源,在那些由於使用不同的技術而成為"資訊孤島"的系統之間建立統一的資訊交換平臺,實現石油企業資訊一體化來講具有特別重要的意義。
    煉油與化工生產運行系統(Manufacturing Execution System,簡稱MES 系統),是石油下游產業煉油與化工領域的生產運行管理平臺。MES 專案的成功實施,標誌著石油煉化企業資訊化建設取得了重大成果,為石油企業資訊技術總體規劃的完士成做出了重要貢獻。
    MES 系統分為總部MES 系統、下屬企業MES系統。總部MES 系統包括兩個平臺:生產資料平臺和綜合展示平臺。四個子系統:生產業務管理、即時動態跟蹤、調度資料管理、生產績效管理。通過系統的實施,可以提高生產計畫的指令傳遞效率和執行能力,增強了總部對下屬企業實際生產資料及時獲取和對生產監控的能力,增加了總部對下屬企業實際生產完成情況的對比和分析能力,提高了總部對下屬企業非正常情況的應變能力。
    下屬企業MES 系統包括一個生產運行資訊平臺,包括工廠基礎資訊管理、即時資料庫、即時資料庫應用、實驗室資訊管理、運行管理、物料移動、物料平衡、收率計算、生產計畫與生產排產、生產統計、生產資訊查詢等11 個子系統。通過系統的實施,提高了企業基礎生產過程資料和化驗分析資料的品質和集成度,加強了對整個生產執行過程的監督和控制,提高了生產的穩定性,降低了生產成本,減少了品質浪費。
    利用.NET 平臺來構建基於Web Service MES 系統的優點是,首先,它為總部調度人員提供了煉油與化工資訊化應用的標準平臺,有利於調度人員標準化生產工作的開展;其次,它可以保障資料傳輸的穩定性和可持續性,從而增強總部對下屬企業實際生產資料及時獲取和生產監控的能力;最後,實施總部MES 系統會使生產運行資訊化總體成本降低。
1 Microsoft .NET 平臺
    Microsoft.NET 是一個由ServerClient Service 組成的平臺。 .NET 框架包括基本的運行庫、使用者介面庫、CLRC# C++ VB. NETJscript.NETASP.NET,以及.NET 框架API 的各個方面。 Microsoft.NET 是一項可以讓企業開發智慧型與企業級Web Service 的產品。Microsoft.NET 可說是Windows DNA 的大翻修,這是微軟先前提供開發企業級應用程式的平臺。Windows DNA 包含許多現有產品的技術,包括Microsoft Transaction Server (MTS) COM+Microsoft Message Queue (MSMQ) 以及Microsoft SQL Server 資料庫。而新的. NET Framework 則是設計來取代這些技術的,並加入Web Service 層級以及程式語言的改進。.NET 應用程式存在於一個容器中,這個容器提供企業級應用程式所需的服務,.NET 應用程式的商業層級是透過。 NETmanaged 元件所開發的。這個層級負責商業程式與資料邏輯。它可以透過Active Data Objects (ADO.NET) 來連接資料庫,或是在現有的系統中使用Microsoft Host Integration Server 2000 所提供的服務,當然它也可以透過Web Service 技術來連接協力廠商的商業應用程式。因此協力廠商們可以透過Web Service 技術讓. NET 程式彼此連接起來。傳統的用戶端程式、流覽器以及無線裝置則可以連接到Active Server Pages (ASP.NET),這些ASP.NET則有著各企業自行使用HTMLXHTML WML所設計的使用者介面。
1.1 Web Service 體系架構

1 Web Service 技術體系機構及調用過程示意圖
    Web 服務使用SOA(面向服務的構架,Service Oriented Architecture)模型。該模型由三個獨立的角色和三個基本操作構成。如圖1 所示,服務提供者(Service Provider)是創建服務的主體,將他的服務發佈到服務代理的一個目錄上供服務需求者調用;服務請求者(Service Requester)為了調用所需服務,需要到服務代理提供的目錄上搜索該服務,得到如何調用該服務的資訊,然後根據這些資訊去調用服務提供者發佈的服務;服務代理 (Service Broker)提供Web 服務清單和每種Web 服務的詳細資訊。在Web 服務體系中,使用WSDL 來描述服務,UDDI 來發佈查找服務,而SOAP 用來執行服務調用,XML 則將分散的、功能單一的Web服務組織成一個複雜的應用。
1.2 Web Service 主要技術
    Web 服務的核心技術包括XMLSOAPUDDI WSDL
    1.2.1 XMLeXtensible Markup Language 可擴展置標語言XML
    XML W3C 組織於1998 2 月發佈的標準。W3C 採取了簡化SGML 的策略,在SGML 基礎上,去掉語法定義部分,是SGML 的一個子集,是一種經過簡化了標記語言,它具有形式與內容分離的特點。在不到幾年的發展過程中,已經確立了其在Web 應用領域的資料標準的主流地位。研究、推廣、開發、應用XML 已經成為業界發展的主流趨勢。同時,XML 所擁有的良好的擴展性、自描述性、自相容性以及跨文種等優點,又使得它非常適於Web 上的資料交換與發佈。
    1.2.2 SOAP (Simple Object Access Protocal,簡單物件訪問協定)
    SOAP 完全繼承了XML 的開放性和描述可擴展性。SOAP 使用基於TCPIP 的應用層協定HTTPSMTPFTP 等,可以與現有通信技術最大程度地相容。SOAP 為使用XML 在鬆散、分佈的環境中對等地交換結構化和類型化資訊提供了一個簡單的機制。SOAP 本身並不定義任何應用語義,如程式設計模型或特定語義實現,它只定義一種簡單的機制,通過一個模組化的包裝模型和對模組中特定格式編碼的資料重編碼機制來表示應用語義。SOAP 是一個基於XML 的,用於分散式環境下資料交換的簡單、羽量級協定,包括三部分:定義了描述消息和如何處理消息的框架的封包(SOAP封包)表達應用程式定義的資料類型實例的編碼規則(SOAP 編碼規則)描述遠程程序呼叫和應答的協定。
    1.2.3 UDDI(Universal Description Discovery and Integration 統一描述、發現和集成協議)
    UDDI 是分散式Web Service 的資訊註冊規範。Web Service 可以根據這一規範進行註冊,以便被其它需要該服務的使用者發現。UDDI 規範描述了Web Service 的概念,同時也定義了一種程式設計介面,這種程式設計介面提供了描述各種Web Service 的簡單框架。規範包括幾份相關的文檔和一份XML Schema,用來定義基於SOAP 的註冊和發現Web Service 的標準。UDDI 真正實現了Web Service 資訊訪問的一次註冊,到處發佈UDDI 是在XMLSOAP 的基礎之上定義了新的一層。在這一層,不同企業可以用相同的方法詢問對方的服務、描述自己的服務。這些發現服務為所有請求者提供了一致的介面,使得已經發佈的Web Service 能通過程式設計被需要的請求者發現。UDDI 規範文本定義了UDDI 操作人口網站(UDDI Operator Site)能夠支援的API 介面和API 中用XML 描述的資料結構的具體定義。
    1.2.4 WSDL(Web Service Description Language Web Service 描述語言)
    WSDL Microsoft 公司的SDL(Services Description Language) IBM 公司的NASSL(Network—Accessible Services Specification Language)結合並被W3C 接納後形成的標注。它為服務請求者提供了以XML 格式描述Web Service 請求基本格式的標準方法。WSDL 用來描述一個Web Service 能做什麼,它的位置在哪裡,如何調用它等。UDDI 註冊描述了Web Service 的絕大多數方面,包括服務綁定的細節,WSDL 可以看作是UDDI 服務描述的子集。WSDL Web 服務定義為網路端點的集合。它有一個根項目,用類型(Types)、消息(Message)、端13 類型(Port—type)、綁定(Binding)、埠(Port)和服務(Service)等元素來定義Web 服務。
2 總部MES 系統的Web Service 應用
2.1 背景
    由於總部與各家下屬企業在網路化建設的過程中,出於安全考慮,絕大多數網路節點都安裝了防火牆,因此要求設計一種具有可伸縮、易管理、跨平臺、跨防火牆等特點的資料應用方案。而下屬企業的資料是總部資訊化呈現的基礎,需要長期建設和維護,由於下屬企業資料的多樣性,及企業之間的差異性,所以一個高效的分散式系統是必不可少的。
2.2 傳統解決方案
    下屬企業資料的集成屬於分散式運算的範疇。在傳統的解決方案中,總部與下屬企業之間的資料交互是通過分散式技術,如DCOMCORBA 來實現的。這些技術本身具有一些無法克服的缺陷,並不適宜用在不同部門間的資源交互與共用中。現在,以CORBA 為例來作具體說明。CORBA 是目前流行的一種分散式物件技術,它通過物件之間的交互來實現資源的共用,為分散式環境下應用系統的集成提供支援。但是,CORBA本身存在如下缺陷: 客戶、伺服器方的元件介面是緊密耦合的,客戶元件在編譯時就必須綁定到伺服器元件,如果介面改變,那麼客戶元件必須重建;ORB 是系統雙方通信的中間媒介,CORBA 要求雙方必須運行同樣的ORB 產品; CORBA 採用IIOP 通信協定,容易受到防火牆和代理伺服器的阻隔。
    所以CORBA 技術的種種弊端使其更適用于下屬企業內部對資料的處理,而不適宜擴展到網際網路上。所以,傳統的解決方案不能從根本上解決總部MES 系統所面臨的資料交互問題。而.NET 平臺下的Web Service 克服了傳統技術的缺陷,為石油行業資訊化的建設提供了新的思路。 


2.3 總部MES 系統的Web Service 應用框架和調用過程
    .NET 平臺下,Web Service 僅僅是一種使用服務的通道,所以不需要改變.NET 的構架,並且使原有的.NET 元件可以非常容易地暴露為WebService.NET 平臺的優點仍然對Web Service 適用: 可擴展性、可靠性、開放性,所以開發、部署、發現Web Service 變得非常方便。
    Web Service 採用XMLSOAPHTTPWSDLUDDI 等標準協定。這些協定與特定的作業系統、物件模型和程式設計語言無關。因此,Web Service 應用于MES 系統時
    1)由於採用標準的協議,不受特定的開發者、平臺、語言和資料編碼格式的限制;
    2)開發的Web Service 可以供不同的客戶調用,可以為其他系統調用,以提供相關資料資訊;
    3HTTP 作為傳輸協議可以穿過防火牆,提供在Internet 上的連接和訪問;
    4)如果知道Web Service 的位址並具有相應許可權,就可以在網路的任何地方進行調用。
    基於.NET Web Service 技術為實現分散式下屬企業資料的訪問提供了強有力的支持。利用.NET 平臺下的Web Service 技術來構建的MES系統應用具有自主性,即應用能夠大大加快總部與下屬企業之間的生產資料的傳輸和發送,以及協同各個企業與總部之間的實際應用。總部調度都能利用這個平臺進行協同各家下屬企業實際生產運行資訊。
    MES系統的Web Service 應用分為分散式穿越資料採擷、分散式資料上報代理。
    2.3.1 分散式穿越資料採擷
    在總部MES 系統應用分散式穿越資料採擷中,每個Web Service 的資源可以視為一個Web 元件。使用Web 元件作為構建模組,可以建立分散式的應用程式,裝配各種應用程式。一個Web 服務能接收請求以完成一系列特定任務,並使用開放的通信標準來回應這個請求, 可以跨越防火牆,以確保互通性。
    總部MES 系統通過各下屬企業Web 元件,從存放在下屬企業資料庫、資料倉庫或其他資訊庫的大量資料中挖掘出總部層面關注的相關資料。

2 分散式穿越資料採擷實現方案
    根據設計的系統應用方案,基於Web Service的總部MES 系統的具體工作流程如圖2 所示:
    1)使用者登錄總部MES 系統門戶,並發出請求資訊,系統門戶接著向後臺的應用伺服器轉發用戶請求。
    2)應用伺服器接到用戶請求後,立即到私有UDDI 註冊中心查詢符合用戶需求的Web Service,定位服務綁定使用者請求。
    3UDDI 註冊中心向應用伺服器返回Web Service 的資訊。
    4)應用伺服器根據得到的資訊,生成Web Service 代理並綁定到相應Web Service 上。
    5)應用伺服器調用Web Service 實現使用者請求,資訊被格式化後,將處理結果返回給用戶。
    2.3.2 分散式資料上報代理
    分散式資料上報代理實現方案與分散式穿越資料採擷方案反向,通過採用Web 服務、XML、簡單物件訪問協定等分散式開發技術以及存儲過程技術,結合面向服務的架構思想,資料上報子代理提供給下屬企業資料上報人員一個靈活易用的資料功能,減輕上報人員的資料錄入量。
    下屬企業資料上報人員無需知道總部伺服器的任何資訊,就可以安全靈活的將總部關心的相關下屬企業生產資料提交到總部伺服器內,保證了系統的安全性。
    分散式資料上報代理實現方案如圖3 所示。

3 分散式資料上報代理實現方案
2.4 Web Service 調用
    由於下屬企業較多、並且可能在生產過程中切換正在運行的目標伺服器,Web Service 的服務介面是可能改變的,這時請求方根據本地緩衝的WSDL 進行服務調用就會失敗,此時,應用有能力再次到UDDI 註冊中心重新獲得服務應用的WSDL,實現重新的服務定位、綁定。因此它有別于傳統的靜態繫結模式。所以選擇動態調用Web Service,通過提供動態的請求-回應模式實現動態的集成。動態調用Web Service 實現方案如圖4 所示。

4 動態調用Web Service 實現方案
    在動態調用Web Service 的過程中,WebService 調用介面如下:
    public static object InvokeWS (string WebSerivceUrl, string MethodName, object[] Args)
    在這個Web Service 調用的介面中,需要用到的參數說明如下:
    WebSerivceUrl:目標Web Service 的位址。
    MethodName:要調用服務方法名。
    Args:要調用Web Service 所需要的參數。
    返回值是Web Service 返回的結果了。
3 結束語
    本文研究了在.NET平臺下基於Web Service 技術的MES 系統的構架,基本實現了總部與下屬企業之間對生產資料資訊的發佈與共用。應用了Web Service MES 系統,不受特定的開發者、平臺、語言和資料編碼格式的限制,不受物理位置的限制,對防火牆是友好的,易於同其他系統進行協作等優點。Web Service 是隨著Internet 的技術特點和全面發展而誕生的一種新的分散式運算技術,它的體系結構、技術思路和簡單性使它成為目前網路上非常受歡迎的技術,也是得到業界廣泛支援的技術,因此我們提出的基於Web Service MES 系統也為該類型系統的實現提供了一個新的思路。


沒有留言:

張貼留言