.png)
关注FHIR的大侠们估计都注意到了,FHIR更新了它支持的互操作范式,除了消息、文档、服务、API这4种,增加了2个:资源仓库、订阅。前面4个好理解,为什么资源仓库和订阅会成为FHIR的新的互操作范式?互操作与应用集成是什么关系?
这里借FHIR的新互操作范式,聊聊应用集成,看看集成平台是什么?有什么样的集成方案?以及怎么评价不同的方案。
.png)
关注FHIR的大侠们估计都注意到了,FHIR更新了它支持的互操作范式,除了消息、文档、服务、API这4种,增加了2个:资源仓库、订阅。前面4个好理解,为什么资源仓库和订阅会成为FHIR的新的互操作范式?互操作与应用集成是什么关系?
这里借FHIR的新互操作范式,聊聊应用集成,看看集成平台是什么?有什么样的集成方案?以及怎么评价不同的方案。
中文社区的同学们大家好!
如你所知,从2022年9月5日-10月24日(北京时间),我们正在举办🏆InterSystems开发者社区中文版首届技术征文大赛🏆(←点击链接进入参赛页面,浏览所有参赛文章)!
截至目前,我们已收获了20余篇佳作![]()
![]()
![]()
作为此次大赛重要奖项“专家提名奖”评比的重要部分,我们的专家评审团已组建成团!
可以从 Telnet 会话、Windows 上 IRIS® 启动器上的远程系统访问子菜单或从 Web 服务器和实例信息生成的 URI 控制远程实例。
要为远程实例使用远程系统访问子菜单上的实用程序:
IRIS 启动器并指向远程系统访问。还可以从 Telnet 会话连接到 IRIS 的远程实例:
单击 IRIS 启动器并指向远程系统访问。
单击 IRIS Telnet,连接到远程服务器,并使用用户名和密码登录 IRIS 系统。或者,如果服务器在首选服务器列表中,请指向终端,然后单击服务器名称。
可以从 PC 上运行的终端或任何能够运行 Telnet 的工作站客户端远程登录到任何受支持平台上的 IRIS 实例。此客户端可能只有实用程序,而没有 IRIS 服务器实例。大多数情况下,客户端计算机上的 IRIS 版本必须与其管理的 IRIS 系统的版本相同或更高。
注意:在 macOS 平台上,还可以从 Windows 上的命令提示符使用 SSH 连接到 macOS 机器,然后使用以下命令进行连接:
sudo /sbin/service telnet start
还可以将 Web 服务器页面与远程 Web 服务器一起使用。
在数字化转型成为国家战略和国内外科技大厂的成功经验、强大的宣传攻势和推广能力联合左右下,微服务架构(Microservices Architecture,MSA)毫无疑问已经成为当今基础架构的主流话题,短短几年间席卷全行业,仿佛成了每个行业数字化转型的必由之路。
在 shell 中,具有 sysmgr 组中任何用户 ID 的用户都可以运行 iris,它调用 install-dir/bin 目录中的 IRIS 可执行文件和脚本.以下部分描述了如何在 IRIS 实例上执行这些管理任务:
重要提示:安装的所有者拥有启动和停止实例、执行系统管理以及为该实例运行诊断程序的完全权限。
只有作为实例所有者的用户 ID 才能并且应该运行所有诊断活动。这确保创建的任何文件或资源都归实例所有者所有,而不是 root(这可能使非 root 用户无法访问这些资源)。因此,不建议 root 以任何方式管理不属于 root 的实例(包括启动和停止实例)。以 root 身份运行的用户应该只管理 root 拥有的实例。
要启动 IRIS,请在系统级别运行启动程序。此过程激活默认配置文件或您指定的配置文件。
注意:如果在启动 IRIS 时遇到任何问题,请按照“监控指南”的“监控日志文件”部分中的说明查看 messages.log 文件。
如果不在控制台机器上,请运行 Telnet 并连接到安装了 IRIS 的目标机器。在可以在 UNIX® 上启动 IRIS 之前,必须满足以下条件之一:
root 用户身份登录。如何知道已使用了多少许可证以及由谁使用?类中的 %SYSTEM.License 提供了到 IRIS 许可证应用程序编程接口 (API) 的接口,并提供了许多方法和相关查询,可以使用这些方法和相关查询来查询许可证容量和当前使用情况。
可以使用 %Library.%ResultSet 类的 RunQuery 方法运行多个许可查询。例如:
USER>do ##class(%ResultSet).RunQuery("%SYSTEM.License","Summary")
LicenseUnitUse:Local:Distributed:
当前使用的软件许可单元 :2:2:
使用的最大软件许可单元数 :3:2:
授权的软件许可单元 :25:25:
当前连接 :2:2:
最大连接数 :6:6:
可以从管理门户的许可证使用页面(系统操作 > 许可证使用)查看这些查询的输出,详细信息如下表所示:
| 许可证使用页面上的链接 | License Query |
|---|---|
Summary |
Summary() — 返回许可证使用摘要,如 $System.License.ShowSummary 所示。 |
Usage by Process |
ProcessList() — 返回操作系统进程标识符 (PID) 使用的许可证,如 $System.License. |
在虚拟化环境中使用镜像,构成镜像的InterSystems IRIS实例被安装在虚拟主机上,创造了一个混合的高可用性解决方案,将镜像的优点与虚拟化的优点结合起来。镜像通过自动故障切换对计划内或计划外的故障提供即时响应,而虚拟化HA软件在计划外的机器或操作系统故障后自动重新启动承载镜像成员的虚拟机。这允许失败的成员迅速重新加入镜像,充当备份(或在必要时作为主机)。
当镜像被配置在虚拟化环境中时,请参考以下建议:
在创建虚拟机快照时,虚拟机需要短时间的冻结,这个短时间冻结通常指虚拟机静默,在静默过程中网络连接处于中断状态。由于数据库的不断增长,使用VMWare快照的方式对虚拟机进行备份的时长也会不断增加,当对虚拟机进行快照的时长长于InterSystems镜像服务质量 (QoS) 超时时间,即当主机网络中断超过QoS超时时间,仲裁机与备机观察并相互确认与主机的连接丢失后,将发起切换过程,使原备机成为主机并将虚拟IP从主机MAC地址解绑后重绑定到备机的MAC地址上。特别需要注意的是,在这种由于网络中断引起的切换中,仲裁与备机都无法得知主机的实际工作状态。因此,在主机网络连接恢复后,为了为了避免因切换期间主机还在处理数据导致主备机间数据不一致,备机主动发起请求让主机下线,关闭主机,此时主机状态显示为关闭(Down)。
IRIS 实例使用以下资源来控制启动、停止和创建新进程:
install-dir\mgr 目录中的 iris.ids 文件。IRIS 使用建议文件锁定来防止同一实例在不同机器上的多次启动。使用咨询文件锁定,单个锁定文件(在本例中为 install-dir/mgr 目录中的文件 ilock)可用于独占锁定多个资源。控制进程、写入守护进程和日志守护进程分别锁定锁定文件的一个单独部分。如果 ilock 文件的这一部分已被锁定,则启动将终止。不同守护进程持有的锁称为守护进程资源锁。
文件锁由进程持有,直到进程终止。因此,如果持有任何锁,则表明某个节点上的某个守护进程正在运行。但是,它并不表示实例是否健康并正常运行。
iris.ids 文件包含启动 IRIS 的节点的名称。 iris.ids 文件的存在充当 ObjectScript 实用程序和客户编写的脚本的标志,指示实例是否启动并运行。该文件在启动过程中经常被忽略。但是,如果在读取 iris.ids 时发生错误,则会阻止 IRIS 启动。在以前版本的 IRIS 中,共享内存标识符也存储在 iris.ids 文件中,但现在不再如此。
请教一下,如何在消息查看器打开”显示查询“这个按钮的显示开关
开发者社区的同学们,大家好!
在 之前的公告 中,我们向大家介绍了InterSystems官方反馈门户 InterSystems Ideas! 今天想给大家介绍更多,尤其是涉及到的主题。
.png)
你可以按以下主题类别提交你的想法:
开发者社区的同学们,大家好!
我们一直以来都有一个想法——改进收集、分析和回应开发者社区成员们的产品改进请求的过程。我们知道,我们需要一个良好的用户体验,甚至更好的内部流程,来确保收集、听取和响应最好的想法。现在,这个想法终于实现了!
我们在此向您介绍 InterSystems官方反馈门户
本章介绍Unix®、Linux和MacOS上的特定管理程序。
UNIX® 用户、组和权限UNIX® 平台上的每个 IRIS® 数据平台安装都有以下用户和组:
Root — IRIS 必须由 root 安装, IRIS 系统守护程序的某些处理以 root 身份运行。root 是默认所有者;否则,在安装过程中会提示输入所有者。IRIS 超级服务器及其作业的有效用户——所有由超级服务器生成的用于处理传入请求的 IRIS 进程都以此用户身份运行;此外,由作业服务器进程、任务管理器作业和用户定义的启动例程(例如,^%ZSTART)托管的作业也以该用户身份运行。默认情况下,此用户是 irisusr,但可以在自定义安装期间更改用户。IRIS 进程的有效组——所有 IRIS 进程自动作为该组运行,这允许普通用户在 IRIS 内访问他们可能没有被授予访问权限的 IRIS 数据库和日志文件;这些和其他 IRIS 文件的文件权限设置为允许该组具有适当的访问权限。在安全系统上,只有 IRIS 超级服务器及其作业的有效用户应该是该组的成员。默认情况下,该组包含 irisusr,但您可以在自定义安装期间更改该组。这是一篇笔记:
说明
Restful是一种基于Http的网络应用程序的设计风格和开发方式,可以使用xml格式或者Json格式定义。
RESTFUL特点包括:
1、每一个URI代表1种资源;
2、客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;
3、通过操作资源的表现形式来操作资源;
4、资源的表现形式是XML或者HTML;
5、客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息。
IRIS中实现
GET:
XData UrlMap [ XMLNamespace = "http://www.intersystems.在更新医保码库前,我们想对旧码库做个备份,以防更新过程失败,还可以还原。
oracle支持 CREATE TABLE AS ..... 的语法快速备份一张表,cache 似乎不支持这个语法,
大家平时是怎么备份一张码表的呢?
最好是像 oracle 那样一条命令搞定的那种。
Microsoft Windows 平台上的主要IRIS 界面是 IRIS 启动器。从 IRIS 启动器,可以启动所有 IRIS 配置和管理工具。还可以从快捷方式或命令行调用每个启动器命令。
相应地,可以从 Windows 程序菜单中启动许多 IRIS 工具,方法是指向 IRIS 文件夹,然后指向启动 IRIS 以获得适当的 IRIS 实例名称。
当在基于 Windows 的系统上启动 IRIS 时, IRIS 启动器图标会出现在任务栏的系统托盘中。
当单击 IRIS 启动器时,会出现一个菜单,其中包含使用 ObjectScript 实用程序和编程环境的命令。
下表描述了 IRIS 启动器菜单中可用的命令。
| IRIS 启动器命令 | 描述 |
|---|---|
Getting Started |
显示教程、发行说明、文档和其他相关信息的链接 |
Start IRIS |
启动菜单项后方括号中指定的默认实例,例如 [ii2081]。如果 IRIS 服务器已经启动,这个选项会变暗——它不可用。 |
Stop InterSystems |
关闭或重新启动本地 IRIS 实例。如果 IRIS 服务器已停止,此选项将显示为灰色——它不可用。 |
Studio |
创建、编辑、删除和编译 IRIS 类定义和例程。 |
好消息, InterSystems 容器镜像仓库Docker桌面扩展已正式发布供大家 下载 .
.png)
大家可以在Docker桌面版的marketplace 下载.下载后需要重启 Docker Desktop to
以往的经验里, 用户在把数据库添加到镜像时遇到过各种各样的问题,以致必须请求外部帮助才能解决。除了步骤本身比较繁琐,很大的原因是阅读文档不细致。还有一个,就是对英文水平不太高的用户,有些英文句式并不是很好懂,比如说,文档中有这一句其实非常关键:
If you attempt to add a new database to the mirror on a nonprimary member that was not created as a mirrored database on the primary, but rather added to the mirror after it was created, an error message notes this and you cannot complete the operation.
我用最好的翻译器DeepL翻译后的中文是:
如果你试图在一个非主要成员上向镜像添加一个新的数据库,而这个数据库并不是在主要成员上作为镜像数据库创建的,而是在创建后添加到镜像中的,那么就会出现错误信息提示,你无法完成操作。
这里详细介绍了主成员(Primary)和备用成员(Backup)的设置过程。 虽然也包括了异步成员配置的章节,其实我没有真的操作,我认为应该没有特别需要注意的。
配置Mirror应该有这么几步:
进入系统管理界面,选择系统管理>配置>镜像设置>启动镜像服务,勾选服务已启动, 保存退出。这是可以看到菜单栏的创建镜像条目已经从灰色变成正常的白色,表示您已经可以创建镜像。
仅仅是打开服务,并没有修改Journal文件
在管理界面进入“系统>配置>镜像设置>创建镜像”,从这里开始镜像的创建工作。创建镜像的同时,这一步还包括把本机做为第一个镜像成员加入到镜像。第一个镜像成员被加入后会成为主镜像成员, 菜单里的英文是“Primary Failover Member"。
Warning: 如果本机的ISCAgent没有启动, 您会得到提示“错误 #2118: ISCAgent不在本地系统中启动”。另外,特殊情况下,您还可能会碰到错误提示:“错误 #2136: 实例的版本高于ISCAgent的版本”。
如下面的截图,创建镜像需要提供这些配置信息:

镜像名称:可以是任意的名称, 和各个服务器/成员的名称无关。
需要SSL/TLS:如果您不勾选此选项,会得到“强烈建议使用SSL/TLS"的提示信息。
因为篇幅太长, 我把它分为3篇贴在社区
配置Mirror前要准备三件事儿:
我假设您在动手前一定已经对Mirror的原理和架构已经不陌生了,对镜像成员,DR(灾备)成员, Arbiter, ISCAgent等术语已经自动切换的概念有大概的认识。如果不是这样,请先阅读在线文档,或者这篇文章。
Mirror应该配置两个网段:一个用于IRIS和外部的通信;另一个用于两个Mirror成员间的内部通信,也就是数据的同步。 尽管不是必须的,但Mirror作为一个高可用方案,为了保证服务器之间的内部通信不受和外部连接的干扰,把内部通信放在单独的网段是通常的做法,尤其是在生产环境。
下图来自IRIS的在线文档:其中绿色所示的是IRIS提供服务的网段,IRIS到所有外部系统的连接,ECP应用服务器,和Arbiter在工作在这个网段。紫色的“Data Center Private LAN for Mirror Communication"用于内部通信,准确的说, 用于journal的同步。为了方便, 我会在后面的步骤中简单的把这两个网段简单的称为外网网段和内网网段。

