请教一个WEBSERVICE的问题

kapil 2012-08-16 09:11:29
要做一个客户端,调用的是服务器端的WEBSERVICE的一个方法,这个方法是一个商业机密,请问,如果在客户端调用WEBSERVICE的方法,能否会导致算法的逻辑泄露到客户端?比如通过观察内存中的一些啥东西来推算算法?

另外,如果客户端在启动的时候就得到了WEBSERVICE的对象,在运算的时候调用的方法是不是只在客户端进行不再请求服务器了?因为这个需要进行大量的运算,比如一秒钟几百次。如果每次运算都请求服务器的话肯定不靠谱。



请熟悉WEBSERVICE的朋友来帮忙解答一下,100分敬上。

谢谢
...全文
154 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
MiceRice 2012-08-16
  • 打赏
  • 举报
回复
如果运行场景是大规模并发访问的话,建议两个调整:
1、不要用WebService,选择其它轻量级远程调用模型;
2、集群并实现负载均衡。
MiceRice 2012-08-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
请问一秒钟运算几百次的话,调用WEBSERVICE会有什么结果?
[/Quote]

没啥特殊结果,网络非常非常繁忙。。。估计做不到,吞吐量都不够。
rorom 2012-08-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

引用 6 楼 的回复:

引用 4 楼 的回复:
请问一秒钟运算几百次的话,调用WEBSERVICE会有什么结果?

所谓“一秒钟运算几百次”,你运算的是什么?
计算机一秒钟进行几百万次位运算都很轻松,要是你计算的是个数学公式,一秒钟计算几十万次也不见得难,如果你说一秒钟进行了几百次的数据库连接/关闭操作,或者一秒钟进行了几百次的文件读写操作,那肯定会挂掉。


一秒钟几百……
[/Quote]

在服务端或者客户端加一个静态属性累加即可统计
rorom 2012-08-16
  • 打赏
  • 举报
回复
你可以简单的理解为:webservices客户端调用的是服务端的API,客户端只知道API的名字和参数以及返回结果,而并不知具体实现.
每一次调用请求及返回都是通过xml大文本进行传输然后解析的,所以效率相比其他远程调用方式会慢.
至于你具体的需求,还是建议你以测试为准
kapil 2012-08-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 4 楼 的回复:
请问一秒钟运算几百次的话,调用WEBSERVICE会有什么结果?

所谓“一秒钟运算几百次”,你运算的是什么?
计算机一秒钟进行几百万次位运算都很轻松,要是你计算的是个数学公式,一秒钟计算几十万次也不见得难,如果你说一秒钟进行了几百次的数据库连接/关闭操作,或者一秒钟进行了几百次的文件读写操作,那肯定会挂掉。
[/Quote]

一秒钟几百次不是对数据库进行操作,就是对数据进行一定的运算,如果算法在本地的话,运算起来相当轻松,但是目前的情况是,客户端不可能保存此算法,想通过WEBSERVICE来实现,如果一个客户端一秒钟几百次的运算每次都要从服务器端调用算法的话,跟普通的GET操作就没什么区别了,许多个客户端并发起来,估计服务器会崩溃掉,所以我想问问,用WEBSERVICE调用的服务器的算法,是不是就跟算法程序在本地一样,只不过算法的逻辑在服务器端?

另外,我想写一个简单的WEBSERVICE来测试,该如何判断某个算法被调用的次数?
forgetsam 2012-08-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
请问一秒钟运算几百次的话,调用WEBSERVICE会有什么结果?
[/Quote]
所谓“一秒钟运算几百次”,你运算的是什么?
计算机一秒钟进行几百万次位运算都很轻松,要是你计算的是个数学公式,一秒钟计算几十万次也不见得难,如果你说一秒钟进行了几百次的数据库连接/关闭操作,或者一秒钟进行了几百次的文件读写操作,那肯定会挂掉。

scbb 2012-08-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

引用 1 楼 的回复:

1、如果在客户端调用WEBSERVICE的方法,能否会导致算法的逻辑泄露到客户端?比如通过观察内存中的一些啥东西来推算算法?
—— 不能,客户端只是简单的参数传递和取得结果值,并不存在所谓观察内存;WebService服务不是网格计算,代码和计算环境都是在服务端;
—— 但是,如果算法本身简单,可能可以通过大量参数和结果进行推演,就跟人家破解密码是类似的。通过……
[/Quote]

看SERVICE怎么实现了咯??
写得好么能正常返回,没考虑过性能可能就挂了呗。。。
kapil 2012-08-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

1、如果在客户端调用WEBSERVICE的方法,能否会导致算法的逻辑泄露到客户端?比如通过观察内存中的一些啥东西来推算算法?
—— 不能,客户端只是简单的参数传递和取得结果值,并不存在所谓观察内存;WebService服务不是网格计算,代码和计算环境都是在服务端;
—— 但是,如果算法本身简单,可能可以通过大量参数和结果进行推演,就跟人家破解密码是类似的。通过大量很细微差异的参数和服务端计算……
[/Quote]

多谢!

请问一秒钟运算几百次的话,调用WEBSERVICE会有什么结果?

iGoodLoser 2012-08-16
  • 打赏
  • 举报
回复
同意楼上两位!!!
z25765339 2012-08-16
  • 打赏
  • 举报
回复
其实你可以把webservice理解成一个普通的接口,接口是不会暴露实现的,只不过这个接口是可以被远程调用的。
MiceRice 2012-08-16
  • 打赏
  • 举报
回复
1、如果在客户端调用WEBSERVICE的方法,能否会导致算法的逻辑泄露到客户端?比如通过观察内存中的一些啥东西来推算算法?
—— 不能,客户端只是简单的参数传递和取得结果值,并不存在所谓观察内存;WebService服务不是网格计算,代码和计算环境都是在服务端;
—— 但是,如果算法本身简单,可能可以通过大量参数和结果进行推演,就跟人家破解密码是类似的。通过大量很细微差异的参数和服务端计算的结果,推演服务端算法为如何。


2、运算的时候调用的方法是不是只在客户端进行不再请求服务器了?
—— 显然不是,客户端就是傻傻的调用。所谓“得到了WEBSERVICE的对象”只是得到一个通讯代理而已。
—— 只有网格计算和RichClient之类的架构模型,才会允许代码和计算环境在设备间移动。
mystudy2000 2012-08-16
  • 打赏
  • 举报
回复
看似webservice有调用时,会“用到服务器的方法”,但实际运行程序时,和常规的web程序一样,只是客户端发送一个包含类和方法名(包括参数值)的信息给服务器,服务器把这个方法运行后的生成的数据再发回客户端。

整个流程中,客户端其实完全不知道服务器端做了什么,调用时的方法名其实也只是“参数列表”的一部分。如果想保密一点,只要把方法名改成一串乱码就可以了。当然如果调用方很多次使用,就回破密码的流程一样还是会知道你的服务器端程序在什么,这是时间长短的。

webservice的调用方式只是让编程人员假想服务器的程序可以本地运行了。但实质不是把服务器的程序文件下载到客户端上跑。不要误会。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