Sunday, March 25, 2007

RIA数据服务之利器 - Livecycle Data Services 2.5 测试版发布

  据悉,Adobe® LiveCycle Data Services 2.5测试版已公开发布。新的LiveCycle Data Services是Adobe下一代企业级数据服务产品,起初是为Flex 2.0量身定做的(名为Flex Data Services 2.0),后来为了满足更广大的Ajax应用开发需求,进行了长足的扩展,进而成功地开启了新一代RIA数据服务产品的“蓝海”!

  从名字上来看,新的LDS应属于LiveCycle产品线的组成部分之一。LDS的发布方式和之前的FDS一样,即通过标准Java EE应用部署包的形式,也可以说是Java应用服务中间件之上的针对Flex和Ajax应用的数据服务中间件。采用这一方式在最大程度上减少了平台差异性,保证了产品的通用性。也正像技术评论文章“Adobe SOA platform launches Data Services”所分析的那样,Adobe这艘大船在SOA的演变进程中扮演着务实靠拢者的角色,并不时地展现了其出色的解决方案和出众的预见力。

  另根据官方的介绍,LiveCycle Data Services 2.5有以下主要特色:
  • A new Flex SDK (which will be released currently with Data Services 2.5), which includes updates the client-side Web Services library.
  • Server-side PDF generation capabilities for RIA applications generates properly formatted PDF documents that include graphical assets from Flex applications, such as graphs and charts.
  • Runtime configuration of data destinations in Data Services eliminates the need for a compile-time dependency between clients and the Data Services server configuration.
  • Support for WSRP portal deployment of Flex applications, which makes it easy for developers to deploy a Flex application as a portlet in a portal server without having to do any portal specific programming.
  • Per Client Messaging quality of service (QoS) allowing Flex clients to select custom data access policies for real- time data.
  • Ajax Data Services, enabling Ajax applications to take advantage of the data management and messaging capabilities available in Data Services.
  • The Flex-Ajax Bridge (FABridge), which is a small library that can be inserted into a Flex application, a Flex component, or even an empty SWF file to expose it to scripting in the browser without any additional coding.
  • Improved off-line message queuing, supporting future Apollo development, which allows Flex applications using Data Services to queue outbound messages locally when the client is offline and manage exactly what is sent to the server upon reconnect.
  • Groundwork for future Apollo application support, including a local data cache that enables developers to cache client data requests and data changes to the local file system for later retrieval when an application resumes.
  • RTMP tunneling (RTMPT) that allows the use of the RTMP protocol in Data Service applications to traverse firewalls and proxies that currently prevent direct RTMP client connections to the server.
  • A new SQL adaptor, which dramatically simplifies the development of applications using Data Management Services without having to write any server-side Java code.
  • A new JSP Tag Library that enables MXML and ActionScript code to be embedded into a JSP page providing an easier entry for J2EE developers to Flex programming.
  • Several important enhancements to core Data Services performance and scalability.
  不知道大家注意到了没有,新的LDS又再一次地将目光投向了对offline能力的支持(对于这一点,我曾在之前的一篇名为“Offline支持——Web的下一个热点!”的weblog中从web历史发展规律角度作过浅薄的分析),并且反复出现了对offline缓存和业务消息队列等方面的描述。从“future Apollo”的字样里可以猜到,Adobe对offline数据服务的支持正在和Apollo的开发同步进行着,随着之后的LDS和Apollo的相继正式发布,对offline特性支持的Web大战定会全面铺开!

William Cui 崔伟毅

Labels:

Monday, March 19, 2007

Apollo 1.0 预览版闪亮登场

  在万众RIA开发者期待的目光下,被业界寄予厚望的Apollo 1.0 预览版终于出现在了Adobe Labs站点上,并提供了针对Windows和Mac平台的运行时环境开发包示例以及相关的Apollo开发文档。一同发布开发参考资料还有Apollo 1.0速查手册和"Lynda.com"上的Apollo 1.0预览版视频系列教程,以下是Adobe官方给出的关于Apollo的宏观介绍:
