写点什么

面向服务的虚拟网格简介

  • 2009-08-12
  • 本文字数:7504 字

    阅读完需:约 25 分钟

摘要:尽管 VSG 是一个新兴的业务概念,但它所使用的基础技术却可以追溯到几十年前,计算技术研究的早期。虽说如此,这些技术组合在一起却为计算机系统带来了非常重要的非功能性的能力。就像当年的 Intenet 一样,VSG 具有从根本上改变业务模式的能力,它在商业实体之间重新插入了中间人,但却是以软件的形式代替了人类。这种模式转变的关键在于服务,以及对互操作性和重用的抽象。

前言

企业 IT 新纪元的契机即将到来。IT 界如今的发展形势与上世纪 90 年代末导致.com 崩盘那种山雨欲来摇摇欲坠的情况完全相反。在那个疯狂投机的年代无数的弄潮儿犹如过江之鲫。然而,多数情况下,这些投机者所提出的技术,ROI,甚至对于目标客户(如果定义了客户的话)的商业价值都截然不同。

从业务的角度看,在.com 崩盘之后,经过了大规模的公司合并与阵痛过后深刻的反思,市场淘汰了大多数难以存活的想法。

并不能简单的判定实体性的企业因为有更多的“物质”基础就能“赢的竞争”。在人类第三个千年开始时的经济形势和.com 运动开始时的氛围已经大不一样了,伴随新的竞争者涌现,又有多少前浪消逝于沙滩上。

一点历史

如果把虚拟化、面向服务以及网格说成是最新的,伟大的新兴技术的代名词的话,那是再好不过了。唉,可惜事与愿违。夸得再好也不过说这个三角组合是“新瓶装旧酒”罢了。比如,我们来看看虚拟化。最早的虚拟化的尝试可以追溯到 50 多年前的 20 世纪 60 年代,IBM 在 IBM360/67 1 上进行的虚拟内存和硬件虚拟化的研究、曼切斯特大学 2 在 Atlas 计算机项目上进行的按需分页的研究以及 Burroughs B5000 3 的段内存设计等。这里仅列举了少数几个例子。如果我们把汇编程序和编译器也看作是一种虚拟的话,时间还可以往前至少推 10 年。

编译器让计算机程序员从使用电门开关或 0/1 写程序的苦役中解脱出来。编译器展现了物理计算机的一种理想的或者说成是虚拟的逻辑视图。说的具体点,由于硬件设计的限制,计算机总会存在一些架构方面的软肋(比如不能使用的内存边界,只能用于特殊用途的寄存器等)。编译器向程序员展现了统一的内存视图,使得程序员不再担心和应用程序并不相关的计算机结构的细节(比如面向寄存器还是面向堆栈的)。

同样,面向服务也是陈年佳酿。面向服务的源头可以追溯到 20 世纪 60 年代奥斯陆的挪威计算中心实验室开发的 SIMULA 语言。最初 SIMULA 用作一种仿真编程语言,但它的闪光之处仍然为通用编程语言所吸收:促进互操作性和重用,减低软件项目开发成本和时间。在 Intel,Cal Tech 以及 Stanford,SIMULA 和它的后继者被应用于 VLSI 的设计,它在 20 世纪 70 年代发展成为了 XEROX PARC 开发意义深远的 Smalltalk 语言的平台,其关键理念也融入了 C++ 语言并沿用至今。

最后,网格计算的起源的就众说纷纭了。你可以说网格开始于 20 世纪 60 年代末对于联网计算的初次尝试;或者 70 年代初的以以太网为中心的网络标准化。在 80 年代末和 90 年代初,将网格作为一种协作的,联邦的计算方式进行研究突飞猛进,如 Wisconsin 大学的 Condor 和 NeXT Computer 的 Zilla 这样的项目,它们旨在利用某种算法共享来最大化利用空闲的 CPU 计算能力(cycle harvesting)。紧随其后的是一些整合方面的尝试,如 NASA 的信息能源网格 (Information Power Grid)。网格计算真正形成其独特的体系还要属芝加哥大学的 Ian Foster 与其团队作为开山鼻祖创立了这一门户。

