Open Social初步测试感受
周六拿到了Orkut sandbox的帐户,周末就花了些时间读了一会儿文档,写了几个非常简单的open social的程序测试和研究了一下。
Open Social 应该改名为 Open Widget
Valleywag不客气地说OpenSocial是一个公关骗局,还列举了4大原因, 其中第一条说OpenSocial实际上应该成为openwidget。 我赞同这种说法,Open Social其实只是iGoogle的widget的扩展而已,叫Open social实在是言过其实。
今天学习和尝试open social得出的结论,就是原先大家所期望了通过open social能把众多的sns进行统一的希望靠目前的open social是不太可能实现的。 而且由于各家container可能会支持不同程度开放性数据,甚至可能会对app进行限制,因此各家竞争对手们大可以都自称在open social大旗下,但依然我行我素地干着自己封闭的一套。 也就是,你要把原先没有的系列app 安装进来,没有问题;你要想靠这个app把数据拿出去,可能没门儿。
相对而言,我认为facebook的设计其实开放型更好,一个facebook app可以把facebook平台所提供的meta数据组织好保存在自己的平台上,或者进行加工在自己的平台上提供增值服务,facebook并没有对此进行限制。 opensocial本身也没有对此限制,但可以想象各家container就不会那么大方了,当年myspace连人家插入和视频图片都要了他的命似的,何况通过open social拿走用户资料?!
从目前看,做container是不需要google批准的,谁都可以做,只要自己实现open social的所谓spi接口即可,虽然目前spi还没有公开发布。从这个角度来看,open social有一定的积极意义,未来你可以做一个killer容器应用,从发布之初你就可能拥有众多的widget应用可以安装。
Orkut容器 - iframe
orkut的open social container的实现其实就是个iframe,一个open social的App(http://dev.robertmao.com/ext/projects/opensocial/test6.xml)加入后最终orkut的页面上对应的为:
<iframe src="http://7.gmodules.com/ig/ifr?url=http://dev.robertmao.com/ext/projects/opensocial/test6.xm&parent=http://sandbox.orkut.com&lang=en-US&country=US&synd=orkut&mode=canvas&mid=7&h=200#st=AFinprSVEM3LnJQ2dpgCcGOa8MfUH7ajv4hxww3e69xT6CHflm8naFZ3Jv62-wJa4s57MJzQdnwTnEoziet5hWVhST-LRgndHpHf0FPVa4IX7fUZkdM6b5M&gadgetId=04754660346956929100&gadgetViewer=09565760779031410294&gadgetOwner=09565760779031410294&nocache=2147483647" id="remote_iframe_7" name="remote_iframe_7" frameborder="0" height="200" width="100%"></iframe>
可以在浏览器直接打开这个iframe的src所指向的URL来窥视其实现。
iFrame方式来实现的widget在我看来是一个简单但效果并不是最好的方法,其原因我就不用多说了,有web开发经验的朋友应该都知道iframe的利弊。一个widget就是一个iframe...简单,但不好。
当然open social并不要求这么实现,这仅仅是orkut实现的结果。由于iframe的src中的域名是gmodules.com, 而host此iframe的页面域名是orkut.com, 因此无法从open social app中访问host此app的页面。 也许这么设计是安全的考虑(防止app乱篡改host页面),但带来的结果显然是不灵活的。
facebook的app目前的实现是更好的,不是类似orkut这样的iframe方法,而是由facebook在server端把app的代码嵌入在完整的页面结构中输出了,因此facebook app可以有更灵活更好的页面输出表现。
下面是一些我测试的open social app, 都是很简单的代码测试片断, 基本没有用,仅供无聊测试或参考:
http://dev.robertmao.com/ext/projects/opensocial/test1.xml (google的例子)
http://dev.robertmao.com/ext/projects/opensocial/test2.xml (google的例子)
http://dev.robertmao.com/ext/projects/opensocial/test3.xml (使用iframe)
http://dev.robertmao.com/ext/projects/opensocial/test4.xml (使用lightbox)
http://dev.robertmao.com/ext/projects/opensocial/test5.xml
http://dev.robertmao.com/ext/projects/opensocial/test6.xml
XML+XHTML+Javascript比FBML强吗?
有人发现google的open social发布的FAQ中, 宣称自己只需要标准的javascript, HTML, XML的话居然重复了两遍:

显然google太急切地希望说明自己的open social比facebook的FBML好了,所以才犯了这个小错误。:)
但是实际上这有什么优势吗? 我的看法是根本没有任何优势,相反我认为带有了扩展的FBML其实对应用开发来说是更有利的。google的合作伙伴salesforce.com的平台也是采用了和facebook类似的设计和实现。
延展阅读:
[1] 非常全面的分析和批评open social文章:http://www.25hoursaday.com/weblog/2007/11/03/GoogleOpenSocialTechnicalOverviewAndCritique.aspx
[2] Google's OpenSocial looks more like hype than substance:http://blogs.guardian.co.uk/technology/2007/11/04/googles_opensocial_looks_more_like_hype_than_substance.html
Related posts:
- Data.Gov
- SEA – SFO – Virgin America – Twitter – Boarding.fr
- 西厢计划 – GFW vs Romance of the West Chamber
- Adsense使用了Google Search history
- 流水账 ~ Seattle一日 ~ 今天的月亮
- CSS3, HTML5, Ajax… 最近的一些零碎心得
- 知易行难 vs 知难行易 - Startup vs Established
- Thinkweek Cube
- Nexus One的轨迹球存在的意义
- Mac OSX, Windows, Linux, *nix闲谈
Search related in web: