• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于WS-BPEL的物流信息系統(tǒng)設(shè)計與實現(xiàn)

      2013-02-06 01:06:52黃川林陳偉衛(wèi)大連東軟信息學(xué)院遼寧大連116023
      物流科技 2013年4期
      關(guān)鍵詞:請求者服務(wù)提供者調(diào)用

      黃川林, 程 勖, 陳偉衛(wèi) (大連東軟信息學(xué)院,遼寧 大連 116023)

      隨著經(jīng)濟全球化的迅速發(fā)展,現(xiàn)代物流信息系統(tǒng)的作用日益突出,它已經(jīng)被越來越多的企業(yè)作為自己趕超世界潮流的標志之一。然而現(xiàn)有的物流信息系統(tǒng)基本都采用面向?qū)ο笤O(shè)計,造成系統(tǒng)在體系結(jié)構(gòu)、數(shù)據(jù)標準和接口等各方面的不一致。因此,現(xiàn)代物流技術(shù)中急需解決的問題是如何有效地整合異構(gòu)的物流信息系統(tǒng),從而實現(xiàn)物流相關(guān)信息系統(tǒng)的信息互通,提高物流運作效率和降低物流成本。

      WS-BPEL(Web Services Business Process Execution Language)是一種業(yè)務(wù)流程的建模語言,基于一系列的開放技術(shù)標準[1]。利用WS-BPEL作為描述企業(yè)的物流信息系統(tǒng)Web服務(wù)組合的語言,可以管理和優(yōu)化物流中的各企業(yè)各部門之間的異構(gòu)資源,實現(xiàn)基于面向服務(wù)的體系架構(gòu)的物流信息系統(tǒng)的集成。

      1 基于SOA的系統(tǒng)架構(gòu)

      目前物流信息系統(tǒng)主要存在以下問題:

      (1)由于實現(xiàn)技術(shù)和系統(tǒng)結(jié)構(gòu)的不同,導(dǎo)致系統(tǒng)間交互復(fù)雜;

      (2)數(shù)據(jù)流向混亂、流程繁多;

      (3)結(jié)構(gòu)復(fù)雜,使得業(yè)務(wù)需求不易改變。

      針對目前物流信息系統(tǒng)存在的問題,在對現(xiàn)有系統(tǒng)的有效集成基礎(chǔ)上,利用Web Services封裝原有需要開放出來的功能,從而使各系統(tǒng)都具有統(tǒng)一的接口標準,并通過引入SOA架構(gòu),不但能夠?qū)崿F(xiàn)各系統(tǒng)間的信息交互,還能使之成為既相互獨立,又協(xié)調(diào)統(tǒng)一的整體,構(gòu)建出如圖1所示的物流信息系統(tǒng)架構(gòu)。在此架構(gòu)中還搭建了一個公共信息交換平臺,該平臺是為實現(xiàn)系統(tǒng)集成和各個系統(tǒng)之問的數(shù)據(jù)共享,提供有效地決策支持數(shù)據(jù),需要建立基于數(shù)據(jù)管理和利用的綜合性技術(shù)方案的共享數(shù)據(jù)中心,用以存放大量數(shù)據(jù)的同時有效地將數(shù)據(jù)管理起來,提供數(shù)據(jù)訪問的手段,為集成系統(tǒng)和各個子系統(tǒng)之間的數(shù)據(jù)共享提供平臺,保證數(shù)據(jù)的及時性、完整性和一致性[2]。

      2 面向Web服務(wù)技術(shù)

      Web服務(wù)體系結(jié)構(gòu)描述了服務(wù)請求者、服務(wù)提供者和UDDI服務(wù)注冊中心三個角色以及查找、發(fā)布和綁定與發(fā)現(xiàn)這三種操作[3]。服務(wù)提供者通過客戶端發(fā)布代理在服務(wù)注冊中心 (通常采用UDDI)注冊配置和發(fā)布服務(wù);服務(wù)請求者需要使用某個Web服務(wù)時,根據(jù)服務(wù)信息使用客戶端查找代理在服務(wù)注冊中心查找所需的服務(wù),注冊中心返回服務(wù)的接口描述文檔 (WSDL);服務(wù)請求者根據(jù)獲取的服務(wù)接口描述文檔通過SOAP協(xié)議綁定服務(wù)提供者并調(diào)用提供者所提供的服務(wù)。

      圖1 基于SOA的物流信息系統(tǒng)架構(gòu)

      系統(tǒng)把服務(wù)代理的角色引入SOA模型,從而實現(xiàn)對SOA模型的擴展。該模型除了服務(wù)提供者、服務(wù)請求者和UDDI服務(wù)注冊中心三個基本角色外,還包括一個特殊的角色——服務(wù)代理。服務(wù)代理處于服務(wù)提供者和服務(wù)請求者之間,起到中介作用,所有已知并且可用的Web Services都將映射到服務(wù)代理上[4]。服務(wù)代理將根據(jù)自己功能的需要對Web Services的屬性進行擴展,從而達到提高Web Services檢索效率的目的。

      3 基于服務(wù)代理的BPEL流程框架

      以擴展的SOA模型為依據(jù),建立基于服務(wù)代理的BPEL流程框架,如圖2所示。對于BPEL流程的一般節(jié)點來說,在流程定義時已經(jīng)為其指定了用于實現(xiàn)的Web Services,當路由到該節(jié)點時就可以直接調(diào)用該Web Services;而對于BPEL流程中需要動態(tài)調(diào)用Web Services的節(jié)點來說,它們要先發(fā)送調(diào)用Web Services的請求到服務(wù)代理,由服務(wù)代理根據(jù)請求為該節(jié)點在多個Web Services中擇優(yōu)選擇并分配一個Web Services,從而實現(xiàn)BPEL流程動態(tài)地調(diào)用 Web Services。

      基于服務(wù)代理的BPEL流程框架最大的優(yōu)點在于:結(jié)構(gòu)簡單,易于實現(xiàn)。首先,該框架可以視為是對SOA的擴展,由于服務(wù)代理本身就是一個Web服務(wù),這樣BPEL流程與服務(wù)代理之間的關(guān)聯(lián)通過簡單的BPEL編碼就可以實現(xiàn)。

      4 Web服務(wù)代理的實現(xiàn)

      Web服務(wù)代理的實現(xiàn)主要是對服務(wù)的動態(tài)調(diào)用和流程的調(diào)用接口的實現(xiàn)。下面主要對這兩方面進行描述。

      (1)Web服務(wù)動態(tài)調(diào)用的實現(xiàn)

      實現(xiàn)BPEL流程對Web服務(wù)動態(tài)調(diào)用分兩個階段:首先,服務(wù)選擇器根據(jù)Web服務(wù)的功能擇優(yōu)選擇一個Web服務(wù);最后,通過一定方法調(diào)用該Web服務(wù),并將執(zhí)行結(jié)果反饋給BPEL流程。

      Web服務(wù)的優(yōu)化選擇算法的策略不是唯一的,這些策略可以有:成本最低、響應(yīng)時間最快、可靠性最好等單一規(guī)則,另外根據(jù)QoS計算模型所得到的綜合測評結(jié)果也可以作為Web服務(wù)選擇的策略。將Web服務(wù)的類型和選擇策略作為函數(shù)的輸入,優(yōu)化選擇算法的偽代碼描述如下。

      public String service Optimization(String class,String rule)

      {

      switch rule

      case Duration

      //選擇響應(yīng)時間短的Web服務(wù)

      case Price

      //選擇服務(wù)價格最低的Web服務(wù)

      case QoS

      //選擇服務(wù)質(zhì)量綜合測評最好的

      return服務(wù)地址

      圖2 基于服務(wù)代理的BPEL流程框架

      }

      實現(xiàn)對Web服務(wù)的調(diào)用根據(jù)上一階段獲取的Web服務(wù)URL,可以獲取該Web服務(wù)的描述WSDL,WSDL中包含一些對Web服務(wù)參數(shù)的描述,利用.Net的反射Reflection技術(shù),將遠程Web服務(wù)在本地進行實例化。按照Reflection的描述,首先定義代理類,根據(jù)WSDL中的內(nèi)容設(shè)置代理類的編譯參數(shù),編譯代理類,生成代理實例,并使用被Web服務(wù)的方法,最后返回結(jié)果,該過程如圖3所示。

      圖3 Web服務(wù)本地實例化的過程

      下面是將實現(xiàn)Web服務(wù)遠程調(diào)用算法的描述。

      public static object invokeWebService(url,arg[])

      {

      //獲取 WSDL

      webClient wc=new webClient();

      stream str=wc.OpenRead(url+“?WSDL”);

      //從str中截取服務(wù)描述信息ServiceDescription

      //生成代理類代碼

      CodeCompileUnit ccu=new CodeCompileUnit();

      ccu.Namespaces.Add(cn);

      sdi.Import(cn,ccu);

      CSharpCodeProvider icc=new CSharpCodeProvider();

      //設(shè)定編譯參數(shù)

      CompilerParameters cplist=new CompilerParameters();

      //為 cplist對象添加 GenerateExecutable、GenerateInMemory

      Cplist.ReferencedAssemblies.Add(“System.dll”);

      Cplist.ReferencedAssemblies.Add(“System.XML.dll”);

      Cplist.ReferencedAssemblies.Add(“System.Web.Services.dll”);

      Cplist.ReferencedAssemblies.Add(“System.Data.dll”);

      //編譯代理類

      CompilerResults cr=icc.CompileAssemblyFromDom(cplist,ccu);

      //生成代理實例,并調(diào)用方法

      System.Reflection.Assembly assembly=cr.CompiledAssembly;

      Type t=assembly.GetType(@namespace+"."+classname,true,true

      object obj=Activator.CreateInstance(t);

      System.Reflection.MethodInfo mi=t.GetMethod(methodname);

      //返回結(jié)果

      return mi.Invoke(obj,args);

      (2)BPEL流程的調(diào)用接口實現(xiàn)

      BPEL流程本身也是以Web服務(wù)的形式向外提供調(diào)用接口的,下面是對BPEL流程接口的WSDL定義。

      <wsdl:definitions name=“process”...>

      <!--端口類型定義-->

      <portType name=“process”>

      <operation name=“callAgent”>

      <input message=“inputMessage”/>

      <output message=“outputMessage”/>

      </operation>

      </portType>

      <!--合作伙伴鏈接類型定義-->

      <plnk:partnerLinkType name=“agent”>

      <plnk:role name=“agentService”>

      <plnk:portType name=“tns:agent”

      </plnk:role>

      </plnk:partnerLinkType>

      </wsdl:definitions>

      該WSDL定義聲明了callAgent操作,其輸入和輸出消息的定義類似于服務(wù)代理中操作消息的定義,此不贅述。為了描述BPEL流程和服務(wù)代理的交互關(guān)系,需要預(yù)先在BPEL流程接口的描述中定義合作關(guān)系的類型,由于BPEL流程和服務(wù)代理之間的屬于同步調(diào)用關(guān)系,只需定義服務(wù)代理的端口和角色。

      5 結(jié)束語

      本文通過采用SOA重構(gòu)技術(shù),利用以Web Services為基礎(chǔ)的WS-BPEL技術(shù)解決了目前物流相關(guān)企業(yè)的信息系統(tǒng)架構(gòu)各異,實現(xiàn)的技術(shù)眾多,無法采用傳統(tǒng)的架構(gòu)模式對現(xiàn)有的系統(tǒng)進行有效集成,從而導(dǎo)致物流資源信息缺乏有效共享等問題,最終實現(xiàn)了基于面向服務(wù)的體系架構(gòu)的物流信息系統(tǒng)的集成。

      [1] 李文娟.基于WS-BPEL的Web服務(wù)組合執(zhí)行引擎的設(shè)計與實現(xiàn)[D].西安:西北大學(xué) (碩士學(xué)位論文),2009.

      [2] 王念念,傅秀芬,呂占德.基于SOA的物流信息系統(tǒng)的研究與設(shè)計[J].計算機技術(shù)與發(fā)展,2011,21(12):213-216.

      [3] 劉樹軍.基于WebService的應(yīng)用集成關(guān)鍵技術(shù)研究[D].銀川:寧夏大學(xué) (碩士學(xué)位論文),2011.

      [4] 趙廣建,申利民,劉波,等.BPEL流程動態(tài)調(diào)用Web服務(wù)的實現(xiàn)方法[J].計算機工程與設(shè)計,2010,31(11):2952-2954.

      猜你喜歡
      請求者服務(wù)提供者調(diào)用
      基于D2D 多播通信的合作內(nèi)容下載機制
      網(wǎng)絡(luò)服務(wù)提供者的侵權(quán)責任研究
      法制博覽(2020年11期)2020-11-30 03:36:52
      群智感知中基于云輔助的隱私信息保護機制
      核電項目物項調(diào)用管理的應(yīng)用研究
      LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
      論網(wǎng)絡(luò)服務(wù)提供者刑事責任的歸責模式一一以拒不履行網(wǎng)絡(luò)安全管理義務(wù)罪為切入點
      漢語自然會話中請求行為的序列結(jié)構(gòu)
      論網(wǎng)絡(luò)服務(wù)提供者的侵權(quán)責任
      法制博覽(2017年16期)2017-01-28 00:01:59
      基于差值誘導(dǎo)的Web服務(wù)評價可信度的評估
      基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
      繁峙县| 伊金霍洛旗| 行唐县| 西平县| 茶陵县| 德令哈市| 临猗县| 怀远县| 桐乡市| 东安县| 靖州| 无极县| 郎溪县| 兴义市| 英山县| 绥阳县| 加查县| 宾川县| 洞头县| 龙门县| 宁明县| 浦县| 南乐县| 颍上县| 清徐县| 区。| 肥东县| 时尚| 墨竹工卡县| 资中县| 辰溪县| 莱州市| 微山县| 额尔古纳市| 博罗县| 景泰县| 宁阳县| 嘉义市| 蓝山县| 阳原县| 西林县|