发信人: love1974() 
整理人: flyingmist(2000-03-06 00:08:22), 站内信件
 | 
 
 
    现在流行多层模型代替C/S模型,通过PB中的代理对象就可以实现三层模型结构 
 
 系统. CLIENT->APPLICATION SERVER->后端数据库.
 
   企业商业规集中放入APPLICATION SERVER中不但可以减少维护的复杂性,还有利 
 
 于统一商业规则变更,减少了以往的C/S系统商业规则变更后系统升级的麻烦.只要 
 
 设计好优良的APPLICATION SERVER接口,基本上商业规则变更并不需要改变客户端 ,
 
 这也就是为什么人们提出多层模型的原因.
 
    下面是我采用WINSOCK驱动程序对PB的TCP/IP的编程测试程序,欢迎大家共同
  
 讨论.
 
 
 
 
 (1).服务器端
   1).W_MAIN窗口OPEN事件脚本
 
   transport li_port
   li_port=create transport
   li_port.application="8888"      //TCP端口号
   li_port.location="192.168.0.1"  //IP地址 
   li_port.driver="winsock"        //使用WINSOCK驱动程序
   li_port.listen()
   if li_port.errcode<>0 then
 	
 	messagebox("服务器JmServer","启动错误!!!")
 	messagebox("err",li_port.errtext)
   end if
   
   2).APP用户对象
      
      APP用户对象函数
      STRING HELLO()
        { RETURN "OK"  }
   3).使用PROJECT生成代理对象APP,放入PROXY.PBL中
 
 (2).客户端
 
   1).把PROXY.PBL加入应用库路径中
   2).测试按钮CLICKED事件脚本 
      connection  my_connection
      app my_server1
 
      my_connection=create connection
      my_server1=create app
      my_connection.application="8888"       //TCP端口号
      my_connection.location="192.168.0.1"   //IP地址 
      my_connection.trace="log=d:\test_pb\err.log,objectcalls=1,
                           objectlife=1"
      my_connection.driver="winsock"         //使用WINSOCK驱动程序
      if my_connection.connecttoserver( )<>0 then
 	messagebox("Client","ErrorCode="+string(my_connection.errcode)+&
 	    "~r~nErrorText="+my_connection.errtext)
 	halt close
      end if
      my_connection.createinstance(my_server1)
      messagebox("result",my_server1.hello(""))  //调用服务器端用户对象 APP
                                                 //的HELLO函数
     PB中的三层模型基本就是使用这种方法,生成代理代理对象,在客户端通过代 理
 
 对象调用服务器端的应用服务器中的函数,服务器端的应用服务器就是中间层,从 而
 
 实现了PB的三层模型编程.PB的代理对象的好处就是封装了SOCKET编程的复杂性, 简
 
 洁的开发PB的多层模型系统.
  -- love1974
 太太平平,不是我活着的目标;不温不火,不是我的性格。是云就该下雨,是火就该发光。
  ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.190.124]
  | 
 
 
 |