#InterSystems IRIS

0 关注者 · 938 帖子

InterSystems IRIS 是一个完整的数据平台
InterSystems IRIS 为您提供了捕获、共享、理解组织最宝贵的资产(数据)并采取相应行动所需的一切。
作为一个完整的平台,InterSystems IRIS 不需要集成多种开发技术。应用程序需要更少的代码、更少的系统资源和更少的维护。

文章 Michael Lei · 五月 15, 2022 7m read

InterSystems IRIS对加密、解密和哈希操作有很好的支持。在%SYSTEM.Encryption(https://docs.intersystems.com/iris20212/csp/documatic/%25CSP.Documatic…;


IRIS算法和加密/解密类型

正如你所看到的,这些操作是基于密钥的,包括3个类:

  • 对称密钥: 进行加密和解密操作的部分共享同一个秘密密钥。
  • 非对称密钥: 进行加密和解密操作的部分共享相同的秘密密钥进行加密。然而,对于解密,每个部分都有一个私人密钥。这个密钥不能与其他人共享,因为它是一个身份证明。
  • 哈希: 当你不需要解密,而只需要加密时使用。当涉及到存储用户密码时,这是一种常见的方法。

对称和非对称加密的区别

  • 对称加密使用一个单一的密钥,需要在需要接收信息的人之间共享,而非对称加密在通信时使用一对公共密钥和一个私人密钥来加密和解密信息。
  • 对称加密是比较老的技术,而非对称加密则相对较新。
  • 非对称加密的出现是为了补充对称加密模式中需要共享密钥的固有问题,通过使用一对公共-私有密钥来消除共享密钥的需要。
  • 非对称加密比对称加密花费的时间相对较多。
0
0 568
文章 Michael Lei · 五月 15, 2022 1m read

有一个简单的新方法可以在Windows和Mac上的InterSystems IRIS 2019.1(和2018.1.2)的SSL/TLS配置中添加证书授权(CA)证书。  你可以通过输入以下内容要求IRIS使用操作系统的证书存储。

%OSCertificateStore

在 "包含受信任证书颁发机构X.509证书的文件 "栏中输入:%OSCertificateStore。   这里有一张如何在门户中这样做的图片:

这里有一个描述这个问题的文档链接。  它在 "包含受信任的证书颁发机构证书的文件 "的选项列表中。

这就是你需要做的所有事情!  现在,这个配置将接受由操作系统证书库中列出的任何CA颁发的证书。

0
0 327
文章 Qiao Peng · 五月 15, 2022 9m read

     在软件开发和业务集成中,规则无处不在:会员折扣的计算规则、根据消息类型和内容将其路由到不同目标系统的路由规则。还有一个规则发挥重要作用的地方-  辅助决策规则,例如临床知识库和医疗质量指标规则。

规则经常需要随业务调整和知识积累进行调整,而规则的调整是业务和行业专家定的。如果规则是以代码硬编码的,这些调整需要程序员改动,一来不直观、需要业务专家与程序员大量的沟通成本,二来硬编码改动会对应用伤筋动骨,甚至带来风险,三来没法控制新规则生效的时间 – 总不能让程序员在新规则生效的那一刻去编译和部署吧。

InterSystems规则引擎可以帮助我们解决这些问题,于构建、执行和记录消息路由规则和普通的业务规则,带给应用和集成方案充分的灵活性和可用性。甚至业务专家和临床信息学家都可以通过低代码的、图形化的规则编辑器修改规则和指定规则生效和失效时间。

InterSystems规则引擎是InterSystems IRIS数据平台和Health Connect与Ensemble集成平台的组件。创建的规则可以被单独调用,也可以被业务流程调用。

本篇介绍规则的如何使用InterSystems规则编辑器创建规则和规则引擎执行规则的逻辑。

1. 规则基本概念

    在设计规则前,先了解一下规则的基本概念。

1.1 上下文

上下文是用于规则定义的数据模型。

0
0 510
公告 Michael Lei · 五月 11, 2022

InterSystems Kubernetes Operation(IKO)3.3版现已通过WRC下载页面和InterSystems容器注册中心提供。
IKO通过提供一个易于使用的irisCluster资源定义,简化了在Kubernetes中使用InterSystems IRIS或InterSystems IRIS for Health的工作。完整的功能清单见IKO文档,包括轻松的分片、镜像和ECP的配置。

IKO 3.3 亮点:

  • 支持InterSystems IRIS和InterSystems IRIS for Health 2021.2 以及 2022.1版本
  • 支持 Kuberentes 1.21
  • 将常见的系统警报和监控(SAM)配置作为irisCluster的一部分进行部署
  • InterSystems API Manager(IAM)现在也可以作为 irisCluster的一部分进行部署和管理
  • 自动标记Mirror对的活跃端,因此服务可以始终指向激活的镜像成员
0
0 130
公告 Jingwei Wang · 五月 11, 2022

各位开发者们好,:

很高兴跟大家宣布,畅销书作家和技术专家杰弗里·摩尔将在6月22日InterSystems的全球峰会上做专题演讲。以下是他的简历:

杰弗里·摩尔是一名咨询专家,他最近的咨询业务包括Salesforce、微软、Autodesk、F5Networks、Gainsight、谷歌和Splunk。 他一生的工作都集中在颠覆性创新的市场动态上。他的第一本书《跨越鸿沟》是关于创业公司在从早期采用者过渡到主流客户时所面临的挑战,该书已售出超过一百万册。摩尔最近的作品《Zone to Win》探讨了大型企业在拥抱颠覆性创新时所面临的挑战。  摩尔每年发表50至80场演讲,最近他重点关注企业IT投资从记录系统向交互系统的转变。 

我将发布更多关于我们演讲者的信息。今年的全球峰会,演讲阵容很强大。

另外,你现在可以在我们的网站上建立你的会议和时间表。如果你还没有注册,可以点击马上注册. 

0
0 128
文章 Lilian Huang · 五月 10, 2022 2m read

InterSystems IRIS 2021.1 的发布引入了自适应分析(Adaptive Analytics)的介绍。 为了开始使用和熟悉 InterSystems IRIS BI cube示例,我们创建了一个用于自适应分析的 HoleFoods 应用程序示例模版。 此示例应用程序可在 Open Exchange 上获得, 还有一个学习服务课程learning services course 可用于了解有关自适应分析的更多信息。

0
0 183
文章 Jingwei Wang · 五月 4, 2022 8m read

你是否尝试过InterSystems IRIS IntegratedML学习平台?在这个平台中,你可以在再入院数据集上训练和测试一个模型,并能够预测一个病人何时会再入院,或计算其再入院的概率。

你不需要在你的系统上进行任何安装就可以尝试,你所要做的就是启动一个虚拟实验室环境(Zeppelin),然后玩一玩!

在这篇文章中,我们将利用这个实验室向你简要介绍IntegratedML,向你介绍要处理的问题,如何使用IntegratedML来创建一个再入院预测模型,以及如何分析其性能指标的一些见解。

什么是IntegratedML?

IntegratedML infographic

来源: https://github.com/intersystems-community/integratedml-demo-template

在开始本教程之前,让我们简单谈谈IRIS IntegratedML。这个工具使你能够直接在SQL语句中执行机器学习(ML)任务,抽象出复杂过程的实现,例如,选择哪些列和ML算法是对目标列进行分类或回归的最佳选择。

IntegratedML的另一个伟大功能是易于部署。一旦你的模型被训练并表现良好,你只需要运行SQL语句,以便让你的模型投入生产。

IntegratedML让你选择使用哪个 ML提供者。默认的提供者是 AutoML, 这是InterSystems公司使用Python实现的ML库 scikit-learn.

0
0 192
文章 Jingwei Wang · 五月 4, 2022 5m read

InterSystems IRIS IntegratedML功能用于使用AutoML技术获得机器学习的预测结果和概率。AutoML是一种机器学习技术,用于选择更好的机器学习算法/模型基于已有数据(用于训练AutoML模型的数据)来预测状态、数字和结果。你不需要一个数据科学家,因为AutoML会测试最常见的机器学习算法,并根据分析的数据特征选择更好的算法给你。在这篇文章中可以看到更多管乐IntegratedML的信息。

InterSystems IRIS有一个内置的AutoML引擎,但也允许你使用H2O和DataRobot。在这篇文章中,我将向你展示使用InterSystems AutoML引擎的每个步骤。

第1步 - 下载样例应用程序做练习

1. 转到 https://openexchange.intersystems.com/package/Health-Dataset

2. Clone/git 将 Repo拉到任何本地目录中

$ git clone https://github.com/yurimarx/automl-heart.git

3. 在同一个目录中打开一个Docker终端并运行

$ docker-compose build

4.

0
0 132
公告 Michael Lei · 五月 3, 2022

nterSystems很高兴地宣布发布系统警报和监控(SAM)1.1版。

什么是SAM ?

SAM将IRIS基于标准的监控API日志监控与熟悉的行业标准工具如Grafana和Prometheus结合起来,为IRIS集群创建一个基本的监控和告警解决方案。

关于SAM的更多信息,请参阅《系统告警和监控指南》

SAM 1.1有什么新的内容?

你会注意到Grafana仪表盘图形的性能改进,特别是在处理大型数据集时。  如果你从SAM 1.0升级,你要确保你有足够的磁盘空间,因为SAM 1.1增加了额外的数据索引。

有关升级到SAM 1.1的更多信息,请参见发行说明

SAM 主页

SAM 实例详细页面

0
0 379
文章 Michael Lei · 五月 3, 2022 6m read

Hi 社区,

想象一下,使您的应用程序能够阅读文本?现在有了IRIS的新功能--嵌入式Python,这就成为可能。有了这个新功能,IRIS可以原生地运行任何开源或商业的Python库。gTTS(https://pypi.org/project/gTTS/)是一个免费的库,使用谷歌翻译服务将文本转换成音频。

怎么做

只要通过参数传递文本,gTTS就会返回一个将文本转换为音频的MP3文件。也就是说,你的应用程序可以播放任何文本的音频! 请看如何做到这一点。

1. 进入https://openexchange.intersystems.com/package/IRIS-Text2Audio,点击下载按钮&#1…;

2. 克隆/git pull repo到任何本地目录中

$ git clone https://github.com/yurimarx/iris-tts.git

3. 在这个目录中打开一个Docker终端,运行:

$ docker-compose build

4. 运行IRIS container:

$ docker-compose up -d 

5.

0
0 238
文章 Michael Lei · 五月 3, 2022 6m read

所有源代码均在: https://github.com/antonum/ha-iris-k8s 

在上一篇文章中,我们讨论了如何在k8s集群上建立具有高可用性的IRIS,基于分布式存储,而不是传统的镜像。作为一个例子,那篇文章使用了Azure AKS集群。在这一篇中,我们将继续探讨k8s上的高可用配置。这一次,基于Amazon EKS(AWS管理的Kubernetes服务),并将包括一个基于Kubernetes 快照进行数据库备份和恢复的选项。

安装

开始干活. 首先需要一个AWS账户,安装 AWS CLI, kubectl 和 eksctl 工具. 要创建新的集群,请运行以下命令:

eksctl create cluster \
--name my-cluster \
--node-type m5.2xlarge \
--nodes 3 \
--node-volume-size 500 \
--region us-east-1

这个命令需要大约15分钟,部署EKS集群并使其成为你的kubectl工具的默认集群。你可以通过运行以下代码来验证你的部署:

kubectl get nodes
NAME                                             STATUS   ROLES    AGE   VERSION
ip-192-168-19-7.
0
0 649
公告 Michael Lei · 四月 29, 2022

年度InterSystems IRIS开发者大赛来了,我们特别兴奋能够邀请大家参加我们今年的年度大奖赛,利用InterSystems IRIS数据平台创建开源解决方案!

🏆 InterSystems2022年度编程大奖赛 🏆

时间: 2021年5月9日 - 6月5日(美东时间)

总奖金超过$22,000美金,比去年提高37%!!! 


0
0 330
公告 Michael Lei · 四月 29, 2022

我们很高兴向您介绍我们新的反馈门户网站--InterSystems Ideas!

我们的目标是改善我们的反馈机制,使您可以建议我们的产品如何发展以满足您的业务挑战。在开发者社区提问是与您的同行就特定的代码问题进行互动的好方法,而我们的客户支持网站WRC则一如既往地是解决实时问题的方法。

这个新的门户是为了获得您更高层次的想法。不是关于今天如何,更多是关于未来,您想看到我们的产品在未来如何更好地工作。您可以发布您自己的反馈,也可以对其他人提供的反馈进行评论/投票。InterSystems将查看你提交的任何反馈,直接回应你的反馈,并且如果您的建议有了任何进展,我们将及时更新状态。

所以,欢迎提出您的想法,为了我们共同的未来!谢谢!

0
0 105
文章 Johnny Wang · 四月 27, 2022 3m read

    有时,我们在给客户提供技术支持时会得到重复的问题,某事或某人正在使用比预期更多的licenses,我们需要找到什么。

    我们经过分析后认为主要有两种原因。 第一种原因是在我们意识到,当应用程序无法运行或尝试通过终端连接并获得“lovely”时,许可证实际已用尽;

    <licenses限制超出> 消息:

    第二种情况是最终用户抱怨他们有时无法使用该应用程序,而当问题发生时我们发现已经太晚了。 在这些情况下,我们通常会在 messages.log 中看到以下“License Limit exceeded xxxx times”消息:

    我们要及时发现问题:

    对于第一种情况,我们看到问题正在发生,我们有一些替代方案:

  •     如果我们可以登录到系统管理门户,请转到licenses部分并检查什么在使用什么。
  •     使用 -B 参数通过终端连接(常规连接是不可能的,因为所有licenses都已使用)。 -B 参数用于在禁用登录或licenses用尽时进行管理员紧急登录。
  •     连接后,运行 License DumpLocalAll 方法以转储所有licenses并检查每个插槽的消耗量。 该文件将包含如下内容:

    在转储和检查licenses后,大多数客户不需要我们的帮助来了解正在发生的事情。

0
0 296
文章 Johnny Wang · 四月 25, 2022 2m read

    我一直希望 VSCode 能够拥有熟悉的 Studio 外观。

    值得庆幸的是,VSCode 易于定制,因此您可以为任何元素选择任何颜色。

    这是我到目前为止得到的:

    



要获得相同的外观,请添加到您的 settings.json:

"workbench.colorTheme": "Default Light+",
"editor.tokenColorCustomizations":{
    "textMateRules": [
        {
            "scope": "entity.other.attribute-name.objectscript_class",
            "settings": {
                "foreground": "#000000"
            }
        },
        {
            "scope": "string.quoted.double.objectscript",
            "settings": {
                "foreground": "#068306"
            }
        },
        {
            "scope": ["comment.block.
0
0 269
文章 Michael Lei · 四月 25, 2022 4m read

在一次重大的版本升级中,建议重新编译你所有命名空间的类和例程。 (主要版本的安装后任务).

do $system.OBJ.CompileAllNamespaces("u")
do ##Class(%Routine).CompileAllNamespaces()

为了自动完成这项管理任务并记录任何错误,下面是一个导入并编译到USER命名空间的类的例子,你可以在每次升级后使用它 : admin.utils.cls



 Class admin.utils.cls

0
0 163
文章 Qiao Peng · 四月 25, 2022 12m read

InterSystems流程自动化与工作流引擎

InterSystems工作流程引擎的主要功能    2

使用InterSystems工作流程引擎    3

场景描述    3

环境配置与测试    5

任务管理    15

任务API和自定义任务用户界面    16

展望    17

15

集成平台除了集成业务系统,打通数据与业务流程外,另一个核心的功能就是流程自动化(BPA)。

流程自动化涉及几个重要的特性:

  1. 流程建模
  2. 流程协同
  3. 决策自动化
  4. 低代码工作流程自动化
  5. 任务协同与任务管理

其中第4和5点都是和工作流程相关的。

什么是工作流程(Workflow)?它和业务流程(Business Process)有何区别?为何集成平台要涉及对工作流程的管理?

0
2 472
文章 Michael Lei · 四月 24, 2022 7m read

基于Docker的Apache Web Gateway

Hi 社区

在本文中,我们将基于Docker程序化地配置一个Apache Web Gateway,使用。:

  • HTTPS protocol.
  • TLS\SSL to secure the communication between the Web Gateway and the IRIS instance.

image

我们将使用两个镜像:一个用于Web网关,第二个用于IRIS实例。

所有必需的文件都在这 GitHub repository.

我们从git clone开始:

git clone https://github.com/lscalese/docker-webgateway-sample.git
cd docker-webgateway-sample

准备系统

为了避免权限方面的问题,你的系统需要一个用户和一个组:

  • www-data
  • irisowner

需要与容器共享证书文件。 如果你的系统中不存在这些文件,只需执行:

sudo useradd --uid 51773 --user-group irisowner
sudo groupmod --gid 51773 irisowner
sudo useradd –user-group www-data

生成证书

在这个示例中,我们使用以下三个证书:

  1. HTTPS web server usage.
0
0 329
文章 Hao Ma · 四月 19, 2022 26m read

本文档只是给您一个大致的概念,方便您了解IRIS安装的方方面面。并非官方安装手册或者安装建议。生产环境的安装请仔细研究并参照IRIS官方的安装文档

操作系统的选择

IRIS支持多种Linux系统。详细的列表请参见各个版本的支持列表,比如这个是最新的2021IRIS的支持列表。需要注意的是, CentOS只支持作为测试系统, 并不支持生产系统的安装。

官方文档是以Redhat为主介绍的IRIS安装, 这是IRIS在生产环境中最常用的Linux系统之一。另一个Ubantu, InterSystems提供的docker版本是安装在Ubantu上的。

我自己测试的时候喜欢使用CentOS, 所以后面有具体安装步骤中,使用的CentOS上的记录。

服务器的配置

对于生产系统,安装前需要一个硬件配置方案,这个方案通常是您的项目的实施部门根据用户需求提供的。

对于测试系统,只有一个最小的磁盘的要求:1.5G。无论是实体服务器, 虚拟服务器,或者docker container,根据您要测试的内容, 一切以方便为准。如果不做性能测试,我个人经常使用的CentOS虚拟机是2核CPU, 2G或4G内存,没有运行不流畅的问题。

磁盘分区

标准的Linux磁盘分区并不适合IRIS的生产运行。哪怕要创建一个尽量接近生产的测试环境,建议您安装软件前要有一个完整的磁盘分区规划。

0
1 1095
文章 Michael Lei · 四月 19, 2022 13m read

有很多方法可以使用Intersystems生成excel文件,其中一些是ZEN报告、IRIS报告(Logi报告或正式称为JReports),或者我们可以使用第三方Java库,可能性几乎是无限的。

但是,如果你想只用Caché ObjectScript创建一个简单的电子表格呢?(没有第三方应用程序)

在我的案例中,我需要生成包含大量原始数据的报告(财务人员喜欢这些数据),但是我的ZEN/IRIS失败了,给了我一个我想称之为 "零字节的文件",基本上说java的内存用完了,并导致报告服务器上的重载。

这可以用Office Open XML(OOXML)来完成。Office Open XML格式是由一个ZIP包内的一些XML文件组成的。因此,基本上我们需要生成这些XML文件,并将其压缩重命名为.xslx。就这么简单。

这些文件遵循一套简单的惯例,称为开放包装惯例。你需要声明各部分的内容类型,以及告诉消费应用程序应该从哪里开始。

为了创建一个简单的电子表格,我们至少需要5个文件。

  • workbook.xml
  • worksheet.xml
  • [Content_Types].xml
  • styles.xml
  • _rels
    • .rels
    • workbook.xml.rels

workbook.xml
工作簿是各种工作表的容器。

0
0 219
文章 Michael Lei · 四月 17, 2022 3m read

在IRIS容器里添加VSCode

设置可重复的开发环境的最简单的方法之一是使用容器。我发现在快速迭代时,在我的开发环境容器里托管一个vscode实例是非常方便的。因此,我创建了一个快速的容器脚本,将一个基于浏览器的vscode添加到IRIS容器中。这应该适用于大多数2021.1以上的容器。我的代码库可以在这里找到

带VSCode 且预连接好的InterSystems IRIS 容器

Cred Value
User _SYSTEM
Password SYS

image

概要

这个项目创建了一个IRIS容器,在同一个IRIS容器中提供了vscode的托管(web-based)版本。这提供了:

  • 同样的容器代码编辑
  • 预连接到容器内的IRIS 实例
  • 管理门户里的链接
  • 自动启动IDE

快速启动

  1. 下载 或者 git clone https://github.com/nickmitchko/Hosting-vscode-in-a-container.git
  2. 在项目根目录下, 运行 docker build . -t vscode-irishealth-ml:latest --no-cache
  3. 执行 docker-compose up
    • 不使用 docker compose?
0
0 574
文章 Qiao Peng · 四月 14, 2022 11m read

8. 应用安全

InterSystems数据平台上可能运行着多种应用,例如Web网页应用、SOAP服务、REST API、HL7 接口、SQL服务等等。这些应用种类繁多,面临的安全风险也是巨大的,例如代码注入攻击和HTTP的跨站请求伪造攻击等。

这其中代码注入攻击和针对Web应用的攻击尤其需要重视。

8.1 代码注入攻击

代码注入攻击通常和我们编写的程序相关,需要在程序编写时注意避免。

8.1.1 SQL注入攻击

SQL注入攻击是典型的代码注入攻击,通过从外部注入恶意SQL语句获得数据权限并获得敏感数据。关系型访问方式都是通过客户端SQL语句传入执行的,因此它是数据库重点需要防范的。

InterSystems数据平台并不支持以分号分割的多条SQL语句作为一个SQL命令执行,因此它本身免疫了主要的SQL注入攻击手段。

InterSystems数据平台支持动态SQL,即允许SQL命令作为方法的字符串参数传入,这会给SQL注入攻击留有隐患。在编程时,应避免开放服务用于接受完整的SQL语句作为参数,而是通过SQL动态传参来构建运行时SQL。

InterSystems数据平台支持行级安全,这有助于避免在SQL注入攻击时,将所有数据返回给攻击请求。

8.1.2 $ZF

InterSystems数据平台提供了系统函数$ZF,用以调用外部命令。其中$ZF(-1)和$ZF(-2)用以调用服务器操作系统的命令。

0
1 557
文章 Michael Lei · 四月 12, 2022 7m read

程序化访问 Production

要用程序编辑Production(界面),你可以使用互操作性API和SQL查询的组合。

现有的命名空间

从顶层了解你目前正在工作的命名空间和生产是很重要的。

// Object script 
// The active namespace is stored in this variable
$$$NAMESPACE 
// Print namespace
Write $$$NAMESPACE
# Python
import iris
# The active namespace is returned from this method
iris.utils._OriginalNamespace()
# Print namespace
print(iris.utils._OriginalNamespace())
>>> DEMONSTRATION

现有Production (正在或者最后一次运行的Production)

另外,知道你的Production名称是很重要的,你可以使用以下API获得名称空间中正在运行的Production。

// ObjectScript
USER>ZN "DEMONSTRATION"
// Get current or last run production
DEMONSTRATION>W ##class(Ens.
0
0 392
文章 Qiao Peng · 四月 11, 2022 7m read

6. 用户与角色

InterSystems 数据平台对用户和角色提供全面的管理和安全配置功能。加强数据平台的安全,需要加强对于用户和角色的管理。

6.1 用户管理

系统提供了一系列预置的用户账户,这些账户管理对应特殊的系统功能:












用户

说明

UnknownUser

匿名用户,通过“未验证”方式登录到系统的用户

_SYSTEM

SQL系统管理员

SuperUser

超级用户

Administrator

安装系统的用户

Admin

系统管理员

CSPSystem

Web网关管理员

IAM

IAM用户

_PUBLIC

内部使用

_Ensemble

内部使用

6.1.1 系统级用户安全配置

InterSystems数据平台有一些系统级别的用户安全配置,例如密码模式、密码有效天数、无效登录限制(多少次登录失败后要禁用用户账户)、非活动限制(多少天未登录后禁用用户账户)等。这些系统级配置通过管理门户>系统>安全管理>系统范围的安全参数:

三级等保对于用户的密码强度是有要求的。弱密码只需要0.19毫秒就能被破解,而8位强密码破解需要上百年。

0
1 751