了解 IBM CIO Lab Mobile Innovation 团队如何快速开发出一个内部解决方案,让用户可以跨其所有支持的平台进行简单、灵活的文件共享,从而提高用户的生产效率。
IBM 的 CIO Lab Mobile Innovation 团队开发了内部解决方案来帮助 IBM 员工更加高效、安全地使用其移动设备。在 2010 年晚些时候,员工们难以跨其笔记本电脑、移动设备和平板电脑共享文件。从移动设备上对典型内容管理系统或共享文件系统的访问受限且比较麻烦。没有插件的辅助,在转移时某些文件不会渲染或运作。而且文件在台式机和移动设备之间不易移植。
我们团队需要提供给员工一个可移植的解决方案,以便通过支持的设备访问 IBM 内部内容。我们决定开发一个试验解决方案来充当访问其全部数据的窗口,并且提供对便携式数据的小缓存。便携式数据会被转化为可兼容的格式,以帮助用户更好地利用各个平台上的内容。我们调用了 MyMobileHub 项目。由于只有一个小团队和几个月的时间,我们需要随着跨 Android、BlackBerry 和 iOS 平台的启动来展示概念证明。几个月之后,我们会需要在本地进行功能试验。
本文中讨论的、我们在试验中使用的很多快速开发概念在移动开发领域是众所周知的。看一下我们如何将它们组合起来,开发一个多设备、端到端的内部解决方案,并且您可以了解可以多快为您的下一个移动试验或项目做同样的事情。
规划一个快速开发试验
创新试验通常是一个迭代过程:快速开发一个可用的解决方案,与一群关系密切的同事和早期采用者共享该解决方案。然后随用户群扩展功能,以评论和建议作为航标。这是探讨新解决方案的一个常用协议。
为在快速发展的移动领域有一个成功的试验,我们需要有一个全然不同的开发方法。我们探讨了大量可帮助我们的可重用技术。我们选择了将开源技术与 IBM 内部工具结合起来,这符合快速开发、跨平台支持和尖端功能等条件。
在服务器端,我们选择了 Play 框架,一个基于 Ruby on Rails 的 Model-View-Controller (MVC) 概念的 RESTful 无状态 Java 框架。对于客户端开发,我们选择了 PhoneGap、Dojo 和 Dojo Mobile,以便在所有客户端有一个一致的观感和用户体验。
由于我们计划改变的小缓存文件需要被集中起来,我们决定使用一个简单的数据库,而非一个文件系统。我们选择了 Apache CouchDB,一个无模式的面向文档的 NoSQL 数据库,通过基于 MapReduce 的简单快速的视图支持文档存储。
CouchDB 和 Play 有效协同工作,能够让我们快速实现迁移。我们使用了 Apache ActiveMQ 来管理构成文档转换管道的各种消息和任务。最后,一个 Apache HTTP Server 前端提供给我们一些额外控制和负载平衡。同样地,在此试验中,我们探讨解决方案的可行性,并获取对用户需求和使用模式的理解。当准备好生产时,我们可能希望重用的重要部件、概念和设计被轻松迁移到其他平台。
为了跟上不断扩大的移动设备集的发展趋势,我们利用一个内部工具来帮助我们识别 WURFL 项目的移动设备规范,这是一个智能手机功能和屏幕大小等信息随手可得的存储库。该工具帮助我们轻松确认如何最好地显示应用程序内容,以符合设备的功能。
我们从试验中获得的价值不仅仅是总体内部产品(代码)本身,还有对人们如何使用我们的试验品的理解。更重要的是,我们获得了为移动用户和技术娴熟的用户解决问题的经验。我们的早期采用者并不避讳告诉我们是否解决了某个特定的问题,匹配了其工作流,或满足了他们对易用性和生产效率的期望。如果我们没有履行我们的使命、让用户更高效和安全,我们就重新创建解决方案来从一个全新角度解决问题。
MyMobileHub 概要
我们的解决方案提供一种简单的方式来让用户共享文件。与其通过电子邮件发送给自身他们想在移动设备上打开的文件,他们可以使用 MyMobileHub 将文件从其桌面拖放到浏览器。我们通过浏览器将文件上传到我们的服务器上。用户可以从一个移动设备连接到同一台服务器,但是我们提供给他们不同的 UI,其中他们可以查看文件,不管其原始格式如何。我们还利用移动摄像机和语音功能来让用户轻松创建和上传多媒体内容。