Redian新闻
>
如何学习用Java开发Web Service?
avatar
如何学习用Java开发Web Service?# Java - 爪哇娇娃
J*r
1
很多job description里面都要求有开发web service的经验,特别是一些金融机构。我
在网上搜了很久,看了一些文章和代码,甚至照着一些教程动手写了些小程序。但还是
云里雾里,觉得始终抓不住要点。甚至如果别人问我什么是web service,我都一下子
答不上来。尽管wiki之类的网站已经看了几十遍了。
向有经验的各位朋友请教一下(尤其是goodbug, briteguy, zhaoce等各位大侠, :)),
究竟什么是web service?如何学习它?能不能推荐一个小project,使得一个有不少编
程经验,但对web这一块没多少实践经验的人能把相关概念融会贯通,从而能尽快地在
工作中完成类似的开发要求?
多谢。
avatar
z*e
2
web service底层是网络
再往上是xml包装的请求和响应
request和response
如果是soap,request也是xml
如果是rest,request就是普通的http request
response都是xml文件
先搞懂网络尤其是http,tcp/ip之后,再弄明白xml是怎么回事
然后再看rest和soap这些就大概明白了
另外最初的uddi已经挂了,不成功
现在的web service其实跟普通的html网页没有什么本质区别
avatar
M*0
3
没对比过别的书,不过这本看完SOAP基本完全理解了;Restful介绍偏少,但Restful简
单,另外看看tutorial就懂了
http://www.amazon.com/Java-Web-Services-Up-Running/dp/059652112

Rest的response不限xml
http://www.amazon.com/Java-Web-Services-Up-Running/dp/059652112

【在 J*********r 的大作中提到】
: 很多job description里面都要求有开发web service的经验,特别是一些金融机构。我
: 在网上搜了很久,看了一些文章和代码,甚至照着一些教程动手写了些小程序。但还是
: 云里雾里,觉得始终抓不住要点。甚至如果别人问我什么是web service,我都一下子
: 答不上来。尽管wiki之类的网站已经看了几十遍了。
: 向有经验的各位朋友请教一下(尤其是goodbug, briteguy, zhaoce等各位大侠, :)),
: 究竟什么是web service?如何学习它?能不能推荐一个小project,使得一个有不少编
: 程经验,但对web这一块没多少实践经验的人能把相关概念融会贯通,从而能尽快地在
: 工作中完成类似的开发要求?
: 多谢。

avatar
t*e
4
UDDI没挂。OASIS有超过100个的web services standards. 涉及的领略非常广。只是我
们普通做web的很少涉足。学习到什么程度看个人爱好,工作需要了。

【在 z****e 的大作中提到】
: web service底层是网络
: 再往上是xml包装的请求和响应
: request和response
: 如果是soap,request也是xml
: 如果是rest,request就是普通的http request
: response都是xml文件
: 先搞懂网络尤其是http,tcp/ip之后,再弄明白xml是怎么回事
: 然后再看rest和soap这些就大概明白了
: 另外最初的uddi已经挂了,不成功
: 现在的web service其实跟普通的html网页没有什么本质区别

avatar
J*r
5
thanks for the reply.
感觉这些概念我都基本明白,但是还缺乏实践经验把这些知识真正融会贯通。没真正做
过一遍,始终感觉好像隔层膜,有种神秘感。有好的project推荐,适合快速上手的么?

【在 z****e 的大作中提到】
: web service底层是网络
: 再往上是xml包装的请求和响应
: request和response
: 如果是soap,request也是xml
: 如果是rest,request就是普通的http request
: response都是xml文件
: 先搞懂网络尤其是http,tcp/ip之后,再弄明白xml是怎么回事
: 然后再看rest和soap这些就大概明白了
: 另外最初的uddi已经挂了,不成功
: 现在的web service其实跟普通的html网页没有什么本质区别

avatar
z*e
8
我不做web的都很少涉足
把服务集中管理是一个美好的构想
但是现实往往不是那么一回事
现实跟理想总有差距

【在 t*******e 的大作中提到】
: UDDI没挂。OASIS有超过100个的web services standards. 涉及的领略非常广。只是我
: 们普通做web的很少涉足。学习到什么程度看个人爱好,工作需要了。