虚拟化,面向服务和网格计算等技术在其他图书、研究书籍或商业书籍中都有详细的介绍,而且描述得非常好,这里我们就赘述他人已经做得很好的工作了。

相反,我们要探讨的是虚拟化,面向服务和网格是如何相互作用,并且从根本上改变信息技术为业务所交付的经济价值,以及在这个过程中,那些依赖信息技术开展日常业务活动的公司又是如何受其影响的。作者们相信,我们就是历史拐点的见证人。

图 1 不求面面俱细,力图总结那些最终演变出 VSG 的关键技术彼此之间的历史关系。

图 1——虚拟化,面向服务以及网格的技术家谱

上层区块从 20 世纪 60 年代标准通用标记语言(SGML,Standard Generalized Markup Language)原型开始,他们是 IBM 的 Charles Goldfarb,Edward Mosher 和 Raymond Lone 等人开发的。超文本标记语言(HTML,Hypertext Markup Language) 自 SGML 派生而来,后来发展成了 Web 和因特网的语言。万维网(World Wide Web)最初是被用来描述人和人之间的交互接口,而它的某些部分演化成了 XML Web 服务,它实现了机器和机器之间的互操作通信,而这种机器到机器的接口使得模块化复合的面向服务架构(SOA)应用程序成为可能,首先由大型企业内部(由内及外模型)开始,逐渐发展到横跨企业之间(企业可大可小,由外及内模型)。

中间区块跟踪了虚拟化的演变过程。虚拟化最初应用于主机应用,最后发展到基于廉价处理器的计算机上,以管理程序 (hypervisor) 作为硬件与操作系统之间的中间层。

下层区块跟踪了计算机硬件的发展历史,起初是 50 年代的单指令流单数据流(SISD)的主机计算模型。为了提高吞吐率,人们改造了特定计算机的体系结构,使之可以运行多数据流的程序(SIMD)。这些特定的计算机要求高度规则的数据结构来利用到额外的计算能力,因此它们的适用性是有限的。这些限制在 SIMD 计算机中有所缓解,因为 SIMD 计算允许其成员计算机操作不同的数据。最初,成员计算机使用私有的高速通道连在一起,在一个房间内形成超级计算机集群。除了那些需要最高性能的应用,大部分应用都支付不起的这样的方案。到了网格计算的阶段,这种限制就完全消除了,因为在网格中,节点可以分布在不同的地理位置,甚至通过互联网连接起来。

VSG 在企业中使用尚不普及。然而,在《面向服务虚拟网格的商业价值》(Intel 出版社出版)这本书中,我们发现了许多公司应用的例子,只是名字不同而已。运用这项技术的公司往往比没有运用它的公司更具优势,而且,它们(使用 VSG 的公司)很可能拥有完全超出自身规模的经济影响力。

如果无法实行的话,对 VSG 的分析也就没有什么实际价值。因此,在我们建立好三个底层(技术)之间相互作用的力学框架之后,再去描述那些人们认为有用的策略和方法。通过这种方法,我们试图找到并记录那些在这一新环境下可能成功的方案。

我们默认这本书的读者已经熟悉虚拟化,面向服务和网格的基本知识,并且被他或她的组织委任来对 SVG 进行评估,甚至是提出采用 VSG 的方案,或者正在对这一流程寻求足够的洞察,以便在组织采用这些战略的时候能对人员作出有意义的指示。

在这个老树新花的环境中部署的资源被我们称为部署在 VSG 中。一方面这些资源被赋予了这些技术带来的特征,另一方面资源本身的技术也在不断发展,日新月异。

  • 虽然这些资源天生具有分布的,联邦的且重复的等特征,和网格中所看到的高性能计算的应用一样。但是,他们的普通特征更为明显。
  • 它们天生的面向服务的特点让它们具有高互操作性,并且在逻辑上他们和业务实体紧密对齐。
  • 虚拟性使得这些资源可以在逻辑上与运行它们的物理宿主分离,这样的分离有多种表现形式:一个强大的宿主可能支持一个逻辑实体的多个实例,而这个逻辑实体可能只是临时与宿主绑定的;出于容错,灾难恢复以及性能的考虑,实体还可以迁移到其他宿主。

