七、大规模服务资源管理 - buaa.edu.cnact.buaa.edu.cn/hsun/SOC2016/slides/07.pdf ·...

33
29/11/16 1 内容回顾 如何理解面向服务和面向对象的关系? 面向服务的软件开发和传统方法在整体思路上 有何不同? 基于面向服务的方法进行软件开发的主要环节 是什么? 服务计算面临什么样的挑战? 七、大规模服务资源管理 孙海龙 北京航空航天大学 20161122

Transcript of 七、大规模服务资源管理 - buaa.edu.cnact.buaa.edu.cn/hsun/SOC2016/slides/07.pdf ·...

  • 29/11/16

    1

    内容回顾 •  如何理解面向服务和面向对象的关系?

    •  面向服务的软件开发和传统方法在整体思路上有何不同?

    •  基于面向服务的方法进行软件开发的主要环节是什么?

    •  服务计算面临什么样的挑战?

    七、大规模服务资源管理

    孙海龙

    北京航空航天大学

    2016年11月22日

  • 29/11/16

    2

    提纲

    • 何谓服务资源 • 面临的主要问题 • 代表性研究工作 • 未来的发展趋势

    软件服务化 •  互联网上存在丰富的服务(软件)资源

    •  一些应用领域,经过长期积累,形成大量标准化、可复用的业务流程

    ... ...

    4

    •  大量公司提供了可调用的应用服务

    ... ...

  • 29/11/16

    3

    何谓“服务” ?

    •  服务的概念

    •  服务的存在形式 – 狭义:Web services – ⼴广义:通过标准接⼝口访问的软件功能实体

    •  Web services •  Web API

    Services are autonomous, platform-independent entities that can be described, published, discovered, and loosely coupled in novel ways-Papazoglou 2007

    思考:CORBA、EJB是服务吗?

    Web 服务 •  应用现状

    –  互联⽹网上的Web服务数量量少 •  Seekda:约28, 500个 •  Service Exchange: 约20,000个 •  2006年年UDDI的失败

    –  企业内不不乏Web服务的实际应⽤用 •  Verizon:企业内部部署4000余个WS

    •  学术界 –  热度不不减:ICWS, SCC, WWW, WI, SOSE, ICSOC、ECOWS –  关注点:服务发现、服务组合

    Web服务具有重要应用价值,但很长时间内没有跨出企业的边界!

  • 29/11/16

    4

    原因分析

    •  技术因素:效率低,自动服务组合难以实现 •  发现:主要是基于关键字等语法;语义实现复杂; •  组合:调⽤用接⼝口、服务⾏行行为(业务协议)难以匹配

    •  非技术因素: –  Web服务:基于Web,但未能体现Web的价值

    •  企业不不愿开放服务资源,可⽤用服务数量量极为有限 •  Metcalfe’s Law: ⽹网络的价值正⽐比于所连接⽤用户的平⽅方(George F. Gilder, 1993)

    对⽐比:Web 2.0,不不在于技术,在于应⽤用模式 •  重点:数据(UGC)、⼈人与⼈人之间的交流(SNS)

    8

    许多应用服务提供商将自己的平台以服务形式开放出来

  • 29/11/16

    5

    9

    10

  • 29/11/16

    6

    11

    2010EighthIEEEEuropeanConferenceonWebServicesInves&ga&ngwebAPIsontheWorldWideWeb

    SOAP为代表的传统Web服务在面对Web的高速发展时,显得有些笨重, RESTful更贴近Web、简单实用。

    ProgrammableWeb截止至2016.11.22日已收集API信息16176条

  • 29/11/16

    7

      传统的Web服务信息收集技术已经成熟,RESTful Web服务由于自身

    的新特点,不适用于传统方法,目前没有有效的收集、发现和组合

    方法。

    Client Server

    SOAP:Action,Parameter,Address,Data,Returns

    HTTP

    REST:HTTP Body:Data

    HTTP Head:Action,Parameter,Address,Returns

    SOAP vs. REST

    优点

    • 不限制语言、平台和传输 • 支持分布式计算环境 • 流行的Web服务标准,提供比许多服务标准更好的支持,如WS-* • 建立报错机制 • 可扩展性

    • 不限制语言和平台 • 小的学习过程,更少的依赖工具 • 比SOAP更容易开发 • 简洁,不需要附加消息层 • 更紧密的贴近Web本质

    不足

    • 概念更复杂 “heavier weight than REST” • 更多动词 • 更难开发,需要工具

    • 假设了一种点对点交互模型,对信息要传送通过多于一个中间媒体的分布式计算环境不合用 • 缺乏保障安全传输的标准 • 依赖HTTP传输

    13

    从Service composition 到 Service mashup

    •  Web service v.s. Web API –  Web service: 功能调⽤用 (规范、复杂) –  Web API:数据获取、功能调⽤用 (简单、灵活)

    •  很多企业通过Web API开放数据 –  Facebook –  GoogleMap –  Last.fm –  ProgrammableWeb

  • 29/11/16

    8

    Programmable Web 最近两周

    平均统计

    2013年11月14日统计结果

    服务资源的特点

    •  分布性 – 互联⽹网、局域⽹网

    •  大规模 –  Hidden services –  Potential services

    •  无序性 – 描述 – 组织、管理理 – 可信问题

    网络软件运行环境

    服务

    服务

    服务 服务

    服务

    服务 服务

    无序

    有序

    服务

    无序

    有序

    动态目标、阶段稳态

    网络化软件开发模式

    服务

  • 29/11/16

    9

    提纲

    • 何谓服务资源 • 面临的主要问题 • 代表性研究工作 • 未来的发展趋势

    一些挑战性问题 •  服务如何描述?

    •  服务如何发布?

    •  服务如何组织?

    •  如何进行服务发现?

    •  服务资源的质量如何管理?

    •  如何为服务组合提供更好的支持?

  • 29/11/16

    10

    提纲

    • 何谓服务资源 • 面临的主要问题 • 代表性研究工作 • 未来的发展趋势

    思路1:以UDDI为代表

    Business Registrations Businesses

    populate the registry with descriptions of the services they support

    2.

    Service Type Registrations

    SW companies, standards bodies, and programmers populate the registry with descriptions of different types of services

    1.

    Marketplaces, search engines, and business apps query the registry to discover services at other companies

    4.

    Business uses this data to facilitate easier integration with each other over the Web

    5.

    3. UBR assigns a programmatically unique identifier to each service and business registration

  • 29/11/16

    11

    思路2:搜索引擎

    URL

    HTML

    XML资源

    描述

    信息

    ①Crawler ③Annota&onExtractor

    ②Parser

    Repository

    Services

    Description

    Classes

    ④ Classifier

    服务与网页的区别是什么?

    服务描述

    •  WSDL文档 •  网页上的描述性信息 •  关键字 •  UDDI的模版:白页、黄页、绿页 •  Social tagging

  • 29/11/16

    12

    服务描述:主要工作

    •  基于关键字的方法:UDDI – 服务描述、操作名称、参数名称的精确匹配

    •  数据挖掘方法:Woogle、ServicePool – 关注服务的功能语义,借助聚类分析实现模糊匹配 – 未考虑服务接⼝口的组合问题,可能⽆无法完成调⽤用

    •  模式匹配方法:WSXplorer – 关注服务的接⼝口类型结构 – 描述不不⾜足时难以识别服务功能语义并进⾏行行模糊匹配

    •  语义匹配方法 – 借助语义本体描述功能语义,准确性较⾼高 – 依赖于预定义本体,且⽆无法适应动态变化的环境

    23

    Social Tagging:社会化标注

    A Ranking Method for Social-Annotation-Based Service Discovery. The 6th IEEE International Symposium on Service-Oriented System Engineering (SOSE), 2011

  • 29/11/16

    13

    服务标注模型

    服务1

    服务2

    操作11

    操作12

    操作13

    操作22

    操作21

    Tag1

    Tag2

    Tag3

    Tag4

    研究内容

    •  对Tag的挖掘-建立用户模型

    不同用户描述习惯差异带来的问

    例如 “dev”&”develop”

    “fun”&”funny”

    建立用户词汇模型

    分析用户词汇与全局词汇间关系

  • 29/11/16

    14

    研究内容

    ² 对Tag的挖掘-语义关系 –  包含关系、相似、相关关系 –  Weather包含Temperature的语义; ⽽而TimeZone与Zipcod

    e语义相似; Temperature与Date的语义则是相关关系

    网页主数据区的提取

    RESTfulWeb服务API详情页的识别

    结构化数据的抽取与转换

    28

    REST?

    Y

    service表operation表

    message表

    服务收集:以RESTful为例

  • 29/11/16

    15

    解析部分 爬虫部分

    页面过滤及页面主数据区提取

    HBase存取

    页面分析

    索引

    信息提取及结构化转换MySQL存取

    并行爬取控制器

    并行爬取线程

    Internet

    已经看过的页面

    DNS缓存DNS查询

    12

    3

    语法分析器4

    5

    有优先级的队列

    并行的连接提取器

    6

    7

    29

    Internet …

    Web服务

    业务流程

    开放API

    如何提高服务组合的效率?

    信息系统1

    信息系统2

    用户2 用户1

    关系的利用

    共享服务库

    服务关系

    关系的发现

    服务描述及关系识别

    面向服务组合的资源管理问题

    30

  • 29/11/16

    16

    服务资源管理研究的若干问题

    31

    • 服务资源的异构性同时体现在由不同层次和地域的开发者所提供的描述信息的异

    构,需要一致的描述模型

    • 服务关系:哪几类关系可作用于服务组合?如何描述服务关系?

    服务描述及其关系的识别

    • 大量组件服务的有效利用问题:现有服务复用主要基于组件服务,可否提高复用

    的粒度 → 通过挖掘组件服务间的可连接关系,构造潜在可组合服务

    • 大量组合流程的有效利用问题:已有组合流程结构庞大、功能复杂,整体复用较

    困难,如何发现其中可复用部分 → 分解组合流程,抽取可复用片段

    服务关系的发现

    • 缺乏针对服务关系粒度的发现技术

    • 现有服务发现方法依赖于开发者的主动查询,导致效率不高

    服务关系的利用

    定义组件服务、组合流程、服务关系的描

    述模型

    “自底向上”可组合服务构造及“自顶向下”组合流程分解

    组合流程的 自动发现技术

    服务关系挖掘

    服务的原始注册信息

    聚类挖掘

    挖掘结果信息

  • 29/11/16

    17

      相似服务被归类   类别有层次结构

    服务关系模型

    •  功能相似关系

    33

      前驱后继关系

      词与服务(方法)相关关系

    树模型

      寻找前驱后继   构造组合服务

    有向图模型

      根据词找相关服务   抽取服务主题词

    二分图模型

    功能相似挖掘面临的问题

    34

    服务功能信息从哪来?

    功能相似度如何计算?

    相似服务如何归类?

    WSDL文档

    服务所在网⻚页的描述文本

    服务功能 描述模型

    文本集合 相似度计算

    单词 相似度计算

    聚类 基于层次聚类

  • 29/11/16

    18

    功能相似关系挖掘流程

    35

    拆分后服务信息

    拆分后服务信息

    服务功能描述模型

    相似度计算

    相似度值

    相似度矩阵

    聚类

    类别树

    WordNet

    服务功能描述模型

    映射 映射

    数据

    算法

    结果

    文本预处理

    文本预处理

    服务功能描述模型

    36

    •  为什么定义这个模型 –  描述服务的功能,⽤用于计算服务相似度。

    •  依据 –  WSDL的结构 –  参考⽂文章的结构(标题/摘要,主体,评语等)

    •  模型的内容 –  由⼀一个三元组构成,S= –  T为标题信息:{ 服务名称、服务注释 } –  B为主体信息(包扩所有⽅方法):{ ⽅方法名称、⽅方法注释、输⼊入消息名称、输出消息名称 } –  A为额外描述信息 {⼀一系列列键值对形式的描述信息}

    WSDL文档 .. … … .. ..

    …..

    ..

    .. ..

    辅助描述信息文档 Key1=value1 Key2=value2 … …

    服务功能描述模型

    标题信息T

    主体信息B

    额外信息A服务功能描述模型的文本信息中有很多无用文本或非标准文本

    如何处理?

  • 29/11/16

    19

    文本预处理

    37

    •  文本预处理动机 –  原始本⽂文信息粗糙,不不准确 –  提⾼高相似度计算的效率和精确度

    •  预处理流程

    分词

    连接词 拆除

    停用词 过滤

    词形修正

    停用词 过滤

    名词提取

    单词集合

    字符串

    The getCurrenciesListWithDescription returns tns:CurrenciesListInfoMessage which contains a list

    of supported currency.

    The getCurrenciesListWithDescription returns tns CurrenciesListInfoMessage which contains a list of

    supported currency

    the get currencies list with description returns tns currencies list info message which contains a list of

    supported currency

    currencies list description currencies list message contains list supported currency

    currency list description currency list message contain list support currency

    currency(3) list(3) description message

    分词

    连接词拆除

    提供词过滤

    词形修正

    名词提取

    服务功能相似度计算

    38

      单词的相似度计算

      关键词集合的相似度计算

    max

    21)(),(

    21 2

    ),(log),(

    min2211

    d

    cclenwwSim wsencwsenc

    ⎥⎦

    ⎤⎢⎣

    −=∈∈

    21

    1221

    1 2),(),(

    ),(SS

    SwSimSwSimSSSimSet Sw Sw

    mmps +

    +=∑ ∑∈ ∈

      服务的相似度计算

    ).,.(*).,.(*

    ).,.(*),(

    21

    21

    21

    21

    AWAWSimSetBWBWSimSet

    TWTWSimSetWWSimService

    γβ

    α

    +

    +

    =

    单词集合

    单词

    服务

    词 词 词 词 词 词

    词集合 词集合 词集合

    服务A 服务B

  • 29/11/16

    20

    聚类

    39

    •  自主递增式聚类算法 –  ⾃自主决定类别数⽬目 –  ⽀支持增量量式聚类 –  考虑分裂与合并

    •  算法参数 –  允许最⼤大类直径(Dmax)

    •  子算法 –  最近/次近类别查找算法 –  类别分裂算法 –  类别合并算法 –  类别更更新算法

    若Sim(服务A,服务B)>1/Dmax, 则认为两服务功能相似,

    可被聚为一类。

    1 2 3

    1 2

    类别分裂示意流程

    类别合并示意流程

    1 2 3 45

    WSDL文件

    WSDL解析

    可连接性分析

    可视化

    JDOM

    Prefuse工具

    数据库

    前驱后继关系图

    前驱后继(可连接)关系挖掘流程

  • 29/11/16

    21

    可连接模式分析 • 根据实际服务组合调用情况,采用中间添加简单处理模块,服务的输出参数可以通过调换顺序、数据类型兼容、有选择传输来达到匹配输入参数的目的。

    • 参数顺序分析: u 当参数按照顺序进行比较的时候只要按顺序从队列中提取参数即可。

    u 当参数没有顺序时,只要统计参数的个数,比较两个方法的参数类型的个数就可以确定它们之间的关系。

    • 参数半匹配、全匹配分析: u 当全匹配时要求两个方法的参数个数完全一致。 u 半匹配时输出参数的个数大于或等于输入参数的个数,系统可以根据输入参数将一些不合适的输出参数给剔除掉。

    可连接模式分析 • 根据上面的分析产生了八种可连接模式:

    Ø 顺序、全匹配、类型一致模式 Ø 顺序、全匹配、类型兼容模式 Ø 顺序、半匹配、类型一致模式 Ø 顺序、半匹配、类型兼容模式 Ø 乱序、全匹配、类型一致模式 Ø 乱序、全匹配、类型兼容模式 Ø 乱序、半匹配、类型一致模式 Ø 乱序、半匹配、类型兼容模式

  • 29/11/16

    22

    词与服务相关关系挖掘流程

    43

    拆分后服务信息

    服务-词方法-词

    相关度计算

    词-服务相关度图

    词拆分&统计

    二分图构造

    数据

    算法

    结果

    词拆分和相关度计算

    44

    •  词拆分,统计 – 算法同相似挖掘中的⽂文本预处理理算法

    •  相关度计算 – 采⽤用⽬目前成熟的计算算法-TF-IDF

  • 29/11/16

    23

    提高开发效率的方法: 重用已有组合服务 •  提高复用的粒度

    – 现有⽅方法:组件服务 – 模块化、规范化的业务流程⽚片段具有更更⾼高的参考价值

    •  借鉴程序挖掘的思想,抽取可复用组合流程片段

    复用

    精化

    Process decomposition

    CS1 CS2 CSn

    Composition context

    Service repository

    Business knowledge repository

    R1 R2...

    Rn

    ...CS3

    R3

    Fragment query

    Process refining

    F3'F1'

    Fragment matching

    F1

    F2

    F3

    F2'

    45

    Business Process Decomposition based on Service Relevance Mining. WI-IAT, vol. 1, pp.573-580, 2010 IEEE/WIC/ACM International Joint Conference on Web Intelligence and Intelligent Agent Technology, 2010

    相关工作 •  基于知识匹配的程序分解

    – 基于⽬目标程序与领域知识间的匹配程度进⾏行行程序划分 – 需要事先⽣生成及描述领域知识,划分的准确度依赖于领域知识的质量量

    •  基于聚类分析的程序分解 – 基于软件组件间的相关性对系统进⾏行行划分,识别可以复⽤用的软件模块

    – 不不⾜足:应⽤用于服务组合时,难以保证模块内服务的可组合性

    •  基于结构约束的业务流程分解 – 基于业务流程的结构约束进⾏行行分解,保证⽚片段良构性 – 不不⾜足:不不涉及功能语义,难以保证功能聚合度

    46

    为了挖掘功能聚合度高、可供再次组合的流程片段,需要综合考虑服务相关性及流程结构

  • 29/11/16

    24

    片段可复用性的标准

    •  功能单一性:片段内部聚合度(Cohesion)越大越好

    •  调用依赖:片段之间耦合度(Correlation)越小越好

    47

    服务的关联性 服务的关联性 聚合度评估

    耦合度评估

    •  基本假设:服务频繁同现 → 领域关联性较强

    •  关联规则:si → sj (p, c),(服务关联程度的表示) – 置信度(c):在服务si出现的流程中,服务sj出现的概率,服务关联程度衡量量

    – ⽀支持度(p):服务si 和sj在所有流程中同时出现的概率,规则的可信程度衡量量

    服务关联性评估

    48

  • 29/11/16

    25

    a

    j

    i

    gf

    b

    c

    h

    d

    ea

    b c d e

    f g h

    i j

    a

    b

    f g

    i j

    c d e

    a

    b

    f g

    i j

    c d e

    qualityF1

    qualityF2 qualityF3

    a

    b

    f g

    c d e

    F1

    Step 1 Step 2

    Step 3Step 4The output RFT

    F5

    F4

    F2

    F3

    F1

    流程分解基本思路

    •  (1)对流程进行分解,形成层次化的良构片段树 •  (2)类似聚类分析,对片段树进行迭代收缩分析

    – 使⽤用贪婪策略略合并⾼高质量量的⽚片段对

    49

    选取可组合片段对

    计算片段对组合后的片段质量

    选择质量最高的片段对合并

    重新选取可组合片段对

    不存在新的可组合片段对时,退出

    服务推荐

    •  目标——挖掘用户反馈信息和服务信息,准确提取出用户偏好和领域特性,为用户提供个性化的服务推荐,提高服务选择的效率

    WSDL

    WSDL

    WSDL WSDL

    WSDL

    WSDL WSDL

    WSDL

    WSDL

    WSDL

    WSDL

    WSDL

  • 29/11/16

    26

    服务搜索引擎

    服务推荐

    相关性分析

    数据处理QoS预测

    反馈处理

    反馈监控

    数据集

    服务库

    服务推荐系统

    • 目标:考虑用户所处区域位置,向其推荐具有最优预测值的Web服务

    • 思想:地理位置临近的用户比距离较远的用户更容易获得相似的QoS体验

    • 用户贡献机制:用户向系统提交观察的Web服务QoS信息以获得推荐服务

    位置感知的服务推荐

    Personalized QoS-aware web service recommendation and visualization. IEEE Transactions on Services Computing. 2013

  • 29/11/16

    27

    • 输入:用户-服务矩阵(user-service matrix)每一个用户与一个RTT向量相关联

    • 输出:对目标用户(active user)未使用过的服务进行QoS预测,将具有最优预测值的服务推荐给用户

    • 算法的两个阶段 – 区域建模——线下计算

    • 区域特性 • 区域聚合

    – QOS预测——线上计算 • 邻居选择 •  QoS预测

    s1 s2 … sm

    u1 0 245 … 389

    u2 2023 342 … 0

    … … … … …

    un 0 3040 … 498

    用户-服务矩阵*

    位置感知的服务推荐

    时空感知的Web服务推荐

    s1 S2 … sm u1 ? 245 … 389 u2 2023 342 … ? … … … … … un ? 3040 … 498

    •  问题:如何根据已知用户的QoS,预测新用户的QoS,从而向用户推荐最佳的服务?

    •  分析: Web服务的调用的QoS(如:响应时间)不仅与用户地理位置相关,还与调用的时间相关 。

    用户调用Web服务的过程

    矩阵模型:不考虑时间因素

    张量模型:考虑时间因素

  • 29/11/16

    28

    基于非负张量分解的Web服务推荐 •  CP(CANDECOMP/PARAFAC)张量分解

    :NNCP方法

    •  实验结果 – 数据集:基于PlanetLab收集343个节点对5817个服务的调⽤用数据。每3⼩小时调⽤用⼀一次,共4天。

    在推荐的准

    确性方面,

    NNCP方法优

    于其他6种

    方法。

    组合服务的推荐

    •  组合过程中的服务发现

    •  关键问题:流程相似性判定 56

    服务库

  • 29/11/16

    29

    相关工作-1 •  基于静态结构的方法

    – 流程活动描述的相似性:Process variant – 流程结构相似性:有向图编辑距离 – 借鉴⽂文本处理理⽅方法:最⻓长共同⼦子序列列等 – 缺点:缺乏对流程动态⾏行行为特征的考虑,准确性低

    •  流程动态行为特征的重要性

    57

    (c)

    init

    distribution

    stubGeneration

    test

    (b)

    distribution

    deploy

    test

    init

    init

    (a)

    init

    distribution

    deploy

    test

    结构相差较大,功能相同

    结构相似,功能相差较大

    相关工作-2 •  基于动态行为特征的方法

    – 活动及消息交换序列列的相似性 – 轨迹等价性衡量量:因果轨迹图(Causality footprint) – 缺点:要求所⽐比较的流程活动间是⼀一对⼀一的关系,缺乏对局部与全局之间模糊匹配的⽀支持

    58

    局部-全局匹配

  • 29/11/16

    30

    • 面向服务的软件开发受到广泛关注 – 互联⽹网上出现越来越多的Web服务 – 通过组装现有Web服务,可以快速开发新的应⽤用软件

    • Web服务的可信性没有保证 – 服务通常属于不不同的⾃自治域,服务的执⾏行行过程对于服务使⽤用者既不不可⻅见⼜又不不可控

    – 缺乏可信、专业的第三⽅方认证机构对其质量量属性进⾏行行评估

    服务资源的质量:可信性

    • 目前的Web服务可信性评估主要有两种技术方向

    基于测试的可信性评估基于信誉度的

    可信性评估

    •  收集用户评价,计算出信誉度表征可信性 •  可以评估复杂的属性 •  利用前人经验,无需实际调用服务

    •  通过分析测试结果度量可信性 •  只能监测少数几个属性 •  测试服务耗费资源

  • 29/11/16

    31

    服务S1非常好

    我该信任服务S1么?

    管理配置

    注册服务

    管理员

    用户评价数据 Rating:

    服务信誉度

    Reputation:

    S S S

    S

    S

    S

    S

    Web服务

    服务可信性管理工具

    服务使用者A

    服务提供者

    服务使用者B

    提供服务

    使用服务

    基于信誉度的可信性评估

    提纲

    • 何谓服务资源 • 面临的主要问题 • 代表性研究工作 • 未来的发展趋势

  • 29/11/16

    32

    开放问题

    •  多种服务资源 –  Web API的描述和整合

    •  与IR/搜索引擎的融合 •  与社会网络的结合 •  服务的可信性问题 •  搜索即组合 •  组合服务的管理

    作业

    •  阅读论文 –  阅读与服务资源管理相关的学术论文,进行口述和回答我的提问; –  主要涉及以下问题:

    •  问题是什么?回答研究的背景和意义,清晰解读所研究的问题; •  提出的解决方法是什么? •  取得了什么样的效果? •  我对该工作的评价和进一步思考是什么?

  • 29/11/16

    33

    Q&A