原文:Write Your First Google Wave Robot in Java
作者:Mark Watson
出处:http://www.devx.com/Java/Article/43342
为什么要学习Google Wave?如果你已经试过使用它,或者至少是已经看过介绍它的视频的话,那么你可能会只是把它当作另一个类似Gmail的富客户端Web应用而放过不提,这种看法并不完全正确,除此之外,Wave还是一个跨平台的开发和发布平台。
了解到创建有用的内容和服务的代价是多么昂贵和耗时,我们这些开发者当然希望通过把这些创造发布到多个平台上,这样就会使得我们的努力能够得到更多的回报,Wave平台刚好能够让你做到这一点(参见图1)。
图1. 整体框架:在多个客户端平台上重用数据和web service(全部托管在App Engine上)
Google Wave是一个协作平台,解决了在使用电子邮件协作时会存在的一些问题,通过允许多个合作者编辑某个位置上的同一个文档,使得保持整个文档(或者“wave”)完好变得更简单,而且文档更易于阅读。如果需要查看别人已经做了哪些改动的话,那么Wave观看器(Wave viewer)提供了一个滑动控制轴来按时间顺序回滚文档(wave),撤销所做的修改。如同在Wave演示视频中展示的那样,如果两个或多个人同时编辑一个wave的话,那么你几乎能够实时看到其他人的改动。
在创建了一个wave后,你可以邀请其他人读取和编辑该wave,本文解释了如何还能够邀请被称为Wave机器人(Wave Robot)的软件代理来读取和编辑wave,根据你对Wave机器人的配置情况,这些机器人会接收到其被邀请加入的wave的不同类型的事件通知。作为例子,你可以配置一个机器人来观察有人在编辑文档时每几次击键触发情况,或者是编辑者进行保存操作时的块修改触发情况。
如果你正在从事的项目需要支持多个面向用户的平台的话,那么花费一些额外的功夫来支持Wave将会非常有意义。(如果这不是学习Wave API和实际编写一些自己的Wave机器人的足够的理由的话,传闻在不久的将来Google会开一家Google Wave和Gadget的应用程序商店。)现在动心了吗?本文会帮助你走出第一步。
通过开发一个演示版的Wave机器人,本文展示了如何:
作为服务代理的机器人
如果你现在没有在Google App Engine上做开发,没有现有的托管在自己的服务器(或者是Amazon、RackSpace、虚拟私有服务器(VPS)、Engine Yard、Heroku等)上的web service和web应用的话,你可能会想尝试一下图2中展示的架构,其使用了App Engine作为托管在其之上的web service代理可替换掉(App Engine)的部署平台。
图2. 以现有的web service/应用来进行App Engine开发:使用App Engine的机器人作为部署在另一个平台上的web service的代理
图2反映了本文中的Wave演示机器人的用例,尽管其使用了托管在常见的服务器上的现有的web应用。当演示机器人被邀请加入一个Wave时,它使用Wave的标题作为cookingspace.com的web service的搜索串,cookingspace.com是托管在我自己的服务器上的一个门户网站。CookingSpace提供了一个web service API:给出一个查询串,它会返回一个食谱列表,列表中的每一项都带有营养资料的注解。机器人处理从web service返回的JSON数据,并把零个或多个食谱插入到wave中。(注:在本文中,当我提到Wave平台时,我大写Wave的首字母,而当我指的是单个文档时,我使用小写的wave。)
作者注:Google Gadget(用HTML和JavaScript编写的Wave UI组件)的开发超出了本文的范围。
|
因为演示机器人充当另一个web service代理的角色,所以它不需要数据存储,可参考我之前的这篇关于App Engine的文章“在Google的Java版App Engine上实现文档存储和搜索”,以了解使用App Engine数据存储的例子。如果你在AppEngine上实现了一个完整的机器人的话,那么什么是最有可能出现的情形呢?你可能想要保持Wave的一些持久数据——这不太可能,不过你可能会需要在服务器端维持一些状态信息。尽管如此,但机器人通常是无状态的,他们从Wave平台上接收事件通知消息,再从事件通知消息中获取所有他们需要处理的信息。
安装开发环境
按照以下这些建议来最大限度地利用本文中的演示:
1. 至少花费几分钟的时间来阅读一下Gooogle的文档“安装编写Java机器人所需的软件”,这些指南告诉你如何从头开始设置一个工程。
2. 使用安装了Google App Engine插件的Eclipse。(不是必须的,但就真正的机器人开发和一般的Java AppEngine开发而言,我强烈建议这样做。)
3. 下载演示机器人的代码和配置的压缩文件。
4. 参阅RobotMessageBundle接口的API文档,在开发Wave机器人时这是值得添加到书签中的一页,因为你所需要的大部分API或者在这一页面中,或者能通过该页面中的链接访问到。
图3展示了如何使用Eclipse中的Google插件来创建一个工程。
图3. 使用Goolge插件创建一个新的App Engine工程:这是一个使用Eclipse的Google插件来创建新的App Engine工程的屏幕截图。
在设置自己的工程时——即使是使用Eclipse的Google插件——一开始需要从Google的Robot Java Client Libraries上下载wave-robot-api.jar、jsonrpc.jar、和json.jar的文件拷贝,并把他们复制到你的工程目录下的war/WEB-INF/lib目录中。图4展示了Eclipse中的工程目录树,这是在创建了一个新的App Engine工程和拷贝了三个JAR文件到war/WEB-INF/lib目录之后的情况。(可以注意到wave-robot-api.jar的文件名中包含了一个日期戳:wave-robot-api-20090916.jar。)
图4. Eclipse IDE中的App Engine工程:这是在创建了一个新的App Engine工程和复制了所需的JAR文件到war/WEB-INF/lib目录后Eclipse中的工程目录树。
[译文]使用Java编写你的第一个Google Wave机器人(下)
图2. 以现有的web service/应用来进行App Engine开发:使用App Engine的机器人作为部署在另一个平台上的web service的代理
- 大小: 27.5 KB
- 大小: 32.3 KB
- 大小: 55.1 KB
- 大小: 22.7 KB
分享到:
相关推荐
机器人Robots译文.doc
六足舞蹈机器人 外文翻译
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件...
毕业论文的专业译文,计算机专业,关于java堆的一些内容。中英文全。
中文译文:工业混合喷涂机器人的精确动态建模与控制参数设计 摘要:为了提高混合机器人在非线性动力学和摩擦下的性能,工业机器人领域已广泛应用前馈补偿。然而,由于混合动力机器人摩擦模型复杂、耦合性强、动态...
国际上对机器人的研究,以论文报告的形式展现出来,先进机器人已经开始与编程水乳交融,机器人已经越来越走入行业应用,如保姆机器人,小度,小米,各种平台助手成为机器人发展的一个象征,
Clojure是一个JVM的动态函数式语言,最近发布了1.0版本,版本中Clojure提供了一个健壮的代码。Clojure是一套发展快速的新的编程语言,特别是,它为多核计算做了新的解决方案。在今后的软件设计中无论使用Clojure语言...
本文提出了一种工业机器人的最优轨迹规划方法,该方法使用三次多项式曲线连接相邻路径点,从而使关节轨迹曲线更平滑。以安川六自由度工业机器人为例,利用MATLAB的遗传算法工具箱,确定了适应度函数和约束条件函数,...
本资源原文为java-for-Anylogic-user英文版,即面向Anylogic用户的Java开发,本人纯手工翻译,讲述以拖放方式以外的编程思路,对于建立复杂系统有很大...这是一个信息论,可以在模型中进行数据操作以及智能体的搭建。
1 绪论 1 1.1 研究背景及意义 1 1.2 国内外小型轮式机器人发展概况 2 1.2.1 国外研发概况 2 1.2.2 国内现状 5 1.2.3 国内外现状总结 7 1.3 小型轮式机器人的发展趋势 7 1.4 论文研究内容与主要结构 7 1.4.1 研究内容...
译文:Fork and Join: Java Can Excel at Painless Parallel Programming Too!(Fork and Join Java也可以轻松地编写并发程序)
计算机类专业毕业设计外文翻译的原文及译文。已经排版,下载即用。
中文译文B 爬楼机器人全文共6页,当前为第1页。 爬楼机器人全文共6页,当前为第1页。 轮组式爬楼机器人的设计与实现 引言 爬楼机器人是一种能适应多种参数楼梯及复杂障碍的移动机器人。本设计通过轮组交替变换的方式...
Generics_in_the_Java_Programming_Language的中文译文
java并发底层的一些概念、原理。 java5、java6中常用并发类、并发集合的属性和使用方法。
有关java,jsp类论文可用的英文论文及中文译文,两个文件一个是英文原文,一个是翻译
国际先进机器人技术(IARP)第十七次联合协调讨论会报告译文集
java2007【搜狗文档翻译_译文_英译中】1
JAVA外文文献+翻译.pdf
关于java的外文文献中英文对照都有