欢迎您来到 数字平台。 您尚未登录。[登录] [注册新用户]
当前位置: 论坛首页 / 栏目 产品与服务 / 文章 577

点击:18309[回复顶层] [树状] [详细]
[回复留言] [回复(需要先登录)] [引用(需要先登录)]精品第 1 楼
文章id: 512
从DP2系统多层架构看跨网段公共查询的解决方案



DP2系统采用MS SQL Server等数据库底层,通过数据库内核封装前端的数据操作请求,而图书馆应用前端又通过图书馆应用服务器进行首次封装,再由图书馆应用服务器将这些封装的请求将由数据库内核进行封装并最终提交到数据库底层。架构示意图如:

这种多层架构如果简单化应用,可以在一个服务器硬件中安装MS SQL Server等数据库底层、数据库内核服务、图书馆应用服务器,然后由前端进行访问。如:

即,假如图书馆局域网段IP范围为192.168.0.*,服务器IP地址为192.168.0.1,那么,所有的前端都是访问这个服务器,通讯细节为:

1、              如果是图书馆应用服务的前端(比如dp2内务前端),先将请求提交到IP192.168.0.1的服务器中,将由图书馆应用服务封装后,由图书馆应用服务提交到数据库内核服务再次封装,最后由数据库内核服务兑现到数据库服务中。

2、              如果是数据库内核服务的前端(比如dp2内核管理前端),也是先将请求提交到IP192.168.0.1的服务器中,由于没必要由图书馆应用服务封装,所以直接提交到数据库内核服务进行封装,最后由数据库内核服务兑现到数据库服务中。

 

事实上,极端情况下,支持多层分开的应用,即用一台服务器安装MS SQL Server等数据库底层、另一台服务器安装数据库内核服务、再用一台服务器安装图书馆应用服务器,然后由前端进行访问。如:

 

即,在同样的图书馆局域网段中,分配IP192.168.0.1的服务器安装图书馆应用服务;分配IP192.168.0.2的服务器安装数据库内核服务;分配IP192.168.0.3的服务器安装数据库服务,那么,通讯细节如下:

1、               如果是图书馆应用服务的前端(比如dp2内务前端),先将请求提交到IP192.168.0.1的服务器中,将由图书馆应用服务封装后,由图书馆应用服务提交到IP192.168.0.2的服务器中,由其中的数据库内核服务再次封装,最后由数据库内核服务提交到IP192.168.0.3的服务器中,兑现到其数据库服务中。

2、               如果是数据库内核服务的前端(比如dp2内核管理前端),先将请求提交到IP192.168.0.2的服务器中,由其中的数据库内核服务进行封装,然后由数据库内核服务提交到IP192.168.0.3的服务器中,兑现到其数据库服务中。

 

在实际应用中,图书馆多有独立的局域网,因而具有如何保证馆内局域网前端与馆外网络前端同时访问服务器的需求。如何实现呢?推荐采用两种方案:

一、              唯一服务器双网卡方案

 

即,假如图书馆局域网段IP范围为192.168.0.*;而外网IP范围为172.168.0.*。那么,在服务器中安装双网卡,一个网卡分配IP192.168.0.1,接入图书馆局域网段;另一个网卡分配IP172.168.0.1,接入外网。那么,这两个网段的所有前端都能访问这个服务器,通讯细节为:

1、             馆内局域网内前端的访问方式不变。访问的是IP192.168.0.1的服务器。

2、             外网前端的访问方式类似,只不过访问的IP172.168.0.1而已。

这个方案的好处在于它能节省服务器硬件(只要一台服务器即可),减少网络连接环节。不足之处在于由于安装一个图书馆应用服务器实例,只能绑定一个服务器IP或域名(机器名),所以必须要保证这两个网段的电脑能跨网段通讯,或采用机器名与域名绑定方式。另外,由于服务器同时面向内外两个网络,被攻击、被病毒破坏的概率加大,如果外网前端影响了服务器,馆内局域网也无法正常工作。

 

二、              多图书馆应用服务器模式

还是前面那种网络布局,假如图书馆局域网段IP范围为192.168.0.*;而外网IP范围为172.168.0.*。那么,可以考虑在IP192.168.0.1的服务器中安装完整的图书馆应用服务、数据库内核服务和数据库服务(MS SQL Server);另外找一台服务器安装双网卡,一个网卡分配IP192.168.0.2,接入图书馆局域网段;另一个网卡分配IP172.168.0.1,接入外网,且在这台服务器中仅安装图书馆应用服务,并在安装过程指定访问的数据库内核服务器的地址类似“http://192.168.0.1/dp2libraryws/library.asmx”,代理帐户也是用192.168.0.1服务器中数据库内核分配的那个即可(默认为root帐户)。同时,绑定图书馆应用服务的IP172.168.0.1。通讯细节为:

