ile rpg 紅皮書_IBM i ILE RPG云与IBM Cloud的集成示例

今天,我们有许多在IBM®Cloud™上运行的云应用程序,其中存储了参与系统(SOE)数据。 另一方面,传统的关键任务数据(例如财务数据)与我们的业务活动和现实世界息息相关。 驻留在公司后端系统(例如IBM i或IBMz®)中的此类数据称为记录系统(SOR)数据。 从云应用程序的角度来看,SOR和SOE之间的数据集成是未来业务成功的关键。 展望未来,已经在互联网上讨论并实现了许多技术要素。

IBM i具有处理业务交易的强大功能,许多开发了这种系统的客户仍在生产环境中运行它。 此外,IBM i还提供了许多Web访问功能,例如通过报告程序生成器(RPG)程序调用标记语言(PCML)调用进行Web服务调用。 您可以轻松地在IBM i上部署自己的Web服务。

在本文中,我们重点介绍从IBM Cloud应用程序调用ILE RPG的代表性状态转移(REST)服务。 这些技术元素的组合为IBM i的未来打开了一扇门。

从IBM i上的云数据和关键任务应用程序集成样本中获取见解

我们可以使用IBM Cloud等云基础架构快速开发和部署Web或移动本机应用程序。 在IBM Cloud上,中间件应用程序已被部署并可以使用。 在本文中,我们选择了Node-RED作为Web应用程序构建工具。 您可能知道,Node-RED是IBM贡献的开源。 您可以使用带有绘图工具的图形用户界面(GUI)来构建Web应用程序,并最大程度地减少应用程序代码的编写。 它对于当今业务中的快速周期开发和部署非常有效。

服务器端应用程序方法是使用IBM i Web服务和RPG PCML调用的REST服务调用。 IBM i上的集成Web服务服务器可以处理此功能。 要使用此功能,您需要开发可由PCML调用的RPG程序。 无需编写Web服务接口和REST接口代码。 集成的Web服务服务器将自动为您生成代码和定义。 Node-RED本身可以直接在其中调用后端Web服务。 IBM Cloud上的Node-RED应用程序请求REST服务调用,并调用在本地服务器上运行的IBM i RPG程序。 IBM Cloud与本地IBM i服务器之间的连接由IBM Secure Gateway完成,IBM Secure Gateway也由IBM Cloud提供。 在本文中,您可以查看IBM i的真实云示例,并学习可以立即完成的云和IBM i事务集成的设计模式。

通过在集成Web服务服务器上调用IBM i REST服务来检索关键任务数据

如本文前面所述,集成的Web服务服务器具有使用SOAP或REST将ILE程序和服务程序部署为Web服务的功能。 ILE编程语言(例如RPG和COBOL)已在企业应用程序中使用了很多年。 通过使用集成的Web服务服务器,您仍然可以使用熟悉的ILE程序访问企业数据,并同时从5250应用程序和Web应用程序进行访问。 此外,通过将其部署为REST Web服务,您可以更轻松地与IBM Cloud或SOE应用程序交换数据。

在这里,我们将使用学生注册应用程序作为示例,该学生注册应用程序是在使用IBM i的集成Web服务服务器构建REST服务的第3部分中引入的,并指导您将其与IBM Cloud上的Node-RED应用程序连接。

样品环境

图1显示了示例环境设置的图像。

图1.示例环境

在指导您执行这些步骤之前,您需要在本地IBM i服务器上运行用ILE RPG编写的学生 信息 应用程序 。

我们将将此应用程序部署为集成的Web服务REST服务。 要从IBM Cloud访问在本地服务器上运行的REST Web服务,您需要配置Secure Gateway。

让我们假设您需要将示例学生 搜索 应用程序部署到IBM Cloud上的Node-RED。 该学生搜索应用程序将使用HTTPS在IBM i上调用基于REST的Web服务。 该应用程序实现对企业数据的REST调用,并具有用于获取输入的用户界面。

以下各节指导您如何:

  1. 在集成的Web服务服务器上配置REST Web服务
  2. 设置安全网关
  3. 从Node-RED应用程序调用集成的Web服务REST应用程序编程接口(API)

集成Web服务服务器上的REST Web服务配置

如前所述,我们将使用ILE RPG程序,该程序在为IBM i第3部分使用集成Web服务服务器构建REST服务中进行了说明。 通过遵循该文章中的步骤,您将能够在IBM i上配置基于REST的Web服务。 在该配置中,我们将添加一些步骤来启用HTTPS调用。 在配置集成Web服务以使用HTTPS之前,您需要使用数字证书管理器(DCM)设置本地证书颁发机构和* SYSTEM证书存储。 要配置,请参见以下参考:

配置集成的Web服务HTTP服务器以使用HTTPS

要将集成的Web服务服务器配置为使用HTTPS连接,请参阅:

如何为安全套接字层(SSL)/传输层安全性(TLS)启用IBM Integrated Web Services(IWS)服务器

在本参考中,建议在配置SSL端口时禁用非SSL端口。 但是在我们的场景中,我们将同时侦听HTTP和HTTPS以验证访问权限。 因此,选择否,是否禁用非 SSL端口仍配置SSL端口的同时启用 非SSL端口? 而不是向导中的

为集成Web服务服务器配置SSL端口后,可以从Web管理for i(也称为HTTPAdmin)的左侧导航视图中“ 工具”部分的“ 显示配置文件”中检查配置。 您可以看到SSL设置将被添加到您的配置文件中,如图2所示。

图2.启用HTTPS的HTTP服务器的配置文件

下载用于与Secure Gateway进行HTTPS连接的证书

在下一步中,我们将配置安全网关以连接来自IBM Cloud的本地IBM i服务器。 要启用HTTPS连接,首先需要将在步骤如何为安全套接字层(SSL)/传输层安全性(TLS)启用IBM Integrated Web Services(IWS)服务器中创建的证书导入到Secure Gateway中。

导入证书之前,必须从浏览器下载证书。 在我们的方案中,我们将Mozilla Firefox用于Web浏览器,但是步骤和结果可能会因所使用的Web浏览器而异。

  1. 从浏览器中,访问URL https:// < your-iws-system >:< your-iws-https-port > / web / services / students,看到您可以检索JSON格式的学生信息。
  2. 右键单击页面,然后单击“ 查看页面信息”
  3. 页面信息窗口中,单击安全性选项卡。 在“ 网站身份”下,单击“ 查看 证书”
  4. 单击“ 证书查看器”窗口的“ 详细信息”选项卡上的“ 导出”按钮。 选择X.509证书(PEM)(* .crt; *。pem)作为文件类型,然后将证书下载到PC。 现在,您可以使用已下载的证书连接HTTPS。

设置安全网关

现在,我们将在IBM Cloud上设置Secure Gateway。 Secure Gateway是IBM Cloud上的一项服务,它将在IBM Cloud和本地系统之间创建安全的 (作为其服务名称)隧道。 要使用此服务,您还需要将Secure Gateway Client下载到本地系统。

在我们的方案中,我们将在可访问您的本地IBM i服务器的本地PC上配置Secure Gateway Client。 请按照以下步骤设置安全网关。

  1. 使用Web浏览器访问IBM Cloud门户。 如果您已经有一个帐户,请单击“ 登录”并使用您的IBM ID登录。 如果这是您第一次使用IBM Cloud,则可以通过单击注册注册 30天试用版。
  2. 登录到IBM Cloud之后,您将看到仪表板打开。 设置安全网关,点击顶部的横幅目录 ,然后点击目录页上的整合类别下的安全网关
  3. 在“安全网关”页面的底部,单击“ 创建”以创建您自己的服务。 您将从此处设置网关。
  4. 在页面的中间, 点击 DD网关 ,你会看到添加网关提示。 输入您的网关服务名称,然后单击添加网关
  5. 将创建您的网关,并显示Secure Gateway的仪表板。 要设置Secure Gateway Client,请向下滚动至信息中心的底部,单击Clients选项卡,然后单击Connect Client
  6. 向导会询问您如何连接此新网关。 因为我们使用本地Windows PC作为本地网关客户端,所以选择IBM Installer ,然后在Software Installers列表中单击Windows旁边的下载链接,然后将安装程序包保存在您的工作站中。
  7. 通过运行已下载的EXE文件来安装Secure Gateway Client。 在向导中,您可以选择是否要将Secure Gateway Client作为Windows服务运行。 如果您打算将Windows服务器用作Secure Gateway客户端,则建议将其作为Windows服务运行(因为在这种情况下,我们将其安装到本地PC上,并且如果需要Secure Gateway清除“ 请检查此选项”。客户端作为服务运行并自动重新启动复选框)。
  8. 在此向导的下一页上输入您的网关ID和安全令牌。 您可以在下载安装程序的网页上找到此信息。 您可以从该网页复制值并将其粘贴到向导中,如图3所示。在此示例中,访问控制列表(ACL)和日志级别字段保留为空白。 单击下一步
    图3.在向导中指定网关ID和安全性令牌值
  9. 在下一页上选择“ ”以使用客户端GUI,然后可以为客户端设置密码和端口。 在这种情况下,我们保留默认值,然后单击Install 。 客户端安装开始。
  10. 当状态显示为Completed时 ,单击Close结束向导。 现在,您已经安装了客户端。
  11. 接下来,在IBM Cloud上设置网关服务。 从下载安装程序的位置关闭网页。 在“ 目标”选项卡上,单击加号以添加目标。
  12. 启动添加目标的向导。 对于这种情况,我们将要调用的IBM i上基于REST的Web服务正在本地IBM i服务器上运行,因此, 请为资源位于何处选择本地 然后单击下一步
  13. 在第二页上,输入将托管REST Web服务的集成Web服务服务器的主机名和端口号,然后单击Next
  14. 在第三页上指定用于连接到目标的协议。 为了对目的地进行协议访问,您可以选择相互身份验证HTTPS进行相互身份验证。 但是在这种情况下,我们选择简单的HTTPS并单击Next
  15. 我们将在目标上使用身份验证。 因此,选择“ 目标端” ,然后单击“ 上传证书”
  16. 在上载窗口中,选择您先前下载的证书文件(* .crt),然后单击“ 打开” 。 检查您的证书是否如图4所示出现,然后单击Next
    图4.在向导中指定证书
  17. 然后,您可以指定要连接的IP地址范围,但是在这种情况下,请保留默认值,然后单击Next 。 输入目的地名称后,点击添加目的地
  18. 请注意,您刚刚创建的目的地显示在“ 目的地”下(如图5所示)。 现在,您就可以使用Secure Gateway Server。
    图5.您刚刚创建的目标
  19. 让我们看看是否可以从本地PC访问。 在本地PC中,选择开始 -> 所有 程序 -> IBM- > Secure Gateway Client ,然后单击以管理员身份运行。
  20. 启动Secure Gateway Client时, 系统将询问您是否要使用配置文件securegw_service.config 。 有关在安装客户端时输入的网关ID的信息将写入配置文件中。 用y答复,然后按Enter。
  21. Secure Gateway Client GUI将在Web浏览器中打开。 单击查看日志 (如图6所示)。
    图6.查看安全网关日志
  22. 您可以在日志中看到Secure Gateway隧道已连接,如图7所示。单击页面左上角的Back
    图7.确认安全网关日志
  23. 从Secure Gateway Client向集成的Web服务服务器添加HTTPS访问权限。 单击查看日志旁边的访问控制列表 (请参阅图6)。
  24. 在“ 访问控制列表管理”页面上的“ 允许访问 ”下,输入集成的Web服务服务器主机名和HTTPS端口号,然后单击加号( + )按钮。
  25. 检查您输入的信息是否在“ 允许访问”下列出 。 点击顶部返回 ,返回到安全网关的客户端的首页。 这将结束您的Secure Gateway Client上的设置。
    图8.添加访问控制列表条目
  26. 返回到“安全网关服务详细信息”页面,然后按F5刷新页面,然后单击您创建的网关服务。
  27. 您可以看到Secure Gateway的目的地列表。 单击目标位置页面底部的“设置”图标(请参阅图9),该图标描述了集成的Web服务HTTPS访问。
    图9. Secure Gateway目标的Settings图标
  28. 在这里,您可以检查已添加的目的地的详细信息(如图10所示)。 Cloud Host:端口是指从IBM Cloud访问的主机名和端口详细信息。 使用此地址,您可以使用Secure Gateway透明地访问本地目标。 在此地址上做一个记录,因为稍后将在部署Node-RED应用程序时使用它。
    图10.云主机名和端口

