搜索​​​​

清除过滤器
文章
Claire Zheng · 十二月 3, 2021

【视频】InterSystems IRIS医疗版互联互通套件:助力公立医院高效建设互联互通平台

InterSystems面向中国用户推出InterSystems IRIS医疗版互联互通套件,以满足医院信息化建设的标准化要求,促进业务协同,助力公立医院高效建设互联互通平台。
文章
Claire Zheng · 五月 11, 2023

【视频】InterSystems 2023CHITEC之旅完美收官!

2023年4月14日-16日,2023 CHITEC在合肥圆满举办!此次盛会期间,创新的数据技术提供商InterSystems通过展位展示、主题研讨会、分论坛演讲等方式,全方位多角度展示了“加速评测,助力公立医院高效建设互联互通平台和数据中心”的能力,吸引了众多参会嘉宾。
公告
Michael Lei · 三月 8, 2023

技术征文大赛:InterSystems IRIS 教程

你好社区, 在上次激烈的编程比赛之后,我们很高兴宣布下一场 InterSystems 技术文章写作比赛! ✍️技术文章竞赛:InterSystems IRIS 教程✍️ 写一篇可以被视为 InterSystems IRIS 教程的文章 任何级别的程序员:3月1日至3月31日初级/中级/高级。 🎁 人人有奖:参加比赛的每位作者都可获得一份特别奖品包! 🏆 主要奖品:共有6个奖品可供选择。 奖品 1. InterSystems技术论文大赛人人有奖!任何在比赛期间写文章的会员都将获得特别奖品: 🎁 品牌有机帆布手提袋 🎁 Moleskine 内衬笔记本 2. 专家奖——文章将由 InterSystems 专家评判: 🥇 第一名:Mars Pro 蓝牙音箱 / AirPods Max 🥈 第二名:带无线充电盒的 Apple AirPods Pro / JBL Pulse 4 灯光秀音箱 🥉 第三名:适用于 iPad 的妙控键盘保护套 / Bose Soundlink 微型蓝牙音箱 或者作为替代方案,任何获胜者都可以从比他自己的奖品级别低的奖品中选择一个奖品。 3.开发者社区奖——点赞数最多的文章。获胜者将可以选择以下奖品之一: 🎁 iPad 妙控键盘保护套 🎁 Bose Soundlink 微型蓝牙扬声器 笔记: 作者每个类别只能获得一次(作者总共将获得 2 个奖项:一个专家奖,一个社区奖) 如果出现平局,则专家对平局文章的投票数将被视为打破平局的标准。 谁可以参加? 任何开发人员社区成员,InterSystems 员工除外。 创建一个帐户! 比赛期间 📝 3月1日-3月31日:文章发表及投票时间。 在此期间发表一篇文章。 DC 成员可以通过 Likes 为已发表的文章投票——在社区奖中投票。 注意:您越早发表文章,您收集专家和社区投票的时间就越多。 有什么要求? ❗️凡是在比赛期间所写的文章,满足以下要求,将自动进入比赛: 文章必须是有关 InterSystems IRIS 主题的教程*。它可以适用于初学者、中级或高级开发人员。 文章必须是英文的。 文章必须是 100% 新的(它可以是现有文章的延续)。 该文章不能是已在其他社区发表的文章的翻译。 文章必须包含Tutorial 标签。 文章大小:最少 400 字(链接和代码不计入字数限制)。 同一作者最多允许 3 个条目。 允许发表关于同一主题但具有来自不同作者的不同示例的文章。 * 教程提供开发人员可以遵循以完成特定任务或一组任务的分步说明。 🎯 额外奖励 这次我们决定增加额外的奖金来帮助您赢得奖品!请欢迎: 奖金 标称 细节 话题奖 5个 如果您的文章与建议主题列表(如下所列)中的主题相关,您将获得 5 票专家票的奖励(相对于专家选择的第一名 = 3 票) 。 视频奖 3个 文章内容的呈现形式:除了发布文章外,还制作一个解释性视频。 讨论奖 1个 包含最有用讨论的文章,由 InterSystems 专家决定。只有 1 篇文章将获得此奖金。 翻译奖金 1个 在任何区域社区上发布您文章的翻译。 了解更多。 注意:每篇文章只能投一票。 新会员奖励 3个 如果您没有参加过之前的比赛,您的文章将获得 3 票专家票。 拟议主题 以下是建议的主题列表,这些主题将为您的文章提供额外的奖励: ✔️ 从 C# 使用 IRIS✔️ 从 Java 使用 IRIS✔️ 从 Python 使用 IRIS✔️ 使用嵌入式 Python✔️ 使用 Python API✔️ 使用嵌入式 SQL✔️ 使用 ODBC/JDBC✔️ 使用 %Query/%SQLQuery✔️ 使用索引✔️ 使用触发器✔️ 使用 JSON✔️ 使用 XML✔️ 使用休息✔️ 使用容器✔️ 使用 kubernetes 注意:允许来自不同作者的同一主题的文章。 ➡️ 加入InterSystems Discord讨论规则、话题和奖金。 所以, 是时候展示你的写作技巧了!祝你好运✨ 重要提示:奖品的交付因国家/地区而异,其中一些可能无法交付。可以从@Liubka.Zelenskaia 索取有限制的国家/地区列表 欢迎关注中文社区成员 @ 王喆 的作品:Develop IRIS using SSH (​​​​​​https://community.intersystems.com/node/537756)
公告
Claire Zheng · 七月 3, 2023

投票时间:InterSystems 2023年度编程大奖赛