也是来自在线文档,上图的IP地址配置像这个样子。
在 Microsoft Windows 平台上管理 IRIS 数据平台实例非常简单。可以使用管理门户和 IRIS 启动器执行大多数任务。还可以从命令提示符控制 IRIS 实例。
本主题使用 install-dir 来指代 IRIS 安装目录——可以在安装指南的默认安装目录部分找到默认目录。
注意:不要对 IRIS IRIS.DAT 数据库文件使用 Windows 文件压缩。 (通过右键单击 Windows 资源管理器中的文件或文件夹并选择属性,然后选择高级,然后压缩内容以节省磁盘空间来压缩文件;压缩后,文件夹名称或文件名在 Windows 资源管理器中呈现为蓝色。)如果压缩一个IRIS.DAT 文件,它所属的实例将无法启动,并出现误导性错误。
IRIS 实例的访问InterSystems 服务所有 IRIS job和进程都从 InterSystems 服务、 IRIS Controller for 运行。 InterSystems 服务具有的权限由其关联的 Windows 用户帐户决定。当这是本地 SYSTEM 帐户时, IRIS 可以访问 Windows 系统上的所有文件和权限。为了维护一个更安全和限制性更强的环境,应该为服务选择一个仅具有所需权限和访问权限的 Windows 帐户。
此篇文章给大家介绍一个使用pyodbc连接到 InterSystems IRIS数据库的示例,详情如下:
InterSystems IRIS 安装在Redhat 操作系统中,使用pyodbc在Mac操作系统中连接到Redhat 操作系统中InterSystems IRIS数据库。
pip install pyodbc
brew update
brew install unixodbc
odbcinst -i -d -f pyodbc_wheel/mac/odbcinst.ini
pyodbc_wheel/mac/odbcinst.iniodbcinst -i -s -h -f odbc.ini_unixODBCtemplate
odbcinst -i -s -l -f pyodbc_wheel/mac/odbcinst.
步骤:
pip install intersystems_irispython-3.2.0-py3-none-any.whl
import iris
def main():
connection_string = "localhost:1972/USER"
username = "SQLAdmin"
password = "deployment-password"
connection = iris.connect(connection_string, username, password)
# when finished, use the line below to close the connection
# connection.
步骤:
.png)
using System;
using InterSystems.Data.连接前准备:
步骤:
#ifdef WIN32
#include <windows.h>
#endif
#include <sqlext.h>
#ifdef UNICODE
#include <sqlucode.h>
#endif
#include <stdio.连接前准备:
步骤:
import com.intersystems.jdbc*;
import java.sql.Connection;
public class JDBCConnection{
public static void main (String[] args) throws Exception {
String dbUrl = "jdbc:IRIS://127.0.0.1:1972/User"; //replace
String user = "SQLAdmin";
String pass = "deployment-password";
IRISDataSource ds = new IRISDataSource();
ds.setURL(dbUrl);
ds.setUser(user);
ds.应用程序许可使应用程序合作伙伴能够利用 的许可功能来实现自己的许可目的。 IRIS 像管理自己的应用程序许可证一样管理客户应用程序许可证,维护使用计数并根据需要获取和返回用户许可证。当进程退出、停止或从进程表中删除时,或者当 Web 会话超时或被删除时,进程或 Web 会话使用的应用程序许可证与进程或会话使用的 IRIS 许可证一起自动释放。
应用程序许可证只是标准 .ini 格式的文件或此类文件的一部分,包含标识应用程序的部分标题和一些keyword=value对,在许可证中是唯一的,代表许可的功能。任何格式正确的应用程序许可证都可以在运行时由应用程序加载到 IRIS。
应用程序许可 API 包括使应用程序能够代表用户使用和返回许可证的方法和查询,以及使程序能够获取有关应用程序和功能许可的信息,包括正在使用和仍然可用的许可证数量。
IRIS 实例可以在应用程序运行时使用 $SYSTEM.License.LoadAppLicenseFile 方法加载和激活任何应用程序许可,该方法记录在 %SYSTEM.License 的类参考中(请参阅应用程序许可 API)。以这种方式加载的应用程序许可证与活动的 IRIS 许可证无关,但由 IRIS 实例独立跟踪。
InterSystems IRIS是一个伟大的数据平台,它满足了当前市场所需的功能。在这篇文章中,你可以看到我心目中的前10大功能:
| 排名 | 特性 | 原因 | 了解更多 |
| 1 | 互操作性, FHIR 和物联网 | 商业机构之间需要持续互联和交换数据。各个业务部门之间也需要加强协作来将本增效。实现协作的最佳技术是IRIS的互操作工具包,尤其是 服务总线ESB, 集成适配器,业务流程自动化引擎,数据转化工具以及例如FHIR和MQTT等。 |
|
| 2 | API 管理器 | 大家通过API来消费数字资产。API需要在一个中心点管理其重用、安全、消费、资产目录、开发者生态系统和其他方面。API管理器是实现这一目标的正确工具。因此,所有的公司都有或希望有一个API管理器。 | Link |
| 3 | 数据分片 | 据预测,全球创造、捕获、复制和消费的数据总量将迅速增加,在2020年达到64.2 zettabytes。在接下来的五年里,直到2025年,全球数据创建量预计将增长到180兆字节以上。在2020年,创造和复制的数据量达到了新高(来源:https://www.statista.com/ statistics/871513/worldwide-data-created/)。 |
Spring Boot 是最常用来创建 REST API 和微服务的 Java 框架。 它可用于部署 Web 应用程序、可执行 Web 应用程序或桌面自包含应用程序,其中应用程序和其他依赖项打包在一起。 Spring Boot 允许执行许多功能,请参见:

注:要了解有关 SpringBoot 的信息,请参见官方网站 - https://spring.io/quickstart
要创建具有一个或多个微服务的 Web api 应用程序,可以使用 Spring IDE for Eclipse/VSCode,并使用向导配置上述将在应用程序中使用的技术,请参见:
.png)
您可以选择技术并创建项目。 所有技术都将通过 maven 导入。 它就像一个可视化的 zpm。
所创建的项目有一个类用于为应用程序提供支持,其中包含所有所需内容(Web 和应用程序服务器,以及所有依赖项、微服务概念)。
此项目的完整源代码在以下 open exchange 项目中: https://openexchange.intersystems.com/package/springboot-iris-crud。
首先要配置 IRIS JDBC 驱动程序和 IRIS Hibernate 支持,为此,请将 jar 文件复制到 resources 文件夹,请参见:
.png)
打开 pom.
关于微服务架构(MSA)的IRIS定位的初学者指南。MSA在企业级Java世界中的能见度越来越高,因此,了解这股热潮背后的内容是至关重要的。我尝试着写下我的观点并与大家分享。
首先,我必须承认。今年初夏,我的同事要求我收集一些关于匈牙利开发的医疗产品的信息。当我从相关公司得到反馈时,发现该产品是一个模块化系统,基于微服务架构(MSA)。好的。什么是MSA?在网上做了简短的研究,阅读了一些WIKI网页后,我得出结论:啊哈,又是一个 "架构"。我们可以用IRIS在 "架构层面 "遵守 "任何架构"--至少 "在某种程度上"。但也有一些恼人的地方。这让我对MSA有了更多的了解。到目前为止还不错,但是REST不是这篇文章的主要话题吗?MSA和REST之间的关系是什么?我访问的几乎每个网站都在例子中使用了RESTful网络服务。这让我有点怀疑。但总的来说,我赞同对MSA的一般总结:它是SOAP但做得很好。特别是因为有一些关于 "内聚 "和 "耦合 "的句子,我完全不明白。那么,如果MSA只是 "SOAP做得好",为什么我没有看到SOAP的例子?为什么这些例子(几乎)都是RESTful?
在这个问题之前,对我来说,"REST "是一个使用JSON序列化数据交换的网络服务,通过HTTP传输。但是在那个时候,我脑子里有太多的问题,因此我开始阅读REST文献。很快我就找到了起源。