VSG 并没有带来特别不同的能力,毕竟他们和传统信息技术架构一样,运行在相同的机器,网络和数据中心环境里。

从需求工程学借用一个词语,VSG 带来的是非功能性能力。若要将功能性和非能功能性能力做个比较的话,功能性能力的修改所改变的是系统的行为或功能,(译者注:而非功能性能力的改变是系统的 QoS,安全,性能等方面),但这不能说由 VSG 所带来的(非功能性)改变就不重要:

  • VSG 环境对处理家庭贷款或信用卡交易等仍然是非常有用的。
  • 从实用的目的出发,这些系统的性能提高是永无止尽的:如果负载使得系统变慢,总有方法来增加资源以保证响应时间,从而避免出现瓶颈。
  • 应可以通过兼容的协议将现有的原子服务组装起来产生新服务。如果这些原子服务已经存在,那么新服务几乎可以实时且自动地被组装起来。
  • 组件服务可以是内部开发,或外包出去。组件服务的规模以及粒度要比传统意义上的外包应用(如工资系统)要小的多。传统外包方式下,大公司签订一个工资系统服务可能需要数月的谈判,而在 VSG 环境下,引入一个外包组件从谈判到握手可能是自动的,机器驱动的过程。
  • VSG 环境下创建的组件服务和复合应用自然具备互操作性。

在 VSG 环境下,上面所提到的服务组件可能不会设计成一个功能完备的应用系统,相反可能被设计成应用系统的基本元件。我们将使用 servicelet 或 microservice 来指代这些服务元件。

再举一个例子,软件项目的外包通常需要服务请求者和服务提供者经历一个艰苦而漫长的过程。

60 年代的英特网通过去中介化(译者注:指得是有间接交易变成直接交易)的方法创造了数万亿资金的价值,从根本上消除了中间人,将生产者和消费者直接连接起来。

看上去似乎很讽刺,面向服务潜力无穷并将更加重要,而它将钟摆摇向一个相反的方向——重中介化 。只是此时的中间人不是人,而是机器,他们通过服务抽象进行相互通信。

在这个环境下,将服务商品化成为可能。服务可能最初是为某一特定组织而定制的,如今变成了可以被发现并通过标准接口实现互操作的知识产权的封装和价值单元。

随着服务市场的发展和成熟,不久的将来服务就可能像商品一样被交易,并且会有复杂的工具被开发出来,就如同期货市场一样。

在这全新的环境下,开发第一个新服务组件的早期开销将通过多实例化的方式分摊下去。重用降低了服务的单实例开销,从而减低了使用服务的业务应用的开发成本。对于服务消费者来说,这就是传统的基于 SOA 的应用实现带来的成本收益。将一个最初应用于内部而开发的服务市场化,也就可能为服务开发商带来额外的收入流,也就抵消了一部分开发的开支。因此,服务不再总是作为开支项出现在账簿上,相反它可能成为收入来源。

通过对服务进行显式(或隐式)SLA 的定义,使得复合应用程序(用 servicelets 构建的)还可具备自优化的能力。

在考虑为复合应用的内部和外部接口定义 SLA 时,自然会考虑到其他非功能性需求,如规则遵从或者服务质量以及性能标准等。

因此,在“去中介化”(disintermediation )到“重中介化”(reintermediation)的同时,应用程序和服务也经历了分离到聚合的过程。正如上文所提到的,组成应用程序的组件粒度将比今天所看到的还要小很多。例如,工资系统通常是作为一个整体的逻辑功能外包给服务提供者(如 EDS)。在 VSG 环境下,公司可以对以下不同方面进行自由搭配,这些方面包括业务逻辑软件,数据,存储,存取数据的数据库以及运行应用的服务器等。

