搜索​​​​

清除过滤器
文章
jieliang liu · 十月 26, 2021

IRIS 2021 技术文档 First Look 29 技术概要:LDAP 和 InterSystems 产品

技术概要:LDAP 和 InterSystems 产品 目录 技术概要: LDAP 和 InterSystems 产品 1 设置 LDAP 身份验证 1 选择 InterSystems IRIS 实例 1 定义 LDAP 配置 1 选择新的 LDAP 域作为默认值 2 启用 LDAP 身份验证 2 为 LDAP 服务器安装安全证书 3 探索 LDAP 用户和组 4 User1: 操作员 4 User2: 管理者 5 User3: 开发者 5 自动创建用户 6 了解有关 LDAP 和安全的更多信息 6 技术概要:LDAP 和 InterSystems 产品 InterSystems IRIS®数据平台可以与 LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)服务器集成,从而可以无缝地使用这种流行技术对用户进行身份验证。通过 LDAP 提供授权也很容易。 当用户尝试登录 InterSystems IRIS 时,用户名和密码会被发送到 LDAP 服务器,以验证该用户是否存在。一旦用户的身份得到验证,LDAP 服务器就会向 InterSystems IRIS 发送关于用户属于哪些组的信息。这些组与 InterSystems IRIS 中的角色相对应,这些角色控制用户被授权执行什么操作,以及是否可以读取或写入内容。通过这种方式,InterSystems IRIS 在其安全策略的身份验证和授权方面都使用了 LDAP 技术。 按照本指南中的步骤,您可以连接到 LDAP 服务器,并探索它如何影响 InterSystems IRIS 中的安全。在这些练习中,您将配置 InterSystems IRIS 以与 Windows 活动目录(Active Directory)服务器集成。虽然也支持其他的 LDAP 服务器,但本文主要介绍如何使用活动目录(Active Directory)进行 LDAP 身份验证和授权。 要浏览所有的技术概要(First Look),包括下面描述的可以在免费的社区版(Community Edition)实例上执行的其他内容,请参见 InterSystems First Looks(《InterSystems 技术概要》)。 设置 LDAP 身份验证 在以 LDAP 用户登录并在 InterSystems IRIS 中探索基于 LDAP 的安全之前,需要完成以下操作: 选择 InterSystems IRIS 实例 定义 LDAP 配置 选择 LDAP 域作为默认值 在 InterSystems IRIS 中启用 LDAP 身份验证 为 LDAP 服务器安装安全证书 选择 InterSystems IRIS 实例 要使用该程序,您需要一个正在运行的 InterSystems IRIS 实例。您的选择包括多种类型的已授权的和免费的评估实例;该实例不需要由您正在工作的系统托管(尽管它们必须相互具有网络访问权限)。关于如何部署每种类型的实例的信息(如果您还没有可使用的实例),请参见 InterSystems IRIS Basics: Connecting an IDE(《InterSystems IRIS 基础:连接一个 IDE》)中的 Deploying InterSystems IRIS(部署 InterSystems IRIS)。 定义 LDAP 配置 InterSystems IRIS 使用 LDAP 配置来定义连接到 LDAP 服务器和搜索用户所需的信息。要创建和定义新的 LDAP 配置: 设置 LDAP 身份验证 在浏览器中打开您的实例的管理门户(Management Portal)。要使用的 URL 取决于您选择的实例类型;有关确定正确的 URL 的信息,请参见 InterSystems IRIS Basics:Connecting an IDE(《InterSystems IRIS 基础:连接一个 IDE》)中的 InterSystems IRIS Connection Information(InterSystems IRIS 连接信息)。 进入 Security LDAP Configurations(安全 LDAP 配置) 页面 (System Administration(系统管理) > Security(安全) > System Security(系统安全) > LDAP Configurations(LDAP 配置))。 点击 Create New LDAP configuration(创建新 LDAP 配置)。 在 Name(名称)字段中,输入 irisldap.com。 选择 Enabled(已启用) 复选框。 选择 LDAP server is a Windows Active Directory server(LDAP 服务器是一个 Windows 活动目录(Active Directory) 服务器) 复选框。 定义以下字段: +-----------------------------------------------------------------+---------------------------------------------------------------------------+ | 字段 | > 内容 | +=================================================================+===========================================================================+ | LDAP domain name(LDAP 域名) (仅限 Windows) | > irisldap.intersystems.com | +-----------------------------------------------------------------+---------------------------------------------------------------------------+ | LDAP host names(LDAP 主机名) | > irisldapdc1.irisldap.intersystems.com | +-----------------------------------------------------------------+---------------------------------------------------------------------------+ | LDAP username to use for searches(用于搜索的 LDAP 用户名) | - (Windows) sidLDAPQuery | | | | | | - (UNIX®) | | | | | | > CN=sidLDAPQuery,CN=Users,DC=irisldap,DC=intersystems,DC=com | +-----------------------------------------------------------------+---------------------------------------------------------------------------+ | LDAP username password(LDAP 用户名密码) | > 选择 Enter New Password(输入新密码), 然后输入密码为 Cach3L3arning | +-----------------------------------------------------------------+---------------------------------------------------------------------------+ | LDAP Base DN to use for searches(用于搜索的 LDAP 基础 DN) | > DC=irisldap,DC=intersystems,DC=com | +-----------------------------------------------------------------+---------------------------------------------------------------------------+ | LDAP Unique search attribute(LDAP 独特的搜索属性) | > sAMAccountName | +-----------------------------------------------------------------+---------------------------------------------------------------------------+ 选择 Use TLS/SSL encryption for LDAP sessions(将 TLS/SSL 加密用于 LDAP 会话)复选框。 选择 Use LDAP Groups for Roles/Routine/Namespace(将 LDAP 组用于角色/路由/命名空间)复选框。 选择 Allow Universal group Authorization(允许通用组授权)复选框。 点击 Save(保存)。 选择新的 LDAP 域作为默认值 一旦定义了 LDAP 服务器的 LDAP 配置,您需要将新的 LDAP 配置设置为默认的 LDAP 域。要将 LDAP 服务器设置为默认服务器: 从管理门户(Management Portal)主页,进入 System-wide Security Parameters(全系统安全参数) 页面 (System Administration(系统管理) >**Security(安全) > System Security(系统安全) > System-wide Security Parameters(全系统安全参数)**)。 从 Default security domain(默认安全域)下拉列表中选择 irisldap.com。 点击 Save(保存)。 启用 LDAP 身份验证 使用 LDAP 服务器只是 InterSystems IRIS 中可用的一种身份验证方法。不仅必须为 InterSystems IRIS 的整个实例启用 LDAP 身份验证,而且需要由 LDAP 用户访问的 InterSystems IRIS 的每个组件也必须启用 LDAP 身份验证。以下程序为实例和 InterSystems IRIS 安全所需的那些组件启用 LDAP 身份验证: 设置 LDAP 身份验证 从管理门户(Management Portal)主页,进入 Authentication/Web Session Options(身份验证/Web 会话选项) 页面(System Administration(系统管理)> Security(安全) > System Security(系统安全) > Authentication/Web Session Options(身份验证/Web 会话选项))。 选择 Allow LDAP authentication(允许 LDAP 身份验证)复选框。 点击 Save(保存)。 从管理门户(Management Portal)主页,进入 Web Applications(Web 应用程序)页面 (System Administration(系统管理) > Security(安全) > Applications(应用程序) > Web Applications(Web 应用程序))。 在这个页面上,您将为您在 InterSystems IRIS 中将要访问的管理门户(Management Portal)部分启用 LDAP 授权。因为管理门户(Management Portal)的其他部分没有启用 LDAP 授权,如果您试图探索这些其他部分,可能会被要求登录。 点击 /csp/sys 来显示用于配置 web 应用程序的页面。 在 Security Settings(安全设置) 部分,在 Allowed Authentication Methods(允许的身份验证方法)字段中选择 LDAP 复选框。 点击 Save(保存)。 一旦设置被保存,点击 Cancel(取消)以返回到 Web Applications(Web 应用程序)页面。 点击 /csp/sys/sec。这个 web 应用程序包含管理门户(Management Portal)的安全页面。 在 Security Settings(安全设置)部分,在 Allowed Authentication Methods(允许的身份验证方法)字段中选择 LDAP 复选框。 点击 Save(保存)。 一旦设置被保存,点击 Cancel(取消)以返回到 Web Applications(Web 应用程序) 页面。 点击 /csp/sys/op。这个 web 应用程序包含管理门户(Management Portal)的操作页面。 <span id="1.5_Installing_a_Security_Certificate_fo" class="anchor"></span>在 Security Settings(安全设置) 部分,在 Allowed Authentication Methods(允许的身份验证方法)字段中选择 LDAP 复选框。 点击 Save(保存)。 为 LDAP 服务器安装安全证书 LDAP 服务器采用 TLS 进行安全保护,因此您需要安装安全证书才能成功访问服务器。在将其标识为安全证书之前,您将创建一个包含所需证书内容的 .cer 文件。 创建 .cer 文件 要创建将作为安全证书安装的文件: 打开一个文本编辑器,如记事本,并创建一个新文件。 复制以下所有内容并将其粘贴到文本编辑器中的新文件中。新文件应该以 -----BEGIN CERTIFICATE-----开头,并以-----END CERTIFICATE-----结尾。 -----BEGIN CERTIFICATE----- MIIDuTCCAqGgAwIBAgIQO5hG2uC7G7ZBxcXt/J+z3TANBgkqhkiG9w0BAQsFADBv MRMwEQYKCZImiZPyLGQBGRYDY29tMRwwGgYKCZImiZPyLGQBGRYMaW50ZXJzeXN0 ZW1zMRgwFgYKCZImiZPyLGQBGRYIaXJpc2xkYXAxIDAeBgNVBAMTF2lyaXNsZGFw LUlSSVNMREFQREMxLUNBMB4XDTE4MDQwOTE0MDUzMloXDTIzMDQwOTE0MTUzMlow bzETMBEGCgmSJomT8ixkARkWA2NvbTEcMBoGCgmSJomT8ixkARkWDGludGVyc3lz dGVtczEYMBYGCgmSJomT8ixkARkWCGlyaXNsZGFwMSAwHgYDVQQDExdpcmlzbGRh cC1JUklTTERBUERDMS1DQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB AL/aNDJJNbzGh6tXG8+hmEEplb80UQMcIhLvoanz/RKKZXBBY68rO5pkYUwn/24g pryGy0OUjA997KKol5rdbXWzK7vUMuVSp0atw1m4vF9hmp1bpKBC60OXmV39Fqar ej1dkRl0ZXOmCexP8JqTyNwhpOLXvazzzvsNRr4ts9u1m6y9kFYecu4PRqtFCgoC T6rbgqz1Ew3VrhQHi0HWvq1sR2CngxdyG8AnlSo6nz3X/IrTwrw5lauNLfpsRda5 D5YfUpxYeqpONSUB650u9bC0l5eRWe8kS33Xr+u5Odkhy087I/zN+GK7xMGzxYMR OWNINIGRvlLuDRshKQl4gP0CAwEAAaNRME8wCwYDVR0PBAQDAgGGMA8GA1UdEwEB /wQFMAMBAf8wHQYDVR0OBBYEFM3Ofv4R/zkEgHkp4ayvTkAvxJikMBAGCSsGAQQB gjcVAQQDAgEAMA0GCSqGSIb3DQEBCwUAA4IBAQC8hhvc/+WsDeipNezBo+ovum2z 7q0fStr73Tj84cDGSyCmT2Q/h0qFvkfjtRd8AUBdG0qjhIB4VLVyWmrWDl1jAUcr 3AzygfO6UZjNRT+4c8r8R2xOhE3wJEJWibzXD9bPCtCkhYNJT6bi5PSRgUq+r9GU 探索 LDAP 用户和组 IHnAUmaQa+K+kNEpAvBfIeQ2ox9NPbtUfj/fswKpubWzZZc2udeU8SQLacl6tZMA tXgZPT6lQfoZU2WmDG1EnoC4Ji1++Sf6Ho2i6kxg1m6geyOPSsGPdsAVjYCqCjuZ pxjAsfZXV2juLyTBM51rrmV/Rqfougnikh4zhFRBrOHtMP71ZxCptMVz3RHe -----END CERTIFICATE----- 在您可以访问的目录中将该文件另存为 irisldap.cer。 在 Windows 上安装安全证书 如果您在 Windows 上运行 InterSystems IRIS,请完成以下步骤来完成安装您所创建的安全证书的过程。 使用 Windows 资源管理器(Explorer),双击在您保存文件的目录中的安全文件 irisldap.cer。 点击 Install Certificate(安装证书)。 选择 Local Machine(本地机器) 并点击 Next(下一步)。 点击 Yes(是) 以允许对您的设备进行更改。 选择 Place all certificates in the following store(将所有证书放入以下存储区)并点击 Browse(浏览)。 选择 Trusted Root Certification Authorities(受信任的根证书颁发机构)并点击 OK(确定)。 点击 Next(下一步)。 点击 Finish(完成)。 在 UNIX®上安装安全证书 如果您在 UNIX®上运行 InterSystems IRIS,请完成以下步骤来完成安装您所创建的安全证书的过程。 以 _system 用户身份登录管理门户(Management Portal)时,进入 Security LDAP Configurations(安全 LDAP 配置) 页面 (System Administration(系统管理) > Security(安全) > System Security(系统安全) > LDAP Configurations(LDAP 配置))。 从 LDAP 配置的列表中点击 irisldap.com。 在 TLS/SSL certificate file(TLS/SSL 证书文件)字段中,输入 irisldap.cer 的路径和文件名,这是您创建并保存的文件。 探索 LDAP 用户和组 现在您已经配置了您的 LDAP 连接并启用了 LDAP 身份验证,您可以使用 LDAP 服务器来登录 InterSystems IRIS。LDAP 服务器包含三个用户:user1、user2 和 user3。user1 属于 intersystems-Role-%Operator 组,user2 属于 intersystems-Role-%Manager 组,user3 属于 intersystems-Role-%Developer 组。每个组都授予属于 InterSystems IRIS 中相应角色的权限。例如,当 user1 通过 LDAP 服务器的身份验证成功时,将为其分配 %Operator 角色。 在本教程中,您将以所有三个用户的身份登录到 InterSystems IRIS,并根据与用户关联的角色探索可用的操作。当您作为一个有效的 LDAP 用户登录到 InterSystems IRIS 时,InterSystems IRIS 会自动创建用户,而不需要您事先手动添加用户。 User1: 操作员 要以 user1 的身份登录并探索 InterSystems IRIS: 如果您目前已登录到 InterSystems IRIS,请点击管理门户(Management Portal)左上角的 Logout(退出) 链接。 探索 LDAP 用户和组 使用以下凭证登录 InterSystems IRIS: 用户名:user1 密码:Password1 user1 是 intersystems-Role-%Operator 组的成员。基于这个组,当 user1 通过身份验证时,他们会被自动授予与 InterSystems IRIS 中 %Operator 角色相关的权限。 从管理门户(Management Portal)主页,进入 Databases(数据库) 页面 (System Operation(系统操作) > Databases(数据库))。user1 可以访问这个页面,因为他们已经被 LDAP 服务器授权,可以和与 %Operator 角色关联的页面进行交互。 在管理门户(Management Portal)主页上,请注意 System Administration(系统管理) 菜单已被禁用。 user1 不能访问此菜单,因为 %Operator 角色不包含适当的权限。 User2: 管理者 要以 user2 的身份登录并探索 InterSystems IRIS: 点击管理门户(Management Portal)左上角的 Logout(退出) 链接。 使用以下凭证登录 InterSystems IRIS: 用户名:user2 密码:Password2 user2 是 intersystems-Role-%Manager 组的成员。基于这个组,当 user2 通过身份验证时,他们会被自动授予与 %Manager 角色相关的权限。正如您将看到的,这些权限包括访问 user1 无法看到的页面。 从管理门户(Management Portal)主页,进入 Users(用户) 页面 (System Administration(系统管理) > Security(安全) > Users(用户))。请记住,user1 不能访问 System Administration(系统管理) 菜单。 从用户列表中点击 user1。 点击 Roles(角色) 标签。 请注意,%Operator 是分配给 user1 的唯一角色。 点击 Cancel(取消) 以返回到 Users(用户) 页面。 请注意,在用户列表中没有 user3 的条目。该用户将在 user3 登录时自动创建,此时 InterSystems IRIS 使用 LDAP 服务器对用户进行身份验证。 User3: 开发者 要以 user3 的身份登录并探索 InterSystems IRIS: 点击管理门户(Management Portal)左上角的 Logout(退出)链接。 使用以下凭证登录 InterSystems IRIS: 用户名:user3 密码:Password3 user3 是 intersystems-Role-%Developer 组的成员。基于这个组,当 user3 通过身份验证时,他们会被自动授予与 %Developer 角色相关的权限。 请注意,该用户可以访问 System Explorer(系统资源管理器)菜单,而不是 System Operation(系统操作)和 System Administration(系统管理)菜单。您可以看出,分配给 user3 的 %Developer 角色与分配给 了解有关 LDAP 和安全的更多信息 user1 和 user2 的角色具有不同的权限。这可以防止 user3 看到自己的用户配置文件,因为 Users(用户)页面是在 System Administration(系统管理)菜单下。 自动创建用户 您已经登录到 InterSystems IRIS,但没有先创建新用户。当在 LDAP 服务器上发现这些用户时,InterSystems IRIS 会自动创建这些用户。下面的程序演示了这个过程: 点击管理门户(Management Portal)左上角的 Logout(退出)链接。 使用以下凭证登录 InterSystems IRIS: 用户名:user2 密码:Password2 请记住,user2 拥有 %Manager 角色。 从管理门户(Management Portal)主页,进入 Users(用户) 页面 (System Administration(系统管理) > Security(安全) > Users(用户))。 在列表中找到 user3 并点击行中的 Delete(删除)。 此时,拥有 %Developer 角色的 user3 在 InterSystems IRIS 中不复存在。 点击管理门户(Management Portal)左上角的 Logout(退出)链接。 使用以下凭证登录 InterSystems IRIS: 用户名:user3 密码:Password3 因为 user3 仍然存在于 LDAP 服务器上,所以即使您刚刚在 InterSystems IRIS 中删除了用户帐户,您也能够以 user3 的身份重新登录到 InterSystems IRIS。 如果需要,您可以重新登录 InterSystems IRIS,以确认 user3 现在是一个用户。 a. 点击管理门户(Management Portal)左上角的 Logout(退出)链接。 b. 使用以下凭证登录 InterSystems IRIS: 用户名:user2 密码:Password2 c. 从管理门户(Management Portal)主页,进入 System Administration(系统管理) > Security(安全) > Users(用户)。user3 现在在列表中,尽管您之前删除了该用户账户。 了解有关 LDAP 和安全的更多信息 您可以使用以下参考资料来了解有关 LDAP 和其他安全概念的更多信息。 有关在 InterSystems IRIS 中使用 LDAP 的详细信息,请参见 LDAP Guide(《LDAP 指南》)。 有关 InterSystems IRIS 中基于角色的安全的介绍,请参见 First Look:Role-Based Access Control(《技术概要:基于角色的访问控制》)。
文章
姚 鑫 · 一月 19, 2023

第五十章 使用 ^SystemPerformance 监视性能 - Microsoft Windows 平台的 InterSystems IRIS 性能数据报告

# 第五十章 使用 ^SystemPerformance 监视性能 - Microsoft Windows 平台的 InterSystems IRIS 性能数据报告 #### Microsoft Windows 平台的 IRIS 性能数据报告 - `%SS` - 使用 `ALL^%SS` 命令在运行过程中采集了四个样本。 - `Configuration *` - 来自服务器的 `IRIS` 实例名称和主机名、完整的 `IRIS` 版本字符串、许可客户名称和许可订单号。 - `cpf file *` - 当前活动配置文件的副本。 - `irisstat -c` - 使用命令 `.\bin\irisstat -s -p-1 -c-1 -e1 -m8 -n2 -N127` 在运行过程中以均匀间隔采集四个样本。以下是对每个参数的简要说明: - `-p-1`: 对进程表进行采样以包括进程和全局状态信息。 - `-c-1`: 对共享内存的计数器部分进行采样以显示日志、锁、磁盘和资源使用统计信息。 - `-e1`: `SYSLOG` 错误表。 - `-m8`: 文件表,其中包括所有 `IRIS.DAT` 文件及其属性。 - `-n2`: 网络结构表,包括本地到远程数据库的映射。 - `-N127`: 客户端和服务器连接的 `ECP` 统计信息。 - `irisstat -D` - 使用命令 `irisstat cache --f1 -D10,100` 在运行过程中以均匀的间隔采集八个样本。以下是对每个参数的简要说明: - `-fl`: 基本标志。 - `-D10,100`: 在 `10` 秒的总采样周期内,每 `100` 毫秒对块碰撞进行采样。 - `license *` - 使用 `Decode^%LICENSE` 和 `counts^%LICENSE` 的 `IRIS` 许可使用信息。 - `mgstat` - 使用 `^mgstat` 实用程序在运行过程中获取 `IRIS` 特定数据。 - `perfmon` - `Microsoft Windows perfmon` 实用程序的输出。 `Microsoft Windows perfmon` 数据的默认呈现方式是原始格式。可以将格式切换为已处理,这会删除重复的服务器名称并将日期时间列拆分为单独的列,以提高可读性。以下函数允许查询和更新确定 `perfmon` 数据是否被操作的标志:`set rc=$$setperfmonpostproc^SystemPerformance(`) 其中 `onoroff` 可以是 `1`(开)或 `0`(关),或者不区分大小写的单词`“on”`或`“off”`。返回码 `1` 表示标志更新成功,`0` 表示更新失败,`-1` 表示非 `Windows` 平台。要确定当前格式(原始格式或已处理格式):`set status=$$getperfmonpostproc^SystemPerformance()` 返回代码 `1` 表示已处理格式,`0` 表示原始格式。此外,在 `^SystemPerformance` 的交互式运行中,在配置文件菜单显示之前报告标志的当前状态。默认情况下,`perfmon` 监视默认 `pbctrs.txt` 文件中指定的计数器定义。要监视先前定义的性能计数器,请使用以下命令将定义导入 `^SystemPerformance`:写入 `$$importctrs^SystemPerformance(WindowsCtrName [,SystemPerformanceCtrName [,SystemPerformanceFileName]])` 返回代码 `0` 表示成功,负数后跟原因字符串表示失败.不允许重复的 `SystemPerformance` 计数器名称。如有必要,`^SystemPerformance` 会生成内部计数器名称和文件名。要将默认的 `SystemPerformance` 计数器定义更改为现有定义,请使用:`write $$setctrddefault(SystemPerformanceCtrName)` 返回代码 `1` 表示成功,后跟原因字符串的 `0` 表示失败。如果指定了无效计数器,则会设置内置默认值。要重置默认的 `SystemPerformance` 计数器定义,请使用:`do clrctrdefault^SystemPerformance()` 要将特定的 `SystemPerformance` 计数器定义与现有配置文件相关联,请使用:`write $$addctrtoprofile(ProfileName,SystemPerformanceCtrName)` 返回码 `1` 表示成功,`0` 后跟一个原因字符串表示失败。如果配置文件或计数器定义不存在,则不会运行该命令。 - `Profile *` - 有关创建此日志的 `^SystemPerformance` 配置文件的信息。 - `tasklist` - `tasklist -V` 命令的四个输出,在运行过程中以均匀的间隔获取。 `tasklist -V` 命令提供系统上运行的所有进程的列表。 - `Windows info *` - `systeminfo` 命令的输出,包括 `Windows` 版本(不包括修补程序信息)和硬件信息;例如,处理器数量、安装的内存和使用的内存。
文章
姚 鑫 · 一月 21, 2023