Apollo is the code name for a cross-operating system runtime being developed by Adobe that allows developers to leverage their existing web development skills (Flash, Flex, HTML, JavaScript, Ajax) to build and deploy rich Internet applications (RIAs) to the desktop.

Apollo enables developers to create applications that combine the benefits of web applications – network and user connectivity, rich media content, ease of development, and broad reach – with the strengths of desktop applications – application interactions, local resource access, personal settings, powerful functionality, and rich interactive experiences.

Apollo enables familiar application interaction models, including drag-and-drop support, rich clipboard access, and desktop and system shortcuts. Furthermore, Apollo applications run as regular applications, and do not have to run within another application or shell (as web applications do by running within the browser).
  一般说来,Apollo是一个跨平台运行时,其自身包含了一个轻量级的基于WebKit渲染引擎的浏览器,使得HTML、JavaScript、Flash还有PDF等原本松耦合的RIA组成技术能够脱离于传统Web浏览器(以IE、Firefox、Opera和Safari等为代表),而在桌面进行online/offline地部署和运行。如果可以把传统的浏览器比喻成地球,那么顾名思义,Apollo将成为人类能够脱离浏览器引力,冲向更广阔的桌面级应用的发射器!

  关于脱离浏览器进行RIA实践的历史,可以追溯到早期的Java Web Start等技术,但那么多年过去了,除了一些企业内部应用之外,在Internet上为何仍旧很少看到它的广泛应用呢?这个问题的答案可以部分参考Bruce Eckel的“Hybridizing Java”一文(我也有一篇名为“从Thinking in Java到Thinking in Flex”的weblog对此话题进行了介绍和评论)。我尝试着把Java在这方面的失败归咎为三点:
  1. 语言运行时不够轻量化,阻碍了广泛传播和更新;
  2. 表现层渲染效果不尽如人意,无法提供完美的用户体验;
  3. 基于证书的沙盒机制带来潜在的安全风险,影响其被信任和接受。
  反过来再想想近些年基于浏览器的Web应用得以如此热火朝天、欣欣向荣的原因,就我的分析和思考来看,历史经验似乎表明:

  Web应用技术的成功=一个功能强大且无处不在的渲染引擎+一个可以信赖又可以支持复杂交互的安全机制。前者是吸引眼球的利器,后者是保障安全的基石!

  让我们来看看这刚出炉的Apollo预览版在这些方面做的努力吧:
  • 渲染引擎:可以同时支持Ajax + Flex应用的WebKit + Flash渲染引擎组合。在Flash的渲染方面自然是它的老本行,效果和速度都很令人满意。但是更值得一探究竟的HTML渲染能力却是让人稍有失望,无论是速度还是渲染准确度和效果等方面都有待提高(特别是在东方国家字体的表现方面,可以参见下面的截图,这似乎是Flash一贯的顽疾,而并不能简单归咎于Apollo之过)。当然,对于尚在紧锣密鼓持续研发中的产品预览版来说,总体效果还是非常好的,这已经是很大的成就了。相信在今后的版本中,Adobe定会对其进一步优化。
  • 安全机制:对于Apollo和桌面操作系统的复杂交互能力还在探索中,不便过多评论,至少就目前接触到的从Web下载、安装部署到运行Apollo应用的这个过程来看,我发现其还是采用了类似于Java Web Start那样的证书授权安全访问机制。由于Apollo应用的发布和部署是以AIR打包文件为载体的,因此便于通过各种途径进行传播,由之而来的安全性、完整性验证等一系列问题的相关策略等也尚不明朗,只能有待于后续版本的完善和调整吧。
William Cui 崔伟毅

Labels:

Wednesday, March 14, 2007

