一切皆有可能

SLEEPY BUT POWERFUL (A.K.A 速马) Creative Commons License
随笔 - 43, 评论 - 483, 引用 - 14

导航

关于

我

联系方式 (夏桅 xia4 wei2)

译作

 

三章样章阅读
[CSDN读书频道提供]

 

想做点好事的来看看

一字不识的藏族同胞阿牛创办的完全免费学校

 

MVP Profile

Visual Developer - .NET/C#

Visitors

Locations of visitors to this page

标签

每月存档

最新留言

广告

 

这个post要表达的东西是非常基本而且简单的,但我已经反复考虑了数月之久。这里的程序指的是个人/家用桌面程序,非所谓的“企业级应用”。

几周前我在整理我家里电脑的相册时,PC和Laptop之间的相册不同步,COPY来COPY去实在是太繁琐了。而我在公司的另一台Laptop也带回家后,这变成了一个更麻烦的问题。解决这个问题的办法是找个文件夹同步软件。

在另外一个方面,假如我在父母住处也想看看我的相册怎么办呢?答案是我最好创建一个网上相册,比如Windows Live的Gallery服务,Google的Picasa相册,或者是其他网上大量的网络相册服务。而这里的问题是,网络太慢了,桌面程序点一下Page Dn就能翻一个相片,网上有时候要一分钟。

我的电子邮件也有着类似的问题。如果使用Outlook收邮件的话,收下来后服务器上就没了,这意味着我不能在另外一台电脑上再去查看这个邮件。对于工作邮件这可能不是个问题,但个人邮箱却没有办法。于是很多人选择了全部基于Web界面处理个人邮件,比如Gmail和Live Mail。

但更为理想的状况是,我可以用Outlook收发邮件,用Word编辑邮件,同时邮件在服务器上总是保存着副本(这可以设置Outlook下载邮件后不删除服务端邮件,但邮箱容量往往都很小,不能长期这么做,现有邮件系统也不把这种需求当作典型应用)。邮件服务器上不但保存一个一个邮件,还有我设置的邮件分类,还有已读/未读状态值,甚至Outlook的Flag和Task等。这样无论我在哪里打开Outlook,都是一样的体验。

我现在使用Google的Picasa相册已经有了部分的这种能力,它同时有桌面和Web版本,我曾对它寄予完全的希望,用来管理我所有的相片。但如果不是我孤陋寡闻,显然Google并没有考虑到这个方面,因为Picasa桌面端只能向Web端上传图片却不能下载。。。而更进一步的设计则应该是具有本地文件和Web数据库同步的功能。

Windows Live的Favorites似乎有着一模一样的问题,它允许你从IE的Favorites导入到Web端,但却没有反向同步的能力。。。但它相比Picasa的优点是,客观上它是支持导出的,但是只是导出到一个HTM文件让你下载而已。。。而不是自动“装”到IE收藏夹所在的文件夹内。

微软的Share Point Service加上Office则是个更接近理想的组合:

  • 数据保存在服务端的数据库里,你在任意网络可连通的地方都可打开
  • Office一系列桌面软件安装于客户端,可以用这些软件来打开修改文档

这个组合在我看来已经接近完美了,但唯一的问题是在离线状态文档就不可访问了。我们需要文件在硬盘上的Cache。当然,SPS/WSS主要还是针对企业应用的,这个问题不大,网络速度一般也不会成为问题,数M的Word文件在数秒内就能传输完成。但如果Office System在客户端再加个“Share Point Client”维护硬盘Cache的话,那就更棒了。

这里的Model是相当简单的:

数据(Online,公共服务器维护,受安全措施保护)
↑↓
缓存(Offline,程序自动维护)
↑↓
程序(Offline,自维护或者IT管理员维护)

作为可选项,公共服务器上可以支持Web版的数据查看和一些简单操作 — 如果有必要的话。

至于Google的在线版本的Word和Excel,则根本是误入歧途(我不是作为一个MS MVP下这个结论的)。Google的选择是把程序和数据统统放在服务端,这大概是大部分对Google这些服务心存怀疑态度的人的最根本出发点。Web程序最终是不可打败桌面程序的,就算有下一代的DHTML可以做到和现有桌面程序一样的用户体验(比如Word般丰富的文本编辑器),他仍然需要硬盘的Cache。且不说这是个相当大的假设,更不用说微软的WPF加Expression套件在Rich Client方面已经再次走在了前面。也许五年后网络速度和连通性又有了非常大(速度*=100,连通性100%,网络延迟100ms内)的提高,硬盘Cache无足轻重,那基于浏览器的应用还面临着最后一个问题,那就是它们必定受限于浏览器安全沙箱模型,可触及的数据和可做的动作都是受限的。

Google的Picasa软件离这个目标则只有一步之遥。但令人匪夷所思的是,他们为什么不在Gmail这样的产品上也应用类似的策略呢?Gmail Notifier都做出来了,再进一步吧。Gmail的Web界面编辑器确实“还算不错”,但也只是相对于其它Web编辑器而言而已,距离Outlook等桌面软件差太远了。

