INformIX-OnLine客户服务器结构的建立
作者: 来源: [收藏到E起摘]
编者按

    INFORMIX-OnLine 7.1是面向大规模联机事务处理,支持决策应用的高性能的数据库系统,不但具有分布式数据处理功能,还支持客户服务器结构的应用。
【正文】
  1 建立基于客户服务器结构的应用程序

  INFORMIX-OnLine 7.1是面向大规模联机事务处理,支持决策应用的高性能的数据库系统,不但具有分布式数据处理功能,还支持客户服务器结构的应用。

  我们使用的服务器是HP E25小型机,操作系统是HP_UX 9.04,安装OnLine 7.1。由于OnLine 6.0以上都已内嵌Star,所以不必再安装。客户机为HP NetServer LD,127;操作系统是SCO OpenServer 5.04,安装OnLine 5.0和传输模块INFORMIX-Net。客户机运行用ESQL/C编写的业务程序,用这样的语句打开服务器上的数据库cbdb:127;$database icbd@bacct_qz;。

  其中acct_qz为服务器的主机名,然后调用存放在数据库系统表中的存储过程来实现整个业务系统,127;使用存储过程可以减少网络的传输量,当然也可以直接使用SQL语句对数据库进行操作。服务器和客户机上都要建立icbacct用户作为信任用户,用户标识号可以不同。客户机上使用INFORMIX传输模块Net提供的sqlrmtlitcp程序,在用户icbacct的.profile文件中要输出环境变量:127;SQLEXEC=$INFORMIXDIR/lib/sqlrmtlitcp。

  因为INFORMIX-OnLine数据库系统的安全性能依赖于TCP/IP网络协议,所以服务器一般不要在/etc/hosts.equiv文件中配置客户机的主机名,可以仅让客户机上的icbacct用户成为信任用户,方法是在服务器的icbacct 用户根目录下的 .rhosts文件中登记客户机的主机名acct_ha,同时也要在客户机上的icbacct用户根目录下的.rhosts文件登记服务器的主机名acct_qz。这样在客户机上以icbacct用户登录后就可以运行业务程序,还可以用isql直接访问数据库,其他用户如informix用户由于不是可信任的用户就不能访问数据库。由于TCP/IP在检查信任用户时是将所有用户的 .rhosts文件追加在/etc/hosts.equiv文件后面一起判断的,所以如果将服务器上的用户icbacct的 .rhosts文件的内容改为如下:

  "acct_ha informix",就可以让客户机acct_ha的informix用户也能访问数据库。

  数据库名字有两种格式,一是"数据库名@服务器主机名",在客户机上使用。比如在客户机上以icbacct用户登录后,在使用isql修改数据时输入数据库名"icbdb@acct_qz",其中acct_qz为服务器的主机名。二是"数据库名@数据库服务器名",在服务器acct_qz上使用。比如在服务器上运行的数据库服务器的名字是acct_online,则数据库名是icbdb@acct_online。服务器用户icbacct的.profile文件要输出环境变量INFORMIXSERVER=acct_online。

  上述两个数据库名实际上指的都是同一个数据库。

  从以上分析不难看出,客户服务器结构在安全上也存在一个隐患,当所有县支行的数据都集中到市行后,在任何一个县行的客户机上都可直接用isql修改其他行处的数据,当然必须以可信任的用户比如icbacct用户登录后方可实现。

  ┌──────┐ 数据服务器名:acct_online

  │ ONLINE 7.1 │ 主机名:acct_qz

  │ (内嵌Star) │ (服务器)

  └┬───┬─┘ DDN,TCP/IP

  ┌───┘ └─────┐

  ┌──┴──┐ ┌──┴──┐

  │ONLINE 5.0│主机名:acct_ha│ONLINE 5.0│主机名:acct_xx

  │ I-Net │(客户机1) │ I-Net │(客户机2)

  └─────┘ └─────┘

  图1 客户服务器结构的网络拓扑图

  比如一台服务器和两台客户机以TCP/IP网络连接在一起(图1),在服务器上建立数据库服务器cct_online,在$INFORMIXDIR/etc/sqlhosts文件中命名。在/etc/services文件中定义了服务名sqlexec及该服务占用的端口号和所采用的协议类型,如2000/tcp 表示占用2000号端口,协议类型为TCP。下面以服务器主机acct_qz为例来加以说明:

  ① 文件/etc/hosts:

  #net address hostname host alias

  10.168.100.3 acct_qz host1_alias

  10.168.106.1 acct_ha host2_alias

  10.168.107.1 acct_xx host3_alias

  ② 文件$INFORMIXDIR/etc/sqlhosts:

  #dbservername nettype hostname servicename

  acct_online onsoctcp acct_qz sqlexec

  ③ 文件/etc/services:

  #service_name port#/procotol aliases

  sqlexec 2000/tcp

  sqlrmtlitcp程序与普通的客户机通信软件一样要通过服务sqlexec对应的端口号2000与服务器建立连接,所以端口号2000必须保证全局一致。客户机acct_ha和acct_xx上的这三个文件内容基本上要与服务器acct_qz上的三个文件一样。

[1] [2] [3] [4]下一页
相关文章
·存储分析 导向器市场回归三足鼎立局面 ·IBM与AMD将结成Opteron服务器开发联盟
·甲骨文进军Linux向红帽发出致命一击 ·AMD迈向多核时代的甜蜜苦恼:供不应求
·苹果4核心X Serve服务器开始接受预订 ·备份:向持续数据保护时代迈进
·从486到双核 单路服务器发展趋势预测 ·不甘落后 Sun高调发布基于AMD服务器
·经验汇总 如何挑选1U机架式服务器机箱
精彩文章推荐
·Microsoft Windows 7 Server登场
·曙光5000A世界超级计算机独家详解
·曙光5000A超算:较劲对手 再起风
·AMD 45纳米新四核“上海”登陆上
·AMD宣布新一代四核皓龙处理器上市
·“魔方”有多魔?专访曙光总裁历
·终极探秘!诉说小小芯片的前世今
·曙光5000A入选世界超级计算机TOP
·领略与众不同 Sun北京总部图片赏
·如何打造最安全的服务器虚拟化环
最新文章推荐
解决方案
查找
按应用查找:
按行业查找:
·Sogeti创新云
·EMC:真正绿色IT 要全面综合设计
·惠普为江门国税提供海量存储
·面对灾难 如何保护重要数据的安全
·EonStor产品平安城市监控存储解决
·EonStor产品电力行业解决方案
·面向服务的存储解决方案
·华为3Com:天津海事局存储系统案例
·Sun核心解决方案为电信行业注入新
·联想深腾1800机群助上海交大生命科