基于.
NETRemoting技术的分布式旅游管理平台设计与实现基于.
NETReting技术的分布式旅游管理平台设计与实现单位:天津大学,作者:丁俊,张亚平[摘要]本文首先阐述了.
NETReting技术的基本原理和框架.
针对目前旅游行业的电子商务平台架构的缺陷,本文研究与设计了一套基于.
NETReting技术的分布式旅游管理平台解决方案.
该平台基于多用户、高并发的特性,结合XL技术,使应用服务与eb服务器分离,为分布式的业务应用提供了高效可靠的架构.
最后,介绍了该平台的代码实现.
[关键词]旅游管理平台;分布式;.
NETReting技术;XL技术di:10.
3969/j.
issn.
1673-0194.
2011.
18.
045[中图分类号]F270.
7[文献标识码]A[文章编号]1673-0194(2011)18-0067-030引言随着当今电子商务的快速发展和旅游行业业务的不断拓展,人们越来越依赖网络在线完成旅游相关事宜,这就给旅游行业的从业者提出了新问题.
当用户规模到达一定数量级时,原先的简单架构已经不能满足日益增长的用户群在线操作的需求,搭建一个稳健的、易扩展的旅游管理平台迫在眉睫.
本文针对目前普通的旅游行业电子商务平台架构的缺陷,研究与设计了一套性能较高、易于扩展的旅游管理平台解决方案,该管理平台通过基础数据和核心业务的发布与管理集成,再结合系统权限管理,实现旅游业务数据的及时性和共享性.
1.
NETRemoting技术介绍1.
1.
NETRemoting概述.
NETRemoting是微软公司推出的远程服务框架,是构建分布式应用程序的一种编程模式,它提供了在不同应用程序域之间通过调用远程对象而进行交互的技术框架,能使信息在不同计算机、进程间远程传输[1].
1.
2.
NETRemoting技术框架.
NETRemoting中的远程基础结构由代理(Proxy)、通道(Channel)和消息(Formatter)组成.
代理是指模仿远程对象的本地对象,通道对象代表了本程序到远程应用程序的连接,每个通道对象都包含了一个将方法调用转换为已知格式的消息格式化程序对象,然后将消息发送到远程服务器上,客户端通道对象镜像在这个服务器上可以侦听请求.
其技术框架如图1所示.
2旅游管理平台的解决方案2.
1旅游管理平台概述旅游管理平台分为两大部分:旅游业务管理系统和门户网站系统(如图2所示).
其中,旅游业务管理系统包括:核心业务管理(旅游线路管理、订单管理、在线支付、业务统计、客户管理和财务管理等)和基础管理(用户管理、酒店管理、信息管理)模块;门户网站系统包括:业务信息发布和系统管理等模块.
2.
2旅游管理平台框架设计该旅游管理平台采用以.
NETRemoting技术框架为核心的多层架构,包括服务端、客户端两大部分,如图3所示.
服务端和客户端通过代理(Proxy)与通道(Channel)实现通信,具体业务由服务端对应代理和接口完成.
服务端负责接收客户端的请求,解析指令,访问数据库,并将结果返回到客户端;而客户端负责接收客户指令发送到服务端,并接受服务端返回的结果等.
2.
2.
1服务端(1)数据层:实现对所有业务数据、基础数据进行统一管理,采用数据库管理系统SQLServer2005实现.
(2)应用服务层:实现对前端请求服务的管理和所有应用系统的业务逻辑的处理,包括:旅游线路查询、酒店预订、票务服务等应用功能.
2.
2.
2客户端(1)表示层:表示层完成前端浏览器的控制流程,利用标准的C#、HTL、XML技术实现前后台的连接管理,利用ASP.
NET机制实现页面流程的控制以及页面请求的分发.
#p#分页标题#e#(2)客户层:客户层从表示层下载应用界面并在浏览器中显示,只需安装浏览器即可.
2.
3旅游平台的代码实现下面从.
NETRemoting技术角度阐述旅游管理平台的主要实现环节,整个平台由Remoting服务端和客户端构成.
本系统采用服务器端注册通道、客户端激活通道的方式,而具体的业务由专门的业务类来实现.
2.
3.
1服务器端的实现服务端具体业务方法通过(lyzx.
Services.
Interface.
dll)接口来实现其在客户端的代理调用,因该平台有多个服务组成,所以该平台引入了服务池概念(由HashTable构成的多个服务组合),通过服务端配置文件(XML)配置各个服务的通道类型、IP、Port、服务名称等.
服务端通道注册代码如下(其中chnl为服务端监听端口):ChannelServices.
RegisterChannel(chnl,false);LineServiceobjSOService=(ILineService)LineServiceFactory.
Create(objRemotingService.
URL,typeof(ILineService));服务端发布通道的服务代码如下(其中采用加锁的机制保持线程的同步):publicstaticobjectCreate(stringurl,TypeserviceObjType){returnRuntimeHelpers.
GetObjectValue(Activator.
GetObject(serviceObjType,url));}publicstaticstringGetRemoteServiceURL(stringchannel,stringip,stringport){returnstring.
Format("{0}://{1}:{2}/{3}",channel,ip,port,GetServiceUri(null));}publicstaticstringGetServiceUri(TypeserviceObjType){return"lineservice.
rem";}2.
3.
2客户端的实现客户端激活通道,并根据配置文件(XML文件,主要针对.
NETRemoting服务器的信息、各个服务进行配置)中所配置的通道类型(INTEGRATEDSEARCH_CHANNEL)、服务器IP(INTEGRATEDSEARCH_IP)、Port(INTEGRATEDSEARCH_PORT)以及通道类型(Line_URI)获取对应服务.
客户端激活通道对象代码实现如下:publicstaticobjectCreate(stringurl,TypeserviceObjType){returnActivator.
GetObject(serviceObjType,url);}publicstaticstringGetRemoteServiceURL(stringchannel,stringip,stringport,stringuri){returnstring.
Format("{0}://{1}:{2}/{3}",channel,ip,port,uri);}publicstaticstringGetServiceUri(){return"lineservice.
rem";}#p#分页标题#e#对应具体业务服务如下:publicstaticILineServiceCreateClient(){ILineServiceobjService=ServiceFactory.
Create(ServiceFactory.
GetRemoteServiceURL(PortalConfig.
INTEGRATEDSEARCH_CHANNEL,PortalConfig.
INTEGRATEDSEARCH_IP,PortalConfig.
INTEGRATEDSEARCH_PORT,PortalConstants.
Line_URI),typeof(ILineService))asILineService;returnobjService;}2.
2.
3远程对象的实现系统中采用了接口概念,接口的实现类完成参数的验证,访问数据库,并且返回查询结果.
由于Remoting传递的对象是以引用的方式,因此所传递的远程对象类必须继承MarshalByRefObject.
远程对象,也就是本系统的各个服务,它们是该平台的主要功能部分,主要包含线路服务(LineService)、订单服务(TicketService)、酒店服务(HotelService)和其他一些基本服务等.
下面以线路查询为例,简单介绍远程对象在.
NETRemoting中的实现过程.
由于数据较多,所以采用数据库分页技术,第一个参数是输入输出参数,是多个简单条件组合的xml字符串.
model_xml为输入输出型,显示输入为条件,输出为结果.
输入时为多个简单条件组合的xml字符串;输出时也是多个记录组成的xml串的结果集.
服务端代码如下:publicinterfaceILineService{intLineInfoList(refstringmodel_xml,intpageindex,intpagesize,refintrecoadcount);}前已述及,客户端通过服务端提供的并且已经实现的远程对象封装类接口[lyzx.
Services.
Interface.
dll]获得服务端方法,以线路中的[LineInfoList]方法举例,其中第一个参数同上.
publicstaticintLineInfoList(refstringmodel_xml,intpageindex,intpagesize,refintrecoadcount){returnCreateClient().
LineInfoList(refmodel_xml,pageindex,pagesize,refrecoadcount);}3结束语本文首先阐述了.
NETRemoting技术的基本原理和框架,并详细介绍了基于.
NETRemoting技术的分布式旅游管理平台设计与实现的解决方案.
该平台基于多用户、高并发的特性,使应用服务与Web服务器分离,为分布式的业务应用提供了高效可靠的架构.
通过使用.
NETRemoting技术框架,能够方便地解决数据和命令的远程传递问题,使系统中对数据的各种操作变得高效、可靠,同时易于解决数据的完整性和一致性问题.
丽萨主机怎么样?丽萨主机,团队于2017年成立。成立之初主要做的是 CDN 和域名等相关业务。最近开辟新领域,新增了独立服务器出租、VPS 等业务,为了保证业务质量从一开始就选择了中美之间的 CN2 GIA 国际精品网络,三网回程 CN2 GIA,电信去程 CN2 GIA + BGP 直连智能路由,联通移动去程直连,原生IP。适合对网络要求较高的用户,同时价格也比较亲民。点击进入:丽萨主机官方网站...
官方网站:点击访问特网云官网活动方案:===========================香港云限时购==============================支持Linux和Windows操作系统,配置都是可以自选的,非常的灵活,宽带充足新老客户活动期间新购活动款产品都可以享受续费折扣(只限在活动期间购买活动款产品才可享受续费折扣 优惠码:AADE01),购买折扣与续费折扣不叠加,都是在原价...
CloudServer是一家新的VPS主机商,成立了差不多9个月吧,提供基于KVM架构的VPS主机,支持Linux或者Windows操作系统,数据中心在美国纽约、洛杉矶和芝加哥机房,都是ColoCrossing的机器。目前商家在LEB提供了几款特价套餐,最低月付4美元(或者$23.88/年),购买更高级别套餐还能三个月费用使用6个月,等于前半年五折了。下面列出几款特别套餐配置信息。CPU:1cor...