Thursday, April 26, 2007

事件两则:SAPPHIRE '07亚特兰大,Adobe将Flex开源

  过去的三天里,SAPPHIRE '07亚特兰大SAP客户和合作伙伴会议在美国举行,用图说话:

Hasso Plattner
SAP联合创始人Hasso Plattner做主题演讲(图片来自dfarber

Henning Kagermann
SAP首席执行官Henning Kagermann做主题演讲(图片来自dfarber

Henning Kagermann
SAP的Enterprise 2.0之路
Harmony——测试中的SAP内部“社会性网络”员工协同工具(图片来自Craig Cmehil

Flex goes opensource
  此外,美国时间昨天晚些时候,Adobe发布了一个令业界振奋的消息————Flex就此开源了!
  这则消息对于Microsoft就在上周公开亮相的“SliverLight”(即原来的WPF/E)无疑更是当头一棒。RIA战场的好戏正在接连上演中……你更看好哪方呢?
  该事件的详细信息和深入分析可以参考:

  最后,PodTech上的Adobe Flex团队视频采访短片也值得一看:



William Cui 崔伟毅

Labels: , ,

Monday, April 23, 2007

Google发布Ajax API使得RSS混搭应用更容易

  上周,Google的Ajax API团队新发布了一套实用的Ajax Feed API,使得基于JavaScript的RSS/Atom混搭应用比以往更加容易和直接。
  和Google的其他众多API服务一样,应用开发者需要为某一网站申请域名一一绑定的API密钥。之后,便可以参照官方的JavaScript样本示例进行快速RSS混搭开发了。
  可能对更多的Ajax开发者来说,Google的这一服务为他们雪中送炭地解决了一个JavaScript跨域访问“沙盒”安全限制的问题。通常我们如果需要跨域访问文档资料,不得不在服务器端增加一个代理层,通过相对复杂的服务器端程序巧妙地绕开该限制,这样的开发复杂度无疑抬高了RSS混搭应用的门槛,阻碍了普及化发展。
  然而,由于通过Google Ajax Feed API获取的数据实际上只是Google服务器上的一个缓存(很可能和Google Reader等Feed聚合阅读器使用的是同一份缓存),而并非是最新的、精确的数据,这个多出来的一层在某些有特殊需求的场合下可能会受到一定的制约。
  当然,将分散各地的Feed资源进行集中整合、过滤、缓存和再造的这一实践和思路,应该并不是Google首创的,著名的FeedBurner就是此类应用的一个较早的、也是较出色的例子,就是不清楚同样是整合了这么多Feed资源,FeedBurner为什么迟迟没有提供出Ajax Feed API之类的服务呢?或者说,大家还不是很清楚有这项服务。
  另外,据说Microsoft也在上周将其Live Spaces的Feed服务全面扩充、升级,来迎合这一领域不断增长的用户需求。实话说,曾经对Microsoft大气宣传的在Outlook 2007和IE7中对RSS的直接支持一度看好,可惜用了之后才发现实在比较失望。让我们拭目以待,看看Microsoft又如何能够再度力挽狂澜吧!
  更多的开发相关资料,请参考这篇开发者文档

William Cui 崔伟毅

Labels: , ,

Sunday, April 22, 2007

“关注分离”的核心原则和“设计模式”的三大原则

  上周我们在SAP中国研究院团队内部开展了一次关于“Web Dynpro的设计原则、模式和可复用实践(Principles, Patterns and Practices in Web Dynpro)”的自由研讨会。

Principles, Patterns and Practices in Web Dynpro
  我们都深知“模式”和“可服用实践”的双韧性问题,即每一种模式和实践带来好的一面的同时,也会带来一些负面的作用。十全十美的万能钥匙是不存在的,正如经典的软件工程论文《没有银弹》(No Silver Bullet)所阐述的那样,没有哪一种技术或方法可以独立地使软件工程的生产率、可靠性或简洁性产生数量级上的变化。
  作为组织者之一,我觉得如果只是一味地讨论模式和实践,每个参与者站在不同的角度,根据不同的上下文固执己见,很容易会发生彼此争论不休的情况,最后使得研讨会毫无章法,其真正意义也被弱化了。因此,我想整理出一些彼此有共同认识的,或者普遍存在并广泛适用的基本原则,以此做为研讨会的主线,而那些模式和实践便可以自然而然地围绕着这根主线来展开。
  本着“简洁有效”的精神,经过一定数量的文献检索和归纳整理,最终将这些基本原则反映在如下两张幻灯片里:
  • “关注分离”的核心原则

    Core Design Pattern in Software Engineering
  • “设计模式”的三大原则

    Design Principles from GoF Patterns
  这次的讨论非常热烈精彩,大家在这个共同认识的基础上进行友好的互相补充和各抒己见,使得研讨会达到了预期的效果。其他更多内容(仅限概要部分)请查看幻灯片的Flash Paper。(注:因考虑到内部项目的保密性,已除去了所有案例讨论部分,还望谅解。)总体来说,这份材料所扮演的更多是抛砖引玉的作用,由于时间和经验积累等各方面限制,还无法一一展开。在这些方面如有赐教,将不胜感激。非常期待能再有机会与各位一道探讨,谢谢!

William Cui 崔伟毅

Labels:

Sunday, April 15, 2007

对数据、语义网和RSS的思考

  我的这篇Weblog受到了“Thoughts on Data”一文的启发,也想整理一下自己最近的思考。

  在数据库、信息管理或者商业智能的课本上都会看到这样一句话:“我们身处数据的海洋,却缺少知识”。还有一句耳熟能详的经典台词:“不是我不明白,而是这个世界变化太快”。它们分别从现状和变化这两个角度真实地反映了当今世界是一个数据、信息和知识大爆炸的时代。
  数据是有显性和隐性之分的,我尝试从语义Web的角度举例来说:
  • 显性的数据:正如你正在访问的这一个HTML页面上包含的数据,简单的来说这就是直接看得到的、孤立的原始数据,但其本身是不具有语义的。
  • 隐性的数据:你在访问这个页面时,第三方的搜索引擎或者统计组织工具根据一定的语义进行搜集和创建出的数据,这些数据并不是直接可见的。
  随着网络的普及和带宽的增加,显性的数据从最初的文本、超文本、图片发展到后来的声音、矢量动画(Flash等)、三维地图、短视频(YouTube等)甚至于完整的电影和电视实况数据。又伴随着Web 2.0带来的“人人贡献”的内容创建方式的兴起(以Weblog, Podcast, Videolog为代表),对于每一个最终用户来说,Web显性数据量迅猛增长并且更加容易获得了。

  而相比之下,隐性数据的获得要困难许多。但是,一旦通过某种方式对隐性的数据进行了系统地采集、过滤、聚合和分析,其创造出来的价值就要比显性的知识大得多了。当今大行其道的搜索引擎们正是通过了不懈的努力把隐性数据(比如Google的页面排名“Page Ranking”、热点、相关度等)从茫茫大海中挖掘了出来,从而促进了隐性数据聚合再造的机会(比如垂直搜索、定制化搜索、新结果订阅分享、定向广告投放等),并且带来了巨大的商业价值。

  除了显性和隐性数据的区分之外,还有一种数据被称为元数据(Metadata,即关于数据的数据)。语义网(Semantic Web)的核心就是:通过给互联网上的资源和服务添加能够被计算机所理解的具有语义的元数据,从而使整个互联网成为一个通用的信息交换媒介。

  联系现实,我尝试举例说明这些元数据所可能包括的内容:
  • 数据模式(Schema,即数据文档的结构):XML Schema、数据表Schema等。
  • 语言(Language):内容的创建语言。
  • 身份(Identity):内容创建者、资源的标识等。
  • 关系(Relationship):前向和后向资源、相关链接等。
  • 标签(Tagging):del.icio.usdigg社会化标签等。
  • 位置(Location):地理位置、资源位置URL等。
  • 等级(Rating):页面排名、引用次数等。
  • 时间(Time):内容和服务的发布时间、有效性等。
  • 信任(Trust):内容的可靠性、第三方证书等。
  继续刚才对于隐性数据的分析,元数据依我看,其实就是隐性数据的核心内容。如果隐性数据是可以带来价值的“金蛋”,那么元数据便是更宝贵的“金鸡”,是核心的价值孵化器。而对于元数据来说,需要有一个公共的,彼此协商一致的描述标准以使得数据的利用价值最大化。

  说到这些元数据,就不得不提及RSS(Really Simple Syndication)。RSS是美国哈佛大学法学院制定的一项用于描述Web内容的数据交换和整合规范。目前已经被广泛用于新闻、Weblog、wiki和内容更新信息订阅。就RSS这一方面的话题、现状和发展机会,我已经关注了有一些时间了,也在不断思考着,一直想写一篇这方面的文章来分享讨论一些东西。先记到这,下回再补。

另注:对于为什么RSS的制定者会是哈佛法学院这样一个人文学院,而不是想当然的其他理工类学校或者技术标准组织这个问题,我曾和身边的同事进行过探讨,无不感受到有些不可思议。可能这是中西方学术研究机构体系设置或者思维方法上面的差异吧,至少这在目前的中国,你是很难想像一个法学院能够制定出这样的规范的,我们的教育体系培养出来的学生、教授离真正意义上的博晓古今、融汇中西、贯穿文理还是有相当大距离的!在之前的文章里,我也引申出过这一方面的思考

William Cui 崔伟毅

Labels:

Sunday, April 8, 2007

Morfik的"Ajax生成器"专利申请和GWT、Web Dynpro

  近日,澳大利亚的Morfik科技公司向USPTO(美国专利商标局)提交了一个关于“Ajax生成器”的专利申请。该专利申请的名字为“System and method for synthesizing object-oriented high-level code into browser-side JavaScript,相关申请文献已经可以在USPTO网站上查阅,其摘要如下:
A system and method are provided to enable developers of web sites and software applications to code in an object-oriented high-level language that is compiled into a browser-side JavaScript which can be natively interpreted by a browser. This enables developers to program in a high-level language of choice to create browser-side web applications, instead of directly using the target lower-level language JavaScript.
  进一步阅读,发现这个可能的“发明”是想为B/S开发人员提供了一套系统化的方法来达到以下目的,即把用高层OO语言(类Basic和Pascal,或者类Java和C#语法的)写的代码转化成可以被不同浏览器进行原生解释的JavaScript低层语言,从而简化了直接编写浏览器端JavaScript的复杂性,并在一定程度上降低了Ajax的开发代价。
  说起“Ajax生成器”,我们可能第一个就会把它和Google的GWT(Google Web Toolkit)开源项目联系起来。GWT是一个开源的Java软件开发框架,用于开发类似于Google Maps和Gmail的Ajax应用程序。开发者可以用Java编程语言开发前台界面,然后用GWT编译器将Java类转换成适合各种浏览器执行的JavaScript与HTML。还有一个基于Eclipse开发插件Googlipse提供了GWT的集成开发环境。尚且还不知道Morfik的这一专利申请会不会和Google的知识产权存在法律上的问题了。就软件专利这一方面话题,我不久前写过一篇Weblog——漫谈“软件专利保护”
  此外,尽管SAP的Web Dynpro开发出来的不是严格意义上的Ajax应用程序,而且非SAP的客户或合作伙伴可能对Web Dynpro还不太熟悉,但是就我的实践和横向比较而言,在专业化的基于B/S的企业应用前台开发来说,Web Dynpro无疑大大走在了GWT还其他流行的Web MVC框架前面!这在SAP的Help Portal上有Web Dynpro的架构和开发模型方面的资料可以供研究参考。我也会在以后写一些文章来和大家分享SAP在这些方面的开发方法和实践经验。

William Cui 崔伟毅

Labels: , ,

Sunday, April 1, 2007

庆祝SAP成立35周年,并祝Shai Agassi再创辉煌!



  今天是2007年4月1日(西方愚人节),对SAP来说是一个特殊的日子:
  • 35年前的今天,即1972年4月1日,五位前IBM员工(Dietmar Hopp, Hans-Werner Hector, Hasso Plattner, Klaus Tschira和Claus Wellenreuther)在德国曼海姆(Mannheim)成立了一家初始名为SystemAnalyse und Programmentwicklung的公司。当时五位创始人的愿景是:打造用于实时业务处理的标准化应用软件产品。后来公司正式改名为Systeme, Anwendungen und Produkte in der Datenverarbeitung(对应的英文名称为“Systems, Applications And Products in Data Processing”,即数据处理的系统、应用和产品),而官方名字则为SAP AG。
  • 从今天,即2007年4月1日起,现年38岁的以色列籍,SAP前全球执行董事会成员、产品与技术事业部总裁Shai Agassi(夏嘉曦)将正式离开SAP,投身于下一个来自于“日益严峻的环境问题和可替代能源”的新挑战。关于他生平和创业历史的详细介绍,请参见“SAP夏嘉曦:跃上更大舞台”一文。
  从2005年加入SAP以来,只有一次机会让我有可能近距离接触到夏嘉曦,那就是去年在SAP美国举行的全球开发者挑战赛,虽然我有幸成为了中国区选拔出来的参赛候选人之一,但还是阴差阳错地失去了那次去SAP Palo Alto研究院比赛的机会。我们团队里的另一名同事被抽中了,到了那里和SAP全球开发者一道进行了两天的封闭式开发比赛,最后得了一个团队奖,并从夏嘉曦手中接过了一箱象征着创新和成功的Las Vegas“假筹码”。

  今天之前,夏嘉曦作为具有35年历史的SAP的全球执行董事会7名成员中最年轻的,而且是唯一一名非德国国籍的执行董事,他领导的设在美国硅谷独立运营的分公司,就像初创企业一样,不断努力开拓着SAP从未涉足的新市场。不可否认,他的持续创新精神和敏锐预见能力值得我们每一个人学习。在此,我想引用两端他对“良师益友”和“竞争对手”的言论:

  谈良师益友
在我的人生中有三位重要的导师,他们都在关键时候给了我最可贵的指引。
  首先是我的父亲,也是我的第一个创业伙伴,他总是与我分享核心价值的人。
  然后是大卫,我的第二个创业伙伴,他教会我如何平衡、冷静地看待商业。
  最后是哈索·普拉特纳,SAP的创始人及现任董事会主席,他手把手地告诉我应该如何运作我们的产业。

  谈竞争对手
我一直与自己心中的热切追求竞赛,但从来不把自己与其他人比较:
  把我和比尔·盖茨对比真的不公平,无论是对我还是对他。我们在各自的领域都以自己的方式取得了成功,而比尔日前更是投身到慈善公益事业,很让人钦佩。
  至于甲骨文,其实SAP和我自己都不以其为目标。我们最看重的,是如何更高效率、更大范围地满足用户需求。

  最后,还是要庆祝SAP成立35周年,并祝Shai Agassi再创辉煌!

William Cui 崔伟毅

Labels: