Web 服务策略断言语言 (WS-PolicyAssertions)

原文:http://www.microsoft.com/china/msdn/library/webservices/webservices/WebServicesPolicyAssertionsLanguage(WS-PolicyAssertions).mspx

Web 服务策略断言语言 (WS-PolicyAssertions)

发布日期: 4/26/2004 | 更新日期: 4/26/2004

版本 1.1

2003 年 5 月 28 日

作者

Don Box,Microsoft

Maryann Hondo,IBM

Chris Kaler,Microsoft

Hiroshi Maruyama,IBM

Anthony Nadalin(编辑),IBM

Nataraj Nagaratnam,IBM

Paul Patrick,BEA

Claus von Riegen,SAP

John Shewchuk,Microsoft

*
本页内容
1. 简介1. 简介
2. 标志和术语2. 标志和术语
3. 常规断言3. 常规断言
4. 安全性考虑事项4. 安全性考虑事项
5. 致谢5. 致谢
6. 参考资料6. 参考资料
附录 I. 策略的 XPath 表达式附录 I. 策略的 XPath 表达式
附录 II.消息部分选择函数附录 II.消息部分选择函数

版权声明

_ 2001、2002、2003 BEA Systems, Inc, International Business Machines Corporation, Microsoft Corporation, SAP AG。保留所有权利。

BEA、IBM、Microsoft 和 SAP(统称为“作者”)谨授予您通过任何介质复制和公开此 WS-PolicyAssertions 规范的权利,且不需要任何中间费用或特许权,前提是您在 WS-PolicyAssertions 规范的所有的完整或不完整副本中包含了以下内容:

指向此处规范的链接或 URL

WS-PolicyAssertion 规范中所注明的版权声明。

除了以上授予的版权许可证以外,作者没有以明示或暗示方式授予任何他们拥有或控制的知识产权(包括专利)。

此 WS-POLICYASSERTIONS 规范是“按原样”提供的,作者不作任何明示或暗示的陈述或担保,包括(但不限于)对其适销性、针对特殊目的的适用性、无侵权性以及所有权的担保;不担保 WS-POLICYASSERTIONS 规范内容适用于任何用途,也不担保这些内容的实施将不会侵犯任何第三方的专利、所有权、商标或其他权利。

作者将不对由于使用或分发 WS-POLICYASSERTIONS 规范产生的任何(或与之相关的)直接、间接、特殊、意外或其他损失负责。

WS-PolicyAssertions 规范在最终发布以前可能会发生变化,因此您在使用此规范的内容时必须注意不能完全依赖此规范的内容。

未获得事先明确的书面授权,不得以任何方式使用作者的名称和商标,包括与该规范或其内容相关的广告或宣传。WS-PolicyAssertions 规范中的版权权利任何时候都由作者保留。

没有以暗示、禁止反言或任何其他方式授予其他权利。

摘要

本文档指定了一组公共的、可以在策略中指定的消息策略断言。

可组合的 (Composable) 的结构

通过使用 XML、SOAP 和 WSDL 可扩展性模式,WS* 规范旨在通过互相组合来提供丰富的 Web 服务环境。WS-PolicyAssertions 本身不为 Web 服务提供协商解决方案。WS-PolicyAssertions 是一个构造块,它与其他 Web 服务和特定于应用程序的协议一起使用,以适应各种各样的策略交换模型。

状态

此 WS-PolicyAssertions 规范是首度公开的草拟版,仅作为查看和评估使用。BEA、IBM、Microsoft 和 SAP 希望在不久的将来能征得您的投稿和建议。无论怎样,BEA、IBM、Microsoft 和 SAP 不以任何方式就此规范做出担保或陈述。

目录

1. 简介

该规范定义了与 WS-Policy [WS-Policy] 一起使用的常规的、与消息处理相关的断言。

1.1 目标

WS-PolicyAssertions 的目标是提供初始的断言集,以满足 Web 服务应用程序的一些普通需求。

1.2 示例

以下示例描述了一个策略表达式:

001 <wsp:Policy xmlns:x="..."> 
002   <wsp:All> 
003     <wsp:TextEncoding wsp:Usage="wsp:Required"  Encoding="iso-8859-5" /> 
004     <wsp:SpecVersion wsp:Usage="wsp:Required" URI="http://schemas.xmlsoap.org/ws/2002/12/policy" /> 
005     <wsp:ExactlyOne> 
006       <wsp:Language wsp:Usage="wsp:Required" 
wsp:Preference="10" Language="da" /> 
007       <wsp:Language wsp:Usage="wsp:Required" 
wsp:Preference="7" Language="en-gb" /> 
008       <wsp:Language wsp:Usage="wsp:Required" 
wsp:Preference="1" Language="en" /> 
009     </wsp:ExactlyOne> 
010   </wsp:All> 
011 </wsp:Policy> 

在本示例中,我们描述了常规策略的表达式。行 3 表示进行文本编码的特定策略断言。

行 4 描述了对规范进行引用的断言。

5-9 行表示用来产生策略断言集的 <wsp:ExactlyOne> 策略运算符。即有效策略必须包含且仅包含一条所包含的断言(6-8 行)。

返回页首返回页首

2. 标志和术语

这部分说明了在此规范中使用的词语、命名空间和术语。

2.1 词语约定

本文档中的关键字“必须 (MUST)”、“绝不可以 (MUST NOT)”、“需要的 (REQUIRED)”、“将 (SHALL)”、“将不 (SHALL NOT)”、“应该 (SHOULD)”、“不应该 (SHOULD NOT)”、“推荐的 (RECOMMENDED)”、“可以 (MAY)”和“可选的 (OPTIONAL)”将按 RFC 2119 中描述的进行解释。

命名空间 [XML-NS] URI(常规形式为 "some-URI")表示 RFC 2396 [RFC 2396] 中中定义的一些应用程序相关或上下文相关的 URI。

2.2 命名空间

实现此规范时“必须”使用到的 XML 命名空间 URI 是:

http://schemas.xmlsoap.org/ws/2002/12/policy

用于 WS-PolicyAssertions 构造的 XML 方案的标准化副本可以通过解析 URI “http://schemas.xmlsoap.org/ws/2002/12/policy” 来获得。

本文档使用了以下命名空间:

前缀命名空间

S

http://www.w3.org/2002/06/soap-envelope

xsd

http://www.w3.org/2001/XMLSchema

wsse

http://schemas.xmlsoap.org/ws/2002/12/secext

wsp

http://schemas.xmlsoap.org/ws/2002/12/policy

wsu

ttp://schemas.xmlsoap.org/ws/2002/07/utility

2.3 方案文件

此规范的 XML 方案 [OK] 可能位于:

http://schemas.xmlsoap.org/ws/2002/12/policy

(还请参阅附录 III)。