1、              虽然图书馆局域网前端也可访问IP192.168.0.2的这台服务器中的图书馆应用服务,并由它将请求提交到192.168.0.1那台服务器的数据库内核中。但这是不必要的(如果192.168.0.*段电脑无法访问172.168.0.1,还会影响某些样式文件的获取)。所以,图书馆局域网前端可以视192.168.0.2IP无物,直接与192.168.0.1服务器通讯。

2、              而公共查询(OPAC),仅通过浏览器前端(如IE, firefox等)访问图书馆应用服务器,所以外网的前端直接将请求提交到IP172.168.0.1的服务器上,由其图书馆应用服务器将这些请求通过192.168.0.2网卡提交到图书馆局域网内的IP192.168.0.1的服务器中去,然后由192.168.0.1服务器返回结果,提交到192.168.0.2服务器中,再由192.168.0.2服务器通过自己的172.168.0.1网卡响应172.168.0.*外网网段的前端请求。

这个模式的不足是需要增加一台图书馆应用服务器。好处是使公共查询服务与图书馆数据库服务器有一个隔离,这样,即使因公共查询服务器受外网的攻击瘫痪,也不会影响到图书馆业务工作的开展(即192.168.0.1服务器仍正常)。所以,这个方式是我们重点推荐的模式。

 

注意:双网卡设置中,不能在网络属性中,简单为每个网卡都分配上相应的网关,这会产生网关冲突的。可以考虑设置静态路由方式(具体设置方式,参考相应的网络技术资料)。不过,既然双网卡服务器一般是照顾外网,所以,仅在外网网卡中绑定外网的网关,内网网卡中可以不设置网关即可。而如果根本不考虑双网卡服务器访问其它电脑,只允许其它电脑访问它,那么,两个网卡都不设置网关也无所谓——不让服务器利用网关访问外网,其实还更安全些。

题外话,总有客户担心服务器接入外网就会不安全,所以不愿意将服务器接入外网,总是在馆内局域网内使用。其实,这有点因噎废食了。且不论不将服务器接入外网,会失去更大范围展示图书馆工作成果、更方便服务读者的条件。而图书馆局域网也是网络,如果服务器容易攻击,那么局域网内的电脑一样会攻击它的。

所以,做好系统备份、打全系统漏洞补丁、养成良好的服务器使用习惯与纪律,服务器是很强健的。如果再加上单独设置双网卡公共查询服务器的方式,那又增加了安全系数——毕竟先攻破查询服务器,再由它作跳板来攻击内网中的数据库服务器的技术难度太大,我想是没几个高手愿意费这个劲来惦记我们图书馆用户的。



发表时间: 2009-09-14 12:28:14
最后修改时间: 2009-09-14 12:32:04
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 2 楼
文章id: 577

作者: 精灵


是否可以在采用“ 多图书馆应用服务器模式”模式时,把响应外网请求这台机器上的library.xml文件中的<accounts></accounts>中除了“reader”、“public”以外的用户名删除。。呵呵。。感觉这样稳妥些。



发表时间: 2010-01-04 21:02:44
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 3 楼
文章id: 578
回复:



==========

以下是引用 精灵 于 2010-1-4 21:02:44 发表的文字:

是否可以在采用“ 多图书馆应用服务器模式”模式时,把响应外网请求这台机器上的library.xml文件中的<accounts></accounts>中除了“reader”、“public”以外的用户名删除。。呵呵。。感觉这样稳妥些。

==========

这种模式,目的是让连接外网的图书馆应用服务器与连接内网的图书馆应用服务器都访问同一个数据库内核,这样,才能保证内外读者与工作人员都能无差别开展所有工作。

你有这个想法,说明头脑非常清醒。是的,“reader”、“public”是为读者或匿名用户设置的帐户,它们的权限非常低,且为了保障读者使用,不能被删除。但是,如果你认为不可能有工作人员通过外网进行业务操作,把这些工作帐户全删除了更安全,你就可以这么做。

——但是,建议还是加强帐户密码健壮性而不去删除帐户,毕竟,能在你家中,处理点工作,有时还是一个劳模需要的条件。而健壮的密码被外人知晓的可能性就太小了。



发表时间: 2010-01-07 11:30:49
页 1 / 1
 

在线用户
(无) 
当前栏目在线用户数 0, 总在线用户数 0