服务计算,也称为面向服务的计算,可以定义为寻求开发计算抽象、体系结构、技术和工具以广泛支持服务。服务导向将物理、硬件和软件资产转变为一种范式,在这种范式中,用户和资产建立按需交互、绑定资源和运营,提供一种抽象层,将重点从基础设施和运营转移到服务。

但是,服务计算还没有充分发挥其潜力。技术进步为服务计算提供了越来越多的机会。为了避免过去的问题,这里首先评估了服务计算的当前状态,然后制定了一个利用新兴概念和技术来交付服务范式的全部潜力的策略。它确定了现实世界中服务计算中发展和潜在实现的主要障碍,并提出了研究方向,使服务计算领域能够重新定义自己,成为数字化进程中的强大引擎之一。

1 服务计算的演进

在过去的几十年里,计算技术在为越来越多的领域提供自动化解决方案方面取得了巨大的进步。在计算的早期,面临的挑战是以机器可读的格式表示信息,这种格式由比特和字节组成,称为数据。随着时间的推移,人们热衷于用意义补充数据,从而将其转化为信息。随着计算机技术的进一步发展,出现了在信息中增加推理的想法,从而产生了知识。因此,服务的抽象定义被用来满足行动和交付知识的需要,即为知识提供有用的方法。因此,服务事实上目前被认为是计算价值链中的最高层次。

在今天的社会和经济环境中,服务无处不在。这类服务包括医疗保健、财务管理、人力资源和旅游规划等等。服务与其他计算范式的区别在于它们在竞争环境中工作的能力,在竞争环境中区分相似服务的关键参数是它们的质量。知识的本身是不够的,但需要采取行动才能带来好处。在服务的应用中,使用服务质量(QoS)作为关键判别因素的能力,可以在提供关于“操作”在服务之间进行选择。

随着各经济体系的重大结构性转变,数据策略和创新必须为产业提供工具,以创造竞争优势,并为其服务增加价值。在线服务的进展正把互联网转变为一个全球工作场所、一个社交论坛、一个管理个人事务和促进协作的方法,以及一个提供服务的商业平台。此外,组织竞相为其在线服务提供接口,允许第三方开发者编写辅助程序,为原有服务增加新用途,丰富其功能和可访问性,并增强其灵活性。

Web 服务技术的开发在某种程度上独立于服务的概念。在过去,它们一直处于各种研究的中心。在企业市场中,现成的软件或硬件产品的销售正迅速被定制的Web 服务所取代,这些服务旨在解决个人问题。服务计算具有更广阔的视野,已成为一个跨学科的研究领域,研究 IT 服务行业普及背后的科学和技术。服务计算的最终目标是弥合 IT 和业务之间的差距,使 IT 服务能够更有效地运行业务服务。到目前为止,Web 服务一直是交付服务计算的关键技术。

服务计算旨在支持服务的创建和交付,服务包括分布在 Web 上的计算设备和软件组件,并由不同的组织提供(通常也是控制)。为了达到这个目标,标准化组织,例如W3C和OASIS ,已经领导了实施服务系统的规范化和标准化工作。在学术界,服务计算引起了广泛的关注。

尽管如此,服务计算的最新技术在很大程度上仍然停留在研究领域,其广泛应用的潜力在很大程度上尚未得到实现。一个关键的障碍是由无数常常相互竞争的 Web 服务标准造成的混乱,这些标准试图标准化服务生命周期的每一个方面。此外,现有的 Web 服务标准和技术没有为关键新兴领域的计算需求提供足够的支持,这些领域包括移动计算、云计算、大数据和社会计算,目前正在影响着全球商业的格局。这两个障碍(即 Web 服务标准的混乱和缺乏对新兴计算巨大挑战的支持)阻碍了更广泛和更快速的服务计算的采用。

重新审视服务范式与交付技术的叠加,尽管 Web 服务可能仍然与开发各种应用程序相关,但需要关注它们的底层服务需求。特别是,发展一种新的服务范式,其中包括可国际数据中心确定的四种技术,同时引进新技术,而不是强调扩大现有的网络服务标准和技术。

服务计算的一个目标是利用服务范式的功能和非功能组件的力量和简单性来构建模块化的软件应用程序,并为选择和组合服务提供更高层次的抽象,从而将它们提升到一级对象状态。面向服务的体系结构是一个独立于技术的框架,用于定义、注册和调用服务。然而,服务计算比面向服务的体系结构更广泛,包括业务流程建模、管理和分析的上层应用,以及服务数据管理和分析的底层应用。云计算作为一种新的服务交付模式的出现,激励了研究人员和从业人员探索在云中使用服务计算。已经有大量的研究致力于如何利用服务计算概念来促进云应用程序的开发。服务计算可以从移动计算、云计算、大数据和社会计算的出现中受益,并为新的方向做出贡献。

自从服务计算的概念出现以来,已经发表了许多观点和调研文章。本文的努力与以前的尝试有两个不同,首先,将服务计算与实现面向服务系统的技术分离开来,以充分利用服务计算的承诺和期望。其次,强调了服务计算对新兴计算趋势的贡献和作用。

2 服务计算研究面临的挑战

目前的服务计算研究主要集中在七个问题领域: 体系结构、规范语言、协议、框架、生命周期、服务质量,以及跨越自治企业边界建立信任和声誉。这些问题在新兴服务领域中表现得尤为明显。

服务计算中一个经常被忽视的战略挑战是分析为什么服务计算在现实世界中没有充分发挥其潜力,以及需要做些什么来改变这一点。阻碍服务计算转化为有效解决方案的一个障碍是,缺乏将复杂数据处理问题转化为常规服务的简单方法,以及通过以数据为中心的架构解决复杂服务交互的简单方法。一个重大的挑战是使在不同平台上工作的多个组织能够进行无缝合作,以满足消费者的需求。

服务计算与其他计算范式的区别在于它们在竞争环境中工作的能力,在竞争环境中区分相似服务的关键参数是它们的质量。自动化组织间服务组合的障碍包括组织层面的能力、信任、问责制、功能性和非功能性目标(包括安全和隐私)以及技术层面的交互协议和表示方面的差异。

服务计算中的四个新兴研究挑战是服务设计、服务组合、基于众包的声誉和物联网。首先,服务设计是服务计算中一个基本但尚未解决的研究问题。其次,在大规模 Web 和云服务系统、大数据和社交网络环境中服务组合存在着挑战。再次,众包是物联网部署的一种经济有效的方式,作为声誉计算的一个关键机制。最后,服务计算如何帮助实现物联网愿景和挑战。

2.1 服务设计中的挑战

服务设计是关于映射对服务的性质及其关系的正式理解。这是建立健全服务体系的重要前提。迄今为止,服务系统的建立缺乏足够严格的基础,无法对其进行推理。首选的方法是依赖于传统的软件工程方法,这些方法通常不考虑服务系统内在地将自治部分组合在一起这一事实。Web 技术潜在地为开发完善的服务系统提供了一个独特和统一的平台。然而,目前还没有一个全面的理论框架来定义和分析 Web 上的复杂服务系统。

2.2 服务混合调用的挑战

由于大数据的广泛成功,将大量的服务组合成一个连贯的系统是一个新兴的研究领域。2008年,一项调查发现互联网上有5077个 WSDL 描述的 Web 服务。2016年,在一个公共网站上注册的 Web 服务大约有15000个。此外,很大一部分现代 Web 服务是非 WSDL 描述的,例如那些基于云的 Web 服务。目前流行的云计算激发了基于云服务的快速增长,2013年的一项调查发现已经有了6686项云服务。在智能手机时代,数以百万计的应用程序可以从基于云的应用程序商店下载。截至2015年7月,Android 应用程序和苹果应用程序分别有160万和150万个。准确有效地从这些大规模存储库中搜索服务正在成为一个关键的挑战。

因为大数据可以被多个服务同时访问,大多数假设静态数据环境的现有服务选择、组合和推荐方法是不够的。应该探索处理一致性的组合技术。在物联网的背景下,智能城市可以被视为一个典型的大规模服务组合的例子,其中数百万不同且异构的数字设备和服务被动态地集成,以提供多种实时功能或用户定制的功能。从如此众多和不断变化的设备和服务中选择和组合服务,以实时和了解上下文的方式满足用户需求,是一项艰巨的任务。