现在,我们已经成功连接了IBM Cloud上的Secure Gateway服务器和运行在本地PC上的Secure Gateway Client。

从Node-RED应用程序调用集成的Web服务REST API

最后,我们需要通过Secure Gateway从驻留在IBM Cloud上的Node-RED应用程序访问在本地IBM i平台上运行的集成Web服务API。

配置节点红色

执行以下步骤在IBM Cloud上配置Node-RED:

  1. 在IBM Cloud仪表板中,单击Catalog
  2. 搜索字段中,输入Node-RED。 单击Boilerplates下的Node-RED Starter
  3. 向下滚动“ 创建Cloud Foundry应用程序”页面,输入您的应用程序名称,并保留其他条目的默认值。 您输入的应用名称将是要访问的默认主机名。 您可以根据需要更改主机名。 然后,点击创建 。 由于应用程序名称在IBM Cloud环境中需要唯一,因此您可能会收到一条错误消息。 如果是这样,请输入其他应用名称,然后再次单击创建
  4. 创建应用程序后,将配置并启动新的Node-RED应用程序。 等待一会儿或按F5键,直到看到应用程序状态更改为正在运行

使用Node-RED流编辑器创建示例应用程序

Node-RED有一个称为“流编辑器”的工具,您可以使用该工具将节点从调色板拖到画布上并将它们连接在一起。 在此示例中,我们将使用Node-RED流编辑器创建一个示例应用程序。

  1. 单击“ Node-RED应用程序”页面上状态“正在运行”旁边的“ 访问应用程序URL”
  2. 在网页上的“ Node-RED”上单击“ 转到您的Node-RED流编辑器 ”。
  3. Flow Editor将在您的Web浏览器中启动。 您可以导入和导出以JSON格式编写的Node-RED流。 您可以下载包含示例应用程序流的附件node-red-dw-sample-yohichin-flow.json文件并将其导入。 在Flow Editor的右上角,单击Import- > Clipboard (如图11所示)。
    图11.导入Node-RED流JSON数据-步骤1
  4. 将所有脚本从node-red-dw-sample-yohichin-flow.json文件复制到Import Nodes窗口,然后单击Import (如图12所示)。
    图12.导入节点

    请注意,导入的流包括两个大流。 一种是通过访问https:// <your-node-red-app-host-name> .mybluemix.net / welcome显示初始网页。 另一个方法是从初始页面检索学生ID,并将数据通过Secure Gateway传递到IBM i上基于REST的Web服务。 REST Web服务通过使用接收到的ID作为关键字来查询学生信息,并将结果返回到Web页面。

    图13.示例应用程序的流程
  5. 双击“ 调用ILE RPG REST API”节点,这是通过REST通过Secure Gateway调用使用REST的集成Web服务的逻辑(请参见图13)。
  6. 进入“ 编辑http请求节点”页面。 在这种情况下,我们将使用getByID REST API查询单个学生ID。 因此,为“ 方法”参数选择“ 获取 ”。 对于URL ,您需要使用您在设置安全网关时记下的主机名和端口号。 由于您需要指定从网页接收的学生ID,因此需要将URL构造为https:// < sg-host-name >:< 端口号 > / web / services / students / {{payload.studentID }},其中< sg-host-name >和< port number >是您之前设置的Secure Gateway Destination的主机名和端口号。 最后,对于Return参数,请选择一个已解析的JSON对象,因为从REST API检索的数据将采用JSON格式。 设置所需的所有信息后,单击“完成” ,如图14所示。
    图14.创建的Node-RED应用程序的页面
  7. 要将应用程序部署到您的运行时,请单击右上角Deploy旁边的向下箭头,然后单击Full 。 然后,单击Deploy部署应用程序(如图15所示)。
    图15.指定用于部署流程的选项
  8. 部署完成后,页面顶部将显示消息“ 成功部署 ”。 另外,请注意,每个节点旁边出现的蓝点均已关闭。

