如何实现中间层提供接口,远程访问?(不用COM+做,中间层就用delphi编译的exe程序提供接口来远程访问) ( 积分: 100 )

  • 主题发起人 主题发起人 赛特
  • 开始时间 开始时间

赛特

Unregistered / Unconfirmed
GUEST, unregistred user!
某些处理要在固定的某台机器(中间层)上运行,而中间层不用COM+实现。如何就用Delphi编译的exe程序提供接口来远程访问?请说得具体些!谢谢!
 
如果不用com+还有dcom,呵呵
不过看来似乎是要求自己写SocketServer了,
编程论坛(www.programbbs.com)上有socket的delphi代码,如果要得话我可以帮你下。
 
主要是COM+和DCOM我都试过,但都是只能在本机上访问成功。DCOM安全那里我试了很久,还是没能远程访问成功,对它算是灰心啦,就用socketconnection连接provider了。而COM+,更是连在哪里需要配制都不知道,前不久我就在这个论坛上问过DCOM和COM+的配制问题,可访问了100多了还是没个答案。
我主要是要实现在远程处理,再就由远程处理那台机器把结果存入数据库,而不是本地处理再通过provider访问数据库,并且,又不想有COM+、DCOM之类那样还需要权限配制。有几种方式可以达到这种效果呢,如果实在不行,就用 clientdataset+provider 调用存储过程的方式也将就。clientdataset这端该如何调用?(就比如传一个参数,和执行后有一个返回值这种,谢谢!)
 
webservice soap或者直接使用web app
 
那直接用clientdataset怎样传递参数调存储过程呢?比如传一个参数,执行后有一个返回值这种
 
如果你是做个小功能,你可采用自己写Socket服务的方法来做
但是,如果你是做一个大的应用程序,我估计你自己写Socket是行不通的
你的意思不过是想用Delphi做一个三层程序,做三层有什么方法,如:
Midas、COM+、Corba、RemObject SDK等等,
如果你想做一个好的中间层,那么你就花时间好好研究其中的一种应用就行了。
 
用存储过程的方式也行,怎样用clientdataset调用存储过程呢?比如有一个传入参数和一个输出参数;
主要是我有一个处理需要系统时间,如果这种处理分散到很多机器上进行,就会出现系统时间不统一的情况,所以,只能在中间层进行,或直接调用存储过程的方式。
 
参数用Time_T,也就是Delphi中的TDatetime类型.
 
赞同dengxh10[8D]
 
谁能举个例子啊,写一个简单的中间层,和如何调用
 
其实我就需要在整个系统中统一系统时间,我的想法就是要在中间层获取系统时间,该用什么方式实现嘛??
 
我这种方式能行吗?
比如在中间层的remote data module的type library里面定义一个返回时间的方法getTime;
然后客户端用Socketconnection1.AppServer.getTime()去获得时间
1、这种方式好不好?客户端需不需要什么配置?比如访问权限之类的
2、我在定义getTime的输出参数时,总是说out parameter requires pointer type,里面没有时间的指针啊?也没看到string的指针啊?
 
http://www.google.com/search?sourceid=navclient&hl=zh-CN&ie=UTF-8&rls=GZHZ,GZHZ:2007-44,GZHZ:zh-CN&q=oo8h+clientdataset
 
可以参照: www.dbanywhere.cn
QQ: 67189250
 
在中间层的remote data module定义方法,然后在客户端用Socketconnection1.AppServer.DoSth()这种方式好不好?
而且socketserver也就是用的borland的那个。存在最大负荷吗?
 
socketserver 处理300个客户端是没问题的
 
才300个啊?这么少!那用DCOM连接呢?主要是DCOM配制麻烦!该如何解决这个问题呢?
 
在中间层的remote data module定义方法,然后在客户端用Socketconnection1.AppServer.DoSth()这种方式好不好?
不好!
remote data module中的方法应该只和数据模块有关,不应该包含其它的企业逻辑.
 
to gencheng:
对,我是只打算remote data module中的方法只处理数据库相关的,比如通过它来调用存储过程,这种实现稳定吗(实际环境是局域网)?而且如果真像artlink所说的socketserver只能负荷300个客户端左右,这未免也太少了,真的是这样吗?如果真是这样,显然很多实际问题都不止300个客户,那该如何解决呢?
 
后退
顶部