avatar
t*e
9
SOAP,REST就是个protocol。两者要address的问题不同。
SOAP最基本的目的就是要解决interoperability,和Corba一样的目的,让不同语言可
以通信。
比如C#和Java可以通信。后来就成了个remoting的手段,类似remote EJB interface。
再后来,许多需要remoting的系统都在soap之上建立规范,比如SAML for SSO,手机相
关的许多规范. Remote通信本身的要求也越来越多,security, transaction等等。结
果就是有了100个以上的规范了。
SOAP本身相对还算简单易学的。

么?

【在 J*********r 的大作中提到】
: thanks for the reply.
: 感觉这些概念我都基本明白,但是还缺乏实践经验把这些知识真正融会贯通。没真正做
: 过一遍,始终感觉好像隔层膜,有种神秘感。有好的project推荐,适合快速上手的么?

avatar
z*e
10
无非一个网络上的请求和响应
我觉得http和tcp搞懂了,web service就跟玩一样
无非是http和tcp之上的文件格式定义问题
你觉得神秘是因为一对网络协议不太了解
二是对于操作网络协议的web server不了解
这两个不了解导致你不知道他们在干什么
其实渗透下去就跟普通的web差不多
无非request+response
其实所有的网络上的这种交流都是一样的
包括jdbc connection,rmi这些,无非都是协议和格式的差异

么?

【在 J*********r 的大作中提到】
: thanks for the reply.
: 感觉这些概念我都基本明白,但是还缺乏实践经验把这些知识真正融会贯通。没真正做
: 过一遍,始终感觉好像隔层膜,有种神秘感。有好的project推荐,适合快速上手的么?

avatar
z*e
11
网络的东西比较底层,平常搞软工的不太常接触这么底层的东西
rest是一个简化的复用了各种现有工具的web service
其实在我看来rest还可以再进一步简化,完全可以抛弃web service
直接搞http就行了,或者进一步到tcp协议,因为tcp协议可以保证状态
而rest则强调无状态的连接,这就无法建立像jdbc连接池一样的优化
不过外部网用不到这种优化,我们就利用了这个思想
在很早以前,大概是我上初中时候,这个公司的人就利用现有的http协议
模拟了httprequest和response
然后做成我们的最主要的网络服务,一直卖到现在

【在 t*******e 的大作中提到】
: SOAP,REST就是个protocol。两者要address的问题不同。
: SOAP最基本的目的就是要解决interoperability,和Corba一样的目的,让不同语言可
: 以通信。
: 比如C#和Java可以通信。后来就成了个remoting的手段,类似remote EJB interface。
: 再后来,许多需要remoting的系统都在soap之上建立规范,比如SAML for SSO,手机相
: 关的许多规范. Remote通信本身的要求也越来越多,security, transaction等等。结
: 果就是有了100个以上的规范了。
: SOAP本身相对还算简单易学的。
:
: 么?

avatar
J*r
12
恩,你说的没错,我对网络协议和web server确实只有比较浅层的了解。遇到外行还可
以胡扯两句,遇到内行就傻眼了,有几次面试问到比较关键、细节的问题,完全不会,
只能瞎答。怎么对这些知识进行更深入的掌握呢?光看书好像没什么用。一两个月前为
准备面试突击看了无数东西,因为近来没怎么用到,现在全忘了。很苦恼。

【在 z****e 的大作中提到】
: 无非一个网络上的请求和响应
: 我觉得http和tcp搞懂了,web service就跟玩一样
: 无非是http和tcp之上的文件格式定义问题
: 你觉得神秘是因为一对网络协议不太了解
: 二是对于操作网络协议的web server不了解
: 这两个不了解导致你不知道他们在干什么
: 其实渗透下去就跟普通的web差不多
: 无非request+response
: 其实所有的网络上的这种交流都是一样的
: 包括jdbc connection,rmi这些,无非都是协议和格式的差异

avatar
z*e
13
其它协议可以不懂
http和tcp/ip一定要清楚
尤其是http和tcp/ip之间的关系
现在几乎所有的网络底层协议都是tcp/ip
你会servlet么?
用servlet来写response什么的
不要用框架
把request和response什么弄懂
然后把response里面的html/jsp给换成xml
这是server side
然后在client side,自己用java从main开始写
模拟提交http request
然后接收response
然后弄明白这中间是怎么回事
对比一下web service的一个访问和普通的http访问之间的区别
就大概能够明白是怎么回事了
其实所谓的web service就是客户端把一个xml塞进去
然后再拿到一个xml,xml可以描述你拿到的和发送的是什么东西
当然你也可以不用xml,但是实际上http就已经可以不用html了
你返回什么类型都没问题
web service其实没什么东西,换了一个好听的名字而已
uddi和wsdl之类的就不用看了,了解一下是什么就行了
关键是http, soap, rest, xml, tcp/ip这些东西
有些行业有特定的协议,我所在公司就有特定的xml扩展协议

【在 J*********r 的大作中提到】
: 恩,你说的没错,我对网络协议和web server确实只有比较浅层的了解。遇到外行还可
: 以胡扯两句,遇到内行就傻眼了,有几次面试问到比较关键、细节的问题,完全不会,
: 只能瞎答。怎么对这些知识进行更深入的掌握呢?光看书好像没什么用。一两个月前为
: 准备面试突击看了无数东西,因为近来没怎么用到,现在全忘了。很苦恼。

avatar
b*i
14
给你举个例子
我有一个设备,用计算机串口控制。我想改用iPhone控制,怎么做呢?
那个计算机上做个网站,设计web service,然后iPhone发出httprequest,来进行控制
。这样很简单。

【在 J*********r 的大作中提到】
: 很多job description里面都要求有开发web service的经验,特别是一些金融机构。我
: 在网上搜了很久,看了一些文章和代码,甚至照着一些教程动手写了些小程序。但还是
: 云里雾里,觉得始终抓不住要点。甚至如果别人问我什么是web service,我都一下子
: 答不上来。尽管wiki之类的网站已经看了几十遍了。
: 向有经验的各位朋友请教一下(尤其是goodbug, briteguy, zhaoce等各位大侠, :)),
: 究竟什么是web service?如何学习它?能不能推荐一个小project,使得一个有不少编
: 程经验,但对web这一块没多少实践经验的人能把相关概念融会贯通,从而能尽快地在
: 工作中完成类似的开发要求?
: 多谢。

avatar
S*e
15
悲催阿,我现在成天跟tcp/ip那几个socket打交道,用struct ip,写tcp/udp上的几个协
议,但是看到web service就一头无水

【在 z****e 的大作中提到】
: 其它协议可以不懂
: http和tcp/ip一定要清楚
: 尤其是http和tcp/ip之间的关系
: 现在几乎所有的网络底层协议都是tcp/ip
: 你会servlet么?
: 用servlet来写response什么的
: 不要用框架
: 把request和response什么弄懂
: 然后把response里面的html/jsp给换成xml
: 这是server side

avatar
c*e
16
en,ip就是传输数据的协议,但是它不能保证数据到达目的地。因此就有了tcp,用来控
制传输。
http就是stateless的。

【在 z****e 的大作中提到】
: 其它协议可以不懂
: http和tcp/ip一定要清楚
: 尤其是http和tcp/ip之间的关系
: 现在几乎所有的网络底层协议都是tcp/ip
: 你会servlet么?
: 用servlet来写response什么的
: 不要用框架
: 把request和response什么弄懂
: 然后把response里面的html/jsp给换成xml
: 这是server side

avatar
y*e
17

JSON

【在 z****e 的大作中提到】
: web service底层是网络
: 再往上是xml包装的请求和响应
: request和response
: 如果是soap,request也是xml
: 如果是rest,request就是普通的http request
: response都是xml文件
: 先搞懂网络尤其是http,tcp/ip之后,再弄明白xml是怎么回事
: 然后再看rest和soap这些就大概明白了
: 另外最初的uddi已经挂了,不成功
: 现在的web service其实跟普通的html网页没有什么本质区别

avatar
k*e
18
主要是整合不同系统,远程调用的。本地一个系统之内没有人会搞这个。
大公司的核心系统大多是SOAP协议的,因为彼此之间可以通过WSDL来实现自动化通信。
新项目,小项目用rest比较多。
这样理解:日本和中国语言不通,但需要交流,就选用美元作为沟通工具。这里的美元
就是XML,啥地方都能用,虽然不同地方汇率不同。
avatar
w*z
19
你这是老皇历了。

【在 k********e 的大作中提到】
: 主要是整合不同系统,远程调用的。本地一个系统之内没有人会搞这个。
: 大公司的核心系统大多是SOAP协议的,因为彼此之间可以通过WSDL来实现自动化通信。
: 新项目,小项目用rest比较多。
: 这样理解:日本和中国语言不通,但需要交流,就选用美元作为沟通工具。这里的美元
: 就是XML,啥地方都能用,虽然不同地方汇率不同。

avatar
z*3
20
标准就是他说的那个
rest还有json什么都是非标准的东西
有时候有些软件是不支持这种非标准的协议和格式
soap还有很多系统在用,越官方的越正规,尤其是各国政府
普遍倾向于用xml来封装request和response的数据
自己写的很多就偷懒不用了

【在 w**z 的大作中提到】
: 你这是老皇历了。
avatar
z*3
21
tcp那一层有一个无状态的协议udp
但是一般比较少用udp
http因为可以用session和cookie来保存状态,搞session tracking
一旦过期就干掉,腾出内存空间
这种介于有状态和无状态之间的过渡方式更容易让群众接受

【在 c*********e 的大作中提到】
: en,ip就是传输数据的协议,但是它不能保证数据到达目的地。因此就有了tcp,用来控
: 制传输。
: http就是stateless的。

avatar
z*3
22
这个是传输数据的协议
web service的协议则侧重于定义封装数据的格式
所以大部分都是xml
置标语言最初的本意就是用来封装并描述数据的
web service最初的灵感就来自我们天天用的http传送的各种数据
一个request发送过去之后,拿到一个html的response
xml的灵感就来自html,所以最常见的应用就是xhtml这个extension
然后在保留这个传输协议的基础之上,对request和response里面的数据做了定义
最初要求全部用xml来搞,但是群众总是拒绝接受这么复杂的东西
所以有了各种简化版,rest和json就是这种简化版的产物
区别仅仅在于用不用xml而已
web service这个最早是在ieee那个icws上提出来的
我们这边的几所大学在这个领域很活跃

【在 S**********e 的大作中提到】
: 悲催阿,我现在成天跟tcp/ip那几个socket打交道,用struct ip,写tcp/udp上的几个协
: 议,但是看到web service就一头无水

avatar
t*a
23
你这样说会干扰初学者的,http就是一个stateless的协议。。。
什么session, cookie。。。。。都是咱们程序员加在上面的小trick

【在 z*******3 的大作中提到】
: tcp那一层有一个无状态的协议udp
: 但是一般比较少用udp
: http因为可以用session和cookie来保存状态,搞session tracking
: 一旦过期就干掉,腾出内存空间
: 这种介于有状态和无状态之间的过渡方式更容易让群众接受

avatar
k*e
24
是老,不过,本质没有变。rest不可能完全代替SOAP,特别在金融,保险业,基本还是
SOAP的天下。那么多的标准不是没事干搞的。而且,大多都是重量级的数据传输。要改
变基本是不可能的,因为这些系统都是不同公司之间进行对话,不可能单方改变,除非
几家同时破产。新的公司进来,要想立足,必须继续支持那些WSDL。
rest不过是另外的表现形式而已。新兴公司比较喜欢。