在 Facebook 和 Twitter 等大型社交网络中,数十亿用户注册,大多数用户平均拥有数百个朋友或追随者(2010年 Facebook平均每个用户拥有338个朋友,2013年 Twitte平均每个用户拥有208个追随者) ,由此产生的大数据既复杂又庞大。基于社会关系的服务组合构成了根本性的严峻挑战。

2.3 基于众包声誉面临的挑战

信任在服务生态系统的功能中起着重要作用。然而,当提供类似功能的服务相互竞争时,很难建立信任。在社交网络中,声誉是根据消费者过去的行为来预测可信度的一种有效方法。在一个开放且常常是匿名的环境中,通常很难确定声誉。因此,声誉和众包是获得信任的重要途径。

计算一个社区中服务实体的声誉是通过收集该社区中所有个人用户对该实体的意见来实现的。通过社区内的合作,众包为数据收集提供了一个有效的手段。然而,在计算基于众包的声誉方面仍然存在着一些挑战。

2.3.1 众包的质量

众包与传统的用户反馈收集之间的主要区别在于,众包更有可能利用经济奖励和其他激励措施来激励参与。然而,目前还不清楚这些因素如何影响众包的质量。此外,用户的意见通常是模棱两可的,依赖于上下文,并基于个人偏好。歧义指的是用户表达的东西,而不是他们真正的想法。用户的意见也可能受到时间、地点和社会因素(例如,用户之间或用户与服务提供者之间的社会关系)的影响。一些用户可能对某些服务产品有特别的偏好。鉴于众包声誉受到几个相关因素的影响,因此很有必要预测众包声誉的结果。

2.3.2 测试平台

迄今为止,还没有标准化的测试平台来比较信任和声誉模型。人们需要设计适当的评估指标来比较服务的信任和声誉模型。

2.4 物联网的挑战

物联网是一个新兴的且有前途的领域,它提出把每一个有形的实体变成互联网上的一个节点。更具体地说,有形实体(“物”)是任何与互联网相连的传感器、照相机、显示器、智能手机或其他智能通信设备。物联网带来了两个根本性的挑战: 与物的沟通,以及对物的管理。通过向物联网提供通信和互操作性手段(如 REST 和服务组合模型) ,服务技术可以帮助解决这些挑战。一个挑战是资源受限,传统标准过于重量级,不适用于物联网。此外,由于架构上的差异,现有的服务组合模型不能直接用于物联网互操作。与单一类型的 Web 服务组件模型相比,物联网组件模型是异构和多层的(比如设备、数据、服务和组织)。物联网组合需要创新的模式。物联网的功能规范是一个关键的挑战。通过多样化的、移动的和情景感知的设备,数据和服务可以同时产生多样化的情景感知功能。因此,在物联网中,所需的组件功能比传统设置更加动态化,这在组合过程中带来了显著的复杂性。

简而言之,物联网涉及到整合可能数十亿的东西,并利用它们的数据和功能来提供有利于企业、行业和社会的新颖智能服务。与服务计算相关的基本物联网挑战有:

1) 持续维护物联网设备的网络个性和环境。特别地,物联网需要具有反映其物理空间的 Web 标识和 Web 表示(例如,Web 代理)。它们还需要在社会、环境、以用户为中心和应用程序环境中进行连接和沟通,并且这些环境需要得到维护和管理。

2)不断发现、整合和(重新)使用物联网的东西及其数据。具体来说,物联网环境是一个联邦环境,在这个环境中,事物及其数据、云服务和 IT 服务(例如,用于数据分析和可视化)通常由具有不同接口的独立供应商提供,还有业务、成本和 QoS 模型。为了提供新的互联网规模服务,物联网必须(重新)使用由他人部署的物联网内容和由他人为自己的目的收集的数据。

3 服务计算的方向

根据前面提到的主要挑战,我们现在提出一个服务计算的研究路线图。路线图集中在四个新兴的研究领域,即服务设计、服务组合、基于众包的声誉和物联网。

3.1 服务设计