在面向服务的生态系统里开发应用要求有一个相应的市场存在,这个市场上有广泛的 servicelets 以及广泛的调色板可供应用程序架构师和工程师选择来完成他们特定的目标。比如,出于灾难准备的原因,可能选择处于不同位置的封装存储与服务器托管的 servicelets 来实现某项功能。

搭建应用所选择的服务器事实上可能是一个虚拟的实例,而不是物理服务器。服务消费者不需要关心甚至感知不到他所购买的服务器实例是虚拟的还是物理的,只要它满足了预先达成的性能和安全等 SLA 约定。 通用的互操作性也将会催生出某些流行的服务组件的商品市场或期货市场。

相反,servicelets 也不一定是纯软件实体;某些功能也可以直接和物理世界交互:当某大学的一个学生使用课程注册系统时,注册流程可能会调用一个 servicelet 向某图书提供商(如 Amazon.com)购买相应的课本, Amazon.com 的 Web 服务接口将会触发一组事件,最后的结果是课本邮寄到了学生的地址。

上述事件链可能非常复杂,这本书的真正书商可能不是 Amazon.com,而是其合作的零售商。在整个事件链中, 信息按照需要进行流转,保证了每一个参与者按照合约合理结算,并且最终将课本送达到正确地点。

工业案例

由于业务应用的磋商和拆卸的过程都需要开支,所以如今的应用系统一般都会存活很久。拆卸过程也可能非常复杂 ,除了移除现有应用和设备,还要和新提供商磋商新的合同。VSG 环境使得这种动态的行为更容易操作 。今天,决策者瞬间就能够收集到所需的所有数据。可以为解决特定问题或支持某短期活动很方便地创建一个新应用,从而提高业务敏捷性。

让我们看看食品行业的市场分析员的一个例子,他要使用商务智能(BI,Business Intelligence)的方法对一组特定的产品进行购买模式的研究。

他获得了一家百货连锁店的客户忠诚度数据库的使用许可权。百货连锁店乐意向第三方授权(使用他们的客户忠诚度数据库),把从商业运作中产生的知识产权转化为额外的收入流。

看看百货连锁店方面,虚拟化和面向服务降低了这种成熟的公司再利用现有知识产权(以数据和流程的方式存在) 的门槛,从而在服务市场上找到增加收入的机会。

另一方面,服务的消费者也可能会发现集成这种 servicelets 的方式比用几年时间来开发并磨合一个系统的方式来的更为经济。

他租用了该客户忠诚度数据库的一次性使用的实例,找到某应用服务提供者(ASP),让他编配如下动作:

  • 从客户忠诚度数据库获取一份加密的拷贝。
  • 从中国的某存储服务提供商那里购买存储服务来存放数据库(数据库中存放上一步获得的数据)。
  • 从数据库独立软件提供商(ISV)的服务机构那里购买一个星期的使用授权。数据库 ISV 转身又从数据中心服务提供商那里租用两台服务器来运行一星期。
  • 从商务智能(BI)ISV 服务机构那里购买一星期的使用授权。
  • 给分析员所在的部门发一份账单。