现在您可以访问您的应用程序了。

运行示例应用程序

您需要执行以下步骤来运行示例应用程序:

  1. 在Web浏览器中,访问以下内容,并显示在Node-RED中配置的初始页面。

    https:// < your-node-red-app-host-name > .mybluemix.net / welcome

    将<your-node-red-app-host-name>替换为您的应用程序名称或创建Node-RED时指定的主机名。

  2. 输入学生ID,例如在这种情况下为826M660CF ,然后单击Submit (如图16所示)。 提交后,使用安全网关将在初始页上输入的学生ID传递到在本地服务器上运行的IBM i上基于REST的Web服务上配置的getByID API。
    图16.提交学生ID
  3. 请注意,针对指定的学生ID返回了学生信息(请参见图17)。
    图17.示例Node-RED流的“结果”页面

注意事项和常见的坑坑洼洼

本文介绍了使用集成的Web服务从IBM Cloud应用程序访问ILE RPG的便捷性。 当然,IBM Cloud上的Node-RED应用程序已部署在Internet世界中。 通过使用Secure Gateway,您可以从这些应用程序中轻松检索关键任务,本地IBM i系统数据。 针对这一优势,您应该考虑如何维护数据的安全性。 在本文中,我们使用安全网关和HTTPS协议在本地环境上安全地访问ILE RPG REST Web服务。 HTTPS可以在连接路由中维护数据的机密性。 从安全角度来看,您还应该考虑谁可以使用部署到本地集成Web服务服务器上的ILE RPG REST Web服务并实施访问控制。 要对您的REST Web服务实现此考虑,可以使用IBM API Connect™。 通过使用API​​ Connect,您可以设置安全设置,例如对REST Web服务的身份验证。 与Node-RED应用程序类似,API Connect服务在IBM Cloud上也可用。 您可以通过注册ILE RPG REST Web服务的REST API来使用API​​ Connect。 要将API注册到API Connect,我们通常使用Swagger文件。 Swagger文件是定义API配置的JSON文件。 幸运的是,通过为i 7.1应用HTTP PTF组级别44,对i 7.2应用级别18和对i 7.3或更高版本应用级别5,可以使用为ILE RPG REST Web服务生成Swagger文件的功能。 这是API Connect的一项重大增强,可以使用ILE RPG REST Web服务,因为您可以使用自动生成的Swagger文件将ILE RPG REST Web服务导入API Connect。

图18.在集成的Web服务服务器上生成Swagger文件支持

结论

本文介绍了Web或移动本机应用程序部署的IBM i和IBM Cloud功能。 我们向您展示了如何设计与Node-RED的流程集成,以及IBM i RPG如何将其功能扩展到云。 IBM i和IBM Cloud继续向这个云时代迈进。

相关话题


翻译自: https://www.ibm.com/developerworks/ibmi/library/i-ile-rpg-cloud-integration/index.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值