999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于WCF技術(shù)構(gòu)建分布式數(shù)據(jù)服務(wù)

2013-04-13 08:21:52楊遠(yuǎn)超
鐵道勘察 2013年5期
關(guān)鍵詞:數(shù)據(jù)庫服務(wù)設(shè)計(jì)

楊遠(yuǎn)超

(中鐵第一勘察設(shè)計(jì)院集團(tuán)有限公司, 陜西西安 710043)

1 鐵路勘測設(shè)計(jì)數(shù)據(jù)的分類與組織

在鐵路勘測設(shè)計(jì)過程中,除了少部分的描述性文本資料外,各專業(yè)的文件大都可以用地理坐標(biāo)系和線路坐標(biāo)系來標(biāo)識(shí)。以地理坐標(biāo)系來描述的成果多為勘測類數(shù)據(jù),如各類控制點(diǎn)、地形圖、地質(zhì)圖等,這些數(shù)據(jù)的空間特性需要二維或三維坐標(biāo)來描述。以線路坐標(biāo)系來描述的成果多為專業(yè)設(shè)計(jì)數(shù)據(jù),與鐵路相關(guān)的數(shù)據(jù)的空間特性轉(zhuǎn)化為沿鐵路線的一維標(biāo)識(shí)(即線路里程)。通過線路曲線和斷鏈信息,可以將勘測設(shè)計(jì)成果數(shù)據(jù)在地理坐標(biāo)系和線路坐標(biāo)系間轉(zhuǎn)換,坐標(biāo)轉(zhuǎn)換需要考慮地理坐標(biāo)系的分帶和線路坐標(biāo)系的所屬方案等問題。

將一條鐵路線的勘察設(shè)計(jì)定義為一個(gè)項(xiàng)目,以方案和坐標(biāo)為關(guān)鍵字來建立各專業(yè)數(shù)據(jù)庫,各專業(yè)數(shù)據(jù)庫間的數(shù)據(jù)接口參照正式頒布的數(shù)據(jù)接口標(biāo)準(zhǔn)來建立。某個(gè)專業(yè)一旦完成某項(xiàng)工作,就將結(jié)果存入數(shù)據(jù)庫,同時(shí)發(fā)布消息,通知后續(xù)專業(yè)使用。專業(yè)數(shù)據(jù)可抽象為文件類和表格類數(shù)據(jù)。文件類數(shù)據(jù)是指以各種文件格式存儲(chǔ)的專業(yè)勘測設(shè)計(jì)數(shù)據(jù),包括各類圖片、圖形、文本、電子表格文件,這類數(shù)據(jù)在數(shù)據(jù)庫中都以BLOB對象進(jìn)行存儲(chǔ),導(dǎo)入數(shù)據(jù)庫時(shí)將文件轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)流,獲取數(shù)據(jù)時(shí)將其還原為對應(yīng)格式的文件。表格類數(shù)據(jù)是指在專業(yè)數(shù)據(jù)庫中以數(shù)據(jù)庫表格形式存儲(chǔ)的數(shù)據(jù),可使用SQL語言直接解析數(shù)據(jù)的全部屬性。數(shù)據(jù)分類與組織如圖1所示。

圖1 鐵路協(xié)同設(shè)計(jì)平臺(tái)的數(shù)據(jù)分類與組織

2 WCF技術(shù)簡介

WCF(Windows Communication Foundation)是微軟公司為構(gòu)建面向服務(wù)的應(yīng)用提供的分布式通信編程框架,可以用它構(gòu)建跨平臺(tái),安全、可靠和支持事務(wù)處理的企業(yè)級互聯(lián)應(yīng)用解決方案。其基礎(chǔ)的技術(shù)架構(gòu)如圖2所示。

圖2 WCF技術(shù)架構(gòu)

如圖2所示,WCF服務(wù)端向客戶端提供一些可用的功能,如服務(wù)1、2、3,WCF客戶端通過終結(jié)點(diǎn)來訪問WCF服務(wù),一個(gè)服務(wù)端至少要提供一個(gè)終結(jié)點(diǎn)供客戶端使用。服務(wù)端的終結(jié)點(diǎn),由“ABC”構(gòu)成,Address(地址)解決在哪里找到服務(wù)的問題;Binding(綁定)解決如何與服務(wù)進(jìn)行通訊的問題;Contract(契約)解決服務(wù)是一些什么內(nèi)容的問題。

