专家看Web API、云及移动的融合

面向对象架构(SOA)及云平台之争已经火爆了好几年。再掺上移动应用Web API的话一定会让架构师开口发表高论。在我们最新的播客里,Slalom Consulting定制应用开发的首席实践负责人Rob Daigneau从专家角度提出了他对Web API、云及移动技术剖析。下午好。今天和我一起做节目的是Rob Daigneau,他准备跟大家谈谈对Web API、云及移动融合的一些看法。欢迎,Rob。

移动应用

Daigneau:嗨。谢谢你的邀请。

好吧。言归正传。SOA出来已经有一段时间了,但是现在还是有很多人在争论SOA是什么东西,在吵它有没有用。有人认为不管你对SOA怎么想,服务才是我们应该关注的东西。你对这个观点怎么看?

Daigneau:SOA当然存在若干的定义。比方说,OASIS的定义是组织利用所有权分属不同域的分布式能力的规范。我认为Eric Newcomer的定义很棒:他的看法是SOA更多是在生命周期内管理应用的方法论。还有人说SOA跟集成和中间件的关系更大,等等。

不管最后一致通过的定义怎样,这个过程当中已经有了很多的宏大承诺。我们听到有人说通过这种耦合和复用我们应该可以获得更大的能力,因为这种复用能节省更多成本。当然,这一说法部分已经实现了,但从很多方面来看,这种实现是要打折扣的,因为我们无法找出,或者说无法就SOA是什么达成一致。也就是说,SOA很难实现,因此并没有完全兑现所有的这些承诺。与此同时,Web服务已经在许多企业使用了很多年,且已经有了一些好的案例,在集成方面实现很好的价值。

还有一个跟SOA有关的,对云平台的争议也很热。许多人对它的看法跟SOA类似,即可以实现更好的敏捷性,更低的成本,可容错等。你认为这些说法正确的吗?云企业的未来如何?

Daigneau:云当然带来价值,但是这段时间围绕着云的炒作有点过火了。幸运的是,我们似乎已经走出Gartner所谓的期望膨胀期。这是云能降低Opex和Capex的证据,通过更容易地提供和部署系统镜像也可以实现敏捷。然而,在提供不受限的可伸缩性方面云似乎力不从心,高可用性仍然颇具挑战。

对于把自己的资产放到云端有多安全,企业也还没有适应。他们意识到自己必须放弃对自己系统的部分控制。此外企业需要理解IaaS、PaaS以及SaaS之类的东西。很容易可以看出为什么许多公司迁移到云端的速度缓慢。然而,我的确认为许多企业未来会用上云,可以肯定现在就有很多。

这里说的的确是指公有云,而不是内部虚拟机器,即许多供应商所谓的私有云;一个狡黠的营销把戏。不管怎么说,我因此认为许多企业将继续优先采用IaaS而非PaaS,因为前者更好理解,且不会让你被特定的云供应商锁定。IaaS在必要时能提供一定的可能性。

我们还看到有企业采用混合方案,将部分服务推向云端,但同时保留部分在本地数据中心。比方说,我们可能会使用公有云作为先进计算平台来处理业务功能及数据子集。这是一种相当漂亮且实用的分治策略,能促进企业整体的可用性,性能以及安全,因为企业现在可以独立地管理这些服务,云端的服务和本地服务可以分开管理。总而言之,我认为云的前途是光明的。

我认为要是不深入讨论移动平台的话我们就算是失职了。毫无疑问,这是颠覆创新的一个例子,显然消费者市场已经拥抱这些技术,说实话它正在改变我们的生活方式。对于企业的移动化你是怎么看的?

Daigneau:企业似乎相当迅速地跳到这股洪流当中。其一是,他们意识到自己的客户正在使用移动平台,也将其视为向外勤和本地员工提供能力的一种有效方式。业务主管也将移动视为提供商业智能、仪表盘等此类东西的一种很好的方式。

在移动领域,企业面临着若干挑战。移动应用无法像传统应用那样进行设计,软件开发者和架构师需要对安全问题更加熟悉。他们必须考虑无线网络会如何影响到应用性能。他们还甚至必须设计这些应用在无法与某些后端Web服务连接的情况保持工作。

