基于.
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技术框架,能够方便地解决数据和命令的远程传递问题,使系统中对数据的各种操作变得高效、可靠,同时易于解决数据的完整性和一致性问题.
由于行业需求和自媒体的倾向问题,对于我们个人站长建站的方向还是有一些需要改变的。传统的个人网站建站内容方向可能会因为自媒体的分流导致个人网站很多行业不再成为流量的主导。于是我们很多个人网站都在想办法进行重新更换行业,包括前几天也有和网友在考虑是不是换个其他行业做做。这不有重新注册域名重新更换。鉴于快速上手的考虑还是采用香港服务器,这不腾讯云和阿里云早已不是新账户,考虑到新注册UCLOUD账户还算比...
Dataideas是一家2019年成立的国外VPS主机商,提供基于KVM架构的VPS主机,数据中心在美国得克萨斯州休斯敦,主机分为三个系列:AMD Ryzen系列、Intel Xeon系列、大硬盘系列,同时每个系列又分为共享CPU和独立CPU系列,最低每月1.5美元起。不过需要注意,这家没有主页,你直接访问根域名是空白页的,还好他们的所有套餐支持月付,相对风险较低。下面以Intel Xeon系列共...
酷锐云是一家2019年开业的国人主机商家,商家为企业运营,主要销售主VPS服务器,提供挂机宝和云服务器,机房有美国CERA、中国香港安畅和电信,CERA为CN2 GIA线路,提供单机10G+天机盾防御,提供美国原生IP,支持媒体流解锁,商家的套餐价格非常美丽,CERA机房月付20元起,香港安畅机房10M带宽月付25元,有需要的朋友可以入手试试。酷锐云自开业以来一直有着良好的产品稳定性及服务态度,支...