Hi 开发者们! 投票时间到了!在InterSystems 2023年度编程大奖赛中为最佳应用程序投票: 🔥投票选出最佳应用程序🔥 如何投票?详细信息如下。 专家提名奖(Experts Nomination)- InterSystems 经验丰富的评审团将选出最佳应用程序。欢迎我们的专家: ⭐️ @Alexander Koblov, 支持专家⭐️ @Guillaume Rongier, 销售工程师⭐️ @Eduard Lebedyuk, 高级云工程师⭐️ @Steve Pisani, 高级解决方案架构师⭐️ @Timothy Leavitt, 开发经理⭐️ @Evgeny Shvarov, 开发者生态系统经理⭐️ @Dean Andrews, 开发者关系主管⭐️ @Alex Woodhead, 高级系统开发人员⭐️ @Andreas Dieckow , 首席产品经理⭐️ @Aya Heshmat, 产品专家⭐️ @Benjamin De Boe, 产品经理⭐️ @Bob Kuszewski, 产品经理⭐️ @Carmen Logue , 产品经理⭐️ @Jeffrey Fried, 产品管理总监⭐️ @Luca Ravazzolo, 产品经理⭐️ @Raj Singh, 产品经理⭐️ @Patrick Jamieson, 产品经理⭐️ @Stefan Wittmann, 产品经理⭐️ @Steven LeBlanc, 产品专家⭐️ @Thomas Dyar,产品专家⭐️ @Daniel Franco, 互操作性产品管理 社区提名奖(Community Nomination 对于每个用户,从以下两个类别中选择较高的分数: 满足条件 排名 第一名 第二名 第三名 在开发者社区上发布了文章并将应用程序上传到 Open Exchange (OEX) 9 6 3 在开发者社区上发布了至少 1 篇文章或已将 1 个应用上传到 OEX 6 4 2 对开发者社区做出任何有效贡献(发表评论/问题等) 3 2 1 等级 排名 第一名 第二名 第三名 Global Masters 的 VIP 级别 或 InterSystems 产品经理 15 10 5 Global Masters 的 Ambassador级别 12 8 4 Global Masters的Expert 级别或开发者社区版主 9 6 3 Global Masters的Specialist级别 6 4 2 Global Masters的Advocate级别,或 InterSystems员工 3 2 1 Blind vote! 每个应用获得的投票数将对所有人不可见。我们会每天在这个帖子(英文原贴)的评论区发布一次排行榜。 在竞赛页面上,项目按如下顺序排列:提交申请的时间越早,在列表中的排名就越靠前。 PS 不要忘记订阅这篇文章(请订阅英文原贴),点击铃铛图标(如下所示),即可收到最新评论。 在参与投票前,您需要: 登录 Open Exchange – 使用开发者社区账号即可。 在社区内进行有效贡献 ——回答问题、发帖、在Open Exchange发布新应用等等都可以,然后你的账号才可以参与投票。点击查看本帖 ,了解如何更好地成为有效的社区贡献者! 投票期间,如果你改了主意,可以随时将票改投给其他项目。 来支持您喜欢的应用吧! 注意:在投票期间,参赛者可以继续修复bug,提升应用,所以投票者不要错过最新发布的版本哦~ 很高兴参加了这次比赛,以下是我的应用链接 https://openexchange.intersystems.com/package/IntegratedMLandDashboardSample 给您点赞!欢迎写个中文介绍文章。 IntegratedML-IRIS-PlatformEntryPrediction平台服务器入场配置预测应用,以java连接iris并使用其IntegratedML技术完成对医院门诊量,服务数,消息数,消息保存时间等数据分析,可以在医院集成平台入场前,对医院入场平台所需的服务器配置进行预测,为客户提供便利。请大家为比赛投上一票文章地址:https://community.intersystems.com/post/integratedml-iris-platformentryprediction投票链接:https://openexchange.intersystems.com/contest/32#350 欢迎写个中文介绍,谢谢! 好的,这个是中文介绍文章链接,欢迎大家阅读。文章链接:https://cn.community.intersystems.com/post/%E5%B9%B3%E5%8F%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%85%A5%E5%9C%BA%E9%85%8D%E7%BD%AE%E9%A2%84%E6%B5%8B%E5%BA%94%E7%94%A8 谢谢您的回复,以下是中文介绍链接 https://cn.community.intersystems.com/post/%E5%9F%BA%E4%BA%8Eintegratedml%E5%8F%8Adashboard%E7%9A%84%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%BA%94%E7%94%A8 最新投票结果出来啦,一起来看看: Hi Developers! Here are the results at the moment: Community Nomination, Top 5 iris-fhir-generative-ai by @José Roberto Pereira irisChatGPT by @Muhammad Waseem oex-mapping by @Robert Cemper IntegratedMLandDashboardSample by @Shanshan Yu oex-vscode-snippets-template by @John Murray ➡️ Voting is here. Expert Nomination, Top 5 irisChatGPT by @Muhammad Waseem iris-fhir-generative-ai by @José Roberto Pereira oex-vscode-snippets-template by @John Murray ZProfile by @Dmitry Maslennikov DevBox by @Sean Connelly ➡️ Voting is here. Don't forget to vote for your favorite app! 来看最新的投票结果! Hi, Dev's! And here're the results at the moment: Community Nomination, Top 5 iris-fhir-generative-ai by @José Roberto Pereira IntegratedMLandDashboardSample by @Shanshan Yu IntegratedML-IRIS-PlatformEntryPrediction by @Zhang Fatong irisChatGPT by @Muhammad Waseem oex-mapping by @Robert Cemper ➡️ Voting is here. Expert Nomination, Top 5 iris-fhir-generative-ai by @José Roberto Pereira irisChatGPT by @Muhammad Waseem IRIS FHIR Transcribe Summarize Export by @Ikram Shah oex-mapping by @Robert Cemper FHIR - AI and OpenAPI Chain by @Ikram Shah ➡️ Voting is here.
公告
Claire Zheng · 一月 30

【投票时间】InterSystems 编程大赛:FHIR和数字医疗互操作性

Hi开发者们, 投票时间到了!来为InterSystems 编程大赛:FHIR和数字医疗互操作性中的最佳应用程序投票: 🔥投票选出最佳应用程序🔥 如何投票?详细信息如下。 专家提名奖(Experts Nomination)- InterSystems 经验丰富的评审团将选出最佳应用程序。欢迎我们的专家: ⭐️ @Guillaume Rongier, Sales Engineer⭐️ @Sylvain Guilbaud, Sales Engineer⭐️ @Alexander Koblov, Senior Support Specialist⭐️ @Eduard Lebedyuk, Senior Cloud Engineer⭐️ @Steve Pisani, Senior Solution Architect⭐️ @Alexander.Woodhead, Senior Systems Developer⭐️ @Andreas Dieckow , Principal Product Manager⭐️ @Aya Heshmat, Product Manager⭐️ @Benjamin De Boe, Product Manager⭐️ @Bob Kuszewski, Product Manager⭐️ @Carmen Logue , Product Manager⭐️ @Luca Ravazzolo, Product Manager⭐️ @Raj Singh, Product Manager⭐️ @Patrick Jamieson, Product Manager⭐️ @Stefan Wittmann, Product Manager⭐️ @Thomas Dyar, Product Manager⭐️ @Daniel Franco, Senior Manager - Interoperability Product Management⭐️ @Timothy Leavitt, Development Manager⭐️ @Evgeny Shvarov, Senior Manager of Developer and Startup Programs⭐️ @Dean Andrews, Head of Developer Relations⭐️ @Jeff Fried, Director of Product Management 社区提名奖(Community Nomination) 对于每个用户,从以下两个类别中选择较高的分数: 满足条件 排名 第一名 第二名 第三名 在开发者社区上发布了文章并将应用程序上传到 Open Exchange (OEX) 9 6 3 在开发者社区上发布了至少 1 篇文章或已将 1 个应用上传到 OEX 6 4 2 对开发者社区做出任何有效贡献(发表评论/问题等) 3 2 1 等级 排名 第一名 第二名 第三名 Global Masters 的 VIP 级别 或 InterSystems 产品经理 15 10 5 Global Masters 的 Ambassador级别 12 8 4 Global Masters的Expert 级别或开发者社区版主 9 6 3 Global Masters的Specialist级别 6 4 2 Global Masters的Advocate级别,或 InterSystems员工 3 2 1 Blind vote! 每个应用获得的投票数将对所有人不可见。我们会每天在这个帖子(英文原贴)的评论区发布一次排行榜。 在竞赛页面上,项目按如下顺序排列:提交申请的时间越早,在列表中的排名就越靠前。 PS 不要忘记订阅(请订阅英文原贴),点击铃铛图标(如下所示),即可收到最新评论。 要参加投票,您需要: 登录 Open Exchange – 使用开发者社区账号即可。 在社区内进行有效贡献 ——回答问题、发帖、在Open Exchange发布新应用等等都可以,然后你的账号才可以参与投票。点击查看本帖 ,了解如何更好地成为有效的社区贡献者! 投票期间,如果你改了主意,可以随时将票改投给其他项目。 来支持您喜欢的应用吧! 注意:在投票期间,参赛者可以继续修复bug,提升应用,所以投票者不要错过最新发布的版本哦~
文章
Hao Ma · 一月 15, 2021

基于InterSystems IRIS开发的RealWorld应用程序

假设您想编写一些真正的web应用程序,例如medium.com网站的简单克隆。这类应用程序可以在后端使用任何不同的语言编写,也可以使用前端的任何框架编写。编写这样一个应用程序有很多方法,你也可以看看这个项目。它为完全相同的应用程序提供了一堆前端和后端实现。您可以轻松组合它们,任何所选前端应该与任何后端搭配。 我来介绍一下这个使用后端InterSystems IRIS来实现后端的相同的应用程序。 RealWorld项目使用REST并提供预设swagger规范,以及Postman/Newman集合自动化测试。因此,它有助于实现完全相同的REST API。幸运的是,InterSystems已经实现了通过swagger规范生成REST API实现的方法。最佳实践在这里。 我实现这个应用程序的步骤是: 从swagger规范生成API 为应用程序中使用的每个对象类型添加一些持久类,包括 Users Articles Comments 实现API并用Postman测试 最后,用任何前端查看实际效果。 用 docker 启动 你可以自己使用docker 来实验一下。 // clone github repository git clone https://github.com/daimor/realworld-intersystems-iris.git cd realworld-intersystems-iris // build and run it with docker-compose docker-compose up -d --build 启动后可以通过URL http://localhost:12000/conduit获取IRIS中的REST API,可以用newman测试,需要已安装npm和npx包。 APIURL=http://localhost:12000/conduit ./run-api-tests.sh 运行Postman的相同测试 可以通过URL http://localhost/访问前端 可以通过zpm运行UnitTest,只需要进入iris会话 $ docker-compose exec server iris session iris Node: 0790684cf488, Instance: IRIS CONDUIT>zpm zpm: CONDUIT>test realworld [realworld] Reload START [realworld] Reload SUCCESS [realworld] Module object refreshed. [realworld] Validate START [realworld] Validate SUCCESS [realworld] Compile START [realworld] Compile SUCCESS [realworld] Activate START [realworld] Configure START [realworld] Configure SUCCESS [realworld] Activate SUCCESS [realworld] Test START Use the following URL to view the result: http://172.22.0.3:52773/csp/sys/%25UnitTest.Portal.Indices.cls?Index=48&$NAMESPACE=CONDUIT All PASSED [realworld] Test SUCCESS zpm: CONDUIT> 默认使用Vue前端,但也能运行Angular和React web=angular docker-compose up -d --build web web=react docker-compose up -d --build web web=vue docker-compose up -d --build web 通过ZPM安装 InterSystems IRIS部分(后端)可以通过ZPM安装 USER>zpm zpm: USER>install realworld [realworld] Reload START [realworld] Reload SUCCESS [realworld] Module object refreshed. [realworld] Validate START [realworld] Validate SUCCESS [realworld] Compile START [realworld] Compile SUCCESS [realworld] Activate START [realworld] Configure START [realworld] Configure SUCCESS [realworld] Activate SUCCESS zpm: USER> 它将创建`/conduit` Web应用程序,只要设置正确的端口,也能用newman进行测试。 APIURL=http://localhost:52773/conduit ./run-api-tests.sh 可以用ZPM进行UnitTest zpm: USER>test realworld [realworld] Reload START [realworld] Reload SUCCESS [realworld] Module object refreshed. [realworld] Validate START [realworld] Validate SUCCESS [realworld] Compile START [realworld] Compile SUCCESS [realworld] Activate START [realworld] Configure START [realworld] Configure SUCCESS [realworld] Activate SUCCESS [realworld] Test START Use the following URL to view the result: http://172.17.0.2:52773/csp/sys/%25UnitTest.Portal.Indices.cls?Index=4&$NAMESPACE=USER All PASSED [realworld] Test SUCCESS 备注 在开发这个项目的过程中,我遇到了一些问题。 %JSON.Adaptor 它在导入全新对象时效果非常好。但如果需要部分更新现有对象,则%JSONImport对于来源JSON中应该有的必需字段无效。 所以我没用%JSONImport更新对象,而是用了一个从传入的JSON到对象的简单集(如果定义了值)。 只能导出到字符串、流和输出设备。无法导出到原生JSON API需要返回被另一个对象(属性被命名为返回对象的类型)包装的任何对象。并用%JSONExportToString解决了这个问题,对于数组,将其转换为原生JSON 忽略空集合属性(如:数组和列表)的导出。虽然应用程序可能期望得到字段的空数组,但它根本没有得到任何字段 这个问题没解决。太棘手,只能在%JSON.Adapter端解决。 %REST - REST实现的生成器及REST实现本身 即使没有任何更改,`spec`类的任何编译都会更新`impl`类。因此,切记保持生成的部分(如:方法名、参数列表和变量名)不变,否则将会被下一次`spec`编译重写,这可能会在构建用于生产的应用程序时发生。 REST可以有`/users/` 端点,也能获取`/users/`请求,在这种情况下,两者效果相同。但如果只定义了第一种方式,REST就不能识别第二种方式。 要解决这个问题,必须修改swagger规范,只复制带新端点`/users/`的`/users/` Swagger规范定义了参数化请求的默认值,而生成器忽略了 在方法/生成器的代码中手动设置默认值可能会重写方法定义,而参数的设置默认值将被删除。所以可能在部署后破坏实现。 %REST.REST中的方法不可用于覆盖,仅由`disp`类使用,且将被`spec`类的编译完全重写。 无法访问实例的OnPreDispatch方法,也就无法进行更多控制,如:检查访问 Swagger规范定义了哪些端点是公共的,哪些需要授权。%REST生成器无法使用。 API必须用JWT来授权请求,且必须手动检查哪个端点需要检查访问。超出了%OAuth2实现的范围,在IRIS中使用JWT也很麻烦。 在`impl`类中生成的方法应该返回原生JSON对象、流或字符串。但我认为如果它也能接受%JSON.Adaptor对象就很好。 无论如何,实现这样的应用程序是非常有趣的。至少知道了可以用IRIS来实现。 这个应用程序使用了IRIS的这些特性 原生JSON + %JSON.Adaptor REST,及其遵守swagger规范的实现生成器 OAuth2的JWT 容器化 竞赛 这个项目正在参加InterSystems全栈竞赛,如果您喜欢请投票。
公告
Claire Zheng · 一月 26, 2021

投票时间!InterSystems多模型数据库竞赛

亲爱的社区开发者们! 本周进入 InterSystems多模型数据库竞赛的投票环节!是时候为你所认可的最佳方案投票了! 🔥 投票通道: 点击投票 🔥 如何投票? 使用我们全新的投票引擎和算法提名专家(Experts)和社区提名,您可以选择3个项目,分别投出心目中的第一、第二和第三位。 以下是社区排行榜说明: 社区排行榜: 名次 得分 1st 3 2nd 2 3rd 1 专家(Experts)排行榜会有更复杂的数学计算,不同级别的专家有更多的“点数”权力: 专家(Experts)排行榜: 级别 名次 1st 2nd 3rd VIP级:总经理,版主,产品经理 9 6 3 Global Masters中的专家(Expert)级 6 4 2 Global Masters中的专业(Specialist)级 3 2 1 专家投票也将为按“3-2-1”为社区排行榜贡献出分数。 投票说明 投票在 Open Exchange 竞赛页面 ,用户需要登录 Open Exchange 进行投票(使用开发者社区的账号即可登录)。 投票后您可以取消投票,将宝贵的票票投给其他更心仪的项目, 参赛者可以在投票周修复bug并进一步改进程序,欢迎订阅程序发布,不要错过 ! ➡️ 请查收最新的 InterSystems在线竞赛投票规则. 注:本文为译文,欢迎点击阅读原文,原文由Anastasia Dyubaylo撰写。
公告
Claire Zheng · 三月 17, 2021

InterSystems编程大赛: 开发者工具

亲爱的社区开发者们,大家好! 我们很高兴地宣布,新一轮InterSystems开发者竞赛开启了! 🏆 InterSystems 编程大赛:开发者工具 🏆 请提交具有如下特性的应用程序——能够加速开发、贡献更多高质量代码、帮助用户测试、部署、支持或监控基于InterSystems IRIS的解决方案。 时间: 2021年3月29日- 4月25日 Total prize: $8,500 奖项设置 1. 专家提名奖(Experts Nomination)- 获奖者由我们特别挑选的专家团选出: 🥇 第一名 - $4,000 🥈 第二名 - $2,000 🥉 第三名 - $1,000 2. 社区提名奖(Community Nomination)- 获得总投票数最多的应用: 🥇 第一名 - $750 🥈 第二名 - $500 🥉 第三名 - $250 如果同时多位参赛者获得同样的票数,均被视为优胜者,将平分奖金 谁可以参加? 任何开发者社区的成员均可参加,InterSystems内部员工除外。还没有账号?现在来建一个! 👥 开发者可以组团 创建一个协作应用程序,组团限定人数为2-5人。 请注意,要在您的README文件中标注您的团队成员——社区用户profile. 参赛时间安排 🛠 3月29日 - 4月18日: 应用开发、提交阶段(在此期间,您可以持续编辑自己的项目) ✅ 4月19日 - 25日: 投票阶段 🎉 4月26日: 宣布优胜者! 主题 💡 InterSystems IRIS开发者工具 💡 此次竞赛中,我们希望您提交的应用程序能够改善IRIS开发者的使用体验,贡献更多qualitative code,并帮助用户测试、部署、支持或监控基于InterSystems IRIS的解决方案。 以下是参赛须知 有效应用程序:100%全新的Apps或已有的应用程序(但有显著提升)。所有参赛者/团队提交的应用程序只有经过我们团队的审核之后才会被批准参赛。 应用程序的类型应匹配: UI框架, IDE, 数据库管理, 监控, 部署工具等等 应用程序需要在 IRIS Community Edition 或 IRIS for Health Community Edition 或 IRIS Advanced Analytics Community Edition 上运行。 应用程序应该开源并在GitHub上发布。 应用程序的README文件需要包含安装步骤,并包含视频demo或/和应用程序如何运行的描述。 应用程序的源代码应该以UDL(而非XML)格式提交, 举例说明。 上述要求可能会按需修订。 资源助力 示例程序: iris-rad-studio - RAD for UI cmPurgeBackup - backup tool errors-global-analytics - errors visualization objectscript-openapi-definition - open API generator Test Coverage Tool - test coverage helper and many more. 我们建议您从以下模板开始: objectscript-docker模板 rest-api-contest模板 native-api-contest模板 iris-fhir模板 iris-fullstack模板 iris-interoperability模板 iris-analytics模板 如何将您的APP提交给大赛: 如何在InterSystems Open Exchange上发布应用程序 如何把参赛APP提交给大赛 参赛评比 我们已制定全新投票规则,欢迎关注! 期待您的精彩提交!加入我们的编程马拉松,赢取大奖! ❗️ 点击此处,查看 官方竞赛条款解读.❗️ 最新竞赛启动啦!欢迎大家积极参赛!✿✿ヽ(°▽°)ノ✿(*^▽^*) Pls invite your customers to join. Thx! @Li.Yan @Lu.Wang @Jun.Qian @Peng.Qiao @Louis.Lu @Hao.Ma @Lin.Zhu @Jieliang.Liu 今天就可以开始提交作品啦!
文章
Louis Lu · 四月 15, 2021

基于InterSystems IRIS 的数据运维DataOps

InterSystems IRIS 下使用 DataOps ![](/sites/default/files/inline/images/images/image(1392).png) Gartner 对 DataOps 的定义是:“DataOps 是一种协作式的数据管理方法,侧重于改善整个组织中数据管理者和数据消费者之间数据流的沟通、整合与自动化。 DataOps 的目标是创建可预测的数据、数据模型和相关项目的交付和变更管理,从而更快地交付价值。 DataOps 采取特殊技术手段和相应治理水平自动化数据交付的设计、部署和管理,以元数据提高动态环境中数据的易用性和价值。” 2014 年 6 月 19 日,InformationWeek 特约编辑 Lenny Liebmann 发表于 IBM Big Data & Analytics Hub 的题为“3 reasons why DataOps is essential for big data success”的文章中首次提出 DataOps 这一概念。 DataOps 一词后被 Andy Palmer 推广到 Tamr。 DataOps 是“数据运营”的专属名称。 2017 年对 DataOps 来说是意义重大的一年,生态系统取得巨大发展,分析师覆盖范围进一步扩张,关键字搜索量以及调查、出版物和开源项目数均有所提升。 Gartner 在 2018 年的 Hype Cycle for Data Management 中添加了 DataOps 。 (资料来源:) DataOps 宣言确立了以下 DataOps 原则:()   1. **持续满足客户需求**:我们的首要任务是在几分钟到几周内及尽早并持续交付有价值的内容给客户,并以此满足客户的需求。 2. **有价值工作的分析**:我们认为评价工作效率的主要度量指标是,提交了多少深度分析的内容、产出多少高准确度的数据以及在顶层框架和系统中贡献了多少。 3. **拥抱变化**:我们并不抗拒客户需求的变化,事实上,我们欣然接受这些变化,并以此产生竞争优势。 我们相信,与客户直接交谈是最高效、最实用、最敏捷的沟通方式。 4. 这是一项团队运动:分析团队将始终具有各种角色、技能、偏好工具和头衔。 多元化的背景和意见可以提高创新力和生产力。 5. **日常互动**:客户、分析团队和运营必须每天都在整个项目中协同工作。 6. **自发组织**:我们相信,最好的分析见解、算法、架构、需求和设计都来自于自发组织的团队。 7. **减少英雄主义**:对于分析的深度和广度,需求正在加速扩大,我们认为分析团队应尽力减少英雄主义,创建可持续且可扩展的数据分析团队和流程。 8. **反思**:分析团队应定期根据客户、自身和运营统计提供的反馈意见开展自我反思,优化运营绩效。 9. **分析即代码**:分析团队使用各种工具对数据进行访问、集成、建模和可视化。 从根本上讲,每种工具都会生成代码和配置,这些都会对数据进行操作,从而为进一步理解数据提供帮助。 10. **编排**:从头到尾编排数据、工具、代码、环境以配合分析团队的工作,这是分析成功的关键因素。 11. 使其可复现:结果需要可复现,我们对所有内容进行版本控制:包括数据、底层硬件、软件配置以及特定于工具链中各工具的代码和配置。 12. **一次性的工作环境**:我们认为,必须为分析团队成员提供易于创建、隔离、安全并能反映其生产环境的一次性工作环境,从而最大程度地降低分析团队的实验成本。 13. **简洁性**:我们认为,持续关注卓越的技术和良好的设计不仅可以提高敏捷性,也可以提高简洁性,特别是突出显示未完成的工作量。 14. **分析即生产**:分析管道类似于精益生产线。 我们认为,DataOps 的一个基本概念是注重过程思维,提升分析及生产的效率。 15. **质量至上**:分析管道在基础上应该有能力自动检测代码、配置和数据中的异常 (jidoka) 与安全问题,并应向操作员提供持续反馈以避免错误 (poka yoke)。 16. **监视质量和性能**:我们的目标是对性能、安全和质量措施进行持续监视,及时发现意外变化并生成运营统计信息。 17. **重用**:我们认为,提升分析及生产效率的一个基本方面是避免个人或团队重复以前的工作。 18. **缩短周期时间**:从将客户需求转化为分析思路,到在开发中创建、并作为可重复生产的流程发布,再到最后的重构和重用产品,我们应尽全力将这一周期耗费的时间和精力降到最低。 当您分析这些原则时,也许会发现 InterSystems IRIS 能够在某些方面起到作用: * 持续满足客户需求:您可以通过冲刺或迭代创建新的短集成产品、编排、IRIS 多维数据集、报告、BI 可视化和 ML 模型。 * 有价值工作的分析:IRIS 帮助您提供高质量的数据(在持久化类中使用production、适配器和类方法),并使您能够在 IRIS BI 数据透视表(分析设计器)和 IRIS NLP(文本分析)中进行数据探索。 * 自组织:IRIS 简化了自组织,借助统一的数据平台,您只需一个工具即可收集、处理、分析和发布见解。 * 反思:您可以通过此用户门户与用户互动并收集反馈,以改进交付的产品。 * 分析即代码:在 IRIS 数据模型中,多维数据集、仪表板都是代码,具有版本控制和治理功能。 * 编排:IRIS 数据平台可在单个工具中编排数据的引入、扩充、分析工作、数据可视化和 ML。 * 使其可复现:IRIS 支持使用 Docker、Kubernetes (IKO) 和 DevOps 复现结果。 * 一次性环境:IRIS 支持为集成、数据模型、BI 多维数据集和可视化创建 Docker 一次性环境。 * 简洁性:IRIS 数据多维数据集的创建非常简单,无需创建 ETL 脚本,分析器、多维数据集、仪表板的创建均实现可视化和网络化,并且可由用户而不仅是开发者团队完成。 同时,IntegratedML 允许在没有源代码开发的情况下针对常见场景创建 ML。 * 监视质量和性能:IRIS 使用 SAM 监视性能并具有 Web 管理门户。 * 重用:在 IRIS 中,DataOps 项目是类,这些类默认可扩展、可重用。 * 缩短周期时间:用户可以通过自助服务创建仪表板、分析、报告,以及发布和共享工作。 ODSC () 指出以下 DataOps 策略: InterSystems IRIS 对以上几点均有所帮助: * 自助服务配置:用户可以创建和发布多维数据集与仪表板。 * 共享、标记、注解:用户门户可用于共享仪表板,IRIS Analytical Web Portal 允许用户创建、记录、整理到文件夹并标记您的工作。 * 扩充:BPL 可用于扩充数据。 * 准备:BPL、DTL、适配器和 ObjectScript 逻辑可以帮助准备数据。 * 数据市场:数据资产可以发布到 REST API 并通过 IRIS API Manager 获利。 * 数据目录:IRIS 中的数据被组织成类,这些类被存储在类目录系统 (%Dictonary) 中 * 配置文件与分类:可在用户门户和管理门户中为分析项目创建组、文件夹。 * 质量:IRIS 具有实用工具类,可生成示例数据和进行单元测试。 * 沿袭:在 IRIS 中,所有数据资产都相互连接,您可以从数据模型构建多维数据集,再从多维数据集构建仪表板,所有数据资产均可由数据管理者(IRIS 权限系统)控制。 * 掌控:通过管理门户,您可以掌控分析项目的各个方面。 * 数据库数据、文件数据、SaaS API、流:IRIS 为多模型,支持持久性以及数据和文本分析 (NLP)。 以 IRIS API Manager 支持 SaaS API,以 Integration Adapters 和 PEX(带有 Kafka)与 Streams 结合使用。 * 应用程序、BI 工具、分析沙盒:通过 IRIS,您可以使用您喜欢的语言(Java、Python、.NET、Node.js、ObjectScript)创建 DataOps 应用。 虽然 IRIS 是 BI 工具,但是在这个工具中,您可以将连接器与 Power BI 或 MDX 桥结合使用,将 IRIS 作为分析沙盒。 参见我反映 IRIS 和 DataOps 的汇总: ![](/sites/default/files/inline/images/images/image(1392).png)  
公告
Claire Zheng · 四月 7, 2021

InterSystems开发者社区新增“工作”版块

亲爱的开发者们! 现在你可以在InterSystems开发者社区找工作啦!在开发者社区发帖,你可以为自己找一份心仪的工作,也可以为你的公司寻找合适的人才! 那么,具体怎么操作呢? 在顶部菜单栏找到"职位" 版块: 在这里,你可以发现: 工作机会: 你可以找到需要InterSystems技术能力的工作机会; 求贤: 在这里,你可以发帖寻找具备InterSystems数据平台技术能力的优秀人选,在“所需技能”等相关描述中应包含对InterSystems技术的需求。 所以,如果你: 想为拥有InterSystems技术的人提供一个工作机会,或 拥有InterSystems技术能力,且正在寻找新的工作机会 就可以在社区发帖,当然,请在你发的帖子中加入相关tags: 工作机会 求职 以下是一份超简单的发帖攻略: 找到 职位 并点击 "新工作机会" 按钮,, 就可以创建相关帖子。 欢迎你尝试这个新功能,在这里找到合适的员工,在这里找到心仪的工作😉 如果有任何疑问,跟帖讨论与我们联系吧! Precautionary measures: InterSystems 不保证招聘信息及其他在本网站发布信息的准确性 InterSystems 对因本网站所公布的信息而造成的任何损失概不负责,请直接与招聘人员或申请人确认内容及条件 更多内容,请查看 InterSystems开发者社区行为准则.
公告
Jingwei Wang · 五月 11, 2022

认识InterSystems全球峰会的主要发言人

各位开发者们好,: 很高兴跟大家宣布,畅销书作家和技术专家杰弗里·摩尔将在6月22日InterSystems的全球峰会上做专题演讲。以下是他的简历: 杰弗里·摩尔是一名咨询专家,他最近的咨询业务包括Salesforce、微软、Autodesk、F5Networks、Gainsight、谷歌和Splunk。 他一生的工作都集中在颠覆性创新的市场动态上。他的第一本书《跨越鸿沟》是关于创业公司在从早期采用者过渡到主流客户时所面临的挑战,该书已售出超过一百万册。摩尔最近的作品《Zone to Win》探讨了大型企业在拥抱颠覆性创新时所面临的挑战。 摩尔每年发表50至80场演讲,最近他重点关注企业IT投资从记录系统向交互系统的转变。 我将发布更多关于我们演讲者的信息。今年的全球峰会,演讲阵容很强大。 另外,你现在可以在我们的网站上建立你的会议和时间表。如果你还没有注册,可以点击马上注册.
文章
Jingwei Wang · 二月 14, 2022

使用嵌入式Python实现InterSystems IRIS 互操作性

# 1. 互操作性-嵌入式Python(interoperability-embedded-python) 这个概念旨在展示**iris互操作性框架**如何与嵌入的python一起使用。 ## 1.2. 示例代码 ``` import grongier.pex import iris import MyResponse class MyBusinessOperation(grongier.pex.BusinessOperation): def OnInit(self): print("[Python] ...MyBusinessOperation:OnInit() is called") self.LOGINFO("Operation OnInit") return def OnTeardown(self): print("[Python] ...MyBusinessOperation:OnTeardown() is called") return def OnMessage(self, messageInput): if hasattr(messageInput,"_IsA"): if messageInput._IsA("Ens.StringRequest"): self.LOGINFO(f"[Python] ...This iris class is a Ens.StringRequest with this message {messageInput.StringValue}") self.LOGINFO("Operation OnMessage") response = MyResponse.MyResponse("...MyBusinessOperation:OnMessage() echos") return response ``` ## 1.3. 注册一个组件 **不需要 ObjectScript 代码**. 多亏Grongier.PEX.Utils.RegisterComponent()方法。 启动一个嵌入式的Python shell: ``` /usr/irissys/bin/irispython ``` 然后使用这个类方法将一个新的py文件添加到组件列表中,以实现互操作性。 ``` iris.cls("Grongier.PEX.Utils").RegisterComponent(,,,,) ``` 例如 : ``` iris.cls("Grongier.PEX.Utils").RegisterComponent("MyCombinedBusinessOperation","MyCombinedBusinessOperation","/irisdev/app/src/python/demo/",1,"PEX.MyCombinedBusinessOperation") ``` # 2. 演示 Production有四个Python组件: - 两个业务服务组件 : - 用Grongier.PEX.MyCombinedBusinessService持续的给业务操作组件发送同步消息 - 这些消息是JSON格式的Python对象,存储于Grongier.PEX.Message类 - Thoses messages are python objects casted in JSON and stored in Grongier.PEX.Message. - Python代码 : src/python/demo/MyCombinedBusinessService.py - Grongier.PEX.MyBusinessService是一个用于写消息日志的原始业务服务组件,无其他作用。 - Python 代码 : src/python/demo/MyBusinessService.py - 两个业务操作组件: - Grongier.PEX.BusinessOperation是用于接收业务服务组件Grongier.PEX.MyCombinedBusinessService的消息 - Python 代码 : src/python/demo/MyBusinessOperation.py - Grongier.PEX.CombinedBusinessOperation可以接收Ens.StringRequest消息,并返回Ens.StringResponse消息 - Python 代码 : src/python/demo/MyCombinedBusinessOperation.py 为Python本地消息新增json跟踪: # 3. 前置需求 Git和Docker必须已安装 # 4. 使用Docker安装 从git拉取repo到本地 ``` git clone https://github.com/grongierisc/interpeorability-embedded-python ``` 在安装路径打开terminal,并运行: ``` docker-compose build ``` 使用IRIS容器运行你的项目: ``` docker-compose up -d ``` # 5. 无Docker安装 在iris 实例上安装 grongier_pex-1.0.0-py3-none-any.whl : ``` /usr/irissys/bin/irispython -m pip install grongier_pex-1.0.0-py3-none-any.whl ``` 然后,加载ObjectScript类: ``` do $System.OBJ.LoadDir("/opt/irisapp/src","cubk","*.cls",1) ``` # 6. 运行How to Run the Sample 打开production,并运行。 示例代码会开始运行。 # 7. repo中包含什么内容What's inside the repository ## 7.1. Dockerfile Dockerfile包含在容器中安装一些python的依赖项,例如pip, venv和sudo 然后创建dev目录将git仓库复制进入目录 Dockerfile启动IRIS并导入Titanics csv文件,然后为Python Shell激活**%Service_CallIn**。 可以使用使用相关的docker-compose.yml来轻松地设置额外的参数,如端口号和映射键和主机文件夹的位置。 这个dockerfile以安装python模块的需求结束。 最后一部分是关于安装jupyter notebook和它的内核。 使用.env/文件来调整在docker-compose中使用的dockerfile。 ## 7.2. .vscode/settings.json VSCode配置文件 [VSCode ObjectScript plugin](https://marketplace.visualstudio.com/items?itemName=daimor.vscode-objectscript) ## 7.3. .vscode/launch.json VSCode ObjectScript 调试配置文件 [获取更多相关信息](https://community.intersystems.com/post/dockerfile-and-friends-or-how-run-and-collaborate-objectscript-projects-intersystems-iris) ## 7.4. .vscode/extensions.json 如果你想在容器中用VSCode运行,可以添加扩展。 [获取更多相关信息](https://code.visualstudio.com/docs/remote/containers) 对于使用嵌入式python非常有用。 ## 7.5. src 文件夹 ``` src ├── Grongier │ └── PEX // ObjectScript classes that wrap python code │ ├── BusinessOperation.cls │ ├── BusinessProcess.cls │ ├── BusinessService.cls │ ├── Common.cls │ ├── Director.cls │ ├── InboundAdapter.cls │ ├── Message.cls │ ├── OutboundAdapter.cls │ ├── Python.cls │ ├── Test.cls │ └── Utils.cls ├── PEX // Some example of wrapped classes │ ├── MyBusinessOperationWithAdapter.cls │ ├── MyBusinessOperationWithIrisAdapter.cls │ ├── MyBusinessOperationWithPythonAdapter.cls │ ├── MyBusinessService.cls │ ├── MyOutboundAdapter.cls │ └── Production.cls └── python ├── demo // Actual python code to run this demo │ ├── MyBusinessOperation.py │ ├── MyBusinessOperationWithAdapter.py │ ├── MyBusinessOperationWithIrisAdapter.py │ ├── MyBusinessProcess.py │ ├── MyBusinessService.py │ ├── MyCombinedBusinessOperation.py │ ├── MyCombinedBusinessProcess.py │ ├── MyCombinedBusinessService.py │ ├── MyInboundAdapter.py │ ├── MyLoggingOperation.py │ ├── MyNonPollingStarter.py │ ├── MyOutboundAdapter.py │ ├── MyRequest.py │ ├── MyResponse.py │ ├── MySyncBusinessProcess.py │ └── SimpleObject.py ├── dist // Wheel used to implement python interoperability components │ └── grongier_pex-1.0.0-py3-none-any.whl ├── grongier │ └── pex // Helper classes to implement interoperability components │ ├── _BusinessHost.py │ ├── _BusinessOperation.py │ ├── _BusinessProcess.py │ ├── _BusinessService.py │ ├── _Common.py │ ├── _Director.py │ ├── _InboundAdapter.py │ ├── _Message.py │ ├── _OutboundAdapter.py │ └── __init__.py └── setup.py // setup to build the wheel ``` # 8. 如何增加一个新组件 ## 8.1. 入站适配器InboundAdapter 使用python执行入站适配器,使用grongier.pex.InboundAdapter子类,覆盖OnTask()方法。 ## 8.2. 出站适配器OutboundAdapter 使用python执行出站适配器,使用grongier.pex.OutboundAdapter子类,实现所需action方法。 ## 8.3. 业务服务组件BusinessService 使用python执行业务服务组件,使用grongier.pex.BusinessService子类,覆盖OnProcessInput()方法。 ## 8.4. 业务流程组件BusinessProcess 使用python执行业务流程组件,使用grongier.pex.BusinessProcess子类,覆盖 OnRequest(), OnResponse() and OnComplete()方法。 ## 8.5. 业务操作BusinessOperation 使用python执行业务流程组件,使用grongier.pex.BusinessOperation子类,覆盖 OnMessage()方法。 ## 8.6. 注册一个组件 启动一个嵌入式python shell: ``` /usr/irissys/bin/irispython ``` 然后使用这个类方法将一个新的py文件添加到组件列表中,以实现互操作性。 ``` iris.cls("Grongier.PEX.Utils").RegisterComponent(,,,,) ``` 例如 : ``` iris.cls("Grongier.PEX.Utils").RegisterComponent("MyCombinedBusinessOperation","MyCombinedBusinessOperation","/irisdev/app/src/python/demo/",1,"PEX.MyCombinedBusinessOperation") ``` ## 8.7. 直接使用Grongier.PEX 如果你不想使用RegisterComponent,你可以添加一个Grongier.PEX.Business*组件并配置其属性 - %module : - 你的python代码的模块名称 - %classname : - 你的组件的类名 - %classpaths - 你的组件所在的路径。 - 除了PYTHON_PATH之外,可以有一个或多个Classpaths(用'|'字符分隔) 例如 : # 9. 其他工作 - 仅业务服务组件和业务操作组件可以被测试 - 在适配器上工作 # 10. 认证 大部分代码来自Mo Cheng和Summer Gerry的PEX for Python。 注册部分来自于尚未发布的IRIS 2021.3的功能。
文章
Jingwei Wang · 二月 15, 2022

如何用Python访问InterSystems IRIS数据库

1. 使用PyODBC访问InterSystems IRIS数据库 pyodbc是一个开源的Python模块,可以利用ODBC来访问底层数据库。InterSystems支持使用pyodbc作为使用关系模式从Python访问数据库的一种方式。这个模块也可以用于InterSystems IRIS的早期版本。 代码示例 import pyodbc def run(): # connection information ip = localhost port = 51773 # IRIS超级服务端口号 namespace = USER username = <userName> password = <password> driver = "{InterSystems IRIS ODBC35}" # ODBC data source名称, IRIS 安装时一般自带ODBC驱动,所以不需要独立安装 ​ # Create connection to InterSystems IRIS connection_string = 'DRIVER={};SERVER={};PORT={};DATABASE={};UID={};PWD={}' \ .format(driver, ip, port, namespace, username, password) print(connection_string) connection = pyodbc.connect(connection_string) connection.setdecoding(pyodbc.SQL_CHAR, encoding='utf-8') connection.setencoding(encoding='utf-8') print("Connected to InterSystems IRIS") ​ ​ if __name__ == '__main__': run() 在windows终端执行上面的python文件,可以运行成功,代表您已经可以从通过pyodbc访问InterSystems IRIS 2. 使用 InterSystems IRIS Native API 访问InterSystems IRIS 数据库 2.1 安装 .whl 文件 2.2 代码示例 """ PURPOSE: Makes a connection to an instance of InterSystems IRIS Data Platform using the native API """ ​ import irisnative def run(): # connection information ip = localhost port = 51773 # IRIS超级服务端口号 namespace = USER username = <userName> password = <password> ​ # Create connection to InterSystems IRIS connection = irisnative.createConnection(ip, port, namespace, username, password) ​ print("Connected to InterSystems IRIS") ​ # Create an iris object iris_native = irisnative.createIris(connection) ​ ​ if __name__ == '__main__': run() 可以在windows终端执行上面的python文件,可以运行成功,代表您已经可以从通过Native API访问InterSystems IRIS 3. Pyodbc 与 Native API的区别 PyODBC可以让你的应用程序快速检索、更新和删除数据。 Native API可以让你的应用程序直接访问InterSystems IRIS中的底层数据结构(globals),以及调用ObjectScript方法和例程。
文章
Claire Zheng · 三月 29, 2022

什么是卓越?——InterSystems全球副总裁John Paladino

卓越是什么?是思维方式,理念,还是结果? 在InterSystems,我们用行动来定义卓越。卓越意味着设立非常高的标准并超越它;卓越意味着不管是最小的姿态,还是最大的努力都同等重要;卓越意味着积极主动,即使是在客户还不清楚的情况下也努力去了解客户真正需要的东西,在客户提问之前就准备好相应的解决方案;卓越意味着着眼未来,分析潜在趋势,发现机会并有效协同,将一个个创意转化成为可行动的计划。 卓越是驱动我们与像您一样珍贵的合作伙伴一起支持起全世界最核心的关键应用。卓越是我们为何和如何能持续解决问题,成为客户可信赖的合作伙伴,以及成为支撑最重要的关键系统背后的力量。我们全力追求卓越,为客户更好地解决问题。但是不要仅仅向我们提出问题,我们也非常欢迎您的创意和目标,让我们一起来实现它们!
文章
Lilian Huang · 六月 14, 2022

[首次使用InterSystems IRIS] 互操作性: Message消息

这篇文章是上一篇文章的延续https://cn.community.intersystems.com/post/首次使用intersystems-iris-互操作性-一个production是什么? 在上一篇文章:https://cn.community.intersystems.com/post/首次使用intersystems-iris-互操作性-一个production是什么? 我们查验了什么是Production. 我们运行了示例代码,并在Visual Trace 页面查验了如何将流动消息的内容引入进Production中。 本文将回顾消息messages的概念和定义,和消息如何在系统集成所需的开发内容中用于组件之间发送和接收数据。 Production生产http://[https://cn.community.intersystems.com/post/首次使用intersystems-iris-互操作性-一个production是什么? Message消息 Components组件 Business Services业务服务 Business Processes业务流程 Business Operations业务操作 在创建 一个Message消息之前,让我们回顾一个案例研究。 一家公司经营着一个购物网站,并且正在为了适应季节而改变显示的产品信息顺序。 然而,有些商品无论季节如何都卖得很好,而有些商品在想不到的时间卖的很好,这与当前要更改顺序的显示规则不符。<br />因此,我们研究了更改显示商品顺序规则的可能性是匹配当天的温度而不是季节。 这就使得在购买商品时测量当时的温度变的很有必要。 由于一个外部的Web API可以查看天气信息,我们计划在商品购买时收集当时的天气信息并在将其录入数据库。 从本案例中,您可以看到以下内容: 从外部收到的信息是“购买的产品名称和城市名称” 从IRIS发送到外部系统以请求处理的信息是“城市名称”。该过程的结果是输入进的城市 “天气信息” 通过本案例研究,我们将执行系统集成所需的组件,在此之前,要运行这些组件,需要发送和接收messages消息,这些消息是中继转发数据,要使用这些messages消息,需要定义消息类。 一个消息类的设计需要考虑应该发送和接收哪些信息(即,messages消息),以使组件运行。 在此过程中,我们需要以下两类信息: A) 要获取天气信息时发送给外部Web API 的城市名称。 B) 记录在数据库中的天气信息和购买的产品名称。 A)中的城市名称和B)中的购买产品名称可以被包含进输入给IRIS的信息中。 B) 中的天气信息可以从外部Web API的响应信息中检索。 下面的图表就是考虑了从可用数据中发送和接收每个组件所需的信息。 黄色方框的第一行描述消息类别名,第二行之后说明为属性设置。 在示例代码中,我们有以下三种类型的messages消息: Start.Request(请求消息) 它用于发送购买的产品名称和城市,以获取天气信息。 Start.Response(响应消息) 它们用于返回操作的结果(天气信息)。 Start.InsertRequest(请求信息) 用于发送天气信息和购买产品的名称,以便在数据库系统注册。 The messages are specified in a superclass, Request message, and Response message are derived from Ens.Request and Ens.Response, respectively. The following is an example of the definition of the Request message Start.Request. messages 消息在超类别中指定,请求消息和响应消息派生自Ens.Request and Ens.Response,分别作出回应。 以下是Start.Request的定义示例: 以下是响应消息的一个示例, 请求消息, 将请求输入和数据库注册的请求信息发送至如下: (我们计划将天气信息属性设置在Start.Response中,获取天气信息后再返回。) 如果要在Studio中创建,您也可以使用Wizard创建消息。 参考)在Studio中创建响应类的步骤。 总结关键的点在于消息设计的思路“应该发送和接收哪些信息(i.e., messages)”以使组建运行。 一旦消息类实现后(驱动每个组件的信息是什么),下一步即是为组件创建类别。 原文请参考:https://community.intersystems.com/post/intersystems-iris-first-time-interoperability-message written by Mihoko Iijima