第五十二章 使用 ^SystemPerformance 监视性能 - IBM AIX® 平台的 InterSystems IRIS 性能数据报告

# 第五十二章 使用 ^SystemPerformance 监视性能 - IBM AIX® 平台的 InterSystems IRIS 性能数据报告 - `%SS` - 使用 `ALL^%SS` 命令在运行过程中采集了四个样本。 - `AIX info *` - `oslevel` 的输出。 `uname -a`、`prtconf` 和 `lspv `命令 - `Configuration *` - 来自服务器的 `IRIS` 实例名称和主机名、完整的 `IRIS` 版本字符串、许可客户名称和许可订单号。 - `cpf file *` - 当前活动配置文件的副本。 - `cpu type *` - 有关安装的处理器以及是否启用 `SMT` 的信息; `lsattr -El proc0` 的输出。 - `irisstat -c` - 使用命令 `irisstat cache -p-1 -c-1 -e1 -m8 -n2 -N127` 在运行过程中以均匀的间隔采集四个样本。以下是对每个参数的简要说明: - `-p-1`: 对进程表进行采样以包括进程和全局状态信息。 - `-c-1`: 对共享内存的计数器部分进行采样以显示日志、锁、磁盘和资源使用统计信息。 - `-e1`: `SYSLOG` 错误表。 - `-m8`: 文件表,其中包括所有 `IRIS.DAT` 文件及其属性。 - `-n2`: 网络结构表,包括本地到远程数据库的映射。 - `-N127`: 客户端和服务器连接的 `ECP` 统计信息。 - `irisstat -D` - 使用命令 `irisstat cache --f1 -D10,100` 在运行过程中以均匀的间隔采集八个样本。以下是对每个参数的简要说明: - `-fl`: 基本标志。 - -`D10,100`: 在 `10` 秒的总采样周期内,每 `100` 毫秒对块碰撞进行采样。 - `df -k *` - 有关挂载文件系统的信息,包括挂载点、逻辑卷和可用空间; `df -k` 命令的输出。 - `filesystems *` - 当前 `/etc/filesystems` 文件。 - `ioo -a *` - `I/O`可调参数的当前值; `ioo -a` 命令的输出。仅当启动 `^SystemPerformance` 配置文件运行的用户具有 `root` 访问权限时才包括在内。 - `iostat -DIT` - 带有 `IBM AIX® 5.3` 及更新版本采样时间的扩展磁盘/设备统计信息的长列表; `iostat -DIT` 命令的输出。信息因 `IBM AIX® 5.3` 之前的发行版而异。 - `ipcs *` - 进程间通信配置信息,包括共享内存、信号量和消息队列; `ipcs -a` 命令的输出。 - `license *` - 使用 `Decode^%LICENSE` 和 `counts^%LICENSE` 的 `IRIS` 许可使用信息。 - `mount *` - 有关所有文件系统及其挂载选项的信息。 - `mgstat` - 使用 `^mgstat` 实用程序在运行过程中获取 `IRIS` 特定数据。请参阅 `Monitoring Guide` 的 `Monitoring Performance Using ^mgstat` 部分。 - `Profile *` - 有关创建此日志的 `^SystemPerformance` 配置文件的信息。 - `ps:` - 使用命令 `ps aux` 在运行过程中以均匀的间隔采集四个样本。 - `sar -d` - 仅当启动 `^SystemPerformance` 配置文件运行的用户具有 `root` 访问权限并且 `/usr/sbin/sar` 存在时才包括在内。 - `sar -r` - 仅当启动 `^SystemPerformance` 配置文件运行的用户具有 `root` 访问权限并且 `/usr/sbin/sar` 存在时才包括在内。 - `sar -u` - 包括微分区信息(如果使用)的 `CPU` 统计信息。仅当启动 `^SystemPerformance` 配置文件运行的用户具有 `root` 访问权限并且 `/usr/sbin/sar` 存在时才包括在内。 - `vmo –a` - 虚拟内存可调参数的当前值; `vmo -a` 命令的输出。仅当启动 `^SystemPerformance` 配置文件运行的用户具有 `root` 访问权限时才包括在内。 - `vmstat -s *` - 虚拟内存统计的绝对计数,包括总页入和页出。 - `vmstat -t` - 带有时间戳的虚拟内存和 `CPU`(分页、排队和 CPU)统计信息。 - `vmstat -v *` - 示例虚拟内存统计信息,包括可用页面、`pbuf` 使用情况和 `fsbuf` 使用情况。
文章
Claire Zheng · 一月 20, 2021

使用内置的REST API监控InterSystems IRIS

我们不必等待SAM发布才开始规划和试用该API来监控IRIS实例。在以后的文章中,我将更深入地探讨可用的指标及其意义,并提供一些交互式仪表板的示例。首先,我将介绍一下相关背景和一些问题及答案。 IRIS(和Caché)一直在收集自身及其运行平台的数十个指标。收集这些指标来监控Caché和IRIS的方法向来有很多。我发现,很少有安装软件使用IRIS和Caché的内置解决方案。譬如,History Monitor作为性能和系统使用指标的历史数据库,已经推出很长时间了,但它没有简便方法可实时显示这些指标和仪表系统。 IRIS平台解决方案(以及整个业界)正在从仅在一些本地实例上运行的单体式应用程序过渡到“随处”部署的分布式解决方案。在许多用例中,原有的IRIS监控方案并不适用于这些新的模式。InterSystems没有做重复工作,而是将目光投向当前流行的、经过验证的监控和告警开源解决方案。 Prometheus? Prometheus是一个基于成熟技术、应用广泛的著名开源监控系统,具有多种多样的插件。Prometheus的设计目的是在云环境中很好地运行,但它同样适用于本地环境。Prometheus的插件包括操作系统、web服务器(如Apache)和许多其他的应用程序。Prometheus通常与前端客户端(如Grafana)一起使用,后者可提供极具定制性的一流UI/UX体验。 Grafana? Grafana也是开源平台。随着本系列文章的深入,我将提供常见场景监控仪表板的示例模板。在这些示例模板的基础上,你可以进一步设计自己想要的各种仪表板。将IRIS指标与你的整个解决方案堆栈的各项指标适当结合,就可以发挥真正的威力;各项指标来自于平台组件、操作系统、IRIS,尤其是当你在应用程序中添加仪表功能的时候。 我以前见过这种方法吗? 使用Prometheus和Grafana监控IRIS与Caché并不是新出现的方法。几年来,我一直使用这些应用程序监控我的开发和测试系统。在开发者社区中搜索“Prometheus”,就可以找到一些其它文章,这些文章讲述了如何显示Caché指标,以供Prometheus使用。 跟过去不同的是,现在的/api/monitor API是内置的,而且默认启用。用户无需为显示指标而自己编写类。 Prometheus入门 在这里简单介绍一下Prometheus和一些术语。希望读者能够深入学习并打下一定基础,这将有助于你思考如何运用IRIS或其他来源提供的各项指标或将其可视化。 Prometheus的工作方式是抓取或提取由作为HTTP端点的应用程序(IRIS /api/monitor等API)所公开的时间序列数据。现有的导出器和客户端库适用于多种语言、框架、开源应用程序(例如Apache等web服务器)、操作系统、docker、Kubernetes、数据库和现在的IRIS。 导出器用于将应用程序和服务仪表化,并公开端点上的相关指标以进行抓取。核心导出器支持各种标准组件,例如web服务器、数据库等。其他多种开源导出器可从Prometheus社区获取。 Prometheus术语 有几个关键术语需要了解: ·目标 是指你关心的服务所处的位置,例如主机、应用程序或服务(如:Apache、IRIS或你自己的应用程序)。 ·Prometheus 通过HTTP抓取目标,以收集指标作为时间序列数据。 ·时间序列数据 是通过应用程序(如IRIS)或导出器公开的。 ·导出器 可用于你无法控制的数据,譬如Linux内核指标。 ·生成的时间序列数据 存储在本地Prometheus服务器上的一个数据库中**。 ·这个时间序列数据库 可以使用优化的查询语言(PromQL)进行查询,以便创建警报或者由客户端应用程序(如Grafana)在仪表板中显示指标等。 **剧透警告:出于安全性、扩展性、高可用性及运营效率方面的考虑,在新的SAM解决方案中,Prometheus时间序列数据所使用的数据库是IRIS数据库!但对IRIS平台的Prometheus数据库的访问是透明的,而应用程序(如Grafana)对这些访问既不知道也不关心。 Prometheus数据模型 该API返回的指标是Prometheus格式的。Prometheus采用基于文本的简单指标格式,每行一个指标,格式如下: [ (timen, valuen), ....] 指标可将标签作为(键,值)对,而标签是将指标作为维度过滤的强大方法。例如,检验IRIS /api/monitor返回的一个指标──日志可存储空间: iris_jrn_free_space{id="WIJ",dir=”/fast/wij/"} 401562.83 标识符反映了指标的含义和来源: iris_jrn_free_space 多个标签可用于修饰指标,然后用来过滤和查询。在这个例子中,可以看到WIJ及其存储目录: id="WIJ",dir="/fast/wij/" 此外,还有一个值:401562.83(MB)。 有哪些IRIS指标可供使用? 预览版文档资料中含有一个指标列表。但要注意,其中的内容可能会有所调整。你也可以查询/api/monitor/metrics端点以查看列表。我使用的是Postman,关于这一点,我将在下一篇文章中进行阐述。 我应该监控什么? 考虑怎样监控你的系统和应用程序时,请记住以下要点: 1. 尽可能将影响用户的关键指标仪表化 o用户并不关心你的某台机器是否缺少CPU。 o用户关心的服务是否缓慢或出错。 o你的主仪表板应显示那些直接影响用户的高级指标。 2. 仪表板应避免显示大量图表 o人无法一次性处理太多数据。 o例如:每项服务都有一个仪表板。 3. 关注服务,而不是机器 o将问题定位到某项服务之后,你就可以接着往下找原因,看看是否是哪台机器出了问题。 参考资料 文档资料和下载 Prometheus:https://prometheus.io/ Grafana:https://grafana.com/ 在InterSystems 2019年全球峰会上,我简要介绍了预发布版SAM(包括Prometheus和Grafana);你可以在InterSystems学习服务网站上找到相关链接。如果此链接无效,请访问InterSystems学习服务网站,并搜索:“System Alerting and Monitoring Made Easy”。 你也可以在社区中搜索“Prometheus”和“Grafana”。 注:本文为译文,欢迎点击阅读原文,原文由Murray Oldfield撰写
公告
Claire Zheng · 二月 1, 2021

InterSystems多模型数据库竞赛优胜者已产生!

亲爱的社区用户,大家好! InterSystems多模型数据库竞赛 已圆满结束,感谢大家积极参加这次编程马拉松! 现在,我们来宣布此次竞赛优胜者! 下面这些开发者及其开发的应用值得拥有雷鸣般的掌声!!! 🏆专家提名奖(Experts Nomination) - 获奖者由我们特别挑选的专家团选出: 🥇 第一名,$2,000 的获奖者 @José.Pereira ,提交项目为:iris-image-index-demo 🥈 第二名,$1,000 的获奖者@MikhailenkoSergey ,提交的项目为: zapm 🥉 第三名, $500 的获奖者 @Renato.Banzai ,提交的项目为: iris-multimodel-suite 🏆 社区提名奖(Community Nomination) - 获得总投票数最多的应用: 🥇 第一名,$1,000的获奖者@Botai.Zhang ,提交的项目为: HealthInfoQueryLayer 🥈 第二名,$500 的获奖者 @Henrique.GonçalvesDias ,提交的项目为: iris-vaccine-tracker 🥉 第三名,$250 的获奖者@José.Pereira ,提交的项目为: iris-image-index-demo 恭喜所有获奖用户! 感谢您对本次大赛的关注,感谢您在这场令人兴奋的编程大赛中付出的努力! 接下来呢? 我们的 InterSystems 编程大奖赛! 已经开始了 奖金总额: $16,000 加入大奖赛,不见不散哦😉 热烈恭喜@Botai Zhang!
公告
Claire Zheng · 三月 8, 2021

InterSystems中文社区编程大奖赛获奖项目简介

InterSystems编程大奖赛取得圆满成功,来自中文社区的两位参赛者获得项目奖励,项目简介如下。 获奖者@Botai Zhang 获奖情况:获得专家提名奖(Experts Nomination)第三名和社区提名奖(Community Nomination)第一名 提交项目:HealthInfoQueryLayer(基于Intersystems IRIS平台整合医院信息查询业务解决方案) 项目简介:随着医院信息化建设的逐步完善,医院子系统越来越多,系统间接口越来越多,同时接口费用不断增加,管理工作变得越来越复杂。其中,查询类业务接口根据业务类型分化,数量也是逐步递增,带来接口量大、开发工作繁重、代码冗余、维护困难等等问题。针对这一困境,我们基于Intersystems IRIS数据平台整合医院信息查询业务解决方案。该应用程序可通过配置完成查询业务接口实现,大大缩小开发、维护、实施等项目关键运转周期。 欢迎移步项目链接了解更多详情: HealthInfoQueryLayer 获奖者@Weiwei Yang获奖情况:社区提名奖(Community Nomination)第二名提交项目:Dictionary comparison scheme of cache database项目简介(应用场景):现场需要将各个科室部门内的数据统一汇总到医院总部,但是汇总后发现各个科室使用的字典并不统一,需要将表中的现存的字典统一更换为医院制定字典。例如:A科室中人员的性别字典使用0/1/2表示各种性别,B科室中性别字典使用F/M/O表示各种性别,但是现在医院要求所有性别字典保存Female/Male/Other性别信息,此时就需要替换原有的性别字典为新用字典。当初,此处只是列举了一个使用场景,未来有多个需要对照字典的工作都可以考虑此项目的设计和实现思想。欢迎移步项目链接了解更多详情:Dictionary comparison scheme of cache database
问题
Michael Lei · 五月 13, 2021

是否有任何Spark或Kafka连接InterSystems Iris Source?

我找不到在Internet上连接到InterSystems Iris的spark或Kafka的情况。是否可以共享任何相关资源? InterSystems 提供一个专门的 Spark connector. Documentation. 当然也可以用 JDBC 驱动 以下是一些IRIS--Kafka 互操作性的例子: PEX Demo Kafka demo
公告
jieliang liu · 四月 20, 2022

[视频]用InterSystems IRIS商业智能创建数据透视表

开发者们好, 我们在Bilibili的”InterSystems中国“频道 发布了新的视频! 了解如何使用InterSystems IRIS Business Intelligence的Analyzer工具来创建在仪表板上显示的透视表。本视频展示了Analyzer工具的中心组件,并演示了如何构建一个透视表。 请欣赏并继续关注! 这个有字幕了,赞👍
文章
Michael Lei · 二月 8, 2022

InterSystems广播站第一期——什么是IRIS?欢迎收听!

说明 欢迎来到InterSystems广播站--数据点!在这一集里,我们和在线培训团队负责人Jenny Ames聊了聊InterSystems IRIS--稳定、灵活、可扩展、可互操作的数据平台,它为世界上许多最关键的核心应用提供支持。从它的多模型性质到它的集成引擎,再到它的医疗保健功能,在一次谈话中,有很多东西需要解读。 本期节目回放:https://datapoints.castos.com/episodes/1-what-is-intersystems-iris-jenny-ames 关于InterSystems广播站的更多信息,请访问https://datapoints.intersystems.com。 今天就试用InterSystems IRIS,请到https://www.intersystems.com/try,启动你的实例! 更多资料欢迎访问:https://gettingstarted.intersystems.com。 以下是本期对话中文全文。 德里克-罗宾逊 00:01 欢迎来到InterSystems 在线培训的播客。请确保在你最喜欢的播客应用程序上订阅播客,如Spotify、苹果播客、谷歌播放或Stitcher。你可以通过搜索 "数据点 "并点击订阅按钮来做到这一点。我是Derek Robinson,在今天的节目中,我将与InterSystems在线培训团队负责人Jenny Ames谈论InterSystems IRIS数据平台。 Derek Robinson 00:39 欢迎来到InterSystems在线培训广播站《数据点》第一集。我的名字是Derek Robinson。我是InterSystems公司的一名在线培训课程开发人员,我们学习服务部的所有人都对推出这个播客节目感到非常非常兴奋。我们有多集不同的节目将陆续推出,所以在你听完这一集后一定不要错过其他的节目。在这一集里,我将与Jenny Ames聊天。正如我在介绍中提到的,Jenny是在线培训团队负责人,她在我们的技术栈方面有超过10年的经验。因此,在我们的讨论中,我们将介绍InterSystems IRIS的基本情况,它的一些最佳功能是什么,以及她所看到的一些最佳使用案例。我们将概要地聊聊这个产品是什么,它的一些医疗行业的扩展是什么,以及它如何能够真正帮助你作为一个开发者的应用开发,开发数据驱动和数据密集型应用。闲话少说,下面是我对Jenny Ames的采访。 德里克-罗宾逊 01:36 欢迎Jenny Ames来到播客室,她是InterSystems在线培训服务的团队负责人。Jenny,你好吗? 珍妮-艾姆斯 嗨,德里克。我很好。你呢? 德里克-罗宾逊 好。我也很好。我们很高兴推出InterSystems广播站--数据点,并邀请你作为我们的首批嘉宾之一,在这里谈论InterSystems IRIS,以及它对于那些可能不知道的人来说是什么,还有对于那些有兴趣了解更多的InterSystems用户,以及我们技术栈的背景。首先,请您先介绍一下自己,让我们知道你在InterSystems是做什么的,你在这里工作了多长时间,以及你在InterSystems世界的经验? Jenny Ames 02:07 当然,是的。所以我在2020年6月份刚刚庆祝了10年。前五年,我是一名培训讲师,培训我们大部分的产品。Caché、Ensemble、Health Connect以及大部分的HealthShare课程,我非常喜欢这些课程,但是一些生活上的变化意味着我想在这里多待一会儿,所以在过去的五年半里,我一直在做在线培训。 德里克-罗宾逊 02:33 不错。这真是太棒了。所以你显然非常适合我们今天要讨论的问题。那么,让我们从InterSystems IRIS数据平台是什么这个问题开始,好吗?您可以先为那些从未见过它的听众用一个概要性的例子或描述一下IRIS吗?然后我们可以更详细地去了解它的一些功能是什么。所以,如果我今天在电梯里看到你,问你什么是InterSystems IRIS,你会怎么回答? Jenny Ames 02:58 好的,我喜欢把InterSystems IRIS分成三个主要部分。首先它是一个强大的数据库,可以存储、检索数据。它有一个内置的开发环境来构建业务逻辑。同时它也是一个集成引擎,所以你可以在不同的系统之间非常容易地分享数据,进行互联互通,有一些很好的用户界面UI可以帮助你快速地做到这一点,而无需太多的代码。你也可以定制它,因为我们有很好的数据库层面的支持。然后,它也是一个数据分析平台,你可以建立机器学习模型来显示仪表盘和分析数据,以真正使你的数据有意义,并且持续在这个基础上建立新的分析。我们还包含了自然语言处理NLP功能。可以分析大段的文本,找到积极的东西或总结文本。 Derek Robinson 03:52 是的。在今天,整合不断的信息流从各种不同的来源进入你的应用程序,这变得越来越重要,真实世界并不总是像传统的关系型数据库中那样严谨地定义属性和排列,那需要你知道所有的属性和一切,对吗?所以你总整体上总结了这三个方面。下面,让我们从数据库部分开始,因为我认为任何要建立一个数据密集型应用程序的应用开发者都需要从数据库开始,对吗?比如他们需要他们的数据在某个地方。那么,在进入其他功能之前,仅从数据库的角度来看,InterSystems IRIS与人们可以选择的其他数据库相比有什么区别? Jenny Ames 04:30 是的,这是个好问题。首先,我们在InterSystems IRIS中内置了一些逻辑,所以你可以直接利用来建立业务。如果你熟悉Caché,这是我们已经推出一段时间的产品之一,IRIS里有一些新的东西是一些语言的互操作性部分,所以你仍然可以利用你其他用Java.net、Python或Node.js构建的应用程序,然后与InterSystems IRIS的数据库平台进行整合。但我想说的是,真正让它脱颖而出的特性是可靠性。我们在全球主流市场,比如医疗、金融,我们能成功的主要原因就是因为它的可靠性。这是因为我们拥有的可靠性和内置的安全性。 Derek Robinson 05:27 对,没错。因此,对于任何使用数据库来建立他们的应用程序和托管他们的数据并真正能够使用他们的数据的人来说,那里有一些好的元素和好的要求。还有一点,我想谈谈,我知道这与语言的互操作性有一点关系,当涉及到为你的数据库使用不同的模型时,也是模型的灵活性。我知道,当我们在活动中与开发人员交谈时,有时会让他们停下来说,等等,告诉我更多关于这个问题。所以,请给我一个快速的例子,描述一下InterSystems IRIS在数据库层面的多模型能力。 Jenny Ames 06:00 是的。因此,多模型......大多数数据库都选择支持一种模型,无论是对象型数据库还是关系型数据库。而我们认为,为什么要选择?通过对象访问或通过二维表来访问数据有不同的原因。从像Java这样的东西来看,它已经是一个对象模型。所以能够直接保存一个对象是一个巨大的好处,因为它既节省了开发者的时间,也节省了转化时间, 它不必将数据转化为关系型、转化为行就能够做到这一点。但是做一些事情,比如说,选择所有在一家公司工作的人,这种数据用关系型模型来做就真的很容易。因此,我们的设计理念,是使用对每项任务最有效的模型,然后将其全部整合到一个应用程序和平台中。 Derek Robinson 06:45 对。不需要为了解决同一问题或者问题中的不同变化而建立或重复不同的方法,这真的很酷。顺便说一句,沿着这个话题,我想未来的一集可能会涉及到更深层次的内容,即我们的Global和有效的工作方式。我想到了一两个人,他们会很好地解释InterSystems的这些概念,但要更多地讨论InterSystemsInterSystems产品的整体形象。我知道我们以前参加过一些活动,人们会看到我们的商标,看到我们的品牌,然后他们就把InterSystems归类到到医疗行业。对吗?看起来你们是一家医疗IT公司,所以这很酷。可以再跟我说说,为什么人们不应该因为我们做医疗行业把我们只归类在医疗行业?如果有人不在医疗行业领域,有什么理由让他们不应该立即认为InterSystems真的只是医疗信息IT软件? Jenny Ames 07:38 是的。我们在医疗领域的成功是有原因的。同样,因为我们在InterSystems IRIS和其他产品中建立的可靠性、可扩展性和安全性。所以,是的,我们进入其他领域也是有原因的。因为这些功能在多个垂直领域真的很重要。比如,金融机构,你知道,钱对人们来说真的很重要,所以能够使用InterSystems IRIS和利用这些特性真的很重要。而且,就像我提到的,我在教室里的前五年,我已经看到了一些不同的使用案例,我认为我们的一些客户真的很酷。比如说有一家汽车制造公司,他们基本上是集成和处理汽车零件,并能够管理所有这些零部件数据。他们基本上从多个不同的警察辖区获取数据,这些数据以不同的格式存储,他们必须转换这些数据。把所有的数据用我们的产品管理起来,然后他们在此基础上建立了仪表盘,以便能够分析数据并利用数据本身做一些非常酷的事情。 Derek Robinson 09:00 有意思。是的,我认为你提到的最后一个用例可以作为深入讨论我们IRIS的互操作性功能的基础,对吗?我认为还有很多我们可以深入讨论的地方,比如你提到把数据转化为正确的格式。其中有一些转化是我们开始进入那些医疗行业功能的核心,也是我们在医疗行业中最需要的东西。那么,你对这部分还有什么要补充的吗? Jenny Ames 09:26 是的。我们有一些内置的功能,在医疗等行业,一些预置的组件方面确实有帮助。但我们也一直在建立更多的功能,在那里你可以做一些事情,如记录映射器,无代码集成数据等等。但同样,你也可以完全定制它,以便能够使数据具有正确的格式。但是,互操作性实际上是让我最兴奋的功能。我真的很喜欢,我实际上有很多的乐趣,建立集成,玩这个,自己学习更多。但是,是的,我真的很喜欢InterSystems IRIS的这个功能。 Derek Robinson 10:00 是的。在使用案例之前,还有一件事......我们马上要讲到医疗行业,但是经常谈到的InterSystems IRIS的其他使用案例之一是欧洲航天局,它突出了InterSystems IRIS的一些可扩展性、可靠性和处理这些数据负载的巨大能力。 这是一个我们已经谈了很多的例子。你能给我们讲讲这个用例,这个例子,以及为什么它能有效地展示InterSystems IRIS的能力? Jenny Ames 10:29 是的,欧空局使用了我们的一个产品,InterSystems IRIS也采用了其中最好的功能,非常酷。几年前有一个很好的演示,我去看了,就是他们在太空中放置的这个东西,它实际上非常小。比如你可以......你现在看不到我,但是它也许是足球大小,或者可能比它小一点。它基本上绘制了整个银河星系的地图,而且,你知道,对于亮度和速度以及所有这些不同的天体。然后它把这些数据带回来,让操作人员上分析这些数据,真正绘制银河系,这真的很酷。但是,是的,我认为这是一个非常漂亮的例子,因为它正在处理大量的数据,在“大数据”这个词被创造出来之前我们已经在做大数据,但这不是最酷的,最酷的是你拥有所有的数据能够真正发挥他们的作用。 德里克-罗宾逊 11:38 对。很好。作为对我们学习者的一点提示,要想更多地了解这些功能,一般来说,我们只是在谈论可扩展性和可靠性。在可扩展性方面,当涉及到横向扩展系统时,你真的可以看一下分片,以了解更多。我不想深究这个问题,因为我们会有关于这个问题的其他专题。对于可靠性来说,我们的可靠性是镜像技术,对吧?就像我认为你所提到的系统的可靠性,如果一个系统发生故障,也许这种镜像能力是InterSystems产品的特点之一。我有时会说IRIS,但我们谈论的确实是我们大部分的技术堆栈,这些技术对于那些可扩展性和可靠性的一些功能来说确实是最基本的。所以,在这里,我们要进入最后一个部分,也就是IRIS医疗版。InterSystems IRIS for Health是InterSystems IRIS的医疗扩展,是一个更强大的平台。请告诉我们InterSystems IRIS for Health在医疗领域的一些具体扩展功能。 Jenny Ames 12:46 是的。IRIS for Health是InterSystems的IRIS医疗版,它确实是专门为医疗行业打造的,所以它有许多预置的医疗行业特性,帮助你整合并真正为医疗行业环境建立整个数字化应用。它包括对HL7 v2等事务的预建支持,你可以根据事件引入不同的消息。我们有对FHIR的支持。有一个内置的FHIR资源库来管理所有的资源。如果你不熟悉这些术语,你可以百度一下,了解一下。实际上,我们也有一些关于它的课程,你可以参加。我们有对IHE的支持,所以我们的许多针对医疗行业的支持都是内置的,它使你更容易集成不同的数据和应用和更快搭建医疗行业应用程序。 德里克-罗宾逊 13:45 对。很好。我想说的是,珍妮提到的学习内容,即learning.intersystems.com,是我们的学习目录所在。我想这是在这些播客和所有东西的介绍中的一种。但是说到更多的学习和呼吁行动,我们在这里想谈的最后一件事是,我们一直在谈论InterSystems IRIS和InterSystems产品的整体情况。如果我们的一些听众很好奇,他们想了解更多的情况,人们如何才能尝试IRIS? 珍妮-艾姆斯 14:08 是的。我们有两个很棒的新东西可以使用。有一个 "试用IRIS实例"。这基本上是一个试用实例,你可以免费获得,如果你不注册,它可以使用24小时。但如果你注册了,你可以保留30天,这真的很不错。你可以亲身体验,里面有一些预制的样本。所以要访问这个网站,你可以去intersystems.com/try,右边有一个按钮,你可以开始编码。然后还有一个网站,实际上与此有关。在这个屏幕的左侧,有一个新的按钮,可以进入我们新的入门网站。所以,如果你去gettingstarted.intersystems.com,你可以直接去那里,同样,那里有练习和一些使用案例视频,所以你可以开始想象使用InterSystems IRIS的不同方式。 Derek Robinson 14:57 真棒!对于我们的听众,我们会把这些链接放在节目描述中,这样你就可以直接进入这些页面,无论是尝试页面还是入门页面,以真正了解InterSystems IRIS的情况。所以,Jenny Ames,今天的时间就先到这里,非常感谢你参加我们的节目,我们期待和您再次访谈。 Jenny Ames 很好。谢谢邀请! Derek Robinson 15:16 所以再次感谢Jenny加入我们,就InterSystems IRIS和InterSystems IRIS for Health进行了一次内容丰富的谈话,最后还谈到了它对开发人员构建这些数据驱动型应用程序的最大帮助,他们可能需要与其他系统的互操作性,转换你在其他应用程序之间发送或接收的数据。拥有一个非常可靠的设置,如果有什么东西发生故障,或者你需要比你目前拥有的更大的规模,可以真正依靠它。因此,与Jenny就InterSystems IRIS进行了很好的讨论,并再次感谢她。就像我在介绍中提到的,我们在目录中还有很多集,您现在就可以听,然后随着我们的发展,就像我们在预告片中提到的,我们将寻求每月做一到两集,而且真的就像我们可以从我们的专家那里获取内容一样,这就是我们的计划,能够给你提供信息和有趣的讨论,帮助大家学习更多。所以,重要的事情说三遍,你可以到intersystems.com/try或gettingstarted.intersystems.com去试试InterSystems IRIS,至于一般的学习内容,可以到learning.intersystems.com去看看我们的全部目录,同样,在你喜欢的播客应用程序上搜索Data Points并点击订阅按钮。这样,每当我们有新的节目时,你就会收到每一集。再次感谢您的收听,我们将在InterSystems广播站《数据点》节目中再见。 本期节目回放:https://datapoints.castos.com/episodes/1-what-is-intersystems-iris-jenny-ames 关于InterSystems广播站的更多信息,请访问https://datapoints.intersystems.com。 今天就试用InterSystems IRIS,请到https://www.intersystems.com/try,启动你的实例! 更多资料欢迎访问:https://gettingstarted.intersystems.com。
文章
Lilian Huang · 三月 30, 2022

[首次使用InterSystems IRIS] 互操作性: 它是如何工作的?

这篇文章的目的是为了说明如何使用互操作菜单实现系统集成。 图片左侧窗口是接受外部系统发送信息的窗口。 信息接收方式种类很多,如定时监控指定目录来读取文件,定期查询数据库,输入且等待信息输出,或直接调用其他应用程序系统传送信息。 在系统集成配置中创建IRIS 互操作性菜单,接收到存储在一个对象中的信息被称为一条消息message(以下统称为消息)。消息被发送到组件component (以下统称为组件)中做后续处理。 使用所有接收到的信息或仅使用其中的一部分就能用来创建消息。 假设您要将信息中包含的消息发送给外部系统。这种情况下,需要将该消息发送给负责请求外网处理的组件(图右侧)。接收到消息的组件会请求外部系统对其进行处理。 此外,假设一条消息需要人工审查、数据转换或附加数据。这种情况下,消息会被发送到图表中间的业务流程管理组件(BPM),该组件负责协调处理业务流程。 消息用于在每个组件之间发送和接收数据。当发送或接收消息时,消息会被自动存储在数据库中。 由于消息存储在数据库中,因此在数据转换前后可以检查其差异性。在操作期间,或过程中间重新开始(重新发送),可以检查作为问题根源的消息。在开发、测试和操作的每个阶段可以验证正在使用的消息状态。 一个简单的系统集成图将分为三个部分(业务服务Business Service、业务流程Business Process和业务操作 Business Operation),如下图所示。 还有一个称为“生产Production”的定义,它存储有关要使用的组件信息(例如,连接信息)。 各组件功能如下: 业务服务Business Service 负责从外部源接收信息,创建消息,以及向其他组件发送消息。 业务流程Business Process 该功能在收到消息时被激活,并负责协调流程(按预先定义的顺序调用组件、等待响应、等待人工审核结果等)。 业务运营Business Operation 此功能在收到消息时被激活,会请求外部系统处理该消息。 消息是用于在组件之间发送和接收数据。 当收到一个消息时,业务服务以外的所有组件开启处理流程。 问题是,创建和使用此消息的目的是什么? 通过创建消息可获取中继到外部系统的数据并检索进入业务服务。 由于不是所有的外部系统都用相同类型的数据格式连接到 IRIS,并且要中继的内容各不相同,因此生产者可以根据信息自由定义消息类别。 有两种类型的消息:请求(= 请求消息)和响应(= 响应消息)。触发组件激活的消息被称为request(=请求消息),组件处理后响应的消息称为response(=响应消息)。 这些消息在考虑中继流程时会被设计。 在接下来的文章中,我们将使用一个案例来概述生产、消息和组件的创建。 上一篇链接,请参考:《首次使用InterSystems IRIS 》-让我们来使用互操作性!链接如下:https://cn.community.intersystems.com/post/%E3%80%8A%E9%A6%96%E6%AC%A1%E4%BD%BF%E7%94%A8intersystems-iris-%E3%80%8B-%E8%AE%A9%E6%88%91%E4%BB%AC%E6%9D%A5%E4%BD%BF%E7%94%A8%E4%BA%92%E6%93%8D%E4%BD%9C%E6%80%A7
文章
Lilian Huang · 三月 30, 2022

[首次使用InterSystems IRIS] 互操作性: 一个Production是什么?

这篇文章是前面文章[首次使用InterSystems IRIS] 互操作性: 它是如何工作的?的延续。 在上一篇文章中,解释了互操作性菜单如何用于系统集成。 在本文中,我想解释如何用互操作菜单开发系统集成。 首先,您想创建什么样的业务流程? 请一边思考,一边开始以下内容。 Production(生产) 消息 组件 业务服务 业务流程 业务运营 Production被定义和用作指定系统集成所需的组件及存储组件的配置,这些配置通过管理门户界面使用(内部被存储为生产的类定义)。 例如,假设您正在创建一个业务服务,该服务定期处理放置在指定目录中的文件。 在这种情况下,有必要准确配置要监测的目录和要处理的文件。 一个生产就是预先准备好用于存储这些配置。 这些配置取决于发送和接收数据的组件所使用的适配器。 适配器是用于简化与外部系统连接的类,有些是协议特定的,如 Mail/File/SOAP/FTP/HTTP/SQL/TCP,有些是标准特定的,如 HL7。 有关适配器的更多信息,请参阅文档(protocol-specific adapters and adapters related to EDI documentation) 由于我们将必要的组件定义为Production,“启动Production”将启动系统集成,而“停止Production”将停止系统集成。 完成Production需要的开发是系统集成所需组件的创建,具体包括以下内容: • 信息 • 组件(业务服务、业务流程、业务运营) • 数据转换等。 上面的内容会在后面的文章中慢慢讲解。 首先,让我们使用Production示例来启动Production,并在检查配置的同时通过查询数据来检查消息处理的流程。 模版可以从这里下载https://github.com/Intersystems-jp/selflearning-interoperability。 如使用容器,请使用 git 克隆 下载示例代码,导航到克隆的目录,然后运行 docker-compose up -d 就这么简单! 请在此处参考流程here (创建容器需要一些时间)。 如果不使用容器,下载示例后新建一个命名空间,并将src文件夹下的所有类定义文件(extension .cls)导入创建的命名空间。 更多关于创建命名空间的过程,请参考本文this article.07:03之后的视频。 有关示例代码的更多详细信息,请参阅README。 准备就绪后,访问管理门户(更改 Web 服务器的端口号以匹配您的环境)。 http://localhost:52773/csp/sys/UtilHome.csp 进入管理门户 > 互操作性 > 配置 > 生产。 如果您使用的是容器以外的方法,请连接到您导入源代码的命名空间,访问[[配置] > [生产],,单击[打开] 按钮,选择[开始] > [生产],,然后单击 [开始] 按钮。 ※ 如果您使用容器以外的东西,则需要进行一些初始设置。 请在尝试以下内容之前设置以下描述的内容contents described below。 生产页面将为每一个 “服务”、“流程”和“操作”组件显示为[● 组件名称] ]。 单击组件名称可更改屏幕右侧“设置”选项卡的内容。 例如点击Start.GetKionOperation(单击),显示如下。 组件有[HTTP Server] 和 [URL] 配置来连接Web API. 配置底部有一个 [appid] 字段,您可以在其中输入您获得的 API 密钥。 [appid] 附近有一个 [lang] 字段,设置为“ja”(“ja”=日语)。 [lang] 设置来自 OpenWeather 的响应语言。 如用英语,设置为“en”。 完成设置这些配置后,单击“应用”按钮。 如果您使用的是容器,则该配置完成。 欲了解更多信息,请点击here。 如果您正在尝试容器以外的其他配置 请提前做好以下两项设置: 1) 配置SSL客户端。 由于要连接的 Web API 将使用 HTTPS 进行通信,因此请提前在 IRIS 端配置 SSL 客户端。 为了匹配生产模版的设置,我们将使用名称 [openweather]。 生产中的设置如下: 单击管理门户 > [系统管理] > [安全] > [SSL/TLS 配置] > [新建配置] 按钮,在“配置名称”字段中输入“openweather”,然后单击“保存”按钮 结束。 2) 为 REST 创建一个基本 URL 在示例制作中,为使能够通过 REST 输入信息,我们已经进行了配置,基本 的URL for REST配置需要在 IRIS 端。 在生产示例中,我们将配置 /启动设置为基本 的URL。 由于 Start.REST 类存在于导入示例的命名空间中,因此我们将指定该类作为调度类,并添加 %All 作为应用程序角色,以在访问时省去身份验证。 管理门户 > 系统管理 > 安全 > 应用程序 > Web 应用程序路径 > 单击“创建新的 Web 应用程序”按钮。 在名称字段中,指定 /start; 在命名空间字段中,指定从中导入样本的命名空间; 在 Dispatch Class 字段中,指定 Start.REST; 在允许的身份验证方法字段中,选择“未Unauthenticated”,然后保存文件。 保存后,将 %All 角色添加到“application role ”选项卡上的应用程序角色中。 尝试发送数据 全部配置好后,尝试用业务服务通过 REST 发送信息并让它运行。 http://localhost:52773/start/weather/Takoyaki/Osaka 上面的例子是假设某人在大阪购买了“章鱼烧”的 URL。 运行后画面如下。 检查已发送到生产的消息。 在管理门户 > 互操作性 > 配置 > 生产中,单击以下服务: 选择屏幕右侧的“消息”选项卡,然后单击标题字段列下方的任意数字。 如果您没有看到它,请重新加载您的浏览器。 使用 Visual Trace 页面,您可以看到组件之间发送和接收的消息信息。 您可以看到天气信息是从 Web API 检索并在浅蓝色框架中发送回来的。 通过这种方式,您可以使用跟踪来查看当时正在发送和接收哪些数据以及以什么顺序。 在整篇文章中,我们已经确认了Production已经定义了需要的组件和参考示例代码设置的系统集成 我们还确认,我们可以使用 Visual Trace 页面按时间顺序参考通过 Production 的消息。 在下一篇文章中,我们将讨论创建此跟踪中显示的“消息”背后的概念以及如何实际定义它。
公告
Claire Zheng · 六月 15, 2022

一起来录制InterSystems全球峰会的问候视频吧!

Hi 开发者们,你或许已经知道了,今年InterSystems全球峰会线下会议再次开启!我们非常期待能在现场见到诸位! 然而,并不是所有的开发者社区成员都有机会参加(我也是!)所以我们决定制作一个很酷的视频收集来自社区成员们问候🎥 无论身在何方,让我们一同以虚拟方式来参加这次伟大的盛会吧!🌏 ⬆️要求:您录制一句2-3秒的短视频,视频内容是向我们的社区成员说 “Hi From your country (来自XX的问候,英语视频最佳)”,然后将视频上传至 这里 ,这样,我们可以把来自各地的许多视频剪辑在一起,在2022年全球峰会上展示。您也可以通过开发者社区联系我,将视频直接分享给我。 截止日期:美东时间6月18日(周五) 期待见到你!
公告
Claire Zheng · 六月 23, 2022

【参赛时间延长】InterSystems技术写作大赛:Python

嗨,开发者们!欢迎加入第二届InterSystems技术写作大赛! 🐍 InterSystems技术写作大赛:Python 🐍 6月20日至七月20日 延长至7月31日,在社区撰写一篇利用InterSystems技术使用Python的文章,主题自定。 🎁 撰文即得奖 我们为每一位参与此次写作大赛的作者准备了一份特殊礼品! 🏆 优秀文章大奖 AirPods Max; Apple Watch SE; Apple HomePod mini / Apple Pencil 奖品 1. 每个人都是InterSystems技术文章竞赛的赢家! 任何在比赛期间写文章的用户都会得到特别的奖励: 🎁 InterSystems Branded Apple AirTag 🎁 InterSystems Branded Rubik's 9-Panel Cube 2. 专家选择奖 – 文章将由InterSystems的专家进行评判: 🥇 一等奖: Apple AirPods Max 🥈 二等奖: Apple Watch SE 🥉 三等奖: Apple HomePod mini / Apple Pencil 或者另选:获奖者可以从低一级的奖品中进行选择(比如,一等奖获得者可以选择二等奖和三等奖的礼品) 3. 开发者社区奖 – 点赞最多的文章。 获胜者将有机会从以下奖品中选择一个。 🎁 Apple Pencil 🎁 Apple HomePod mini 请注意: 每位作者只可以获得某一类别奖项一次(即:获奖者最多可以获得两个奖项:一个来自专家评选,一个来自和社区点赞) 当出现票数相当的平手情况时,将以专家评判投票数作为最终票数高低的判断标准。 谁可以参加? 任何开发者社区成员(InterSystems的员工除外)。 创建一个账户! 比赛时间 📝 6月20日 - 7月20日(美东时间): 文章发布与投票时间 在这段时间内发表一篇文章。 DC成员可以用 "赞 "为发表的文章投票--在社区奖中投票。 注意:越早发表文章,就越有时间收集专家和社区投票。 有什么要求? ❗️ 任何在比赛期间写的文章,只要满足以下要求,就能自动参加比赛: 文章必须与通过InterSystems技术使用Python(内嵌Python或Python API)相关。 文章必须为英文撰写。 文章必须是100%的新文章(可以是现有文章的延续)。 不允许翻译其他社区的现有文章。 文章发布时必须带着tag: Python/ Embedded Python (具体看您的主题)。 文章篇幅不低于 750单词 (链接和代码不计入字数限制)。 同一作者可以发布多篇文章。 不同作者可以发布同一主题的文章。 🎯 最新:额外奖励 这次我们决定增加额外的奖金,将帮助您赢得奖金! 欢迎了解详情: 要求 奖励票数 详情 主题奖励 5 如果您的文章符合以下列出的建议主题,可以获得五张来自专家的投票 (vs 专家选出的第一名为3 票). 视频奖励 3 文章内容的呈现形式:在发布文章的同时制作说明视频。 讨论奖励 1 文章中有最有用的讨论,由InterSystems专家决定。 只有1篇文章可以得到这个奖励。 翻译奖励 1 文章发布后,在其他社区发布翻译版。 注意:每篇文章可获得一票。 新成员奖励 3 首次参加此次比赛的新成员,将获得三张专家票。 建议主题 以下是可以为您的文章增加额外奖励的主题列表: # 主题 详情要求 1 对InterSystems数据平台有用的Python库 描述您使用哪些库在InterSystems平台上生成应用程序。 2 从互操作性角度谈嵌入式Python 来自互操作性的嵌入式Python探索如何从互操作性产品中利用嵌入式Python。 3 嵌入式Python:通过语言结构进行翻译 虽然我们的目标是实现无缝的嵌入式Python集成,但有一些技巧和技巧可以让事情顺利进行。 下划线方法、字典、列表等。 从ObjectScript调用Python特性的最佳方式是什么? 4 PEX for Python Examples 描述一个以python为中心的方法来利用InterSystems IRIS的能力。Native Python架构中的数据模型。 5 Native API for Python Examples 描述您使用哪些库在InterSystems平台上生成应用程序。 请注意:允许不同作者就同一主题进行创作。 ➡️ 加入 InterSystems Discord 聊聊竞赛规则、奖励和您的想法吧! 期待您的大作! ✨ Important note: Prizes cannot be delivered to residents of Crimea, Russia, Belarus, Iran, North Korea, Syria, or other US embargoed countries.
公告
Claire Zheng · 六月 22, 2021

畅聊吧!来Discord加入InterSystems开发者社区!

亲爱的社区开发者们,大家好! 你可能已经听说过Discord,很多人或许已经是Discord的资深用户了。此刻我们邀请您走近InterSystems技术的世界,加入我们的开发人员社交俱乐部! 用一种超级便捷的方式交流沟通: 💥 Discord:InterSystems开发者社区 💥 在开发者社区Discord Server上, 你会发现许多与intersystems相关的频道和讨论,以及日常生活对话的频道。只要加入我们的俱乐部,就能更接近InterSystems开发者的世界! 约起来,在 Discord:InterSystems开发者社区 与您相聚✌️ 如果您对提升Discord Server有任何建议,或者想在某个特定话题上创建一个新频道,欢迎在评论中分享:)
文章
Weiwei Gu · 三月 14, 2022

[首次使用InterSystems IRIS]-让我们来使用互操作性!

大家好! InterSystems IRIS有一个叫做互操作性Interoperability的菜单。 它提供了轻松创建系统集成的机制(适配器、记录图、BPM、数据转换等),因此不同的系统可以轻松地连接起来。 在数据中继过程中可以包括各种操作,比如:为了连接那些通常不连接的系统,可以根据目的系统的规格要求来接收(或发送)数据。另外,在发送数据之前,可以从另一个系统获取和添加信息。以及,信息可以从数据库(IRIS或其他)获取和更新。 为此,我们会撰写一系列的文章,将讨论以下主题,同时看一下示例代码,以帮助你了解它是如何工作的,以及在用互操作性整合系统时需要什么样的开发。 * How it works 它是如何工作的* What a Production is 什么是Production ?* Message 消息* Component Creation 组件的创建 * 1)Business Operations 业务操作 *2)Business Processes 业务流程*3) Business Services 业务服务 首先,介绍一下我们在这个系列中要使用的案例。 一家经营着一个购物网站的公司,目前正在改变其产品信息的显示顺序,以配合季节的变化。 然而,有些商品无论在什么季节都能卖得很好,而有些商品却在意想不到的时候卖得很好,这与目前改变顺序的显示规则不相符。 因此,我们研究了以当天的温度,而不是按季节来改变产品展示顺序的这种可能性。这就需要调查当时购买产品时的天气温度。 由于外部网络API可用于检查天气信息,我们计划在购买时收集这些天气信息,并在后来的审查数据库中登记。 这很简单,但你需要使用 "外部Web API "来收集信息,并且需要将获得的信息和购买信息结合起来,再在数据库中登记。 具体说明将在以后的相关文章中讨论(不包括创建网站)。也请大家持续关注查看! 至于我们这次使用的 "外部网络API",我们使用的是( OpenWeather的当前天气数据.) (如果你想尝试一下,你需要注册一个账户并获得一个API ID)。 下面是一个REST客户端的GET请求的结果(我们将在所应用的互操作性机制中去运行这个请求)。 ![](/sites/default/files/inline/images/image1050jp.png) The JSON of the HTTP response is as follows: ```json { "coord": { "lon": 135.5022, "lat": 34.6937 }, "weather": [ { "id": 803, "main": "Clouds", "description": "broken clouds", "icon": "04d" } ], "base": "stations", "main": { "temp": 17.05, "feels_like": 13.33, "temp_min": 16, "temp_max": 18, "pressure": 1017, "humidity": 55 }, "visibility": 10000, "wind": { "speed": 4.63, "deg": 70 }, "clouds": { "all": 75 }, "dt": 1611635756, "sys": { "type": 1, "id": 8032, "country": "JP", "sunrise": 1611612020, "sunset": 1611649221 }, "timezone": 32400, "id": 1853909, "name": "Osaka", "cod": 200 } ``` 在 下篇文章中,我们将再来讨论如何使用互操作菜单来实现系统集成。 [OpenWeather]: https://openweathermap.org/ 系列第一篇!