一個(gè)WCF服務(wù)需要在一個(gè)可運(yùn)行的程序中寄宿,可以把宿主理解為WCF運(yùn)行的容器。在客戶端訪問服務(wù)之前,服務(wù)必須通過宿主程序發(fā)布出來。常用的WCF寄宿方式包括:自寄宿、IIS寄宿、Windows激活服務(wù)、Windows服務(wù)。根據(jù)面向服務(wù)的原則,激活和宿主類型的變化不會(huì)影響服務(wù)本身的特性和外部對該服務(wù)的訪問,這樣就可以根據(jù)實(shí)際部署的需要靈活選用各類寄宿方式。在實(shí)際應(yīng)用中,以IIS寄宿類型居多,本文將也以IIS宿主程序?yàn)槔榻B如何構(gòu)建分布式數(shù)據(jù)服務(wù)。

3 分布式數(shù)據(jù)服務(wù)的建立

3.1 建立數(shù)據(jù)服務(wù)端程序

首先以管理員身份啟動(dòng)Microsoft Visual Studio 2010程序(操作系統(tǒng)為 Windows Server 2008),點(diǎn)擊文件—新建—項(xiàng)目,打開一個(gè)對話框,在左側(cè)的模板中選擇編程語言(如Visual C#),然后選擇“WCF”,在隨后出現(xiàn)的類型中選擇“WCF服務(wù)程序”,依次填入項(xiàng)目的名稱、項(xiàng)目文件路徑和解決方案名稱,最后點(diǎn)擊“確定”,創(chuàng)建一個(gè)WCF服務(wù)程序。

然后按照微軟的推薦做法,先在形如IServiceRealScene.cs(RealScene為項(xiàng)目名稱)的文件中定義數(shù)據(jù)服務(wù)的接口(IServiceRealScene)和數(shù)據(jù)契約。如本項(xiàng)目中定義了項(xiàng)目、分帶坐標(biāo)系、方案、專業(yè)、存儲(chǔ)格式、線路曲線、斷鏈、坡度、設(shè)計(jì)標(biāo)準(zhǔn)類型、設(shè)計(jì)標(biāo)準(zhǔn)等數(shù)據(jù)類型,用作接口服務(wù)的參數(shù)定義。服務(wù)接口程序的定義則根據(jù)需要訂制,可以自由選擇其參數(shù)和返回值類型。如示例項(xiàng)目就定義了從總服務(wù)器查詢專業(yè)數(shù)據(jù)的注冊信息以及根據(jù)注冊信息索引從專業(yè)數(shù)據(jù)庫提取、更新數(shù)據(jù)的各類服務(wù)。在定義的數(shù)據(jù)服務(wù)中,如果需要返回一個(gè)通用的xml文檔(即System.Xml.XmlDocument類型),則需要在接口定義前加上形如[XmlSerializerFormat]字樣的標(biāo)記,否則客戶端程序?qū)⒉荒苷_識(shí)別接口,導(dǎo)致程序編譯錯(cuò)誤。需要特別說明的是,如果編寫的服務(wù)要實(shí)現(xiàn)分布式事務(wù),在不同的數(shù)據(jù)庫中提交數(shù)據(jù)更改,則在定義服務(wù)接口時(shí)需要在接口定義前加上[TransactionFlow(TransactionFlowOption.Allowed)]字樣的標(biāo)記,表示服務(wù)操作愿意接受來自客戶端的傳入事務(wù)。

