文章
· 2 hr 前 阅读大约需 6 分钟

Interoperability on Python (IoP) 简介

Interoperability on Python (IoP) 是一个概念验证项目,旨在展示与 Python 优先方式相结合时 InterSystems IRIS Interoperability Framework 的强大功能。IoP 利用嵌入式 Python(InterSystems IRIS 的一个功能)使开发者能够用 Python 编写互操作性组件,从而可以与强大的 IRIS 平台无缝集成。 本指南专为初学者编写,全面介绍了 IoP、其设置以及创建第一个互操作性组件的操作步骤。 阅读完本文,您将能够清楚地了解如何使用 IoP 构建可扩缩、基于 Python 的互操作性解决方案。



IoP 对于使用 InterSystems IRIS 或 IRIS for Health 的开发者特别有用,因为它简化了使用 Python 创建业务服务、业务流程和业务操作的过程。 此类方式减少了对 ObjectScript(传统的 IRIS 开发语言)的依赖,使其更便于 Python 开发者使用。


我们为什么应使用 IoP?

IoP 为开发者带来了以下优势:

  1. Python 优先开发:Python 是一种广泛使用的适合初学者的语言,具有丰富的库生态系统。 IoP 使开发者能够在 IRIS 生态系统中利用其 Python 专业知识。
  2. 简化的互操作性:IoP 将基于 ObjectScript 的复杂配置抽象化,使开发者能够更快地开发互操作性组件。
  3. 医疗保健应用程序:由于 IRIS for Health 对医疗保健标准的大力支持,IoP 特别适合用于医疗保健集成,例如涉及 FHIR (Fast Healthcare Interoperability Resources) 的集成。
  4. 社区和开源:IoP 在 PyPI 和 GitHub 上托管,并具有积极的社区支持,包括像 Guillaume Rongier(InterSystems 的开发者布道者)这样的开发者的贡献。

先决条件

在深入了解 IoP 之前,请确保您拥有:

  • InterSystems IRIS 或 IRIS for Health:本地安装或运行 IRIS 的 Docker 容器(社区版对于测试来说已足够)。
  • Python 3.10 或更高版本:对于运行 IoP 及其依赖项必不可少。
  • Python 基础知识:熟悉 Python 类、函数和软件包安装。

在本教程中,我们将使用本地 IRIS 安装来创建 InterSystems IRIS 生产,该生产具有基于 Python 的业务操作,在收到请求时,它会记录“Hello World”消息。 它应该展现与 IRIS Interoperability Framework 的无缝集成。

以下步骤概述了实现这一目标所需的过程:

  • 第 1 步:设置虚拟环境
  • 第 2 步:安装 IoP 软件包
  • 第 3 步:设置 IRIS 连接的环境变量
  • 第 4 步:使用命令行界面 (CLI) 初始化 IRIS 中的 IoP 模块
  • 第 5 步:创建 Python 业务操作 – Hello World 示例
  • 第 6 步:将 IoP 组件迁移到 IRIS 中
  • 第 7 步:生产概述
  • 第 8 步:测试生产操作组件

 

我们先来执行第 1 步。

第 1 步:设置虚拟环境

首先,设置一个 Python 虚拟环境来隔离项目的依赖项,确保与 IoP 和 InterSystems IRIS 兼容。 虚拟环境是一个具有特定 Python 版本和项目所需软件包的自包含目录。 这种设置可以避免与其他 Python 项目发生冲突,并简化开发过程。 对于本教程,创建一个名为 IOP 的文件夹来存放项目文件。

转到 IOP 文件夹,运行以下命令来设置虚拟环境:

python -m venv .venv

此命令会在 IoP 文件夹中创建一个 .venv 目录,其中包含 Python 解释器和为 IoP 项目安装的任何软件包。

要在 Windows 上激活虚拟环境,请应用下一个命令:

.venv\Scripts\activate

 

对于 Unix 或 MacOS,请使用以下命令

source .venv/bin/activate

 

第 2 步:安装 IoP 软件包

激活虚拟环境后,安装 iris-pex-embedded-python 软件包(IoP 项目的核心依赖项),以实现与 InterSystems IRIS 之间基于 Python 的互操作性。 在您的终端运行以下命令:

pip install iris-pex-embedded-python

此命令会将 iris-pex-embedded-python 软件包及其依赖项从 Python Package Index (PyPI) 安装到您的虚拟环境中。 安装后,可以使用 IoP 模块创建基于 Python 的互操作性组件,例如 IoP 项目的业务操作。

 

第 3 步:设置 IRIS 连接的环境变量

要将 IoP 项目连接到 InterSystems IRIS,请配置指定连接详细信息的环境变量。 在本教程中,我们将运行一个本地 IRIS 实例,它具有可实现互操作性的名为 IOP 的命名空间:


