使用delphi 开发多层应用(十五)使用kbmMW 的代理服务

本文介绍如何利用kbmMW代理服务解决企业对外提供服务时遇到的外网IP配置、客户端统一访问入口及服务器负载均衡等问题。通过构建代理服务,实现了客户端通过单一入口连接到服务器,有效管理服务资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   首先,当一个企业要给外网用户提供服务时,应用服务器上应该配置外网IP,同时外网防火墙也要进行相关的配置,

但是当对外的服务器比较多时,可能需要很多外网IP,同时防火墙上要频繁设置,非常麻烦。第二,分发客户端后,一般

配置都要默认设置好(否则会给客户造成不必要的麻烦),那么客户端都会指向一个相对比较固定的服务器IP,也就是说

客户端理想状态是通过一个统一的入口连接到服务器上,调用相关的服务。第三,当一个服务器同时运行多个服务比较繁忙时,

可以把多个服务分离出来,部署到不同的服务器上,但是服务分离应该对客户端是透明的,也就是说客户端不应该感觉到服务

器上的变化,能够按照过去的逻辑进行工作。最后,具有业务逻辑的应用服务器也应该保证一定的安全保护,尽量不要直接

连到外网。为了解决以上的几个矛盾,我们就要采取kbmMW的代理服务实现以上要求。

 我们先来做一个最简单的代理服务。

1.建立一个vcl application(在delphi XE2 以后,同样可以使用FM 应用,这里为了方便,使用VCL 框架).

 

放置相关控件,一个是servertransport, 一个是clienttransport.

注意:servertransport的端口是客户端要访问的端口,

clienttransport.的端口是我们以前做的服务的端口。

2.使用kbmMW 的服务向导生成一个ProxyService.

并设置相关属性

3.然后在主界面里面输入对应的代码

procedure TForm1.Button1Click(Sender: TObject);
begin
   pserver.Active:=true;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
sd:TkbmMWCustomServiceDefinition;
begin

   sd:=pserver.RegisterService( TkbmMWProxyService2,true);


end;

4.运行原来的服务器程序

5. 运行刚做的代理服务器

6. 把客户端的访问服务器端口改成3000,并运行


客户端成功通过代理服务器访问到真正的应用服务器。

代理服务一般有四种用法:

1.客户端通过代理服务器连到一个应用服务器上

注册代码为

var
   sd:TkbmMWCustomServiceDefinition;
begin
   sd:=kbmMWServer1.RegisterService(TMyProxyService1,true);
end;

 这里的True意味着代理服务器将所有的客户端请求无条件发送到应用服务器上。

2)代理服务器提供一些服务,其余的转发到应用服务器上

注册代码为:

var
     sd:TkbmMWCustomServiceDefinition;
begin
     sd:=kbmMWServer1.RegisterService(TMyInternalService1,false);
     sd:=kbmMWServer1.RegisterService(TMyInternalService2,false);
     sd:=kbmMWServer1.RegisterService(TMyProxyService1,true);
end;

 这里代理服务器也提供两个服务,其他的由应用服务器提供。
3)通过代理服务器连接两个以上的应用服务器

注册代码为

var
      sd:TkbmMWCustomServiceDefinition;
begin
    sd:=kbmMWServer1.RegisterServiceByName(‘SOMESERVICE1’,TMyProxyService1,
false);
    sd:=kbmMWServer1.RegisterServiceByName(‘SOMESERVICE2’,TMyProxyService2,
false);
end;

 这里代理服务器根据不同的服务,将客户端的请求转发到对应的应用服务器上。

 

4)客户端既访问代理服务器的服务,也访问不同应用服务器的服务

这个其实就是以上的几种方式组合。

总之,利用代理服务可以解决很多比较麻烦的问题,大家可以灵活使用,以适应自己的实际工作情况。

内容概要:本文档详细介绍了Analog Devices公司生产的AD8436真均方根-直流(RMS-to-DC)转换器的技术细节及其应用场景。AD8436由三个独立模块构成:轨到轨FET输入放大器、高动态范围均方根计算内核和精密轨到轨输出放大器。该器件不仅体积小巧、功耗低,而且具有广泛的输入电压范围和快速响应特性。文档涵盖了AD8436的工作原理、配置选项、外部组件选择(如电容)、增益调节、单电源供电、电流互感器配置、接地故障检测、三相电源监测等方面的内容。此外,还特别强调了PCB设计注意事项和误差源分析,旨在帮助工程师更好地理解和应用这款高性能的RMS-DC转换器。 适合人群:从事模拟电路设计的专业工程师和技术人员,尤其是那些需要精确测量交流电信号均方根值的应用开发者。 使用场景及目标:①用于工业自动化、医疗设备、电力监控等领域,实现对交流电压或电流的精准测量;②适用于手持式数字万用表及其他便携式仪器仪表,提供高效的单电源解决方案;③在电流互感器配置中,用于检测微小的电流变化,保障电气安全;④应用于三相电力系统监控,优化建立时间和转换精度。 其他说明:为了确保最佳性能,文档推荐使用高质量的电容器件,并给出了详细的PCB布局指导。同时提醒用户关注电介质吸收和泄漏电流等因素对测量准确性的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值