数据库、软件工程和分布式系统的研究为服务设计奠定了基础。服务系统的设计应该建立在一个正式的服务模型基础上,该模型能够有效地访问具有不同功能的大型服务空间。服务模型可以支持服务访问,就像关系模型支持结构化数据访问一样。由于通常需要服务组合来满足复杂的用户请求,因此服务模型支持不同服务及其操作之间的依赖关系非常重要。与关系模型类似,服务模型应该支持服务查询代数和演算的设计,允许普通用户以高效透明的方式声明性查询多个服务。此外,服务查询优化应该不仅仅是生成有效的查询执行计划。由于大量的服务提供商可能会竞相提供类似的功能,服务模型的设计应该支持实现优化策略,以便根据预期用户提供的质量找到“最佳”服务。

服务模型通过定义一组代数运算符提供了将服务作为一级对象进行操作的标准方法。其中包括从服务中选择特定的操作,以及基于质量的服务选择和跨多个服务的混搭操作符,以形成组合服务。这些操作符的实现可以生成服务执行计划,用户可以直接使用这些计划来访问服务。鉴于功能和质量的依赖,服务模型比关系数据模型更复杂。

特别是,服务的三个关键特性是至关重要的: 功能、行为和质量。功能性由服务提供的操作指定; 行为反映服务操作如何被调用,并由服务操作之间的依赖约束决定; 质量决定服务的非功能属性。可行的服务查询语言应该允许用户定位和调用他们所需的功能,选择满足其质量要求的最佳服务提供者,并在需要多个服务的功能时生成服务混搭。

设计服务混搭的一个重要方法是不从一个角度来设计,而是从两个或多个自治方之间的交互表示来设计。协议是交互的规范,刻意忽略服务的实现,但描述为交互,协议促进了异构和自治服务之间的互操作性。协议采用新方法来适应数据表示,但需要进一步的研究来弥合交互和数据之间的差距。一个重要的方向是将社会技术交互正式化,作为自治服务治理的基础。

3.2 服务混搭

大规模 Web 和云服务结合的服务计算

大规模 Web 和云服务的结合扩展到了非 WSDL 描述的服务或纯文本描述的服务。例如, programmableweb.com 提供了超过10,000个 API 服务和超过6,000个服务混搭,其中绝大多数以纯文本形式描述。网络信息抽取、自然语言处理、数据和文本挖掘、各种分类和信息检索技术可以用来提取有用的语义、分组相关服务和检测新的组合模式。尽管如此,由有限的术语加上服务提供商使用的不同命名惯例组成的服务说明提出了新的挑战,需要技术创新来推进服务计算和所有相关领域的最新技术。此外,软件系统可能需要在其生命周期中不断发展,并能够处理其运行环境中的变化和其工作流日益增加的复杂性。自适应软件对其行为进行评估,并根据评估结果进行调整,以解决问题,提高性能。

云计算环境为部署服务提供了一个有吸引力的选择,因为它提供了潜在的可伸缩性和可访问性。然而,它引入了与以下方面有关的问题:

  1. 维护性资源不在服务提供者的显式控制之下。

  2. 云安全可能不在服务提供商的企业边界内。

  3. 服务水平协议(SLA)资源分配是云提供商的责任。例如,服务可能不可用,这不仅是由于服务提供者的更新,而且还由于云提供者的更新。

    这些问题必须在服务转移到云中以及云中的容器时得到解决。

大数据驱动的服务计算

新的服务选择和推荐技术是利用大数据研究成果的关键方法。当前大数据研究的一个重要课题是在线处理数据的算法和模型的开发。在线服务混搭可能为实现可扩展和自适应的组合解决方案以处理大规模、高度动态和多样化的大数据服务提供了一个有前途的方向。另一个重要的因素是人类如何解释服务计算和大数据框架的结果。因此,将大数据分析框架与它们所服务的人类的性质联系起来将变得越来越重要。