对于 Windows
  


对于 Unix 或 MacOS

export IRISINSTALLDIR=<installation_directory>
export IRISUSERNAME=<username>
export IRISPASSWORD=<password>
export IRISNAMESPACE=<namespace>


第 4 步:使用命令行界面 (CLI) 初始化 IRIS 中的 IoP 模块

对于使用库的开发者来说,

iop 命令行界面 (CLI) 是一个强大的工具。 除了 --init--migrate,它还提供了可以直接从终端管理互操作性组件的命令。

一些关键命令包括:

  • iop --start:启动 settings.py 文件中定义的生产。
  • iop --stop:停止正在运行的生产。
  • iop --status:检查生产的状态。
  • iop --log:查看正在运行的组件的日志。
  • iop --init:初始化 IRIS 中的 IoP 模块。
  • iop --migrate:使用设置文件迁移生产和类。

运行以下 IoP CLI 命令,初始化 IRIS 中的 IoP 模块:

iop --init

此命令会在 InterSystems IRIS 实例中执行必要的配置,使其能够找到并使用您创建的 Python 模块。
 

在 IRIS 管理门户中,导航到“系统管理 > 配置 > 类”。 选择 IoP 命名空间,并勾选“显示生成的条目”复选框,以查看 IoP 生成的类,例如 PEX.MyBo。 这将确认 IoP 模块已在您的 IRIS 实例中成功注册。

  

第 5 步:创建 Python 业务操作 – Hello World 示例
 

我们来创建一个简单的“Hello World”业务操作,以了解 IoP 组件的基本结构。
这个示例将说明如何定义一个类来处理传入消息并记录响应。
 

为此,我们生成一个名为 hello_world 的新文件夹。

mkdir hello_world

在该文件夹中,创建一个名为 bo.py 的新文件。

您的组件的核心是继承自 BusinessOperation 的 Python 类,它会获取一条消息作为输入,并返回一条消息作为输出。 在此期间,它只是在日志中打印“Hello World”。

from iop import BusinessOperation

class MyBo(BusinessOperation):
    def on_message(self, request):
        self.log_info("Hello World")



我们来解释一下这段代码。

首先,我们从 iop 模块导入 BusinessOperation 类。

然后,我们生成一个继承自 BusinessOperation 的名为 MyBo 的类。

最后,我们覆盖 on_message 方法。 此方法会在业务操作收到消息时调用。

第 6 步:将 IoP 组件迁移到 IRIS 中

要将 IoP 组件迁移到 IRIS 中,我们需要在名为 settings.py 的 hello_world 文件夹中创建一个新文件。

此文件包含两个主要设置:

  • CLASSES:包含项目中使用的类。
  • PRODUCTIONS:包含项目中使用的生产名称。
from hello_world.bo import MyBo

CLASSES = {
    "MyIRIS.MyBo": MyBo
}

PRODUCTIONS = [
        {
            'MyIRIS.Production': {
                "@TestingEnabled": "true",
                "Item": [
                    {
                        "@Name": "Instance.Of.MyBo",
                        "@ClassName": "MyIRIS.MyBo",
                    }
                ]
            }
        } 
    ]


在此文件中,我们在 IRIS 中导入名为 MyIRIS.MyBo MyBo 类,并将其添加到 CLASSES 字典。

然后,我们将一个新生产添加到 PRODUCTIONS 列表。 此生产将保留我们名为 Instance.Of.MyBoMyBo 类实例。

    使用 iop 命令,我们可以将组件导入 IRIS。

    iop --migrate /path/to/hello_world/settings.py
    

    此命令将在 IRIS 中生成生产并将 MyBo 类添加到其中。


    第 7 步:生产概述

    iop --migrate 命令创建了以下生产:

    在下面,可以看到操作详细信息(%classname 是指 bo.py 文件中的类名称,%module 是指 Python 文件名,%classpaths 包含 Python 文件的路径)
     

      
    第 8 步:测试生产操作组件

    要测试生产,请选择“业务操作”。然后,转到操作选项卡,并按测试按钮。
    选择 Ens.Request 作为请求类型,点击调用测试服务按钮,然后点击视觉跟踪,查看详细信息:
     

     

    结语

    Interoperability on Python (IoP) 向 Python 开发者开放了 InterSystems IRIS Interoperability Framework,简化了构建强大、可扩缩集成的过程。 本指南介绍了如何安装 IoP、配置开发环境以及创建业务操作。 使用 IoP,您可以利用 Python 的简单性和 IRIS 的强大功能来连接系统。有关更多详细信息,请查看文档


    谢谢
     

    讨论 (0)1
    登录或注册以继续