Offline支持——Web的下一个热点!

  回顾近十年的Web技术和应用,和历史上其他很多事物一样,多是有一些有趣的潜在发展规律的,值得整理如下:
  • 随着上世纪末Web浏览器(以Netscape Navigator和Microsoft IE的浏览器大战为代表)的普及,基于B/S架构的Web应用开始流行起来,对传统的基于C/S架构的胖客户端应用带来了冲击。由于起初的一系列Web标准(HTML, CSS, JavaScript等)只是为瘦客户端所设计的,为了满足不断增长的Web应用需求,各大浏览器阵营陆陆续续增加了富有自己特色的扩展实现(诸如DHTML, XHR, IE扩展, css-ie, css-mozilla等),于是整个Web实现越来越混乱,一直到某天人们终于开始意识到Web标准的重要性了才开始重新走上正轨。

  • 进入本世纪后,以Google提供的为代表的一些基于Ajax的“新”应用开始重新引起了大家的关注。Ajax是一个典型的新瓶装旧酒的例子,一堆过时技术绝处逢生诞生了一个新的Web应用时代。正当传统的基于HTML渲染的Web表现层应用占据绝大部分江山的时候,另一个原来由Web动画发家的基于Flash渲染的应用来势凶猛,凭借其超强的用户体验和“无处不在”的Flash播放器,正以迅雷不及掩耳之势(Macromedia对Flash普及功不可没,而当时的Microsoft还在睡觉呢,对Flash的未来错误估计了)越来越受到了最广大人民群众的欢迎。自从Flash的接力棒从Macromedia手中传递到新的Adobe公司后,以Flex, Apollo为代表的新应用这股热浪有愈演愈烈之势。

  • 大约在两三年前,可能由于在Web运作理念和表现层体验等方面的创新数量不断膨胀,为了和原来迂腐陈旧的老Web划清界限,有人把这些新的东西叫做“Web 2.0”(其实从技术角度上来说还是换汤不换药),自从那以后,便一发不可收拾,一系列冠以Web 2.0光环的应用如雨后春笋般呼之欲出,再加上风险投资的一路热捧,一场新革命就这样开始了。

  • 当人们已经逐渐习惯于甚至离不开基于B/S的online Web应用时(犹以Gmail,Google Docs, Google Spreadsheets为例),抱怨的声音也慢慢多了起来,比如网络连接的客观问题(如自然地震)影响了重要资料的访问,网络的主观临时中断(如飞机起飞降落时)使得工作无法继续等等。在这样那样的抱怨过后,有人开始想念传统的桌面应用之不依赖于网络的特性了,比如Microsoft Outlook, Word, Excel。自然而然地,新的Web应用需求诞生了:用户希望接下来的Web应用既要有Gmail的online好处,又要具有像Outlook那样offline也可以继续工作的优势,但前提是客户端尽量不要装任何额外软件(当然浏览器和Flash播放器之类的除外)。
  如今,种种迹象已经可以是我们感觉:对offline的支持,将很快成为Web应用的下一个技术热点了!记得去年早些时候我和周围朋友这样预测的时候,当中的绝大多数不以为然,摇头对我说:历史已经从C/S跨到B/S了,怎么可能再回过去呢?诚然,他们说的也对,历史是不可能回去的,但需求的升级会从历史发展中诞生新的技术应用,又有谁知道会不会再出来个B/S 2.0或者C/S 2.0呢?这样的例子已经屡见不鲜了。

  文末,让我来列出以下几个值得关注的offline技术应用动向:
  • Adobe Apollo
  • Mozilla XULRunner
  • Dojo Offline Toolkit
  • Firefox 3 offline cache
  另注:此类技术,似乎大都把重点放在了offline的cache存储机制上,而很少或者没有涉及复杂的offline业务逻辑(比如offline的业务规则引擎、业务数据同步机制等等)。这些尚未开发的领域会不会是下一个重点呢?因为一旦开了这个online/offline的口子,用户的需求总是会步步跟进的,这个的挑战无疑更加严峻,真是追求永无止尽啊……让我们拭目以待。

William Cui 崔伟毅

Labels: , ,