【在 w**z 的大作中提到】
: 你这是老皇历了。
avatar
b*i
25
再具体给你说一下初学者我的例子吧
有个设备用计算机控制,计算机把它的状态每秒钟一次显示的屏幕上,是温度,压强。
现在,你的老板说,他希望在家里用iPhone上看到这个状态的刷新。
用什么技术?蓝牙?serial port?tcp?udp?都太麻烦,用web service就可以了.
在这个控制设备的计算机上,程序将温度和压强的结果字符串(包括{})传给一个你自
己设计的网站
{T:110.5C, P:14.7psi}
就是post这个字符串到URL:http://www.myweb.com/acceptdata这个java servet那里去,java servlet收到结果,更新数据库或者memCache,
然后httpL://www.myweb.com的根目录是index.html,里面包括AJAX的Javascript代码
利用另一个servlet来获得当前的温度和压强,然后每秒钟一次刷新到html里面,而不
用reload整个网页。这个另外的servlet是响应get,从数据库或者memCache里面读取温
度和压强信息。或者你同一个servlet,反正一个post,一个get
这就是webservice使用的一个例子。具体的,这里用的是JSON。http的实现是最简单的
,最快的,虽然它建立在很多层协议的基础上,但是因为站在巨人的肩膀上,直接拿来
用就行了。设备控制程序增加一个函数调用就够了。为什么不用tcp?因为用tcp还要写
iPhone app,打开端口,建立连接,不够麻烦的。用蓝牙还要破解iPhone,是违法的。
webservice在应用层,需要知道的是http之上的技术,包括servlet, session, cookie
, javascript, html, xml, JSON, memCache, database, Amazon AWS, google app
engine,spring等。下面的tcp, udp, ip, ethernet, wifi都不需要懂。

【在 J*********r 的大作中提到】
: 很多job description里面都要求有开发web service的经验,特别是一些金融机构。我
: 在网上搜了很久,看了一些文章和代码,甚至照着一些教程动手写了些小程序。但还是
: 云里雾里,觉得始终抓不住要点。甚至如果别人问我什么是web service,我都一下子
: 答不上来。尽管wiki之类的网站已经看了几十遍了。
: 向有经验的各位朋友请教一下(尤其是goodbug, briteguy, zhaoce等各位大侠, :)),
: 究竟什么是web service?如何学习它?能不能推荐一个小project,使得一个有不少编
: 程经验,但对web这一块没多少实践经验的人能把相关概念融会贯通,从而能尽快地在
: 工作中完成类似的开发要求?
: 多谢。

avatar
d*i
26
赞这个,解说的很好很详细。有一个小问题:如果数据是实时更新的怎么办?你的设备
和计算机主机通过什么协议通信?

【在 b***i 的大作中提到】
: 再具体给你说一下初学者我的例子吧
: 有个设备用计算机控制,计算机把它的状态每秒钟一次显示的屏幕上,是温度,压强。
: 现在,你的老板说,他希望在家里用iPhone上看到这个状态的刷新。
: 用什么技术?蓝牙?serial port?tcp?udp?都太麻烦,用web service就可以了.
: 在这个控制设备的计算机上,程序将温度和压强的结果字符串(包括{})传给一个你自
: 己设计的网站
: {T:110.5C, P:14.7psi}
: 就是post这个字符串到URL:http://www.myweb.com/acceptdata这个java servet那里去,java servlet收到结果,更新数据库或者memCache,
: 然后httpL://www.myweb.com的根目录是index.html,里面包括AJAX的Javascript代码
: 利用另一个servlet来获得当前的温度和压强,然后每秒钟一次刷新到html里面,而不

avatar
b*i
27
我的设备和计算机通过串口通讯,每次几个到几百个字节,1200比特每秒
在刷新速度1秒1次的时候,webservice技术足够了。如果1秒10次,就得参考各类网络
游戏,以及skype,使用udp了。

【在 d****i 的大作中提到】
: 赞这个,解说的很好很详细。有一个小问题:如果数据是实时更新的怎么办?你的设备
: 和计算机主机通过什么协议通信?

avatar
d*i
28
那你这个控制设备的计算机从串口读取数据以后存到本地的数据库吗,还是传到远端的
你的网站上的那个机器存放数据?

【在 b***i 的大作中提到】
: 我的设备和计算机通过串口通讯,每次几个到几百个字节,1200比特每秒
: 在刷新速度1秒1次的时候,webservice技术足够了。如果1秒10次,就得参考各类网络
: 游戏,以及skype,使用udp了。

avatar
b*i
29
就写csv文件里面,到时候excel打开看一看,还远远没有自动化呢。目前只是让手机能
看到这些实时的显示显得酷。
未来到是准备自动化测量很多数据,然后把这些信息发送到服务器上。也就是另外一台
很弱的本地计算机而已。我想用java这一套,估计用mysql还是hibernate什么的吧,或
者直接写文件也可以,用jboss还是tomcat什么的写点网页就行了。原来的测试程序是C
#写的,用webservice不妨碍,反正就是httprequest。趁机用公司的时间和钱来学习
java这一套。

【在 d****i 的大作中提到】
: 那你这个控制设备的计算机从串口读取数据以后存到本地的数据库吗,还是传到远端的
: 你的网站上的那个机器存放数据?

avatar
d*i
30
不错,那你现在的web service是直接从控制设备的主机上提供的吧。

是C

【在 b***i 的大作中提到】
: 就写csv文件里面,到时候excel打开看一看,还远远没有自动化呢。目前只是让手机能
: 看到这些实时的显示显得酷。
: 未来到是准备自动化测量很多数据,然后把这些信息发送到服务器上。也就是另外一台
: 很弱的本地计算机而已。我想用java这一套,估计用mysql还是hibernate什么的吧,或
: 者直接写文件也可以,用jboss还是tomcat什么的写点网页就行了。原来的测试程序是C
: #写的,用webservice不妨碍,反正就是httprequest。趁机用公司的时间和钱来学习
: java这一套。

avatar
b*i
31
算是,本机直接装了iis,然后iPhone可以看到网页,用Ajax来访问,我的c#或者asp.
net就直接处理了。这算是webserice吧。
和本地程序的通讯目前是通过pipe来的。如果不在本地,就用web service。感觉挺慢
的,经常有问题,免费的iis只能支持10个用户。所以想换到云平台去。先从java
spring hibernate等技术学起吧。最近总算搞明白了SOAP, RESTful, JSON等东西了。

【在 d****i 的大作中提到】
: 不错,那你现在的web service是直接从控制设备的主机上提供的吧。
:
: 是C

avatar
d*i
32
可以看看Jersey, 好虫推荐的,Spring里面不知道有没有自己的restful
implementation.

【在 b***i 的大作中提到】
: 算是,本机直接装了iis,然后iPhone可以看到网页,用Ajax来访问,我的c#或者asp.
: net就直接处理了。这算是webserice吧。
: 和本地程序的通讯目前是通过pipe来的。如果不在本地,就用web service。感觉挺慢
: 的,经常有问题,免费的iis只能支持10个用户。所以想换到云平台去。先从java
: spring hibernate等技术学起吧。最近总算搞明白了SOAP, RESTful, JSON等东西了。

avatar
z*3
33
jersey是j2ee标准jax-rs的impl之一
还可以用jboss的resteasy
Implementations of JAX-RS include:[2]
Apache CXF, an open source Web service framework.
Jersey, the reference implementation from Sun (now Oracle).
RESTeasy, JBoss's implementation.
Restlet, created by Jerome Louvel, a pioneer in REST frameworks.
Apache Wink, Apache Software Foundation Incubator project, the server module
implements JAX-RS.
WebSphere Application Server from IBM via the "Feature Pack for
Communications Enabled Applications"
WebLogic Application Server from Oracle, see notes
[edit]

【在 d****i 的大作中提到】
: 可以看看Jersey, 好虫推荐的,Spring里面不知道有没有自己的restful
: implementation.

avatar
w*z
34
Spring comes with Rest implementation but doesn't follow jsr 311

【在 d****i 的大作中提到】
: 可以看看Jersey, 好虫推荐的,Spring里面不知道有没有自己的restful
: implementation.

avatar
w*z
35
JSR 311 不是标准?你说的是行业标准。different thing.

【在 k********e 的大作中提到】
: 是老,不过,本质没有变。rest不可能完全代替SOAP,特别在金融,保险业,基本还是
: SOAP的天下。那么多的标准不是没事干搞的。而且,大多都是重量级的数据传输。要改
: 变基本是不可能的,因为这些系统都是不同公司之间进行对话,不可能单方改变,除非
: 几家同时破产。新的公司进来,要想立足,必须继续支持那些WSDL。
: rest不过是另外的表现形式而已。新兴公司比较喜欢。

avatar
w*z
36
Jersey web service 几百tps 不会有任何问题。主要是你的business logic 能不能
support, 和用不用web service 有什么关系?

【在 b***i 的大作中提到】
: 我的设备和计算机通过串口通讯,每次几个到几百个字节,1200比特每秒
: 在刷新速度1秒1次的时候,webservice技术足够了。如果1秒10次,就得参考各类网络
: 游戏,以及skype,使用udp了。

avatar
b*i
37
说的是游戏网站什么时候不用webservice的,都用udp什么的。当然是RTT要求高(就是
很低),我看一般网页都要几百毫秒的。棋类没有问题,但是3D shooting就不行了吧。

【在 w**z 的大作中提到】
: Jersey web service 几百tps 不会有任何问题。主要是你的business logic 能不能
: support, 和用不用web service 有什么关系?

avatar
w*z
38
我们用Jersey connecting to Cassandra, 95th percentile response under 20ms,
mean is around 3 ms.
游戏不懂,但应该不会用http 吧。

吧。

【在 b***i 的大作中提到】
: 说的是游戏网站什么时候不用webservice的,都用udp什么的。当然是RTT要求高(就是
: 很低),我看一般网页都要几百毫秒的。棋类没有问题,但是3D shooting就不行了吧。

avatar
t*e
39
Spring最差的一块就是对web services的支持。

【在 w**z 的大作中提到】
: Spring comes with Rest implementation but doesn't follow jsr 311
avatar
b*i
40
Round trip time如何?测过吗?比如10个人访问,100个人访问。1000个人得另开一台
服务器了吧?

【在 w**z 的大作中提到】
: 我们用Jersey connecting to Cassandra, 95th percentile response under 20ms,
: mean is around 3 ms.
: 游戏不懂,但应该不会用http 吧。
:
: 吧。

avatar
N*m
41
web service本身已经很容易用了,有没有支持没那么重要

【在 t*******e 的大作中提到】
: Spring最差的一块就是对web services的支持。
avatar
m*k
42
Spring has rest support
google 'spring 3 MVC restful'
it is not so standard as jersey tho
http://blog.springsource.com/2009/03/08/rest-in-spring-3-mvc/

【在 d****i 的大作中提到】
: 可以看看Jersey, 好虫推荐的,Spring里面不知道有没有自己的restful
: implementation.

avatar
g*g
43
I tried that in my last project. It works similar to Jersey. But the
community is not as large and you won't find the answers as easily by
googling. I advise sticking to Jersey.

【在 m*****k 的大作中提到】
: Spring has rest support
: google 'spring 3 MVC restful'
: it is not so standard as jersey tho
: http://blog.springsource.com/2009/03/08/rest-in-spring-3-mvc/

avatar
t*e
44
RESTEasy from JBOSS is another JAX-RS compliant REST library.

【在 g*****g 的大作中提到】
: I tried that in my last project. It works similar to Jersey. But the
: community is not as large and you won't find the answers as easily by
: googling. I advise sticking to Jersey.

avatar
M*0
45
Spring的RS整个就是抄袭Jersey,把人家的annotation变成attribute放到自己的@
RequestMapping里,用来接收的annotation把@pathparam改成@pathvariable,把@
queryparam改成@requestparam
不知道你们说的'spring 3 MVC restful'是不是跟我用的那个一样,跟controller整合
在一起
avatar
w*z
46
Round trip also depends on the network infrastructure. We measured the time
between Jersey Servlet gets the request and returns the response.
Jersey is a very light weighted Servlet, the overhead it adds to the whole
stack is very minimal, < 1ms. The majority of the time is spent on the
business logic, in our case, waiting for Cassandra to return.
For HA requirements, the minimal setting for us is three nodes behind the LB
. The service I was referring to is not heavily loaded, total of less than
1000 tps, three nodes are more than enough.
Rest is stateless, if you are running out of capacity, adding new nodes is
straightforward.

【在 b***i 的大作中提到】
: Round trip time如何?测过吗?比如10个人访问,100个人访问。1000个人得另开一台
: 服务器了吧?

avatar
g*g
47
It make sense if you use spring MVC for web UI and you want to reuse it for
fat clients, not worth it otherwise.

【在 M***0 的大作中提到】
: Spring的RS整个就是抄袭Jersey,把人家的annotation变成attribute放到自己的@
: RequestMapping里,用来接收的annotation把@pathparam改成@pathvariable,把@
: queryparam改成@requestparam
: 不知道你们说的'spring 3 MVC restful'是不是跟我用的那个一样,跟controller整合
: 在一起

avatar
w*z
48
That is what happened to my previous job. It uses Spring and wanted to
expose Rest, it's a natural choice to use Spring RS.

for

【在 g*****g 的大作中提到】
: It make sense if you use spring MVC for web UI and you want to reuse it for
: fat clients, not worth it otherwise.

avatar
b*i
49
你要是留意,就知道domini需要的是实时的示波器类似的显示,所以我会提到web
service对他不一定会够用。他那个应用就是需要象游戏一样的实时更新,需要UDP级别
的。

time
LB

【在 w**z 的大作中提到】
: Round trip also depends on the network infrastructure. We measured the time
: between Jersey Servlet gets the request and returns the response.
: Jersey is a very light weighted Servlet, the overhead it adds to the whole
: stack is very minimal, < 1ms. The majority of the time is spent on the
: business logic, in our case, waiting for Cassandra to return.
: For HA requirements, the minimal setting for us is three nodes behind the LB
: . The service I was referring to is not heavily loaded, total of less than
: 1000 tps, three nodes are more than enough.
: Rest is stateless, if you are running out of capacity, adding new nodes is
: straightforward.

avatar
z*3
50
看要多即时
游戏里面也有用tcp的
只有3d的射击游戏,比如cs那样的
才会自己倒腾udp,而且要从socket开始写
各种类库比如directx其实用不上

【在 b***i 的大作中提到】
: 你要是留意,就知道domini需要的是实时的示波器类似的显示,所以我会提到web
: service对他不一定会够用。他那个应用就是需要象游戏一样的实时更新,需要UDP级别
: 的。
:
: time
: LB

avatar
d*i
51
我们目前有个应用是显示实时的波形,但是实际上因为网络的问题,并不是真的实时,
就是从REST的web service每过三秒发一个JSON,里面含有信号的array, 然后客户端用
来显示, web或者mobile的都有,目前还没有找到合适的画这种类似于示波器波形的JS
库。

【在 b***i 的大作中提到】
: 你要是留意,就知道domini需要的是实时的示波器类似的显示,所以我会提到web
: service对他不一定会够用。他那个应用就是需要象游戏一样的实时更新,需要UDP级别
: 的。
:
: time
: LB

avatar
b*i
52
每次的包有多少kB数据?
Javascript是否可以buffer一下你的数据,每秒发3个请求,发出第4个时估计第一个就
回来了,显示第一个

JS

【在 d****i 的大作中提到】
: 我们目前有个应用是显示实时的波形,但是实际上因为网络的问题,并不是真的实时,
: 就是从REST的web service每过三秒发一个JSON,里面含有信号的array, 然后客户端用
: 来显示, web或者mobile的都有,目前还没有找到合适的画这种类似于示波器波形的JS
: 库。

avatar
t*a
53
sencha extjs里面有一套,不过我没用过,以前都是用applet或者flex做的。。。

JS

【在 d****i 的大作中提到】
: 我们目前有个应用是显示实时的波形,但是实际上因为网络的问题,并不是真的实时,
: 就是从REST的web service每过三秒发一个JSON,里面含有信号的array, 然后客户端用
: 来显示, web或者mobile的都有,目前还没有找到合适的画这种类似于示波器波形的JS
: 库。

avatar
d*i
54
不多,几十K吧,JS可以把JSON中的array解析成buffer, 我现在准备每1.5秒发一次请
求,然后查status code, 看看有没有变化,有变化就说明新的数据来了。

【在 b***i 的大作中提到】
: 每次的包有多少kB数据?
: Javascript是否可以buffer一下你的数据,每秒发3个请求,发出第4个时估计第一个就
: 回来了,显示第一个
:
: JS

avatar
x*d
55
It is mainly about loose coupled, right? if you don't care loose coupled,
why use services? I guess it is not about how cool it is doing a app on
iphone to connect whatever thing with http, but it is about code reuse and
loose couple.
Making component services, web services just mean it is on http, the you can
orchestra all your component together with ESB/ BPEL/ BPMN. In case one
component become obsolete, you can replace that with a new one, all others
still there. You see it is about loose couple and reuse.
Many new web development is using JQuery front end and ajax call to the rest
services at back end. If JQuery front end component is not good, or there
is another front end app need to use the rest services, the new development
is simple, right? The key thing here is loose coupling and code reusability
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。