在此文档中,引用被指向实用工具方案 (http://schemas.xmlsoap.org/ws/2002/07/utility) 中的 wsu:Id 属性和 <wsu:Created><wsu:Expires> 元素。wsu:Id 属性、<wsu:Created> <wsu:Expires> 元素被添加至实用工具方案中,目的是使其他需要类似 ID 或时间戳的规范可以引用它(如此处一样)。

2.4 术语

我们介绍了本文档中用到的以下术语:

策略 (Policy) 策略是一组特定于域名的策略断言。

策略断言 (Policy Assertion) 策略断言 表示单独的首选项、需求、功能或其他属性。

返回页首返回页首

3. 常规断言

本部分描述了一组可以在策略表达式中使用的策略断言。除非特别注明,否则这些断言可以同时被 Web 服务和客户端使用。

WS-Policy [WS-Policy] 识别有效策略表达式的特性。例如,必须为断言指定用法。当此处识别的断言与其他断言组合时,必须遵从在 WS-Policy 中定义的规则。

3.1 TextEncoding 断言

Web 服务可以支持多个编码文本数据的字符集(包括 XML 1.0)。例如,ISO-8859-1ISO-8859-5UTF-8。在这种情况下,需要一种机制来表明支持哪种字符编码。<wsp:TextEncoding> 元素用来表明这一点。

该元素使用 XML 1.0(EncName 产品)4.3.3 节中描述的语法。

<wsp:TextEncoding> 的方案大致如下:

<wsp:TextEncoding Encoding="..." wsp:Usage="..."? wsp:Preference="..."? > ... 
</wsp:TextEncoding>

下面描述了以上概述方案中列出的属性和标记:

/TextEncoding

它表明支持的字符集。

/TextEncoding/@Encoding

该值按 XML 1.0 版本2 [XML] 中 4.3.3 节的定义进行指定。

/TextEncoding/@wsp:Usage

该属性表明每个 WS-Policy [WS-Policy] 中此断言的用法(如必需的、可选的等)。

/TextEncoding/@wsp:Preference

此属性指定了该特定选择的首选项。首选项表示为一个 xsd:int [XMLSchema2]。首选项的值越高,则表示的首选项权重就越大。如果没有指定首选项,则假定其值为 "0"。

/TextEncoding/{any}

可以指定其他的子元素,但它们“绝不可以”与其父元素的语义冲突;如果元素没有被识别,则“应该”忽略它。

/TextEncoding/@{any}

可以指定其他的属性,但它们“绝不可以”与其所有者元素的语义冲突;如果属性没有被识别,则“应该”忽略它。

以下示例描述了该声明的使用:

<wsp:TextEncoding wsp:Usage="wsp:Required" Encoding="iso-8859-5" /> 

3.2 语言断言

Web 服务可以允许在消息内容中使用可选择的自然语言。因此,Web 服务就有必要表明其支持和首选的语言。<wsp:Language> 元素就是用来执行该操作的。

需要注意的是,<wsp:Language> 元素的使用范围与 XML 1.0 版本 2 [XML] 规范中定义的 xml:lang 属性相符。希望其他规范将会解决有关分布式系统中国际化首选项和功能的问题。

<wsp:Language> 的方案大致如下:

<wsp:Language wsp:Usage="..."? wsp:Preference="..."? Language="..." > ... 
</wsp:Language> 

下面描述了以上概述方案中列出的属性和标记:

/Language

它表明支持的语言。

/Language/@Language

该语言值按 XML 1.0 版本2 [XML] 中 2.12 节的定义进行指定。

/Language/@wsp:Usage

该属性表明每个 WS-Policy [WS-Policy] 中此断言的用法(如必需的、可选的等)。

/Language/@wsp:Preference

此可选属性指定了该特定选择的首选项。此首选项表示为一个 xsd:int [XMLSchema2]。此首选项的值越高,则表示的首选项权重就越大。如果没有指定首选项,则假定其值为 "0"。

/Language/{any}

可以指定其他的子元素,但它们“绝不可以”与其父元素有语义冲突;如果元素没有被识别,则“应该”忽略它。

/Language/@{any}

可以指定其他的属性,但它们“绝不可以”与其所有者元素有语义冲突;如果属性没有被识别,则“应该”忽略它。

以下示例描述了该声明的使用:此示例表明策略首选丹麦语,但接受英国英语或其他种类的英语。

<wsp:ExactlyOne> <wsp:Language wsp:Usage="wsp:Required" 
wsp:Preference="10" 
Language="da" /> <wsp:Language wsp:Usage="wsp:Required" 
wsp:Preference="7" 
Language="en-gb" /> <wsp:Language wsp:Usage="wsp:Required"  
wsp:Preference="1" 
Language="en" /> 
</wsp:ExactlyOne> 

3.3 SpecVersion 断言

随着时间的推移,不同的规范将被修订。因此,Web 服务可能支持同一规范的不同版本。有些情况下,规范将会向后兼容;有些情况下则不会。因此,Web 服务需要一种方法来表明它们支持哪些规范,以及那些规范的哪些版本。<wsp:SpecVersion> 元素用来表明这一点。

<wsp:SpecVersion> 的方案大致如下:

<wsp:SpecVersion wsp:Usage="..."? URI="..." wsp:Preference="..."? > 
</wsp:SpecVersion> 

下面描述了以上概述方案中列出的属性和标记:

/SpecVersion

它表明对某一规范的某一特定版本的遵从性。(遵从性是由引用的规范定义的)。可能会有多个规范元素来表明对该规范多个版本的遵从性。

/SpecVersion/@wsp:Usage

该属性表明每个 WS-Policy [WS-Policy] 中此断言的用法(如必需的、可选的等)。

/SpecVersion/@wsp:Preference

此可选属性指定了特定选择的首选项。首选项表示为一个 xsd:int [XMLSchema2]。首选项的值越高,则表示的首选项权重就越大。如果没有指定首选项,则假定其值为 "0"。

/SpecVersion/@URI

这是规范的 URI;此 URI“应该”使用由创建规范的企业设计的规范 URI 来引用规范的特定版本。例如:WC3 SOAP/1.1 规范 [SOAP11] 通过 URI "http://www.w3.org/TR/2000/NOTE-SOAP-20000508/" 进行标识。2002 年 6 月的 SOAP/1.2 [SOAP12] 工作草案通过 URI "http://www.w3.org/TR/2002/WD-soap12-part1-20020626/" 进行标识。

/SpecVersion/{any}

可以指定其他的子元素,但它们“绝不可以”与其父元素有语义冲突;如果元素没有被识别,则“应该”忽略它。

/SpecVersion/@{any}

可以指定其他的属性,但它们“绝不可以”与其所有者元素有语义冲突;如果属性没有被识别,则“应该”忽略它。

以下示例描述了该声明的使用:

<wsp:SpecVersion wsp:Usage="wsp:Required" URI="http://schemas.xmlsoap.org/ws/2002/12/policy" /> 

有些情况下,一个规范具有多个部分,而且仅仅指定此规范的版本是不够的。在这种情况下,规范在其方案中将不同的支持类别描述为元素。这些标记(适当的)可以在 <SpecVersion> 元素中进行指定。以下示例描述了对 "framitz" 规范(其方案标识日期为 2001 年 12 月)中 "part 1" 的支持。

<wsp:SpecVersion xmlns=".../utility" wsp:Usage="wsp:Required" URI="http://www.fabrikam123.com/2001/12/framitz"> <f:part1 xmlns:f="..." /> 
</wsp:SpecVersion> 

3.4 MessagePredicate 断言

在本部分,我们提供一个策略断言,它可以用来确保消息遵从某个给定的谓词(先决条件)。例如,某些消息部分对于每个规范可能都是可选的,但对于某个特定实现却是必需的。<wsp:MessagePredicate> 元素用来表明这一点。

该元素的方案大致如下:

<wsp:MessagePredicate wsp:Usage="..."? Dialect="..."? > ... 
</wsp:MessagePredicate> 

下面描述了以上概述方案中列出的属性和元素:

/MessagePredicate

该元素的内容(xsd:string 类型 [XMLSchema2])指定了一个必须将所有遵从的消息都求值为“真”的谓词表达式。此表达式的求值取决于可选的方言属性。默认的方言是 "http://www.w3.org/TR/1999/REC-xpath-19991116",它表明其表达式是一个 XPath 1.0 表达式 [XPATH]。如果存在多个指定的 <MessagePredicate> 元素,则所有的元素都必须是“真”,除非它们包含在一个选择策略元素中。(请参阅 WS-Policy [WS-Policy])。如果目标的选择可以很方便地使用 "http://schemas.xmlsoap.org/2002/12/wsse#part" 方言表示,则“推荐”使用它。否则,“推荐”使用使用附录 I 中定义的函数的常规 XPath 表达式。

/MessagePredicate/@wsp:Usage

该属性表明每个 WS-Policy 中此断言的用法(如必需的、可选的等)。

/MessagePredicate/@Dialect

此可选属性将使用中的表达式方言标识为 URI。如果属性不存在,则假定为 XPath 1.0。

URI含义

http://www.w3.org/TR/1999/REC-xpath-19991116

(默认)

<MessagePredicate> 元素的内容是一个 XPath 1.0 表达式。XPath 表达式对 S:Envelope 元素节点进行求值,以确定结果是“真”还是“假”。此表达式“应该”使用附录 I 中定义的函数(在合适的地方)。

http://schemas.xmlsoap.org/2002/12/wsse#part

<wsp:MessagePredicate> 元素内容是一个所需消息部分的列表,这些消息部分是使用附录 II 中定义的一组预定义函数进行标识的。此消息部分列表对 S:Envelope 元素节点进行求值,以确定结果是“真”还是“假”;如果所有指定的函数都非空,则该表达式为“真”。

/MessagePredicate/@{any}

可以指定其他的属性,但它们“绝不可以”与其所有者元素有语义冲突;如果属性没有被识别,则“应该”忽略它。

以下示例描述了该声明的使用:在此示例中,断言应用的消息必须正好包含一个 WS-Security [WS-Security] <Security> 头元素。

<wsp:MessagePredicate wsp:Usage="wsp:Required"> count(wsp:GetHeader(.)/wsse:Security) = 1 
</wsp:MessagePredicate> 
返回页首返回页首

4. 安全性考虑事项

强烈“推荐”对策略和断言进行签名,以防止被篡改。

推荐:“不应该”接受此策略,除非它们已签名,并且有一个相关的安全令牌来指定签名者对给定的策略进行了正确的声明。也即依赖方不应该依赖于某个策略,除非该策略已签名并被提供了足够的声明来传递依赖方接受标准。

应该注意的是,本文档中描述的机制应该作为 SOAP 消息的一部分使用 WS-Security [WS-Security] 进行保护,或者使用特定于对象的安全性机制嵌入到其他对象中。

返回页首返回页首

5. 致谢

我们衷心感谢以下人员为此规范所做的贡献:

Debasish Banerjee,IBM

Erik Christensen,Microsoft

Francisco Curbera,IBM

Giovanni Della-Libera,Microsoft

Scott Konersmann,Microsoft

Frank Leymann,IBM

Steve Lucco,Microsoft

Hiroshi Maruyama,IBM

Steve Millet,Microsoft

Henrik Frystyk Nielsen,Microsoft

Keith Stobie,Microsoft

Tony Storey,IBM

Kent Tamura,IBM

Sanjiva Weerawarana,IBM

返回页首返回页首

6. 参考资料

[RFC 2119]

"Key words for use in RFCs to Indicate Requirement Levels",RFC 2119,S. Bradner (编辑),1997 年 3 月。

[RFC 2396]

T. Berners-Lee、R. Fielding 和 L. Masinter,"Uniform Resource Identifiers (URI):Generic Syntax",RFC 2396,MIT/LCS、U.C. Irvine 和 Xerox Corporation,1998 年 8 月。

[SOAP11]

"SOAP:Simple Object Access Protocol 1.1",W3C 纪要,Don Box、David Ehnebuske、Gopal Kakivaya、Andrew Layman、Noah Mendelsohn、Henrik Frystyk Nielsen、Satish Thatte 和 Dave Winer,2000 年 5 月 8 日。

[SOAP12]

"SOAP Version 1.2 Part 1:Messaging Framework",W3C 候选推荐,Martin Gudgin、Marc Hadley、Noah Mendelsohn、Jean-Jacques Moreau 和 Henrik Frystyk Nielsen (均为编辑),2002 年 12 月 19 日。

[WSDL]

"Web Services Description Language",IBM、Microsoft,2001 年 3 月 15 日。

[WS-Policy]

"Web Services Policy Framework (WS-Policy)",Don Box、Francisco Curbera、Maryann Hondo(编辑)、Chris Kaler(编辑)、Dave Langworthy、Anthony Nadalin、Nataraj Nagaratnam、Mark Nottingham、Claus von Riegen 和 John Shewchuk,2003 年 3 月。

[WS-Security]

"Web Services Security (WS-Security)",Bob Atkinson、Giovanni Della-Libera、Satoshi Hada、Maryann Hondo、Phillip Hallam-Baker、Chris Kaler(编辑)、Johannes Klein、Brian LaMacchia、Paul Leach、John Manferdelli、Hiroshi Maruyama、Anthony Nadalin、Nataraj Nagaratnam、Hemma Prafullchandra、John Shewchuk 和 Dan Simon,2002 年 4 月 5 日。

[XML]

"Extensible Markup Language (XML) 1.0 (Second Edition",W3C 推荐,Tim Bray、Jean Paoli、C. M. Sperberg-McQueen 和 Eve Maler(均为编辑),2000 年 10 月 6 日。

[XML-NS]

"Namespaces in XML", W3C 推荐,Tim Bray、Dave Hollander 和 Andrew Layman(均为编辑),1999 年 1 月 14 日。

[XPATH]

"XML Path Language (XPath) Version 1.0",W3C 推荐,James Clark 和 Steve DeRose(均为编辑),1999 年 11 月 16 日。

[XMLSchema1]

"XML Schema Part 1:Structures",W3C 推荐,Henry S. Thompson、David Beech、Murray Maloney 和 Noah Mendelsohn (均为编辑),2001 年 5 月 2 日。

[XMLSchema2]

"XML Schema Part 2:Datatypes", W3C 推荐,Paul V. Biron 和 Ashok Malhotra (均为编辑),2001 年 5 月 2 日。

返回页首返回页首

附录 I. 策略的 XPath 表达式

此部分定义了一组使用 XPath [XPATH] 的标准化函数,以简化可以在断言中用来引用消息元素的路径表达式。

将 XPath 表达式的求值上下文 (evaluation context) 定义为包含 SOAP 信封 (SOAP envelope) 的文档。断言元素处使用的命名空间包含自动为 XPath 表达式上下文定义的 XPath 表达式。我们没有定义所有的变量,但的确定义了下面描述的函数(在 SOAP 1.1 [SOAP11] 和 SOAP 1.2 [SOAP12] 上都能实现)。

wsp:GetBody (节点)

该函数从指定的 Envelope 元素返回 SOAP 信封 <S:Body> 元素。

wsp:IsInBody(节点)

如果指定的节点在 SOAP 信封 <S:Body> 元素中,则该函数从指定的 Envelope 元素返回“真”。

wsp:GetHeader(节点)

该函数从指定的 Envelope 元素返回 SOAP 信封 <S:Header> 元素。

wsp:IsInHeader(节点)

如果指定的节点在 SOAP 信封 <S:Header> 元素中,则该函数从指定的 Envelope 元素返回“真”。

wsp:RoleURIForHeaderBlock(节点)

该函数返回指定头块的 SOAP 角色。

wsp:IsMandatoryHeaderBlock(节点)

该函数根据指定的头块是否是强制的 (mustUnderstand = true) 返回“真”或“假”。

wsp:IsRoleURIForNext(节点,字符串)

该函数根据指定的角色是否映射到由所提供消息使用的 SOAP 版本预定义的“下一个 (next)”角色来返回“真”或“假”。

wsp:IsRoleURIForUltimateReceiver(节点、字符串)

该函数根据指定的角色是否映射到由所提供消息使用的 SOAP 版本预定义的“最终接收者 (ultimate receiver)”来返回“真”或“假”。

wsp:GetNodesetForNode(节点)

该函数返回节点的 XPath 节点集(包括节点、其属性、其所有派生节点及这些派生节点的属性)。

返回页首返回页首

附录 II.消息部分选择函数

这一部分定义了一组函数;可以将这些函数与 方言一起使用来选择一个消息的某些部分。

wsp:Body()

该函数标识消息的“正文”。

wsp:Header(x)

该函数标识名称为特定 QName 的“头”。

跳转到原英文页面


返回页首返回页首

转载于:https://www.cnblogs.com/Daview/archive/2004/04/28/7932.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497401.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

周志华:严肃的研究者就不该去触碰强人工智能

来源&#xff1a;知识分子概要&#xff1a;关于人工智能&#xff0c;长期存在两种不同的目标或者理念。关于人工智能&#xff0c;长期存在两种不同的目标或者理念。一种是希望借鉴人类的智能行为&#xff0c;研制出更好的工具以减轻人类智力劳动&#xff0c;一般称为“弱人工智…

guava限流器RateLimiter原理及源码分析

来源&#xff1a;https://www.cnblogs.com/zhandouBlog/p/11743660.html 前言 RateLimiter是基于令牌桶算法实现的一个多线程限流器&#xff0c;它可以将请求均匀的进行处理&#xff0c;当然他并不是一个分布式限流器&#xff0c;只是对单机进行限流。它可以应用在定时拉取接…

185页深度报告 扒一扒AI金融的老底【附下载】

来源&#xff1a;智东西概要&#xff1a;2016年&#xff0c;中国爆出8家独角兽&#xff0c;总估值964亿美元位冠全球&#xff1b;2017年&#xff0c;毕马威全球百佳金融科技企业前三甲&#xff0c;蚂蚁金服、众安保险、趣店&#xff0c;皆来自中国&#xff1b;过往两年&#xf…

夹娃娃动画Android,手机模拟抓娃娃

手机模拟抓娃娃让你通过手机足不出户也能感受娃娃机的乐趣,萌趣的卡通形象,清新治愈的设计风格,简单上手的玩法,赶快加入进来冲击最高分吧,点击下载手机模拟抓娃娃开始你的挑战&#xff01;手机模拟抓娃娃介绍手机模拟抓娃娃游戏是一款模拟进行的真人在线抓娃娃的掌上控制的休闲…

android友盟错误日志,Taro(React-native)集成友盟错误日志分析U-App移动统计

1、先去友盟官网注册应用&#xff0c;获取到appkey&#xff0c;友盟移动统计分析U-App&#xff0c;这个步骤就不贴出来了&#xff0c;需要注意的是ios和Android 不能使用同一个appkey&#xff0c;需要分别创建两个应用&#xff0c;应用名称可以在后面加上平台名称&#xff0c;例…

2018年中国新零售市场研究报告——概念、模式与案例【附下载】

来源&#xff1a;亿欧概要&#xff1a;“新零售” 之“新”在于顺势下的“变化”&#xff0c;不应该局限于“阿里巴巴的新零售”。报告尝试从一个更宽广的视角&#xff0c;对当前零售业变化的背景和各种驱动因素进行分析&#xff0c;总结当下时间段零售行业参与者的新动作&…

[导入]ASP.NET 配置节架构

ASP.NET 配置节架构文章来源:http://blog.csdn.net/21aspnet/archive/2004/11/04/167417.aspx转载于:https://www.cnblogs.com/zhaoxiaoyang2/archive/2004/11/05/816261.html

重构--思维导图

#原图 System.out.println("https://www.processon.com/view/60fa8c441e085366ea4c2b9e?fromnew1");

谷歌Jeff Dean团队提出利用深度学习对「电子健康记录」数据进行分析,可提高医疗诊断预测的准确性

原文来源&#xff1a;arXiv作者&#xff1a;Alvin Rajkomar、Eyal Oren、Kai Chen、Andrew M. Dai、Nissan Hajaj、Peter J. Liu、Xiaobing Liu, Mimi Sun、Patrik Sundberg、Hector Yee、Kun Zhang、Yi Zhang、Gavin E. Duggan、Gerardo Flores、Michaela Hardt、Jamie Irvine…

android卫星菜单中间,Android卫星菜单:android-satellite-menu

android-satellite-menu实现点击主按钮&#xff0c;会弹出多个围绕着主按钮排列的子按钮&#xff0c;从而形成一个卫星弹出式菜单。子按钮弹出和消失的动画效果都很棒。这种弹出式菜单按钮应用在Path2.0中。用法在你的view xml中添加组件定义&#xff0c;如下示例&#xff1a;x…

NLP顶级专家Dan Roth :自然语言处理领域近期的任务和主要应用

来源&#xff1a;AI科技大本营概要&#xff1a;1月28日消息&#xff0c;《麻省理工科技评论》新兴科技峰会EmTech China在北京召开&#xff0c;营长也受邀参加&#xff0c;会上有多位人工智能领域的重磅大佬出没&#xff0c;Dan Roth 就是其中一位。1月28日消息&#xff0c;《麻…

【重点!!!】【单调栈】84.柱状图中最大矩形

题目 法1&#xff1a;单调栈[原版] O(N)O(N) 必须掌握算法&#xff01;&#xff01;&#xff01; class Solution {public int largestRectangleArea(int[] heights) {int n heights.length, res 0;int[] leftMin new int[n], rightMin new int[n];Stack<Integer>…

android support library github,Android Support Library 之 夜间模式

原标题&#xff1a;Android Support Library 之 夜间模式前言夜间模式实现方式&#xff1a;1、通过切换theme来实现夜间模式。优点&#xff1a;可以匹配多套主题&#xff0c;并不局限于黑白模式缺点&#xff1a;需要大量定义主题详见博客&#xff1a;http://wuxiaolong.me/2015…

类脑信息处理研究取得进展

来源&#xff1a;AAAI2018概要&#xff1a;近期&#xff0c;中国科学院自动化研究所类脑智能研究中心类脑信息处理&#xff08;BRAVE&#xff09;研究组&#xff0c;在研究员张兆翔的带领下&#xff0c;在借鉴生物神经结构、认知机制与学习特性的神经网络建模与类人学习研究中取…

今天下午爽了一把!

呵呵&#xff0c;很久没这么爽爽地看电影了&#xff0c;一个下午居然连续看了三部电影&#xff01;看到人不想看为止&#xff0c;实在是很过瘾的一个下午啊&#xff01;只是是翘课看的电影&#xff0c;感觉有点不太好&#xff0c;最近真是越来越堕落了。看来要好好克制一下自己…

展望:共融机器人的基础理论与关键技术

来源&#xff1a;《国家科学评论》概要&#xff1a;自1959年工业机器人诞生以来&#xff0c;机器人在机械制造、国防安全、健康服务、科考与医疗等方面发挥出越来越重要的作用。自1959年工业机器人诞生以来&#xff0c;机器人在机械制造、国防安全、健康服务、科考与医疗等方面…

哈萨比斯导师:人工智能媲美人类或需两百年,神经学是条出路

来源&#xff1a;澎湃新闻概要&#xff1a;从围棋到智能驾驶&#xff0c;深度学习缔造了眼下这一波人工智能热潮。在深度学习最热的两大关键词“AlphaGo”和“自动驾驶”&#xff0c;托马索波吉奥&#xff08;Tomaso Poggio&#xff09;都有声名卓著的学生&#xff0c;分别是De…

独家对话英伟达首席科学家:解码AI芯片战局

来源&#xff1a;智东西概要&#xff1a;独家对话Bill Dally博士&#xff0c;深度解读四大AI热点话题。从2017年1月底以来&#xff0c;英伟达的股价又从108美元一路飙升至240多美元&#xff0c;翻了一倍有多。而英伟达股价一飞冲天的背后&#xff0c;正是人工智能技术不断兴盛崛…

[翻译]2005年软件业界推出新产品非官方计划

虽然预测未来的最好方法就是发明(The best way to predict the future is to invent it. -- A. Kay)&#xff0c;但是对于我等现在还没开始发明或者还没有能力发明的人来说&#xff0c;不妨还是看看2005年会软件业界会推出点什么软件&#xff0c;想象一下程序员的生活会不会在2…

Replace Method with Method Object(以函数对象取代函数)

在一个大型函数中&#xff0c;由于局部变量的使用导致无法采用Extract Method class Order...double price() {double primaryBasePrice;double secondaryBasePrice;double teriaryBasePrice;// long computation.....} } 重构&#xff1a;将这个函数放进一个单独对象中&…