分析员从他的个人终端进行数据查询,完成为期一周的调研工作。应用服务提供商,按照分析员的要求,在项目和交易完成之后,销毁所有的数据备份。这个场景中我们可以看到:

  • 所有的数据是在内存中解密的,而在此之前,数据是被加密的并且压缩的,窥伺数据的唯一的途径只能在处理器总线上附上一个编码分析器。所以,服务提供者宿主根本无法感知,也不可能窥伺到其客户所运行的应用。服务器是经过第三方认证(利用预先存在的信任链进行认证)的具有防篡改的能力。还有一个独立的安全服务提供者为广大客户进行数据中心的监控和认证,一旦某次运行的过程中敏感信息被打开,服务器被会自动关闭。如果在某数据中心提供的服务中,多次出现这种情况,那么这个数据中心的所有者可能会被吊销执照,从而无法继续向外提供服务。这样的大环境使得你可以把应用程序部署在世界上的任何位置的资源上。
  • 考虑到复合应用环境下每个参与者的需求,所有的数据传输都是加密的,并且双向认证。一般来说,总是假定交互的双方是可疑的,这样的安全检查的原则与在潜在可疑的因特网环境中进行交互没什么区别。对于回账(bill-back)和费用结算等操作,数据的私密性和安全性是格外重要的。以上场景还支持跨多个不同机构的防篡改的系统管理操作,当实验的基础设施环境完成工作下线之后,数据库所有者将得到证明以确认所有的数据备份都已经销毁。
  • 每个参与者得到与其功能匹配的受管资源的视图:宿主看到是物理资源的视图;大多数客户看到是虚拟资源的视图。实际上,物理资源和虚拟资源之间的区别也越来越模糊。

以上描述了一个高动态性,实时的,“即用即付”的基础设施使用场景。对于使用量随季节性变化很大的公司, 租用服务比部署服务器(大部分时间都是空闲的)要经济很多。

欲了解关于 VSG 的更多信息,请阅读由 Enrique Castro-leon,Jackson He,Mark Chang 和 Parviz 合著的《面向服务虚拟网格的商业价值》一书。

关于作者

Enrique Castro-Leon是 Intel 数字企业组的企业级架构师,数据中心架构师以及技术决策人。他的工作包括操作系统设计和架构,软件工程以及高性能计算,平台定义和业务开发等。他经常将新兴的技术和创新的商业模型应用于不断发展的新兴市场。他曾在多家公司,非营利组织和政府部门担任过技术和数据中心规划方面的咨询师。

他是一名 IT 梦想家,也曾担任过解决方案架构师,项目经理,还曾担任过技术总监,负责高级 POC 项目,向企业用户和 Intel 内部用户展示新技术的使用。他发布了 40 多篇文章,会议论文,技术战略管理方面甚至 SOA 和 Web 服务方面的白皮书。他的硕士和博士学位是在 Purdue 大学电子工程和计算机科学专业获得的。

Jackson He是 Intel 数字企业组的主管架构师,专攻易用性管理和企业级解决方案。他获得 Hawaii 大学的博士和 MBA 学位,拥有 20 多年的 IT 经验,从事过多种工作,如教书、编程、工程管理、数据中心维护、架构设计和企业级标准定义等。Jackson 是 Intel 在 OASIS,RosettaNet,以及分布式管理任务组的代表。从 2002 到 2004 年,他是 OASIS 的技术咨询组成员之一。今年来,他致力于动态 IT 环境下的企业基设管理,和平台能源效率的研究,他的研究课题颇为广泛,包括虚拟化,Web 服务,分布式计算等。他曾在 Intel 技术杂志和 IEEE 会议上发表过 20 多篇论文。

Mark Chang是 Intel 技术销售组的主要战略者,他专攻面向服务的企业、高级客户端系统的业务和全球技术战略。Mark 拥有 20 多年的企业经验,包括软件产品开发、数据中心现代化和虚拟化、统一消息服务部署和无线服务管理等。他参与过多个企业标准组织,定义 CIM 虚拟模型和相关的 Web 服务协议的标准。此外,Mark 和系统集成以及 IT 外部社区有着密切的联系。他拥有 Austin Texas 大学的硕士学位。

Parviz Peiravi 是 Intel 公司的主要架构师,负责全球企业级解决方案及设计。他在 Intel 有 11 年多的工作经历,主要负责设计和驱动面向服务的开发。


This article is based on material found in book The Business Value of Virtual Service-Oriented Grids by Enrique Castro-leon, Jackson He, Mark Chang and Parviz Peiravi. Visit the Intel Press web site to learn more about this book: www.intel.com/intelpress/sum_grid.htm .

No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 750-4744. Requests to the Publisher for permission should be addressed to the Publisher, Intel Press, Intel Corporation, 2111 NE 25 Avenue, JF3-330, Hillsboro, OR 97124-5961. E-mail: intelpress@intel.com .

2009-08-12 01:113187
用户头像

发布了 184 篇内容, 共 79.0 次阅读, 收获喜欢 7 次。

关注

评论

发布
暂无评论
发现更多内容

分布式数据库排序及优化

vivo互联网技术

分布式数据库

Python二分查找,字符串模板,textwrap模块,每天写写Python自然就会了,每日Python第2天

梦想橡皮擦

3月月更

几种如何判断环境是否连上网方法!推荐最后一种

华为云开发者联盟

网络 nodejs ipv4 上网 网络接口

CNCF Serverless工作流社区携手华为云FunctionGraph,开拓Serverless编排新时代

华为云开发者联盟

json Serverless 华为云 FunctionGraph CNCF Serverless Workflow

ScrollView 和 RelativeLayout两个布局技巧

逆锋起笔

android xml 3月月更 android布局

Java 中线程池的 7 种创建方式!

王磊

Java 面试

黄东旭: 关于基础软件产品价值的思考

PingCAP

MVCC 时光机:在 TiDB 的时空自由穿梭丨渡渡鸟复兴会赛队访谈

PingCAP

在阿里巴巴,我们如何先于用户发现和定位 Kubernetes 集群问题?

阿里巴巴云原生

阿里云 云原生 分享 KubeProbe

数据分析不能落地?快来围观,学会数据分析应用,一起升职加薪!

博文视点Broadview

测性能,拿周边|OceanBase 3.1.2版本邀你来玩

OceanBase 数据库

oceanbase OceanBase 开源 OceanBase 社区版

千万级学生管理系统的考试试卷存储方案

Geek_8d5fe5

「架构实战营」

Java培训高并发之线程的6种状态

@零度

线程 JAVA开发 状态

列存Delta表是个什么东东

华为云开发者联盟

存储 GaussDB(DWS) 列存表 delta表

峰会报名|从金融行业技术选型,看 RocketMQ 如何应对严苛挑战

阿里巴巴云原生

阿里云 RocketMQ 云原生 消息队列 峰会报名

千万级学生管理系统考试试卷存储方案

Geek_36cc7c

强大的JSON.stringify,你真的会使用吗?

战场小包

JavaScript 前端 3月月更

如何在windows下成功的编译和安装python组件hyperscan

华为云开发者联盟

正则表达式 windows hyperscan python组件 正则表达式引擎

安全大讲堂 | 2022产业趋势洞察:网络安全的下一个十年

腾讯安全云鼎实验室

网络安全 未来发展

方舟开发框架容器类API的介绍与使用

HarmonyOS开发者

方舟 HarmonyOS 开发框架

基于小熊派开发板设计的云端绿化管理系统

DS小龙哥

IoT 3月月更

【模块四】千万级学生管理系统考试试卷存储方案设计

yhjhero

#架构训练营

工作想法小计(4):2/28 - 3/4

非晓为骁

个人成长 工作 细节 工作想法

3月技术专题月火热开启!快来一睹为快!

用友BIP

用友 用友iuap

大数据培训:RDD、DataFrame的区别

@零度

大数据 spark

构建 Go 应用 docker 镜像的十八种姿势

万俊峰Kevin

微服务 web开发 go-zero docker image Go 语言

为什么说程序猿也要有产品思维

慕枫技术笔记

技术思维 内容合集 3月月更

uni-app技术分享| uni-app常见问题(二)

anyRTC开发者

uni-app 音视频 WebRTC 移动开发 视频通话

一图了解龙蜥社区 2 月运营大事件

OpenAnolis小助手

Linux 开源 操作系统 运营

【BBC learningenglish】with Tango

IT蜗壳-Tango

3月月更

前端实现word、excel、pdf、ppt、mp4、图片、文本等文件的预览

CRMEB

面向服务的虚拟网格简介_架构_Enrique Castro-Leon_InfoQ精选文章