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

基于.NET Remoting技術的分布式旅游管理平臺設計與實現

2011-12-31 00:00:00丁俊張亞平江新蘭
中國管理信息化 2011年18期

[摘要] 本文首先闡述了.NET Remoting技術的基本原理和框架。針對目前旅游行業的電子商務平臺架構的缺陷,本文研究與設計了一套基于.NET Remoting技術的分布式旅游管理平臺解決方案。該平臺基于多用戶、高并發的特性,結合XML技術,使應用服務與Web服務器分離,為分布式的業務應用提供了高效可靠的架構。最后,介紹了該平臺的代碼實現。

[關鍵詞] 旅游管理平臺; 分布式; .NET Remoting技術; XML技術

doi : 10 . 3969 / j . issn . 1673 - 0194 . 2011 . 18. 045

[中圖分類號]F270.7 [文獻標識碼]A [文章編號]1673 - 0194(2011)18- 0067- 03

0引言

隨著當今電子商務的快速發展和旅游行業業務的不斷拓展,人們越來越依賴網絡在線完成旅游相關事宜,這就給旅游行業的從業者提出了新問題。當用戶規模到達一定數量級時,原先的簡單架構已經不能滿足日益增長的用戶群在線操作的需求,搭建一個穩健的、易擴展的旅游管理平臺迫在眉睫。

本文針對目前普通的旅游行業電子商務平臺架構的缺陷,研究與設計了一套性能較高、易于擴展的旅游管理平臺解決方案,該管理平臺通過基礎數據和核心業務的發布與管理集成,再結合系統權限管理,實現旅游業務數據的及時性和共享性。

1.NET Remoting技術介紹

1.1.NET Remoting概述

.NET Remoting是微軟公司推出的遠程服務框架,是構建分布式應用程序的一種編程模式,它提供了在不同應用程序域之間通過調用遠程對象而進行交互的技術框架,能使信息在不同計算機、進程間遠程傳輸[1]。

1.2.NET Remoting技術框架

.NET Remoting中的遠程基礎結構由代理(Proxy)、通道(Channel)和消息(Formatter)組成。代理是指模仿遠程對象的本地對象,通道對象代表了本程序到遠程應用程序的連接,每個通道對象都包含了一個將方法調用轉換為已知格式的消息格式化程序對象,然后將消息發送到遠程服務器上,客戶端通道對象鏡像在這個服務器上可以偵聽請求。其技術框架如圖1所示。

2旅游管理平臺的解決方案

2.1旅游管理平臺概述

旅游管理平臺分為兩大部分:旅游業務管理系統和門戶網站系統(如圖2所示)。其中,旅游業務管理系統包括:核心業務管理(旅游線路管理、訂單管理、在線支付、業務統計、客戶管理和財務管理等)和基礎管理(用戶管理、酒店管理、信息管理)模塊;門戶網站系統包括:業務信息發布和系統管理等模塊。

2.2旅游管理平臺框架設計

該旅游管理平臺采用以.NET Remoting技術框架為核心的多層架構,包括服務端、客戶端兩大部分,如圖3所示。服務端和客戶端通過代理(Proxy)與通道(Channel)實現通信,具體業務由服務端對應代理和接口完成。服務端負責接收客戶端的請求,解析指令,訪問數據庫,并將結果返回到客戶端;而客戶端負責接收客戶指令發送到服務端,并接受服務端返回的結果等。

2.2.1服務端

(1) 數據層:實現對所有業務數據、基礎數據進行統一管理,采用數據庫管理系統SQL Server 2005實現。

(2) 應用服務層:實現對前端請求服務的管理和所有應用系統的業務邏輯的處理,包括:旅游線路查詢、酒店預訂、票務服務等應用功能。

2.2.2客戶端

(1) 表示層:表示層完成前端瀏覽器的控制流程,利用標準的C#、 HTML、XML技術實現前后臺的連接管理,利用ASP.NET機制實現頁面流程的控制以及頁面請求的分發。

(2) 客戶層:客戶層從表示層下載應用界面并在瀏覽器中顯示,只需安裝瀏覽器即可。

2.3旅游平臺的代碼實現