除了这些用户关注的数据,其它程序本身使用的数据也可放在网上。比如说配置文件。极端一点,想象一下把整个Windows注册表都同步到网上的情形(当然硬件相关的配置信息就不用了),至少你能节约大量重装系统的时间(装系统很快,但装软件配置软件很慢)。Q3ACN(一个游戏网站)曾提供过保存Quake3游戏CFG文件的服务,大受欢迎,因为这样我们Quaker随便去哪个网吧都能以自己的CFG文件配置游戏系统,提高作战水平。要是id Soft直接把这个功能植入游戏,再在公司的Server上提供数据库接口,那就更完美了。(这是个坏例子,不打Quake游戏的朋友可能很难理解这一点。。。)

最后,关于SaaS(Software as a Service),这也是一个很好的切入点,虽然这个和SaaS只有一丁点关系。。。程序除了使用更好的加密算法防止盗版(比如微软的SPP),还可结合Internet。让程序的一部分功能依赖于Internet上的Server,可以非常轻松的获得非常好的保护。破解的Xbox360能玩单机游戏,却不能玩联网游戏,这就是个良证。把程序所需的配置数据放在互联网上,也是实现这个目的的途径之一。是不是合适,这是另外一个问题,这里的假设是你希望保护好你的软件并为你带来利润,而不是一个FOSS偏执狂。

刚才Kaneboy提示,Office 2007的Groove已经具备了我所需要的"Share Point Client"的功能,当然它的feature还不止这些,呵呵。

updating

打印 | 张贴于 2006-11-23 23:34:00 | Tag:Patterns and Practice  Distributed Application

留言反馈

#回复: 小论程序和数据的关系 编辑
网络传输总是会有延迟,你想使用网络就跑不了这一条。而如果Gmail不能登陆,总是有人忘了它所有的好,只知道它出错造成自己不能正常工作。可是,还是有那么多人不知道GFW的存在,不知道gmail要用https登陆。

如果需要使用文件,那么一个U盘或者一个FTP就可以了。Firefox、Maxthon、foxmail都可以装在U盘上,使用也很方便。

RSS阅读器,如果用在线的,比如Bloglines,有时会速度慢,还有丢失feed的可能(不过可以定期导出OPML嘛)。使用软件,比如GreatNews,那么,同步怎么办?如果有一段时间不能打开软件,而feed里的文章一般都只有10条,漏看了文章怎么办?软件和网络互补?好像还是跑不了网络的那些问题。再加上GFW,事就更麻烦了。

BS还是CS,这是个问题。
2006-11-27 15:48:00 | [匿名:yskin]
#回复: 小论程序和数据的关系 编辑
有人知道为什么Google哪个工具为什么不提供同步功能吗?技术难点在那里?
2006-11-26 17:27:00 | [匿名:lonelystranger]
#re: 小论程序和数据的关系 编辑
楼上的太aggressive了,而且似乎解偏了嗯
2006-11-24 17:34:00 | [匿名:sunmast]
#re: 小论程序和数据的关系 编辑
什么都等着M$跟你做,要你这等程序员干什么,还MVP呢,泡泡坛子就是牛人了。
2006-11-24 15:57:00 | [匿名:..............]
#re: 小论程序和数据的关系 编辑
修正一下,微软对应GDriver的服务是FloderShare
2006-11-24 09:59:00 | [匿名:James]
#re: 小论程序和数据的关系 编辑
支持一下!
同步功能是WEB的一个重要应用,所以GDriver和Live Driver都被大家寄予厚望,
对于Google,我不同意你的看法,Google的目的是在所有客户端,所有操作系统都能使用Google的服务,
这和微软的目的不同,在现在的情况下,由于各个操作系统的API完全不一样,所以HTML才是最好的选择,
如果Google把SUN买下来了,相信就能推出匹配WPF的服务了。
2006-11-24 09:55:00 | [匿名:James]
#re: 小论程序和数据的关系 编辑
oe 收邮件可以在服务器保留副本
2006-11-24 08:20:00 | [匿名:ayong]
#re: 小论程序和数据的关系 编辑
另外,毫无疑问,你应该相信互联网会到处都是,人们很快就会永远在线了,这可以算作Google理想的一部分

而盖茨那个每人一台电脑的梦想,在当时看起来更加疯狂
2006-11-24 03:10:00 | [匿名:tinyfool]
#re: 小论程序和数据的关系 编辑
Actually the question is that, how to manage (my) synchronizations.
How to synchronize files (contact / mails / calendars / photos / videos / etc) between PCs / Notebooks / PDAs / devices like digital photo frame / server applications including online games / web services etc.
Good news is there are many solutions. Bad news is we don’t need many solutions, we may only need one universal solution. Once I even suggested Microsoft to come up with such a solution which allows me to manage all my synchronizations in one centralized place, though I know normally this kind of suggestion will be ignored. ;-)
Challenges even myself can see include:
Should it be one center based or multiple centers based? People may have different requirements and opinions.
Who should be the one defines the standard (for all those APIs)?
2006-11-24 02:09:00 | [匿名:kw2006]
#re: 小论程序和数据的关系 编辑
我觉得Google和Microsoft不提供这样功能主要有两点考虑:
1 避免版权纷争
2 避免给服务器带来过大压力

其实是看到你提到了Quake,让我想到了从前N多通宵岁月,才留下一点想法的……
2006-11-24 00:34:00 | [匿名:Dflying Chen]
对不起,目前本随笔不允许发表新评论.

Powered by: Joycode.MVC引擎 0.5.2.0