第十六章 WS-Policy 配置类详细信息 - 自定义配置示例
自定义配置示例
本节提供了一些自定义配置类的示例。
策略备选配置
以下配置类包括两种策略选择:使用 WS-Addressing 标头或不使用。
InterSystems IRIS for Health™ 是全球第一个也是唯一一个专门为医疗应用程序的快速开发而设计的数据平台,用于管理全世界最重要的数据。它包括强大的开箱即用的功能:事务处理和分析、可扩展的医疗保健数据模型、基于 FHIR 的解决方案开发、对医疗保健互操作性标准的支持等等。所有这些将使开发者能够快速实现价值并构建具有突破性的应用程序。了解更多信息。
本节提供了一些自定义配置类的示例。
以下配置类包括两种策略选择:使用 WS-Addressing 标头或不使用。
<method><method> 元素将策略与父 <service> 元素指定的 Web 服务或客户端内的特定 Web 方法相关联。<method> 元素包括以下项目:
XData 块的详细信息本节介绍 Web 服务或客户端配置类的 XData 块的内容。
<configuration>, <service>, <method>, <request>, and <response>元素都必须位于以下命名空间中:
"http://www.intersystems.com/configuration"
在本主题中,前缀 cfg 指的是该命名空间。
<configuration><configuration> 元素是 XData 块中的根元素。此元素包括以下项目:
| Attribute or Element | Purpose |
|---|---|
name | (可选)此配置的名称。如果指定,则必须与 XData 块的名称匹配。 |
<service> | (可选)将策略与 IRIS Web 服务或 Web 客户端关联。 |
<service><service> 元素将策略与 IRIS Web 服务或 Web 客户端关联。此元素包括以下项目:
除了 cfg:wsdlElement 属性(前面讨论过)之外,可能还需要在策略元素中的以下元素中添加扩展属性:
<sp:X509Token> (在 <sp:InitiatorToken> or <sp:RecipientToken> 内)
在此元素中,为 cfg:FindField 和 cfg:FindValue 属性指定一个值,这些值指定用于此令牌的 IRIS 凭证集。
cfg:FindField 属性指定要搜索的字段的名称。通常为 Alias。cfg:FindValue 属性指定该字段的值。如果 cfg:FindField 是 Alias,则这是 IRIS 凭证集的名称。例如:
<sp:X509Token IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never"
cfg:FindField="Alias"
cfg:FindValue="servercred">
<wsp:Policy>
<sp:WssX509V3Token11/>
</wsp:Policy>
</sp:X509Token>
作为参考,本主题包含有关 IRIS 用于存储 WS-Policy 信息的配置类的详细信息。
要手动创建 WS-Policy 配置类,请创建 %SOAP.Configuration 的子类。在此类中,添加 XData 块,如下所示:
XData service
{
<cfg:configuration xmlns:cfg="http://www.intersystems.com/configuration" name="service">
...
XData 块具有以下一般结构:
XData service
{
<cfg:configuration ...>
<service ...>
<method ...>
<request ...>
<response ...>
...
<service>, <method>, <request>, and <response> 元素均可包含适用于该级别的策略信息。<service> 元素是必需的,但其他元素是可选的。
对于 IRIS Web 客户端,可以指定运行时要使用的策略;这将覆盖任何策略配置类。要在运行时指定策略,请设置 Web 客户端实例的 PolicyConfiguration 属性。该值必须具有以下形式:
Configuration class name:Configuration name
其中,配置类名称是策略配置类的完整包和类名,如本主题前面所述,配置名称是该类中策略的 <configuration> 元素的 name 属性的值
默认情况下,当编译配置类时,如果配置包含 IRIS 不支持的任何策略表达式, IRIS 会发出错误。要避免此类错误,请在配置类中包含以下内容:
Parameter REPORTANYERROR=0;
当从 WSDL 生成 Web 客户端或 Web 服务时,如果 IRIS 还生成配置类,则会将此参数设置包含在该类中。
只要有一个受支持的策略替代方案,就可以忽略不受支持的替代方案。
如果从 WSDL 生成配置类,并且 WSDL 位于 IRIS 此实例的外部,则必须编辑配置类以包含有关要使用的证书和 SSL/TLS 配置的信息。或者可以在运行时指定此信息。
下表给出了详细信息:
如果 Web 服务或客户端必须以编程方式选择并包含证书,请使用以下过程:
%SYS.X509Credentials 的实例,如以编程方式检索凭据集中所述。例如:
set credset=##class(%SYS.X509Credentials).GetByAlias(alias,password)
或
set credset=..SecurityIn.Signature.X509Credentials
%SOAP.Security.BinarySecurityToken 实例,其中包含来自该凭证集的证书。例如: set bst=##class(%SOAP.Security.BinarySecurityToken).CreateX509Token(credset)
其中 credentials 是在上一步中检索到的凭证集。
这将返回一个代表 <BinarySecurityToken> 元素的对象,该元素以序列化的 base-64 编码形式携带证书。
Web 客户端或 Web 服务的 SecurityOut 属性的 AddSecurityElement() 方法。对于方法参数,请使用之前创建的二进制安全令牌。例如: do ..SecurityOut.AddSecurityElement(bst)
要创建策略并将其附加到Web 服务或客户端,请创建并编译配置类。有多种方法可以创建此类:
GeneratePolicyFromWSDL() 方法从 WSDL 生成配置类。如果 Web 服务或客户端类已存在,并且您不想重新生成,则适用此选项。Web 服务或客户端手动创建配置类。如果从 WSDL 生成策略类,则可能需要按下一节所述对其进行编辑。
WSDL 生成策略在某些情况下,可能已经有客户端类,但没有相应的配置类。例如,如果从 WSDL 生成客户端类,而 WSDL 后来被修改为包含 WS-Policy 信息,则可能会发生这种情况。在这种情况下,可以使用 %SOAP.WSDL.Reader中的实用程序方法单独生成配置类,如下所示:
%SOAP.WSDL.Reader 的实例。%SOAP.WSDL.Reader 类文档。不要使用 Process() 方法。
GeneratePolicyFromWSDL() 方法。此方法具有以下签名:
出于实际原因,可能需要在 Linux 服务器重启后自动启动 IRIS 实例。
下面是在 Linux 服务器重启时通过 systemd 自动启动 IRIS 的步骤:
1. 在 /etc/systemd/system/iris.service 中创建一个 iris.service 文件,其中包含以下信息
[Unit]
Description=InterSystems IRIS Data Platform
After=network.target
[Service]
Type=forking
User=irisusr
ExecStart=/usr/bin/iris start iris
ExecStop=/usr/bin/iris stop iris quietly
Restart=on-failure
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target注意:User应该填入IRIS实例的所有者。
2. 重新加载 systemd 配置管理器
sudo systemctl daemon-reload3. 启用IRIS服务,使其自动启动
sudo systemctl enable iris
激活后将创建软链接,自动启动 IRIS:
本主题介绍如何在 IRIS 中使用 WS-Policy 支持。WS-Policy 使您能够指定要使用或预期的 WS-Security 标头。它还使能够指定 WS-Addressing 标头和 MTOM 的使用(在创建 Web 服务和 Web 客户端中描述)。可以在单独的类中创建策略,而不是直接编辑 Web 服务或 Web 客户端。在大多数情况下,不需要进行低级编程。
在 IRIS 中,Web 服务或客户端的策略(或策略集合)包含在单独的配置类中,即 %SOAP.Configuration的子类。编译该类时,策略生效。
通常不需要编码。但是,在某些情况下,可以通过编程指定详细信息,而不是将该元素硬编码到策略中。
当编译配置类时,Web 服务或客户端的未来操作将受到如下影响:
Web 服务或客户端根据策略的详细信息在出站消息中包含额外的标头元素。Web 服务或客户端根据策略验证传入的 SOAP 消息。这包括在适当的情况下解密传入的消息。Web 服务或客户端可以选择加密传出消息。Web 服务,WSDL 会自动受到影响。具体来说,会添加 <wsp:Policy> 元素,并且命名空间声明包括以下内容:xmlns:wsp="http://www.w3.org/ns/ws-policy"
如果收到已进行数字签名的 SOAP 消息,则相关证书可在 %SYS.X509Credentials 的实例中找到。可以检索该证书。操作方法如下:
Web 服务或 Web 客户端的 SecurityIn 属性访问 WS-Security 标头元素。这将返回 %SOAP.Security.Header 的实例。%SOAP.Security.Header 的 Signature 属性,该属性引用安全标头元素中的第一个 <Signature> 元素。%SOAP.Security.Header 的 FindElement() 方法访问实例中 %SOAP.Security.Header的第一个 <Signature> 元素。无论哪种情况,结果都是在包含数字签名的 %XML.Security.Signature 实例。
X509Credentials 属性。%SYS.X509Credentials 的实例。 if $CLASSNAME(credset)'="%SYS.X509Credentials" {set credset=""}
IRIS 凭证集创建 IRIS 凭证集后,可以按如下方式编辑它:
X.509 凭证。无法更改凭证集的别名或证书;也无法添加、更改或删除关联的私钥。要进行此类更改,请创建新的凭证集。
执行加密或签名时,必须指定要使用的证书。为此,可以选择 IRIS 凭证集。
当手动创建 WS-Security 标头时,必须以编程方式检索凭据集并使用它。
作为参考,本节讨论以下常见活动:
要检索 %SYS.X509Credentials的实例,请调用 GetByAlias() 类方法。此方法返回包含证书和其他信息的 IRIS 凭证集。例如:
set credset=##class(%SYS.X509Credentials).GetByAlias(alias,password)
alias 是证书的别名。pwd 是私钥密码;这仅适用于拥有证书的情况。仅当关联的私钥已加密且您在加载私钥文件时未加载密码时,才需要此密码。如果不拥有该证书,则无法以任何形式访问私钥。
要从production中发送HL7消息,必须添加HL7业务操作。要将HL7业务操作添加到production品中,必须创建它,将其集成到production中,并根据需要对其进行配置。以下小节提供详细信息。
将HL7业务操作添加到production中:
Management Portal的“production Configuration”页面(在“Home”页面选择“Interoperability > Configure > production”)中显示production结果。Add按钮(加号)。HL7 Output”。TCPFileFTPHTTPSOAP此选择确定此业务操作的主机类。
默认值是此操作所基于的类的名称。
6. 单击OK。
IRIS 凭证集要创建 IRIS 凭证集:
X.509 证书,采用 PEM 编码的 X.509 格式。这可以是自己的证书,也可以是从希望与之交换 SOAP 消息的实体获取的证书。
PEM 编码的 PKCS#1 格式。这仅适用于拥有证书的情况。如果不想签署出站消息,则无需加载私钥文件。
CA X.509 证书,可与此凭证集一起使用。有关创建这些文件的信息超出了本文档的范围。
X.509 凭证。Alias — 指定一个唯一的、区分大小写的字符串来标识此凭证集。此属性是必需的。X.509 证书的文件 — 单击浏览...并导航到证书文件。此属性是必需的。仅当为包含关联私钥的文件指定值时才会显示这些字段。
X.509 证书的文件 — 此凭证集信任的任何 CA 的 X.509 证书的路径和文件名。证书必须采用 PEM 格式。路径可以指定为绝对路径或相对于管理器目录的路径。作为参考,本主题介绍了用于保护 Web 服务的常见活动。
对于大多数与 SOAP 安全相关的任务,必须首先执行以下任务:
IRIS 使用IRIS 凭证集这些任务也是使用 XML 工具中描述的某些任务的先决条件。
可能还需要创建 SSL/TLS 配置。有关信息,请参阅 TLS 指南。
IRIS 提供可信证书IRIS 使用其自己的可信证书集合来验证入站 SOAP 消息(或 XML 文档)中的用户证书和签名。在加密出站 SOAP 消息中的内容或加密 XML 文档时,它也会使用这些证书和签名。此集合可供此 IRIS 安装的所有命名空间使用。要创建此集合,请创建以下两个文件并将它们放在系统管理器的目录中:
iris.cer — 包含根证书,即 PEM 编码格式的受信任 CA X.509 证书。如果想在 IRIS 中使用任何 WS-Policy 或 WS-Security 功能,则需要此文件。iris.crl — 包含 PEM 编码格式的 X.509 证书撤销列表。此文件是可选的。请注意,可以使用特定的 IRIS 凭证集作为备用根证书;请参阅下一节。
支持 WS-Policy 1.2 (https://www.w3.org/Submission/WS-Policy/) 和 WS-Policy 1.5 (https://www.w3.org/TR/ws-policy) 框架以及相关的特定策略类型:
WS-SecurityPolicy 1.1 (http://www.oasis-open.org/committees/download.php/16569/)
WS-SecurityPolicy 1.2 (http://docs.oasis-open.org/ws-sx/ws-securitypolicy/v1.2/ws-securitypolicy.html)
Web Services Addressing 1.0 - Metadata (https://www.w3.org/TR/ws-addr-metadata)
Web Services Addressing 1.0 - WSDL Binding (https://www.w3.org/TR/ws-addr-wsdl)
WS-MTOMPolicy (https://www.w3.org/Submission/WS-MTOMPolicy/)
各位社区成员,大家好,
利用面向您的组织中的各个角色提供的全套 InterSystems 学习资源(在线或面授形式),您可以全面挖掘 InterSystems IRIS 的潜力,并帮助您的团队完成入门流程。 开发者、系统管理员、数据分析师和集成商可以快速上手。
在深入学习角色特定的资源之前,我们先来总体了解一下现有的学习资源:
可定制以收集全方位的身心健康数据。
Caren从可穿戴设备和护理设备点(如iHealth®、Fitbit®、Omron®、Tenovi®和Withings®)收集数据。数据显示在网络仪表板上,可以在电子病历系统内也可以独立查看。Caren可以定制,使用API从专门的医疗设备收集健康数据。
语音交互式移动应用程序提高了患者的参与度。
用户友好的语音交互式移动应用程序提供了简单、直观的设计,用户只需轻点一下即可进入或查看测量和观察结果。
公司介绍:https://www.carenmhealth.com
目标使用者--临床医生和患者
类别--临床研究、疾病管理、远程医疗
应用程序类型--SMART ON FHIR应用程序
FHIR 版本--R4
支持的电子病历系统--Cerner、Epic等支持FHIR API的软件系统
SOAP 消息在 WS-Security 标头元素(SOAP <Header> 元素的 <Security> 子元素)中携带安全元素。以下示例显示了一些可能的组件:
这些元素如下:
<Timestamp>) 包含 <Created> 和 <Expires> 元素,它们指定此消息有效的时间范围。严格来说,时间戳不是安全元素。但是,如果时间戳已签名,则可以使用它来避免重放攻击。<BinarySecurityToken>) 是二进制编码的令牌,其中包含使接收者能够验证签名或解密加密元素的信息。您可以将其与签名元素、加密元素和断言元素一起使用。<UsernameToken>) 使 Web 客户端能够登录 Web 服务。它包含 Web 服务所需的用户名和密码;默认情况下,这些内容以`文形式包含。有多种保护密码的选项。<Assertion>) 包含创建的 SAML 断言。断言可以是签名的,也可以是未签名的。断言元素可以包含主题确认元素 (<SubjectConfirmation>)。此元素可以使用 Holder-of-key 方法或 Sender-vouches 方法。在前一种情况下,断言携带可用于其他目的的密钥材料。
IRIS 支持 WS-Security、WS-Policy、WS-SecureConversation 和 WS-ReliableMessaging 规范的部分内容,这些规范描述了如何为 Web 服务和 Web 客户端添加安全性。本主题总结了这些工具并列出了支持的标准。
如果 IRIS Web 客户端使用需要身份验证的 Web 服务,并且有特殊原因,则可以使用较旧的 WS-Security 登录功能。请参阅使用 WS-Security 登录功能。
IRIS 中与 SOAP 安全相关的工具IRIS 提供以下与 Web 服务和 Web 客户端安全相关的工具:
IRIS 提供可信证书,以用于验证入站消息中收到的证书和签名。X.509 证书。可以在 IRISSYS 数据库中存储拥有的证书以及将与之通信的实体的证书。对于拥有的证书,如果需要签署出站消息,还可以存储相应的私钥。在 IRISSYS 数据库中,X.509 证书包含在 IRIS 凭证集中,具体来说,包含在 %SYS.X509Credentials实例中。可以使用此类的方法将证书(以及可选的关联私钥文件,如果适用)加载到数据库中。可以直接执行这些方法,也可以使用管理门户。
可以指定谁拥有凭证集以及谁可以使用它。
SAX 解析器的标志当 Web 客户端调用 Web 服务时,它会在内部使用 SAX 解析器,这是 IRIS 附带的第三方产品。可以设置 Web 客户端的 SAXFlags 属性,以设置解析器要使用的标志。
要使用 WS-Security 登录功能:
Web 客户端和托管 Web 服务的 Web 服务器之间使用 SSL。WS-Security 标头以明文形式发送,因此除非使用 SSL,否则此技术并不安全。请参阅将客户端配置为使用 SSL。Web 客户端的 WSSecurityLogin() 方法。此方法接受用户名和密码,生成带有明文密码的 WS-Security 用户名令牌,并将 WS-Security 标头添加到 Web 请求。Web 方法。此技术仅将安全令牌添加到下一条 SOAP 消息中。
HTTP 身份验证某些 Web 服务需要 HTTP 身份验证,而不是使用 WS-Security(在“保护 Web 服务”中进行了描述)。对于这些 Web 服务, IRIS 数据平台支持以下 HTTP 身份验证方案:
SPNEGO 和 Kerberos,符合 RFC 4559 和 RFC 4178 )NTLM(NT LAN 管理器身份验证协议)Basic 基本(RFC 2617 中描述的基本访问身份验证)默认情况下,如果使用 Web 客户端,Web 客户端将使用 HTTP 将 SOAP 消息传输到 Web 服务并接收响应。可以定义并使用自己的传输类。
为了与其使用的 Web 服务进行通信, Web 客户端需要一个传输类。传输类包含与通信相关的参数、属性和方法。整体通信工作方式如下:
Web 客户端实例会检查其 Transport 属性的值。如果此属性为空,则 Web 客户端实例将使用自身作为传输类实例。可以将 Transport 属性设置为其他合适类的实例(如果已定义此类)。
Web 客户端实例执行传输类的 DoSOAPRequest() 方法,并传递以下参数:a. Web 客户端类的 OREF。
b. 指定 SOAP 操作的字符串。
c. 包含以 UTF-8 编码的请求的流。
d. (通过引用)包含响应的流。
Web 客户端实例检查结果的状态并采取相应行动。对于 HTTP 传输,DoSOAPRequest() 方法包括以下逻辑:
默认情况下,Web 客户端使用 HTTP 将 SOAP 消息传输到 Web 服务并接收响应。Web 客户端会自动创建并发送 HTTP 请求,但可以创建自定义 HTTP 请求。为此,请使用以下步骤:
%Net.HttpReques 的实例并根据需要设置属性。有关此类的信息,请参阅使用 Internet 实用程序或 %Net.HttpRequest类文档。Web 客户端的 HttpRequest 属性设置为等于此实例。如果希望在同一会话中支持对 SOAP 服务的多次调用,这尤其有用。默认情况下, Web 客户端不支持使用同一会话对 SOAP 服务进行多次调用。要解决此问题,创建一个新的 %Net.HttpRequest 实例,并将其用作 Web 客户端的 HttpRequest 属性。此更改强制对所有调用重复使用相同的 HTTP 请求,这将在对下一个请求的响应中返回所有 cookie。
Web 客户端的回调可以通过覆盖其回调方法来定制 Web 客户端的行为:
%OnSOAPRequest()默认情况下, Web 客户端在解析请求或响应时通常使用本地数组内存。可以强制它改用进程私有全局变量;这使 Web 客户端能够处理非常大的消息。
为此,请指定 Web 服务类的 USEPPGHANDLER 参数,如下所示:
Parameter USEPPGHANDLER = 1;
如果此参数为 1,则 Web 客户端在解析请求或响应时始终使用进程私有全局变量。如果此参数为 0,则 Web 客户端始终使用本地数组内存来实现这些目的。如果未设置此参数,则 Web 客户端使用默认值,通常是本地数组内存。
可以在运行时覆盖此参数。为此,请设置 Web 客户端实例的 UsePPGHandler 属性。
SOAP 消息在特殊情况下,可能希望 Web 客户端发送自定义 SOAP 消息。基本要求如下:
%SOAP.WebRequest的子类并设置其 LOCATION 参数或 Location 属性。SOAP 消息。此方法必须创建 %Library.CharacterStream的实例,并将要发送的 SOAP 消息放入其中。有责任确保消息格式正确。SendSOAPBody() 方法:[toc]
通常,当 Web 客户端调用 Web 服务时,会返回 SOAP 消息,即使该方法没有返回类型并且在 数据平台中执行时不返回任何内容。
在极少数情况下,可能需要将 Web 方法定义为单向的。此类方法不得返回任何值,并且消息不需要 SOAP 响应。
注意:通常不应使用单向方法。请求-响应对更为常见、更受支持且更受期待 — 即使对于没有返回类型的方法也是如此。
要定义单向 Web 方法,请将该方法的返回类型定义为 %SOAP.OneWay。WSDL 未定义此 Web 方法的输出,并且 Web 服务不返回 SOAP 消息。
可以使 Web 服务在新选项卡中为 %Binary 类型属性中为 %xsd.base64Binary 类型属性添加自动换行符。为此,请执行以下操作之一:
Web 服务类中将 BASE64LINEBREAKS 参数设置为 1。Web 服务类实例,将 Base64LineBreaks 属性设置为 1。此属性的值优先于 BASE64LINEBREAKS 参数设置的值。对于参数和属性,默认值为 0;默认情况下, Web 服务不包括新选项卡中 %Binary类型属性或中 %xsd.base64Binary类型的属性的自动换行符。
SOAP 消息添加字节顺序标记SOAP 操作(仅限 SOAP 1.1)在 SOAP 1.1 请求消息中,HTTP 标头包含如下 SOAPAction 行:
POST /csp/gsop/GSOP.DivideWS.cls HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; InterSystems IRIS;)
Host: localhost:8080
Connection: Close
Accept-Encoding: gzip
SOAPAction: http://www.mynamespace.org/GSOAP.DivideWS.Divide
Content-Length: 397
Content-Type: text/xml; charset=UTF-8
...
默认情况下,SOAPAction的值不带引号。要将此值放在引号中,请在 Web 客户端类中将 SOAPACTIONQUOTED 指定为 1。然后请求消息的 HTTP 标头将如下所示:
这篇分步说明指南将讲解如何创建任务来收集 InterSystems 数据库及其全局变量的相关数据(如关联的 Open Exchange App 所示,其中包含所有相关代码)
免责声明:此软件仅用于测试/演示目的。 InterSystems 不支持将此代码作为任何发布产品的一部分。 它由 InterSystems 提供,作为特定产品和版本的演示/测试工具。 用户或客户全权负责此软件交付后的维护和测试,InterSystems 对此代码的错误或误用不承担任何责任。
首先,通过管理门户导入文件“DataCollection.xml”,并确保没有错误。 如果存在错误,则可能是版本问题,请发送电子邮件至 ari.glikman@intersystems.com 联系 Ari Glikman 获取适合你的版本的支持。 另外,确保将数据导入到你想要收集其内部数据以供后续检查的命名空间中。
导入完成后,应该看到 Sample 软件包以及几个子软件包

如果服务器上已经存在 Sample 软件包,那么你仍然应该可以看到新的子软件包以及先前存在的其他文件夹。
a. 创建可以被 InterSystems Terminal 读取的名为 Unit Tests 的文件夹,例如,由于我有一个本地安装,我需要在 C 盘中创建一个文件夹。
采用编码格式,任何对象值属性都作为引用包含在内,并且引用的对象作为单独的元素写在 SOAP 消息中。
要以内联方式写入编码对象,请在 Web 客户端中将 REFERENCESINLINE 参数或 ReferencesInline 属性指定为 `1。属性优先于参数。
默认情况下, Web 客户端在其发送的 SOAP 消息的信封中使用前缀 SOAP-ENV。可以指定不同的前缀。为此,请设置 Web 客户端类的 SOAPPREFIX 参数。例如,如果将此参数设置为 MYENV,则 Web 客户端会在其消息中包含此前缀,而不是 SOAP-ENV。
SOAP 信封要将命名空间声明添加到给定 Web 客户端返回的 SOAP 响应的 SOAP 信封(<SOAP-ENV:Envelope>元素)中,请在调用 Web 方法之前调用 Web 客户端的 %AddEnvelopeNamespace() 方法。此方法具有以下签名:
在这里,我们将说明如何以图形方式显示数据收集的结果。 项目的输出将如下所示:
我使用的是本地计算机。 如果你在服务器上,注意使用正确的 IP 地址。
首先,导入需要的三个类(注意,我们将晚些时候编辑它们):
你可以使用 xml 并将其导入系统。
规范将创建调度类和实现模板。 如果你想详细了解此过程,可以读一读我同事 Eduard Lebedyuk 写的文章。
注意,在此演示中我们将使用 Basic Authorization。 我们还假设 Sample_DBExpansion_Data.DBAnalysisInfo 和 Sample_DBExpansion_Data.GlobalAnalysisInfo 表中已经有数据。 如果没有,返回数据收集获取数据。
填写相同的名称,除非你打算为 react 应用自行定制代码。
输出应该类似于:
这是数据收集的续集。 如果你还没有安装,请先完成安装。
这里提供的是对先前收集的数据的分析。
你需要导入构成此仓库的 xml,与先前仓库中的操作大致相同。
最顶层有一个任务:
这个任务将允许我们设置将要监控的参数, 如下所示:
GrowthPercentageWarning:对于Global增长来说,“可接受的”百分比增长。
PeriodWarning:Global在多少天内实现增长是合理的?
HistoryLength:回溯 Sample_DBExpansion_Data.GlobalAnalysisInfo 表的时长。
默认设置为 7 天内增长 5%,回溯过去 30 天。 设置参数后,即使任务已经运行一次或多次,你仍然可以再次编辑。 转到任务详细信息,点击 Edit,然后根据需要更改。
该任务会调用 Sample.DBExpansion.DBSizeAnalysis.InvestigateInfo 类的 CreateReport 方法。
CreateReport 将填充两个表,如下所述: