InfoQ:大家好,这里是全球企业软件开发大会 QCOM 北京 2010 的现场,我们有幸邀请到了中国人寿的技术主管吴磊,给我们做一个采访,你能向大家做个自我介绍吗?
吴磊(以下简称吴):我叫吴磊,从 03 年开始进行软件开发,在中国人寿工作已有七年,主要从事核心业务系统和管理系统的开发,就包括这次我们用 Silverlight 进行开发的养老金咨询平台,代号就叫 PACS。
InfoQ:那么对于这个 PACS 平台,在使用 Silverlight 开发过程中,你觉得最大的收获是什么?
吴:最大的收获,我认为是整个开发模式的变化,因为原来对于这种传统的核心业务系统或者其他类似管理系统的开发,我们更多是使用一种面向功能的开发过程。但现在我们基于 RIA 思路去开发的话,就是基于一种以用户体验为中心的开发过程。那么在整个需求分析的过程中, 我们的需求分析人员从原来更多依托于 UML 或需求规格说明书去分析问题,变成了基于原形基于用户体验的分析过程了,这就是我们最大的一个收获。第二个收获是,我们据此了解了眼下所有主流的 RIA 技术,知道了目前在 RIA 这个应用领域里面,有多少的技术可以被企业所用到,而且也沉淀出了基于 Silverlight 的开发框架。
InfoQ:那么在开发这个系统过程中,遇到的最大挑战是什么?以及如何应对这些挑战呢?
吴:在整个 PACS 的开发过程中,我们遇到的最大挑战,实际上是 Silverlight 技术本身。因为它比较新,在整个开发过程中,需要有一段的时间去学习,并培训我们团队的成员。这个过程我们花费了大量时间,也得到了微软公司的支持,他们给我们进行了两到三次的现场培训。之后,我们也去参观和学习了一些专门的视觉团队。在这些视觉团队中,他们具有很丰富的用户体验设计能力。从而,我们团队也学习了一些用户体验方面的经验。就这样,我们克服了开发遇到的一个很大难点。
InfoQ:对于这个业务系统,你感觉在当前的版本当中,技术层面还存在那些方面不足,打算如何来解决这些问题呢?
吴:PACS 目前存在的最大一个问题,还是我们用户习惯上的问题。因为我们原来的一些互联网客户,主要使用到或接触到的都是一些基于 HTML 的页面。而对于 PACS,首先就需要他下载安装一个插件并等待启动的过程,对此需要一个接受的过程。普通的用户可能很快就能适应,但对于企业中年龄比较大的用户就是个问题,他们对于互联网不是很了解,对于 RIA 应用就更不了解了。在这种情况下,他们需要要去接受一种新的事物是比较难的。我们认为在这个困难面前,需要努力加强的就是,怎么让整个体验过程更加简单。,我们内部也是提出了一种方法,就是让我们这个系统变成更加傻瓜的系统。操作上就像使用傻瓜相机一样简单,而功能上就像单反相机一样专业。这就是我们考虑的主要内容,也是现在 Silverlight 存在的一些问题。
InfoQ:你的意思目前存在的主要还是用户体验方面的问题,那么技术层面有没有不足?
吴:技术层面实际上也有一些局限,包括 Silverlight 应用程序下载包(XAP)的大小问题。因为我们在做企业应用开发的时候,可能面临的功能点非常多,这样的应用会非常庞大,随着这个应用的加大,功能的增多,如果只是在单一的 XAP 包里面进行部署,这个 XAP 包会越变越大。目前我们的 XAP 包已经有接近 1.3M 的大小了。如果我们后面再往上追加功能的话,XAP 包的大小会越来越大。目前,我们也在通过很多渠道,包括跟微软美国总部 Silverlight 产品组进行直接的交流,看能不能直接找到一些让 XAP 包分包下载,按需下载的方式【编者注:吴磊使用的 Silverlight 3 开发,在 Silverlight 4 中已经可以实现简单的按需下载功能】,这样来克服里面的困难。
InfoQ:就是说在目前你们是基于 Silverlight 3 来进行开发的,那么有打算升级到 Silverlight 4 吗?如果有的话,你觉得会遇到什么样的困难,以及需要特别注意什么东西?
吴:实际上我们一直在关注 Silverlight 4 的技术趋势,包括 Silverlight 4 最早于去年发布的第一个 BETA 版本的时候,我们就已经在试用了。我们团队里面有专门的人去研究 Silverlight 4 的一些特性。而且我们现在已经有一个详细的计划,就是什么时候去升级到这个新版本,因为现在大家都知道 Silverlight 4 才刚刚发布 RTM 版本,未来可能会有一个专门针对中文的语言包。那么我们要等到这个中文语言包的 Silverlight 出来以后,我们就会进行一个系统的预迁移。那么在这个预迁移过程中,可能我们会首先去解决一些命名空间上的问题。因为当时我们在做 Silverlight 2 到 Silverlight 3 的升级过程中,我们就遇到了一些命名空间上的命名不一样的问题。所以这一块需要我们有一个详细的计划。
InfoQ:那在下一步系统升级过程中,你们迫切需要解决的问题是什么?刚才你提到的这些问题?
吴:刚才提到最关键的是客户端这个 XAP 包的大小问题,这个问题实际上我们现在已经有了一些思路。包括像使用.NET 里面最新的 MEF 框架的插件式功能。这种功能是可以随机去按需去索取这个 XAP 的,我们可以把它分开打包,然后通过 MEF 的插件式方式,把它加载到我们对应的页面上去。但这里面也有一些问题,比如说不同的 XAP 包之间,它的资源(包括图片与样式)是不能共享的,所以我们现在也在考虑,通过 TCP 后台推送的方式直接把公共的资源文件打包下载到客户端独立存储中,下载下来以后,在客户端进行解析,实现 XAP 包之间的资源共享。
InfoQ:最迫切需要解决的还是性能问题?
吴:还是一个用户下载过程中的体验问题。对于性能方面的问题,我们刚才一直没有谈到。在性能方面,实际上我们因为在客户端这边运用了一个多线程分配的技术,就是我们所有任务是通过这种并行的线程去分派的,所以目前从性能上来说,还没有很大的缺陷,还是比较稳定的。特别是在一些大数据量的客户端操作的时候,目前来看还是比较满意。
InfoQ:我们知道 Silverlight 4 刚刚发布了正式版,你觉得 Silverlight 4 最大的进步是什么方面?你会在新的系统应用它什么特性?
吴:实际上,对于 Silverlight 大家可以看到,从 1.0、1.1 到目前的 4.0,它整个走的过程是非常的快,如果和我们用到的其他一些同类 RIA 技术相比的话,这种升级速度是非常快的。这样既有好处,也有坏处。好处就是它可以持续的改进,坏处就是我们需要不断的去学习,去掌握新版本的一些新特性。但是我们在 Silverlight 4 里面,看到了企业应用的一些特性。之前我们跟微软的一些产品组也进行了深入的沟通,希望加入一些包括调用 COM 组件的新特性。当时我们提出了需要在 Silverlight 里面去调用我们的一些针对 Office 的 COM 组件。在 Silverlight 4,当然微软做的比较更进一步,直接让所有的 COM 都可以在 Silverlight 里面去调用了,这个是一方面。第二个方面,Silverlight 4 内置了 WCF RIA Services,对企业级应用的业务数据处理支持力度更大。在 Silverlight 3 里面,企业开发者需要手写代码去调用后端数据服务,但是在 Silverlight 4 里,它的整个开发环境可以不写任何代码,就能够实现商业化应用程序里面数据的转换和处理,可以说是 Silverlight 的 WCF RIA Services 是面向商业应用中非常大的一个进步,我们也是关注这方面的一个动态。
InfoQ:你刚才提到的,Silverlight 对脱离浏览器运行的这种支持越来越好,认为 Silverlight 4 有可能会成为开发简单桌面程序的一种技术选择吗?或者说,就是 Silverlight 会成为未来桌面平台上一种统一的轻量级 UI Toolkit 吗?
吴:这个问题我觉得提得非常好,因为 Silverlight 本身,它的平台技术,是脱胎于整个 WPF 框架的,WPF 刚好是在整个 CS 架构里面微软主要推崇的技术。为什么 Silverlight 要有脱离浏览器的方式呢?为什么不直接使用 WPF 呢?主要的一个原因是浏览器就是我们客户端的主要环境,而 Silverlight 不会对这个环境有任何的依赖性,因为它不会依赖于客户端是否安装了.NET Framework。他自己有一整套.NET CoreCLR 运行环境,所以能让我们所有的应用可以很正常地在客户端可以得到安装运行。那么在脱离了浏览器以后,就可以使的我们原来的一个 BS 架构的应用变成一个 CS 架构的应用,当然也可以使我们原有的 CS 架构的应用更加高效,更加适用于在客户端运行。在这个方面,我也了解到国外的一些厂商已经开始在这方面做一些产品了,包括像英国某个航空公司,可以在客户端上安装一个售票系统;包括我们国内的新浪财经,他可以在客户端上安装他的某种金融软件,而这个软件是不需要任何.NET Framework 去支持它的。我们这边也有这方面的打算,包括以后考虑在客户端上做一些数据处理方面的一些轻量级的应用,包括客户的一些员工数据的处理、检查,都可以通过我们脱机浏览的方式在他本机运行,这就是我们对于 OOB 的一些认识。
InfoQ:那对于下一个版本的英文,你最期待是什么新特性呢?
吴:下一个版本的 Silverlight,实际上我们看到它在版本 3 到版本 4 的演进过程中,已经加入非常多的特性。对于下一个版本,我很难想象 Silverlight 会是一个什么样子,或者说他功能到底有哪些。但是我认为他应该更加去注重在企业级应用这块的功能加强。特别是,可以考虑把 WCF RIA Services 这个功能嵌入到 Silverlight 里面,以便可以通过这种通用架构更加快速地开发商业应用。对于其他方面,我还没有想的更清楚。
InfoQ:最后一个问题,你认为现有的,或者你用过的一些 RIA 技术,他们各自的特点,以及自己的一些体会呢?
吴:实际上我刚才在介绍的时候,已经提到了我在以前、开发过一些使用 Flash、Flex 的一些技术的系统。包括当时在 Flex 1.0 的时候,我使用 Flex 开发过一个公司的资产管理平台。当时对于 Flex 这个技术,还是 Macromedia 公司在进行开发的。Flex 我认为他更多是一种设计的思路,用的编程语言也还是基于解释型的脚本方式去执行。所以说当时在开发第一个资产管理系统的时候,就遇到很多性能上的问题。但是后面,我看到 Flex 已经不断推出新版本,功能和性能都有所加强了。我认为这也是现在 Silverlight 的出现促使这个 RIA 整个产品线有了一个竞争的关系了。因为原来可能是 Adobe 一家独大的势态,但是现在有了 Silverlight 的介入,有了 JavaFX 的介入,我们可以看到有更多的 RIA 技术可以供我们去选择,所以说我认为这是一个好事。因为出现竞争以后,大家彼此在技术方面的更新频率就会更快,对于我们终端用户来说,可以有更多的选择,也可以去开发更炫更酷的应用。
InfoQ:好的,我们的采访就结束了,谢谢吴磊接受我们的采访。
评论