最后,打開形如ServiceRealScene.svc(RealScene為項(xiàng)目名稱)的文件,在其中編寫數(shù)據(jù)服務(wù)接口的實(shí)現(xiàn)代碼,在上一步驟中定義的每一個(gè)數(shù)據(jù)服務(wù)接口都必須在此實(shí)現(xiàn)。給繼承自接口IServiceRealScene的類ServiceRealScene加上[ServiceBehavior(Instance ContextMode=InstanceContextMode.PerCall,Concurrency Mode=ConcurrencyMode.Multiple)]字樣的標(biāo)記,用來指示其服務(wù)行為中的實(shí)例控制、并發(fā)控制模式。服務(wù)端實(shí)例控制采用了PerCall實(shí)例策略,每個(gè)客戶端的請求消息都會(huì)被分發(fā)到一個(gè)新的服務(wù)實(shí)例上。而一旦這個(gè)調(diào)用返回后,服務(wù)實(shí)例則會(huì)被銷毀。并發(fā)控制模式為Multiple,表示W(wǎng)CF不會(huì)主動(dòng)為服務(wù)操作添加任何鎖,每個(gè)操作都允許客戶端多個(gè)請求同時(shí)訪問,這樣做的好處是提高了系統(tǒng)的運(yùn)行效率,防止消息被阻塞。實(shí)現(xiàn)接口服務(wù)的類函數(shù)必須與接口服務(wù)函數(shù)名相同,參數(shù)一致,并且設(shè)置為公眾函數(shù)public供客戶端調(diào)用。同樣,若要實(shí)現(xiàn)分布式事務(wù),則應(yīng)將前面所述的并發(fā)控制模式應(yīng)為Single模式,即ConcurrencyMode=ConcurrencyMode.Single,并在要實(shí)現(xiàn)事務(wù)處理的函數(shù)加上[OperationBehavior(TransactionScopeRequired=true)]字樣的標(biāo)記,表示此函數(shù)在執(zhí)行時(shí)需要事務(wù)范圍。

3.2 發(fā)布數(shù)據(jù)服務(wù)

在VS 2010程序的“解決方案管理器”中選擇建立WCF服務(wù)程序,點(diǎn)右鍵選擇“屬性”選項(xiàng),在打開的頁面中選擇“Web”,選中“使用本地IIS Web服務(wù)器”,點(diǎn)擊“創(chuàng)建虛擬目錄”,則在本地的IIS Web服務(wù)器創(chuàng)建了一個(gè)與項(xiàng)目名相同的網(wǎng)站。啟動(dòng)本地Internet信息服務(wù)(IIS)管理器,在左側(cè)的網(wǎng)站列表中點(diǎn)擊這個(gè)網(wǎng)站,然后雙擊其“目錄瀏覽”圖標(biāo),在打開的頁面右側(cè)的“操作”欄點(diǎn)擊“啟動(dòng)”,打開網(wǎng)站目錄瀏覽的功能,完成數(shù)據(jù)服務(wù)的發(fā)布。

3.3 客戶端的服務(wù)引用

在客戶端建立控制臺(tái)應(yīng)用程序或Windows窗體應(yīng)用程序,在界面右側(cè)的“解決方案資源管理器”中右鍵點(diǎn)擊“引用”目錄,選擇“添加服務(wù)引用”,在彈出的對話框“地址”欄中輸入服務(wù)的發(fā)布地址(可通過運(yùn)行WCF服務(wù)端程序,點(diǎn)擊打開網(wǎng)頁后綴名為SVC的鏈接,則打開的網(wǎng)址即為服務(wù)地址,非本地引用時(shí)需要將其localhost字樣換為服務(wù)器所在的IP地址即可),點(diǎn)擊“前往”按鈕,則找到對應(yīng)的服務(wù),在“命名空間”欄輸入客戶端引用服務(wù)的名稱,點(diǎn)擊“確定”按鈕,則成功添加服務(wù)引用,如圖3所示。

圖3 客戶端引用數(shù)據(jù)服務(wù)

添加服務(wù)引用后,在客戶端就可以通過代理直接使用服務(wù)端發(fā)布的數(shù)據(jù)服務(wù),實(shí)現(xiàn)所需的數(shù)據(jù)發(fā)布與更新功能。

4 結(jié)束語

WCF技術(shù)本身具有很好的兼容性,可以在不改變鐵路設(shè)計(jì)各專業(yè)既有后臺(tái)數(shù)據(jù)的情況下,以專業(yè)間的數(shù)據(jù)交換標(biāo)準(zhǔn)為參照,通過服務(wù)接口的定義和發(fā)布,實(shí)現(xiàn)數(shù)據(jù)的分發(fā)與共享,完成專業(yè)間的協(xié)同設(shè)計(jì)。當(dāng)然,由于鐵路設(shè)計(jì)本身的復(fù)雜性和專業(yè)協(xié)同的要求,對數(shù)據(jù)服務(wù)權(quán)限、數(shù)據(jù)版本的控制以及在用戶并發(fā)量上升時(shí)如何保證服務(wù)的可靠性和有效性,這些都需要通過對系統(tǒng)的精心設(shè)計(jì)和嚴(yán)格測試,才能使建立的分布式數(shù)據(jù)服務(wù)達(dá)到應(yīng)用的要求。