大规模社交网络中的服务选择、推荐和混合调用应该结合社交网络和复杂网络分析方法,以及可信计算技术。一个方向是将记录服务用户与服务数据之间的交互的社交网络数据结合起来,以检测服务之间的隐藏关系并生成潜在的服务。特别地,通过社交媒体服务展示的用户活动,如发布历史、问题和服务反馈,可以带来新颖的洞察力,以更好地理解和利用传统和新兴服务。例如,可以从社交媒体或电子商务平台记录的事件日志中检测到用户行为模式,并用于发现业务流程挖掘的潜在知识。此外,新兴服务可能会带来超越传统服务的QoS 特性,比如可靠性、可用性和响应时间。可以通过捕捉用户个人判断的社交媒体服务提取出反映用户选择和服务兴趣的领域质量特征。

3.3 基于众包的声誉

众包的质量

货币或其他兴趣因素会影响众包选择服务的数据质量,调查这些利益因素可以得到对众包的可靠性和众包贡献者的范围的影响。研究影响众包数据质量的三个因素未模糊性,语境依赖性和个人偏好。对于模糊性问题,应该集中在如何设计信任评估问题和度量指标以及人机交互,通过与认知科学和人机交互研究的合作,精确捕捉用户与信任相关的感知。语境依赖性与个体偏好的区别在于前者更多地依赖于客观因素,如时间、地点和社会关系,而后者更多地依赖于主观因素,如个人经验。这两种因素,可能会同时影响对方。研究应着眼于如何建立这两组因素之间的相互关系模型,以及如何将它们结合起来,以预测它们对众包数据质量的影响。

众包贡献者的可信度

人员(即用户或其他服务)的可信度决定了其他服务消费者可能相信其报告的关于其所调用的服务评级,这可以区分服务信任和反馈信任。例如,作为服务提供者不值得信任的服务可能作为判断其他服务提供者行为的依据而值得信任,反之亦然,还应探讨选择具有不同成本和可信赖程度的众包用户的折衷战略。选择最合适的众包贡献者或众包工作者将需要互动和组合来自贡献者、服务提供者和第三方来源的服务,如工作列表和社交媒体。

3.4 物联网

在传统的服务计算中,重点是找到有效的组件服务。在新兴物联网架构中,需要找到组件服务、云平台服务支持的数据服务和设备的有效组合。组件服务是物联网不可或缺的一部分,因为它们需要在任何地方管理设备 Web 表示、上下文和相关数据处理服务,而不需要依赖计算中心。

作为对当前服务发现和集成工作的补充,物联网研究的一个重要而新颖的方向在于设备发现和集成领域。语义传感器网络(SSN)和 OpenIoT的现有成果为物联网设备发现和集成提供了一个设备层架构和相关功能。SSN 定义了一个本体,用于描述物联网事物,并从它们产生的数据的属性中找到设备。尽管如此,由于物联网的功能和访问方法各不相同,单一的统一本体不可能覆盖高度异构的物联网空间。信息检索和文本挖掘技术可以用来提高设备发现的准确性。

通过发现事物之间的相互关系,可以极大地促进物联网事物的整合。然而,物联网事物之间的相关性通常很难发现。不像人类社交网络,人之间有着良好的联系,事物之间的显性联系通常是有限的。一个方向是多跳连接,它利用人与事物之间的交互来关联物联网事物。

基于知识图谱的方法和机器学习技术可以帮助发现物联网事物之间隐藏的关系,从而建议有趣而新颖的集成模式。

4 小结

服务计算支持着移动计算、云计算、大数据、社会计算等新兴计算领域的进步,其潜力远远大于迄今为止所取得的成就。将服务计算带到创新的新高度,即要使服务计算范式获得成功,就需要将其与当今的技术分离开来。那些挑战是困难的,但回报是巨大的,服务计算没有理由不为计算机科学和社会带来巨大的利益。

【关联阅读】

  • 架构软件工程的未来(精要版)

  • 架构软件工程的未来

  • 软件依赖的一知半解

  • 软件系统的多维性能模型

  • 嵌入式开源软件的十大弊端

  • 软件开发 中的 10个 认知偏差

  • 关于软件开发,都应该知道的10个常识

  • 关于软件研发生产力的误区与思考

  • 远程软件工程师的10个最佳实践

  • 软件架构的10个常见模式

  • 微服务的隐性收益

  • 服务可用性的一知半解

  • IoT云服务连接性的方式