【IT168 评论】Scott Morehouse在哈佛大学图形实验室里参与了早期的GIS(地理信息系统)的开发,并且现在是Esri的软件开发主管。他负责Esri的ARC项目的初期设计和架构。
在这篇访谈中,我们讨论了:
- 云计算如何使GIS的数据互相协作
- 对比设置自托管的GIS解决方案和使用云端或者按需的解决方案的开销和复杂性
- 聚合应用(用户将自托管数据和云端数据联合起来)的机遇
- Azure虚拟机和数据库建立的机遇
Robert Duffner:让我们开始吧,可以请你用一些时间来介绍一下你自己和你在Esri担任的角色吗?
Scott Morehouse:在Esri中我管理软件和产品的开发。我参与建设地图和地理数据的信息系统已经有25到30年了。我们建立了工作站和客户端/服务器环境的系统,然后我们建立了网页式的系统,而现在我们建立了利用云服务和基础设施的系统。
我的背景是地理和软件工程。我们正在大力运用适当的计算技术,并利用通用的基础计算设施为我们的用户提供地图和地理信息服务。
Robert:追溯到哈佛大学图形实验室时期,你已经参与到GIS中相当长的一段时间了。你怎么看待这个领域数十年来的变化,你认为这个领域将向什么方向发展?
Scott:看待技术的改变是令人高兴的,但是原理其实没有改变,依然按照地理信息为实际的用户、决策程序和工作流程提供支持。
有一件事利用现代技术变得特别的容易,就是建立合作系统,并且为组织里的每个人提供信息,而不是将它锁在部分系统或者信息库中。利用网络技术和系统内置的移动设备风格可以使它更加容易地允许人们在一个已知的社区参与到信息的实施。
Robert:你谈到了基础服务器从客户端/服务器转变到网页式,并且现在利用云计算。你如何看待云计算为GIS带来的好处?
Scott:我们和我们的用户对云服务一系列不同的规模感兴趣。首先一个简单的例子就是信息系统已经从客户端/服务器模式转变为网页的模式。我的意思是说甚至在企业内部的内部网或者内部系统都在围绕一个网络程序模式和用户交互式的网络风格而建立。
建立一个网络风格的信息系统意味着更加容易使用,基于浏览器的无状态模式并且使用特定的编程模式。这意味可以在iPhone,平板电脑等设备上像工作站一样使用信息。这意味着用某种风格的文档以及利用大家的力量来创造更具协作性的环境。
人们对建立那种工作方式的程序非常感兴趣,因为这是他们使用过的最高的技术。除了系统管理员和开发人员,人们再也不用命令提示工作了。
另一趋势就是一个组织甚至是个人建立和管理云设施的复杂性。建立一个由硬盘,CPU核心,网络连接,安全,软件补丁等构成的基础设施是一个非常困难的过程。所以对我们的用户来说,能够允许或者嵌入到托管的基础设施而不用自己建立和维护基础设施的概念是非常有吸引力的。他们只是想要一个开关就能得到一个新的服务器来为他们工作。
第三点就是可以融合来自其他地方的功能和信息。用户想要将其他人建立的地图和数据嵌入进来,并且可以在他们自己的程序中使用它们。
Robert:利用SaaS程序,你想要multi-tenancy并且为每个客户的数据设置完全的独立性。GIS中有些时候是可行的,但其他的时候,你想要共享使用团体数据。云计算如何促进它呢?
Scott:云计算促进信息共享有多种途径。其中之一便是网页式系统架构使信息通过服务更加容易访问。这个概念是指通过RESTful服务,信息更加容易访问或者网页式接口实际上减少了获取信息的问题。你不需要ETL数据从一个数据库到另一数据库,或者其他类似的东西。
在此背景下,你必须清楚什么信息是私有的,什么信息是半私有的,还有什么信息是公开的。我认为这暗示了如果信息是通过网页接口而容易访问的,那么它也必须是公开信息。当然真实情况不一定是这样,我们也可以在那种情况下对信息加以保护。
我认为关于系统是否是multi-tenant架构的或者是让每一个用户拥有一个自己的实例的问题是在实现过程中的一个很好的问题
SQL Azure是multi-tenant,但是它拥有单独的数据库实例。一些人可以拥有并控制他们自己的数据库,但是系统将会按照规律进行优化,并且拥有multi-tenant程序提供的其他属性。我们看到一种执行multi-tenant风格的服务和instance-per-organization风格的程序的组合。
在SharePoint情况下,例如,有一个role,通过multi-tenant途径共享文档和合作,就像允许用户在托管或者云环境中出租将他们的SharePoint实例。
Robert:你还说到云服务降低了人们使用GIS的门槛,因为他们可以不用建立拥有GIS功能的服务器。你能谈谈这一点吗?
Scott:对于使用网页风格的地理信息系统来说,最大的障碍就是建立和管理服务器。云服务通过一系列的方式是这变得容易。首先,人们可以利用云作为托管环境搭建并管理他们传统的企业级服务器和服务,或者作为他们服务器的虚拟数据中心,只要你愿意的话。
它还允许我们利用像Azure这样的框架的扩展性建立新的轻量化的服务。所以人们基本上可以从网页客户端通过更加容易访问的服务管理并发送信息,这比购买硬件,并将它连接到网络上要容易的多。
Robert:Ersi本身拥有一定的混合模型,你们使用自己的服务器,但你们也使用Amazon和Windows Azure。你可以谈一下你们的架构和你们如何决定哪些自己保存,哪些托管到云计算中?
Scott:我们的基本架构是以网页为中心,这也就意味着我们已经通过公开,能够通过web访问的接口公开了我们的地图和地理信息,主要是REST和JSON,甚至SOAP和其他类型。我们将我们的前端设计成为这些服务的客户端,所以这个以网页为中心系统架构可以完全的部署在企业的内部,而且它也很适合在Internet上运行。它也非常适合拥有它的元素,即其中一些服务,实际上托管在云设施中。
由于一切事物都是一项服务,无论服务是运行在已经连接到你的LAN上的物理硬件上还是物理地址位于Amazon或者Azure数据中心的虚拟硬件上都没有关系。我们仅是做一项有意义的决策,确定系统的哪些方面运行在客户的数据中心中是有意义的,哪些服务应该运行在Azure的云环境中,哪些应该运行在Amazon的云环境中。我们关注于什么样的功能运行在什么样的设置中可以更高效的执行,哪种环境满足安全和存储需求等。
Robert:你如何看待其他企业在可预知的未来中保有大量的自托管服务器和程序,但却消耗Ersi提供的云服务这种混合模式呢?
Scott:没有必要用这种方式利用云计算,你需要重写或者将所有程序从enterprise-centric架构转移到cloud-centric架构中。很有可能是建立一个on-premises企业程序,融合来自企业系统中的数据节点的信息和订购的云服务的功能。
我们寻找多种混搭格局,把自托管程序的地理信息和他们的企业信息相结合,然后使用on-premises网站或者thick-client系统建立企业系统。
Robert:我认为许多传统的销售on-premises产品的公司把云计算看作是一种威胁,但是Esri已经接受了云计算并且以这种技术为中心。那么你对其他的拥有on-premises解决方案的公司或组织在采用云计算上有什么建议呢?
Scott:每一个组织都是不同的,我们已经完全意识到这种利用浏览器和移动设备的新的系统建立模式是人们所期望的。他们希望可以通过iPhone像获取音乐一样容易的方式获得报告或地理信息。
我们用一个像发展传统桌面计算一样发展和支持这种风格解决方案的机会。Amazon和微软共同努力,以使程序可以很轻松的从传统服务器技术环境中迁移到托管的计算环境中。
特别指出的是,最近更新的Azure拥有虚拟机和其他的功能,可以在on premises私有云计算中和off-premises托管环境中工作。我看不出基于云计算的程序会完全替代基于on-premises的程序,但我看到了这两种程序的互补作用,而且你可以设计一个系统,让很多事情可以在两种环境中都可以很好的运行。
Robert:像Esri这样的提供云服务的密钥软件提供商明确地提供了一个以前没有的机会,让客户能够将他们的软件和你的软件在同一个云服务中。你如何认为这一点的?
Scott:如果人们共享同一个云服务设施和程序构架,可以利用软件组件的聚合力建立系统。我们明确列出我们系统的位置,允许人们使用它。例如,尝试着在一个共同的程序构架中建立web roles同我们的worker roles和数据服务一起工作。
另一件关于以网页为中心架构的有趣的事是,如果它是真正的基于服务的,它在一定程度上不知道服务是从哪里来的,这是一件非常好的事情。我们不希望在网络寻找过程中,必须复制相同的信息和功能传达给六个不同的存储和管理对象。
我们当然可以拥有混合了Windows企业架构,Azure云架构的程序,以及其他托管环境(例如Rackspace)和虚拟环境(例如Amazon)的应用程序。你可以建立有一点聚合力,但却不需要重写任何东西的程序,可以使它完全运行在Azure,Amazon或者其他环境中。
Robert:我阅读了Esri User Conference在1997年的一篇名为“Democratizing GIS: Are We There Yet?”的文章。你如何认为我们正走在GIS大众化的路上?
Scott:我们客服了大量的技术难关。现在的挑战是如何创建大量的可以互相协作的内容和团体。
Robert:对比基础设施服务,你如何评价平台服务的价值?
Scott:我认为所有关于平台服务和设施服务的讨论都是错误的,这造成了大量的混淆。我宁愿认为是“系统服务”。你利用恰当的技术建立一个系统,无论它是数据库技术还是客户端技术。当人还在讨论商业逻辑应该在数据库层还是在三层架构的中间层时,真正的答案应该是在哪里搭建更合适,在哪里你建立和管理一个系统更高效。
我真的很喜欢最新发布的Azure,因为它以实用性为立场,我们其实很对那些区别很模糊。坚持拒绝Azure作为平台服务的人正在减少,并且使用SQL Azure允许我们拥有虚拟机和数据库实例
这的确开发了很多将通常结构的系统迁移到云服务中的机会,并且可以利用云计算的架构和platform-as-a-service功能添加新的功能。我认为Azure和Amazon不是不同种类,而是不同的质量。他们都允许你建立云计算系统或者系统服务,并且你可以使用他们做层级服务,建立用户体验,甚至是数据库。
真正不同的是关系数据的存储质量,作为Web roles的托管程序的运行环境的质量,以及作为一个或另一个系统服务来建立和管理系统的简易程度。
Robert:谢谢你,Scott。我非常欣赏你的见解。
Scott:谢谢。