[1]布斯塔曼特(Micbele Leroux Bustamance)(著),龐引明、侯伯薇(譯).學(xué)習(xí)WCF從原理到實(shí)踐[M].北京:電子工業(yè)出版社,2008

[2]吳清壽.基于WCF的分布式系統(tǒng)模型研究與實(shí)現(xiàn)[J].吉林師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2012(3)

[3]李雪東.基于WCF面向服務(wù)架構(gòu)的研究與應(yīng)用[D].長春:長春理工大學(xué),2009

[4]汪享慶.鐵路勘測設(shè)計(jì)協(xié)同設(shè)計(jì)探討[J].交通與計(jì)算機(jī),2008(1)

[5]石紅兵,鄭云,曾學(xué)貴.勘測設(shè)計(jì)一體化軟件開發(fā)過程中數(shù)據(jù)庫的設(shè)計(jì)[J].鐵道工程學(xué)報(bào),2000(2)

[6]彭先寶.鐵路勘測設(shè)計(jì)一體化系統(tǒng)開發(fā)策略分析[J].鐵道勘察,2008(2)

猜你喜歡
數(shù)據(jù)庫服務(wù)設(shè)計(jì)
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
瞞天過海——仿生設(shè)計(jì)萌到家
招行30年:從“滿意服務(wù)”到“感動(dòng)服務(wù)”
商周刊(2017年9期)2017-08-22 02:57:56
設(shè)計(jì)秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計(jì)叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
主站蜘蛛池模板: 亚洲二区视频| 亚洲精品视频免费看| 伊人久久福利中文字幕| 亚洲国产成人麻豆精品| 老司机久久99久久精品播放| 国产人成乱码视频免费观看| 国产又爽又黄无遮挡免费观看| 老司国产精品视频| 2020最新国产精品视频| 幺女国产一级毛片| 美女视频黄频a免费高清不卡| 欧美久久网| 免费国产好深啊好涨好硬视频| 日韩毛片在线播放| 亚洲精品成人7777在线观看| 成人福利免费在线观看| 国产欧美精品一区二区| 最近最新中文字幕免费的一页| 蜜臀AV在线播放| 欧美在线天堂| 国产在线91在线电影| 久久精品一品道久久精品| 成人免费午夜视频| 国产黄色片在线看| 亚洲V日韩V无码一区二区| 天堂在线亚洲| 国产成人精品在线| 国产成人精品免费av| 欧美亚洲一区二区三区导航| 99精品国产高清一区二区| 色婷婷视频在线| 亚洲精品色AV无码看| 成人在线视频一区| 久久国产精品电影| 免费国产不卡午夜福在线观看| 大学生久久香蕉国产线观看| 无码免费视频| 青草午夜精品视频在线观看| 精品久久蜜桃| 欧美国产综合色视频| 日本不卡在线| av天堂最新版在线| 呦女亚洲一区精品| 亚洲a级在线观看| 中国一级特黄大片在线观看| 国产色爱av资源综合区| 美女国内精品自产拍在线播放| 不卡午夜视频| 国产无吗一区二区三区在线欢| 国产一区二区三区日韩精品| 91丝袜美腿高跟国产极品老师| 久久成人免费| 毛片手机在线看| 国产成人亚洲精品无码电影| 欧美狠狠干| 亚洲一区二区三区在线视频| 69综合网| 在线免费亚洲无码视频| 国产精品亚洲日韩AⅤ在线观看| 国产黄色片在线看| 日本高清免费一本在线观看 | 老司机精品99在线播放| 国产一区免费在线观看| 日本不卡在线视频| 亚洲天堂网在线播放| 97se亚洲综合在线韩国专区福利| 久久一日本道色综合久久| 亚洲中文字幕97久久精品少妇| 好紧太爽了视频免费无码| 国产青青操| 天天激情综合| 自拍欧美亚洲| 五月天福利视频| 欧美精品成人| 亚洲中文无码h在线观看| 国产95在线 | 五月激激激综合网色播免费| 日韩欧美中文在线| 国产男人的天堂| 激情午夜婷婷| 91麻豆精品国产高清在线| 欧美日韩v|