对于企业来说,要想找出目标移动平台是件非常可怕的事。该不该看看iOS、Android或者Windows?可有些人还在用着黑莓。其部分决定要由客户喜好驱动,有的则取决于公司策略,或者在某些情况下要看员工的选额,尤其是采取BYOD(自带设备)哲学的环境下。不管哪一种情况,很显然,随着未来进入我们的视野,企业都会越来越多地使用移动设备和平台。

如果可能的话,你能不能再深入探讨一下移动应用以及Web API和服务如何协作的?

Daigneau:当然。Web API和Web服务是用来接收移动应用数据的,也用来发送信息给这些应用,如告警和通知。当然,这些数据也可能是多媒体。移动应用和Web服务的确是相当的互补。

Web服务也往往要封装业务功能。你当然也可以将这些业务功能的一部分分发出去,扔给移动应用本身,不过如果业务能力太复杂,难以分发的话,也许在执行上就会比较冗长,像这样的话,将这类逻辑和功能合并进一个Web服务中就很有意义了。其他像图形化功能、数据可视化之类的特性,当然下放到移动设备上就行了。

Web服务往往还会自己来执行移动应用的更新。情况基本上是这样,比方说,当你的智能手机告诉你有若干应用需要更新时。设备与Web服务沟通来找出是否存在更新,尤其是为企业来做到这一点。我认为,它们要靠Web服务。我们已经看到,相对于使用SOAP和WSDL的更为传统的Web服务,Web API是向移动应用提供这些能力最自然的方式。协作起来要容易得多,当然还有其他原因。不过可能我们没有足够的时间在本播客中深入探讨那些细节了。

云在其中的作用是什么,你能否告诉我们一点?

Daigneau:我前面已经有所暗示。云平台为Web服务托管提供了卓越的手段。某些企业会走出去,把所有东西都架设在云端,从而避免维护自己的数据中心。其他的则会试着采用我前面提到过的混合方案,将部分业务服务推向云端,然后保留一部分服务在自己的数据中心。

我们会看到的一种应用场景是企业会利用公有云平台处理整个业务计算需求的部分子集。在其他场景下,我们会看到Web服务、Web API、移动应用以及云等东西融汇在一起,帮助企业创造出某些真正令人兴奋的机会。

说到融合,原生应用、HTML5、CSS、JavaScript怎么样?这些决策因素会产生什么样的影响?

Daigneau:首先,我们必须记住,这样的情况总是会存在的:即用原生移动技术开发应用会更有意义。这种办法很可能总能够提供最丰富最具响应性的UX(用户体验)。与此同时,似乎原生应用的开发者工具、调试工具以及分析等方面还是领先一点,可能还会保持领先一段时间。比方说,LinkedIn就放弃了最近在HTML5方面的努力,而转向更丰富的原生平台环境。

但是,问题在于你得为多个移动平台重建自己的应用,你得做大量的开发工作,真的,要做的工作要多得多。对于这种情况,某些企业选择了移动SDK(软件开发工具集),让开发者可以一次编写然后部署到多个移动平台。这种做法似曾相识,对吧?比方说,像Java。问题是这些SDK往往选择最小共性的做法,所以无法真正驾驭特定移动平台的独特能力。

出于上述多种原因,我们当中的很多人都在利用HTML5、CSS3、JavaScript之类的技术,以及许多开源框架,以此来让我们创建出利用行业标准和非专利技术的富功能移动应用。所有这些东西,在某种程度上定义了一个新的平台类型,可谓集流行元素之大成。比方说Netflix已经决定要从专利技术(Silverlight)转向HTML5,这很好。再者,这些技术跟Web API的配合真的是非常非常的好,几乎就像是天作之合。就是这样。这就是我对Web API、云及移动融合的看法。

太好了。非常感谢你分享了自己的洞见,Rob。再次感谢。

Daigneau:我也要再次感谢你的邀请。

移动信息化交流QQ群:一号群:211029692 二号群:344692795 CIO交流群:316076815(需认证)

移动化问答社区:wenda.yidonghua.com



1 星2 星3 星4 星5 星 (还没有打分,快来打分吧!)
Loading...
 
已有 0 条评论
返回顶部

无觅相关文章插件,快速提升流量