Novell SLES Mono扩展可能将Windows推向云中的大型机

日期: 2009-10-08 作者:Wayne Kernochan翻译:黄永兵 来源:TechTarget中国 英文

前不久随Novell SUSE Linux Enterprise Server(SLES)11发布的Mono扩展允许Visual Studio用户将他们用ASP.NET编写的Windows应用程序移植到SUSE Linux上运行,Mono扩展对那些希望在大型机上使用云计算的大型企业可能非常有用。对此大家是不是有些困惑?   近年来,IBM通过加强Linux应用程序在大型机上的应用,为大型企业降低了总体拥有成本(TCO),目前企业正在研究云计算在成本节约方面的潜力。   云计算要求用户开辟类似面向服务架构(SOA)的应用程序组,并对其进行虚拟化,进而有可能将它们迁移到由服务商提供的大型服务器农场……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

前不久随Novell SUSE Linux Enterprise Server(SLES)11发布的Mono扩展允许Visual Studio用户将他们用ASP.NET编写的Windows应用程序移植到SUSE Linux上运行,Mono扩展对那些希望在大型机上使用云计算的大型企业可能非常有用。对此大家是不是有些困惑?

  近年来,IBM通过加强Linux应用程序在大型机上的应用,为大型企业降低了总体拥有成本(TCO),目前企业正在研究云计算在成本节约方面的潜力。

  云计算要求用户开辟类似面向服务架构(SOA)的应用程序组,并对其进行虚拟化,进而有可能将它们迁移到由服务商提供的大型服务器农场上运行,如亚马逊的EC2,反过来,这些服务商需跨大规模服务器农场实现负载均衡,并为企业提供连接,让他们可以将数据中心的每项服务都可以顺利迁移到云中。

  对于云计算服务商而言,采用大型机作为服务器可能是最理想的选择,它们具有超级可扩展性,每个系统可以运行数百个应用程序,仅需要很少的管理,已经证明其稳定性非常好,且可以降低能源消耗,未来几年云计算将会非常看重能源的消耗。

  这个解决方案最主要的问题是大型机并不适合支持云计算需要的服务,也就是说,大型机不能处理其中一些服务。在过去3年中,大型机已经增加了软件支持和Web连接,可以和Windows、Linux或Unix服务器媲美,已经证明它有能力支持关键的分布式和Web Linux应用程序。但大型机不能有效地支持Windows应用程序组合。

  你可以把它当做市场三个部分的交集:大型企业IT用户,云计算服务商和大型机供应商。大型企业IT用户希望将应用迁移到云中可以节省成本,这意味着要迁移Windows应用程序,因为Windows应用程序的管理成本相对较大。为了谋求利润的最大化,云计算服务商希望为客户的应用程序提供最佳性价比的平台,通常这个平台是大型机,大型机供应商希望通过支持云计算,预防搅乱大型企业中大型机市场,但问题是大型机不支持Windows。

  为什么大型机缺乏对Windows的支持

  据IBM透露,这一切都源于大字节序和小字节序,字节序指的是计算机是从最大位地址向下寻址(大字节序),还是从最小位地址向上寻址(小字节序),当操作系统在执行写操作时,大型机硬件是大字节序,而Windows只能运行在小字节序模式下,此外,IBM的虚拟化技术,包括固件也针对大字节序进行了优化。IBM曾经想出了如何在z/OS上运行Windows,但因为IBM虚拟化是基于大字节序硬编码的,因此不能在大型机上虚拟Windows,在大型机上只能有一个Windows实例,在今天的云环境中,在大型机上仅运行一个Windows应用程序,那成本也太高了。

  直到最近,为了将Windows平台的应用程序迁移到大型机上(反之亦然),用户不得不选择专业的移植公司,如Microfocus,Blue Phoenix或Servoy,单独移植每个应用程序,有些应用程序很容易就从z/OS移植到Windows了,特别是那些使用COBOL编写的程序,依赖于CICS或DB2的应用程序也相当简单。依赖于DB2或IBM中间件的Windows应用程序也很容易从Windows移植到大型机上,但公司一般会在Windows平台和大型机之间移植很多应用程序,移植任务费时少则一年,多则更长。

  过去5年事情发生了很大的变化,首先,大型机可以建立成一个Linux平台了,其次,微软和Sun恢复了友好关系,让Windows应用程序可以更快速地迁移到Linux了。例如,现在如果企业希望将Windows应用程序迁移到大型机,一个办法就是使用Java重新编码成适合Linux运行的版本(注意不是所有Linux版本都能运行在大型机上)。

  但许多Windows应用程序,特别是很古老的程序,不仅仅需要重新编译,可能需要大量修改代码才行,这些应用程序通常都包括特定Windows环境的硬编码。因此,将Linux推向大型机有助于加速移植,但从Wintel大规模移植服务到大型机仍然是一项艰巨的任务。这就是为什么说SLES Mono扩展是如此重要的一步,Mono是一个开源.Net框架,它可以跨平台运行,包括大型机上的SLES,目前很大一部分Windows应用程序(有人估计有50%或更多)依赖于.Net框架,通过为Visual Studio提供“双编译”功能,让它可以同时开发出可运行在Windows和SLES 11上的.Net程序。Mono扩展允许用户创建一个与Windows应用程序相同版本的大型机程序,最棒的是不需要修改任何代码,或进行语言转换。

  大型机在云中的影响

  我们假设你愿意采用云服务商提供的大型机功能,除了现有Web服务应用程序可以迁移到云提供商的Windows平台,你还可以采取额外的步骤,让相应的服务运行在其它平台上(如Linux刀片,Linux服务器和大型机)。

  1.如果可能,重写代码,只引用.Net,如果是Web代码,可能不需要重写,对于大部分最近编写的应用程序,即使需要重新编写,也只会修改其中一小部分。

  2.使用Visual Studio重新编译服务。

  3.使用SLES  Mono扩展生成Linux版本和其它Mono支持的平台对应的版本。

  4.将所有版本传给云提供商,就可以在大型机、Windows服务器或Linux服务器上运行应用程序了,而这对于最终用户时透明的。如果应用程序运行在大型机上,它将加入大型机虚拟机上其它Linux应用程序或应用程序实例。

  云计算不是SLES Mono扩展唯一可能的应用,用户也可以使用Mono扩展执行Linux应用服务器整合,可以将部分Windows应用程序整合到Linux服务器上。

  大部分现有大型企业的不依赖于.Net的Windows应用程序都可以迁移到大型机上,一种办法是在Linux平台下模仿Windows平台的组件特性,另一种办法是全部使用.Net重写代码。在接下来的两年里,我预计这两种办法都会得到Novell和其它厂家更好的支持,因此迁移Windows应用程序到大型机将会越来越流行。

  z/OS作为移植的目标也正成为可能,Mantissa软件公司已经发布了一款叫做z/VOS的Beta版产品,它可以在z/OS上仿真Windows,有经验的用户建议将Windows应用程序移植到大型机上的Linux可能是首选办法。

  对于SLES Mono扩展,用户真正关心的可能不是它是否支持将所有Windows应用程序移植到大型机上,而是关心云计算的未来,他们希望大型机真正成为大型企业有价值的计算平台。

  为了达到预期的目标,用户应该仔细调查研究Mono扩展,同时评估企业关键应用程序的可移植性。

作者

Wayne Kernochan
Wayne Kernochan

Infostructure Associates主席

相关推荐