下面從.NET Remoting技術角度闡述旅游管理平臺的主要實現環節,整個平臺由Remoting服務端和客戶端構成。本系統采用服務器端注冊通道、客戶端激活通道的方式,而具體的業務由專門的業務類來實現。

2.3.1服務器端的實現

服務端具體業務方法通過(lyzx.Services.Interface.dll)接口來實現其在客戶端的代理調用,因該平臺有多個服務組成,所以該平臺引入了服務池概念(由HashTable構成的多個服務組合),通過服務端配置文件(XML)配置各個服務的通道類型、IP、Port、服務名稱等。

服務端通道注冊代碼如下(其中chnl為服務端監聽端口):

ChannelServices.RegisterChannel(chnl, false);

LineService objSOService = (ILineService)LineServiceFactory.Create(objRemotingService.URL,typeof(ILineService));

服務端發布通道的服務代碼如下(其中采用加鎖的機制保持線程的同步):

public static object Create(string url, Type serviceObjType)

{return RuntimeHelpers.GetObjectValue (Activator.GetObject(serviceObjType, url));}

public static string GetRemoteServiceURL(string channel, string ip, string port)

{return string.Format ("{0}://{1}:{2}/{3}", channel, ip, port, GetServiceUri(null));}

public static string GetServiceUri(Type serviceObjType)

{return "lineservice.rem";}

2.3.2客戶端的實現

客戶端激活通道,并根據配置文件(XML文件,主要針對.NET Remoting服務器的信息、各個服務進行配置)中所配置的通道類型(INTEGRATEDSEARCH_CHANNEL)、服務器IP(INTEGRATEDSEARCH_IP)、Port(INTEGRATEDSEARCH_PORT)以及通道類型(Line_URI)獲取對應服務。

客戶端激活通道對象代碼實現如下:

public static object Create(string url, Type serviceObjType)

{return Activator.GetObject (serviceObjType, url);}

public static string GetRemoteServiceURL(string channel, string ip, string port, string uri)

{return string.Format ("{0}://{1}:{2}/{3}", channel, ip, port, uri);}

public static string GetServiceUri()

{return "lineservice.rem";}

對應具體業務服務如下:

public static ILineService CreateClient()

{ILineService objService = ServiceFactory.Create(

ServiceFactory.GetRemoteServiceURL(

PortalConfig.INTEGRATEDSEARCH_CHANNEL,PortalConfig.INTEGRATEDSEARCH_IP,PortalConfig.INTEGRATEDSEARCH_PORT,PortalConstants.Line_URI), typeof(ILineService)) as ILineService;

return objService;}

2.2.3遠程對象的實現

系統中采用了接口概念,接口的實現類完成參數的驗證,訪問數據庫,并且返回查詢結果。由于Remoting傳遞的對象是以引用的方式,因此所傳遞的遠程對象類必須繼承MarshalByRefObject。遠程對象,也就是本系統的各個服務,它們是該平臺的主要功能部分,主要包含線路服務(Line Service)、訂單服務(Ticket Service)、酒店服務(Hotel Service)和其他一些基本服務等。

下面以線路查詢為例,簡單介紹遠程對象在.NET Remoting中的實現過程。由于數據較多,所以采用數據庫分頁技術,第一個參數是輸入輸出參數,是多個簡單條件組合的xml字符串。model_xml為輸入輸出型,顯示輸入為條件,輸出為結果。輸入時為多個簡單條件組合的xml字符串;輸出時也是多個記錄組成的xml串的結果集。

服務端代碼如下:

public interface ILineService

{int LineInfoList(ref string model_xml, int pageindex, int pagesize, ref int recoadcount);}

前已述及,客戶端通過服務端提供的并且已經實現的遠程對象封裝類接口[lyzx.Services.Interface.dll]獲得服務端方法,以線路中的[LineInfoList]方法舉例,其中第一個參數同上。

public static int LineInfoList(ref string model_xml, int pageindex, int pagesize, ref int recoadcount)

{return CreateClient().LineInfoList (ref model_xml, pageindex, pagesize, ref recoadcount);}

3結束語

本文首先闡述了.NET Remoting技術的基本原理和框架,并詳細介紹了基于.NET Remoting技術的分布式旅游管理平臺設計與實現的解決方案。該平臺基于多用戶、高并發的特性,使應用服務與Web服務器分離,為分布式的業務應用提供了高效可靠的架構。通過使用.NET Remoting技術框架,能夠方便地解決數據和命令的遠程傳遞問題,使系統中對數據的各種操作變得高效、可靠,同時易于解決數據的完整性和一致性問題。

另外,由于客戶端和宿主服務程序是松耦合關系,當需求發生變化時,只需要單獨更改服務宿主程序或客戶端即可以滿足要求,避免了因系統升級等引起的煩瑣部署及系統結構調整問題,為系統的完善升級奠定了良好的設計基礎。

主要參考文獻

[1] 王玉時,于曉明. 用.Net Remoting技術實現酒店管理系統友情查詢功能[J]. 陜西科技大學學報:自然科學版,2008,26(2):110-113.

[2] 曾登高. NET系統架構與開發[M]. 北京:電子工業出版社,2003.

[3] [美]Matthew MacDonald.Microsoft.NET分布式應用程序:集成XML Web服務與.NET遠程處理[M]. 戢中東,譯. 北京:清華大學出版社,2005.

[4] 胡海路,彭接文,胡智宇,等. XML Web Services高級編程范例[M]. 北京:電子工業出版社,2003.

[5] [美]Mclean S.Microsoft .Net Remoting權威指南[M]. 張昆琪,譯. 北京:機械工業出版社,2003.

[6] [意]Dino Esposito. Microsoft .Net XML程序設計[M]. 寧建平,譯. 北京:機械工業出版社,2003.

主站蜘蛛池模板: 亚洲精品卡2卡3卡4卡5卡区| 国产精品无码久久久久久| 在线免费看黄的网站| 成人日韩精品| 亚洲天堂久久| 亚洲成人一区二区| 尤物精品视频一区二区三区| 国产经典在线观看一区| 亚洲欧美日韩中文字幕在线一区| 国产精品第一区在线观看| 日韩大片免费观看视频播放| 欧美天堂在线| 欧美成人A视频| 波多野结衣视频网站| 波多野结衣在线se| 久久大香香蕉国产免费网站| 午夜精品福利影院| 91精品国产丝袜| 色哟哟国产精品| 久久精品视频一| 国产成人综合久久精品尤物| 91精品日韩人妻无码久久| 国产精品浪潮Av| 亚洲精品欧美重口| 成人韩免费网站| 九九这里只有精品视频| 一级成人欧美一区在线观看 | 欧洲亚洲欧美国产日本高清| 日韩欧美中文亚洲高清在线| 国产精品香蕉在线| 亚洲色图欧美视频| 国产青青操| 国产产在线精品亚洲aavv| 日韩无码黄色| 国产一区二区三区视频| 欧美激情视频一区二区三区免费| 毛片一区二区在线看| 欧美一区二区福利视频| 国产高清在线观看| 在线免费观看AV| 国产精品网曝门免费视频| 国产永久无码观看在线| 国产成人高清亚洲一区久久| 精品国产中文一级毛片在线看 | a毛片在线播放| 国产一区二区三区免费| 四虎影视无码永久免费观看| 欧美高清视频一区二区三区| 久久a级片| 91精品国产一区自在线拍| 国产精品欧美亚洲韩国日本不卡| 国产成人久久综合一区| 日韩福利在线观看| 亚洲人成影视在线观看| 欧美a在线| 高清精品美女在线播放| 2018日日摸夜夜添狠狠躁| 国产丝袜啪啪| 伊人久久福利中文字幕| 久久99精品国产麻豆宅宅| 国产欧美亚洲精品第3页在线| 成人午夜视频免费看欧美| 国产天天射| 大学生久久香蕉国产线观看| 又黄又湿又爽的视频| 在线日韩日本国产亚洲| 久久网欧美| 超清无码一区二区三区| 国产99欧美精品久久精品久久| 国产成人盗摄精品| 欧美激情视频二区三区| 成人国产一区二区三区| 国产在线观看高清不卡| 91久久国产成人免费观看| 欧美成人一级| 国内精品免费| 国产精品午夜电影| 国产美女91呻吟求| 一级黄色片网| 免费无码又爽又刺激高| 午夜色综合| 精品国产亚洲人成在线|