搜索​​​​

清除过滤器
公告
Michael Lei · 九月 13, 2023

InterSystems 参加 麻省理工大学2023年度HackMIT

InterSystems 团队本周末将前往麻省理工学院最大的黑客马拉松,届时我们将为黑客们带来一项技术挑战。我们为黑客们提供在他们的项目中使用 IntegratedML 或 InterSystems Supply Chain Orchestrator 的机会,以便争夺一些非常酷的奖品! 如果您在波士顿并且有兴趣成为活动中的 InterSystems 导师,请给我们写信。 我们期待看到新的创意项目!请继续关注 9 月 18 日公布的获奖者名单。 了解有关本次黑客马拉松的更多信息,请访问HackMIT 官方网站。
文章
Claire Zheng · 三月 28

InterSystems通过矢量搜索扩展了InterSystems IRIS数据平台,支持下一代人工智能应用

2024年3月26日,InterSystems数据平台全球主管Scott Gnau发文,宣布InterSystems IRIS数据平台新增了矢量搜索(vector search)功能。 本文作者为Scott Gnau,InterSystems数据平台全球主管。 人工智能具备变革性潜力,能够从数据中获取价值和洞察力。我们正在迈向一个几乎所有应用都将通过人工智能来驱动的世界,随之而来的,是构建这些应用的开发人员需要正确的工具从这些应用中创造体验。因此,InterSystems非常高兴地宣布这一消息——IRIS数据平台新增了矢量搜索(vector search)功能。 在使用大型语言模型时,像矢量搜索这样的工具对于从海量数据集中高效、准确地检索相关信息至关重要。通过将文本和图像转换为高维矢量,这些技术可以支持快速比较和搜索,即便处理分散在整个组织、不同数据集的数百万个文件时也是如此。 InterSystems IRIS数据平台为下一代应用提供了统一基础 在InterSystems,我们始终在探寻各种方式,使下一代数据处理尽可能地离客户数据近一些,而无需将数据传输到特定系统。将矢量搜索功能添加至InterSystems IRIS数据平台后,我们可以通过矢量嵌入(vector embedding)对数据平台进行搜索,从而增强软件在自然语言处理(NLP)、文本和图像分析相关任务中的功能。这种集成将使开发人员能够更轻松地创建使用生成式人工智能的应用程序,以完成各种用例的复杂任务,并根据InterSystems处理的专有数据(proprietary data)提供即时响应。这也意味着他们可以使用精巧的矢量化索引来完成这项工作,同时对保持内部专有产权情报的安全充满信心。 这一功能支持InterSystems IRIS数据平台管理和查询内容及相关的密集矢量嵌入,特别是能够与RAG集成,开发基于生成式人工智能的应用。随着可用工具集的快速发展,无缝RAG集成可支持新模型和用例的敏捷采用。 这项技术能够给客户带来哪些益处? BioStrand是一家依赖于人工智能的药物发现公司,也是InterSystems创新计划(InterSystems Innovation Program)的一部分(该计划帮助初创企业在我们的IRIS平台上构建应用)。BioStrand的核心产品是Lensai平台,这是一种多功能解决方案,支持包括抗体药物发现和设计在内的各种应用。通过先进的算法,Lensai可以迅速识别并设计新型药物化合物,大大缩短了从开发到商业化的研发时间。该模型将采用先进堆叠技术的大型语言模型(LLM)的优势与BioStrand的专利技术HYFT独特地结合在一起。 HYFT是一种嵌入类型,在生物序列中充当独一无二的“指纹”,使BioStrand能够高精度地分配来自不同LLM的嵌入。这个基础模型代表着一个庞大且不断扩展的知识图谱,在6.6亿个数据对象中映射了250亿种关系,令人印象深刻。这个全面的图谱将整个生物圈的序列、结构、功能以及书目信息相互连接在一起。它还融合了检索增强生成、SQL矢量搜索等尖端技术,以及LLM的生成能力和知识图谱的语义表达能力。 矢量搜索将从根本上改变开发人员与IRIS的交互方式 在实施这项技术方面,我们还只是刚刚起步。随着客户与数据的交互方式因矢量搜索而得到改变,随着新的人工智能应用不断通过应用矢量搜索而得到开发,我们将分享更多客户故事。与此同时,我也推荐您访问我们的矢量搜索页面,了解更多信息。 我们加速创新,确保客户成功,并展示对卓越的承诺,与此同时,我们致力于维护最高标准的隐私、安全和责任,这将引导我们以一种深思熟虑、公正的方式对待人工智能,从而创造信任。我们相信,透明度、责任感和可解释性是建立对人工智能系统的信任并推动其创新的关键。
文章
Claire Zheng · 五月 11, 2023

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

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

FHIR在行动:InterSystems的真实国际案例

世界各地的医院和医疗系统、支付方、技术提供商和研究人员都使用InterSystems解决方案来打破互操作性障碍,简化FHIR应用程序的开发和交付工作。 SMART on FHIR 应用 纽约州健康信息网络Hixny使用InterSystems HealthShare Unified Care Record®,为美国最大的公共卫生信息交换机构Healthix开发了一个SMART on FHIR应用程序。每当临床医生查看患者记录时,该创新应用程序都会并排显示患者的社交和病史。该解决方案允许临床医生评估健康的社会决定因素,并直接从其现有的应用程序和工作流程中进行社会服务转介,从而简化互动并提高提供者的效率。HealthShare Unified Care Record 使 Hixny 能够轻松地以单一、一致的格式维护所有数据,无论其来源如何。 数据转换 英国林肯郡NHS使用InterSystems HealthShare和InterSystems HealthShare护理社区来支持一个综合护理门户,并为当地护理团队和患者提供个性化的护理计划。InterSystems解决方案使医生、护士、健康从业者、护理提供者和护理经理能够在任何环境中有效地共享信息并协调护理。Care Community 通过提供对准确治疗计划和患者偏好的全面和即时访问,帮助护理提供者节省时间和精力,并改善护理质量和患者体验。临床医生使用护理门户在就诊前查看患者记录和护理计划,从而提高准备情况并简化咨询和基于社区的就诊。这种方法有助于NHS改善人口健康,并通过将护理从医院转移到更接近林肯郡公民的地方来降低护理成本。 Leumit Health Services是以色列四大健康维护组织之一,作为患者信息亭项目的一部分,它使用InterSystems IRIS for Health在支付机构和医疗服务系统之间交换数据。该集成解决方案通过在登记时以电子方式验证患者的保险资格来改善患者体验,从而取代了耗时的手动流程。Leumit将InterSystems FHIR服务器作为FHIR的Facade,以简化和加快集成工作。(FHIR Facade相当于中间件,它通过将旧数据转换为 FHIR 格式,将现代 FHIR 应用程序与旧医疗保健系统互通。使用Facade方法时,历史数据仍保留在其原始源中以原始格式保存。InterSystems FHIR服务器自动将数据实时转换并转换为FHIR格式,以响应查询,而无需额外的数据存储。 中东的一家私立医院集团使用InterSystems HealthShare Health Connect为远程患者监测应用提供动力。InterSystems解决方案打破了互操作性障碍,将FHIR格式的数据转换为XML,将家庭患者监护系统与医院集团的EHR系统和其他临床应用程序无缝连接。远程监控计划通过改善家庭护理和减少再入院率,帮助医院集团控制护理成本并改善临床结果和患者满意度。 查询 FHIR 数据 Pria是一家创新的医疗技术公司,使用InterSystems HealthShare Health Connect作为其老年人居家健康解决方案的基础。Pria Wellhub是一个语音激活的交互式家庭健康平台,包括健康管理和监测工具,并提供实时警报和通信功能。Pria 使用 HealthShare Connect 将 Wellhub 平台连接到不同的电子病历系统和医疗保健应用程序。InterSystems解决方案使Pria能够轻松地将FHIR格式的家庭中心数据传播给临床医生和个人护理人员。 基于FHIR的数据分析 一家领先的医疗设备制造商使用InterSystems IRIS for Health来快速、大规模地收集和分析设备数据。InterSystems解决方案将设备性能数据、患者报告结果测量(PROM)数据和其他数据转换为通用的FHIR格式,以便进行直接分析。该解决方案消除了对单独分析存储库的需求,从而降低了成本和系统复杂性。InterSystems IRIS for Health SQL Builder使制造商的数据科学家能够使用熟悉的SQL分析工具有效地查询和分析数据。该解决方案使制造商能够向监管机构提供设备合规性的证据。它还提高了对人口健康数据的可见性,并提供可操作的见解,以帮助个体患者更好地管理疾病和检测早期预警信号。 以色列卫生部使用InterSystems IRIS for Health来有效地存储和分析来自分散在全国各地的不同医院EHR系统的人口健康数据。InterSystems IRIS for Health SQL Builder使检查大型FHIR格式的数据集变得容易,帮助卫生部简化流行病学调查,加速发现,并遏制传染病的传播。此外,它还以 FHIR 格式收集信息,例如遗传疾病、死亡和其他人口统计数据。 eHealth Exchange 是一个连接美国联邦机构和非联邦医疗保健组织的网络网络,因此可以在全国范围内交换医疗数据。eHealth Exchange活跃于所有50个州,建立在InterSystems HealthShare之上,是该国最大的基于查询的健康信息网络。美国食品和药物管理局的生物制品有效性和安全性 (BEST) 计划使用 eHealth Exchange 从 EHR 系统中检索人口健康数据。更具体地说,BEST 使用 FHIR 来查询 EHR 系统,以获取有关对生物制品有不良反应的个人的数据。该解决方案简化了监测和流行病学研究,帮助 FDA 确保国家疫苗、血液制品和先进疗法的安全性和有效性。 结论 FHIR 可以帮助您打破互操作性障碍,并将原始健康和护理数据转换为有意义且可操作的信息。它可以帮助您更快、更轻松地访问来自不同来源的数据,从而提高几乎任何医疗保健服务、流程或产品的质量、效率和安全性。 InterSystems拥有产品、专业知识和合作伙伴,可以帮助您自信地开发、交付和扩展FHIR应用。欢迎随时联系我们InterSystems了解如何帮助您的组织快速引入FHIR并取得成果。
公告
Claire Zheng · 五月 18, 2023

创意社区新闻摘要#6 | InterSystems Ideas News#6

Hi 开发者社区的成员们,大家好! 欢迎关注我们第6期 InterSystems Ideas News! 本期分享如下: ✓ 社区成员上个月实施的创意 ✓ 如何在 InterSystems Ideas 上创建新创意 ✓ 最近产生的新创意 名人堂更新了实施社区创新想法的社区成员的名字: 将 IRIS 添加为 Apache Superset 的支持数据库,该创意由@Herman Slagman 提出,由 @Dmitry Maslennikov 实施 请添加 google oauth 授权以登录管理门户,该创意由 @Aleksandr Kolesov 提出,由 @Yuri Marx 实施 👏感谢您实践这些创意👏 新文章“ 如何在 InterSystems Ideas 上创建新创意”逐步描述了创意创建的过程。在向门户添加新想法时阅读它。 为了总结本期时事通讯,以下是自上次新闻公告以来发布的新想法列表 1. @Evgeny Shvarov : 转储 SQL 表2. @Dmitry Maslennikov :对 IRIS 的 Java Hibernate 支持3. @Evgeny Shvarov :为 ObjectScript 变量名添加合法的特殊符号分隔符 4.@Robert Cemper :允许取消“待批准” 5.@Robert Cemper :提供隐藏/取消隐藏帖子的开关。或修复重新发布6. @Scott Roth :Java 网关跟踪路由显示7.@John Murray :在开发者社区将动画 GIF 放在播放/暂停按钮后面8. @yurimarx Marx :在 GEO 仪表板上的数字社区9.@Robert Barbiaux :在 VSCode 中进行单元测试10. @Scott Roth :在消息搜索中保存搜索条件11. @yurimarx Marx :特色文章或问题 👏感谢您发布新想法👏 请继续关注下一期 InterSystems Ideas 新闻公告! 保持创意,在InterSystems Ideas上发布您的奇思妙想,对现有想法进行投票和评论!
公告
Claire Zheng · 七月 2, 2023

创意社区新闻摘要#7 | InterSystems Ideas News#7

Hi 开发者社区的成员们,大家好! 欢迎关注我们第7期 InterSystems Ideas News! 本期分享如下: ​​​​✓ 创意门户已收集了 200 多个创意 ✓ 由社区成员实施的创意 ✓ 在 Grand Prix 23 竞赛中实施一个创意并获得技术奖励 ✓ 最近发布的创意 自创意门户推出以来,已发布 204 个创意。目前已实施25项, 待实施17项。 @Kurro Lopez 被添加到名人堂,因为@Kurro Lopez 实施了由@Yuval Golan 提交的创意: IRIS classes for OpenAI API 👏感谢您实现了这个创意👏 参加InterSystems Grand Prix 23 年度编程大赛开发者可以通过实施 Community Opportunity 中的创意而获得 4 个技术奖励积分。 最新发布的创意 1.在下拉选择中添加“类型过滤”功能。 作者:@VICTORIA CASTILLO2.让数据转换 UI 自动猜测消息类型,作者:@Evgeny Shvarov3.让每个操作和服务公开其消息类 作者: @Evgeny Shvarov4.为医生定制可视化,作者:@Ikram Shah5. 引入 InterSystems IRIS 对 Apache Airflow 的支持 作者:@Evgeny Shvarov6.为 pdf.co 引入互操作性模块(适配器、操作),作者:@Evgeny Shvarov7.在 Visual Trace 中添加参数以查看 XML 或 JSON 中的消息内容 作者:@Sylvain Guilbaud8.每个数据库的特定缓存缓冲区,作者:@Yaron Munz 9.在开发环境中的 Production Export 提供模块部署支持,作者:@Alex Woodhead10.系统默认设置中的环境变量支持 作者:@Alex Woodhead11.设置应该是镜像的一部分 作者:@Scott Roth 12.为社区用户起昵称 作者:@Minoru Horita 13. 使所有生产项目设置在默认设置中可用 作者:@Stefan Cronje14.从管理门户选项添加到文档网页的超链接,作者:@Luis Angel Pérez Ramos 15.从 InterSystems 开发者社区删除草稿 作者:@yurimarx Marx 👏感谢您提交的新创意👏 不要忘记投票、评论和订阅这些创意来跟踪、影响其进展。 请继续关注下一期 InterSystems Ideas 新闻公告!
公告
Claire Zheng · 十月 12, 2023

创意社区新闻摘要#8 | InterSystems Ideas News#8

Hi 开发者社区的成员们,大家好! 欢迎关注我们第8期 InterSystems Ideas NEWS! 本期分享如下: ​​​​✓ 描述创意门户所有页面的新视频 ✓ 自上次NEWS发布以来实施的想法 ⏯观看视频:加入名人堂 除了“创意(Idea)”页面之外,创意门户还包含 4 个新页面: 门户指南(Portal Guide) 消息(News) 民意调查(Polls) 名人堂(Hall of Fame) 欢迎查看,随时了解创意门户(Idea Portal)上的最新动态! 自创意门户(Idea Portal)推出以来,开发者社区成员已实施了24 个创意。其中 6 个是在过去 3 个月内实现的: 创意 想法的实施(项目) 开发者 Include support for GraphQL by @Jose-Tomas Salvador GraphQL @Gevorg Arutiunian REST API for Security Package by @Evgeny Shvarov Config-API @Lorenzo Scalese Jupyter Notebook by @Alex MacLeod Jupyter Server Proxy for VS Code @John Murray Java Hibernate support for IRIS by @Dmitry Maslennikov IRIS Hibernate Dialect @yurimarx Marx Example of Flask application with SQLAlchemy IRIS by @Dmitry Maslennikov IRIS-FlaskBlog @Muhammad Waseem Support for Liquibase by @yurimarx Marx liquibase-iris @Dmitry Maslennikov 👏 感谢大家实施并发布这些想法 👏 请继续关注我们的后续公告! 在我们的InterSystems 创意门户上发布您的绝妙创意,并为现有创意投票并对其发表评论!
公告
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.
公告
jieliang liu · 四月 17

[视频] 与 InterSystems 一起释放机器学习的力量

Hey Community, Play the new video on InterSystems Developers Bilibili官方频道: ⏯ 与 InterSystems 一起释放机器学习的力量 探索如何使用 InterSystems 的所有最新和最先进技术进行机器学习,包括 使用 SQL 和我们的 InterSystems Cloud SQL 服务进行特征工程。 使用 InterSystems IntegratedML 服务训练 ML 模型。 使用与 InterSystems IRIS 中的数据相连的 Jupyter Notebook 和 Python 训练 ML 模型。 使用 ObjectScript 和嵌入式 Python 将 ML 模型集成到应用程序中。 主讲人: 🗣 Marta Manzin, Senior Developer, InterSystems🗣 @Donald.Woodlock, Vice President of Healthcare, InterSystems🗣 @Alex.MacLeod, Director of HealthShare Commercial Initiatives, InterSystems 祝您观看愉快,并探索更多视频!👍
文章
Hao Ma · 四月 28, 2023

IRIS, Caché监控指导 - 控制台日志和错误

这里只讨论Caché和IRIS本身产生的错误和警告。用户在维护工作中通常会需要更多的内容, 那些我们在后面的 “系统性能指标”里介绍。另外, 关于集成平台的告警和日志, 也会在后面单独讨论。集成平台,也就是Ensemble Production,是IRIS系统上运行的应用,它的日志,告警,以及指标,测量,是单独的内容。 ### 控制台日志 控制台日志是系统运行状态的日志文件,在IRIS里是messages.log, 在Cache‘里的名字是console.log,默认放在安装目录的mgr子目录。 用户也可以在管理门户的"系统操作>系统日志>控制台日志"里查看。以下是一个实际的例子: ``` *** Recovery started at Fri Jan 03 16:26:05 2020 Current default directory: c:\intersystems\hsap\mgr Log file directory: c:\intersystems\hsap\mgr\ WIJ file spec: c:\intersystems\hsap\mgr\CACHE.WIJ Recovering local (c:\intersystems\hsap\mgr\CACHE.WIJ) image journal file... Starting WIJ recovery for 'c:\intersystems\hsap\mgr\CACHE.WIJ'. 0 blocks pending in this WIJ. Exiting with status 3 (Success) 01/03/20-16:26:43:627 (8108) 2 Failed to allocate 2880MB shared memory using large pages. Switching to small pages. 01/03/20-16:26:43:627 (8108) 0 Allocated 2880MB shared memory: 2048MB global buffers, 512MB routine buffers 01/03/20-16:26:43:627 (8108) 0 Intel Sandy Bridge AES-NI instructions detected. 01/03/20-16:26:43:731 (8108) 0 Jrn info from prior WIJ (imflags: 0): (Skip multiple records…) 01/04/20-00:00:00:804 (6900) 1 Warning: Alternate and primary journal directories are the same 01/04/20-00:00:00:820 (16272) 0 CACHE JOURNALING SYSTEM MESSAGE Journaling switched to: c:\intersystems\hsap\mgr\journal\20200104.001 01/04/20-10:15:41:703 (16096) 0 DELETE: c:\intersystems\hsap\mgr\journal\20191231.001 01/04/20-10:15:41:734 (12224) 0 Purging old application errors 01/05/20-00:00:00:497 (6900) 1 Warning: Alternate and primary journal directories are the same...(repeated 1 times) 01/05/20-00:00:00:528 (12472) 0 CACHE JOURNALING SYSTEM MESSAGE Journaling switched to: c:\intersystems\hsap\mgr\journal\20200105.001 01/05/20-00:00:01:653 (11436) 1 %SYS.Task.FeatureTracker failed to transfer data 01/05/20-18:18:34:726 (2260) 0 DELETE: c:\intersystems\hsap\mgr\journal\20200101.001 01/05/20-18:18:34:789 (14444) 0 Purging old application errors ``` 控制台日志的记录包括系统的启动停止记录,许可证的使用情况,各种底层资源,网络连接,数据库日志等等的所有内容。记录按严重程度四个等级,分别是 - 0: 一般性消息 (Information/Status) - 1: 警告性错误 (Warning) - 2: 严重错误 (Severe) - 3: 致命性错误 (Fatal) **除了等级为0的一般性消息,剩下的1,2,3个等级的记录都被称为错误**。错误的严重程度从1到3逐渐升高,其中2和3两个级别通常被称为严重错误(Serious Alert)。默认的配置下,它们会被写如另一个警告通知的日志Alert.log,以通知管理员。比如上面例子中的第9行 *“01/03/20-16:26:43:627 (8108) 2 Failed to allocate 2880MB shared memory using large pages. Switching to small pages.”*,就是一个Severe错误,应该被管理员马上知晓。 ### 错误是怎么来的 这里只说控制台日志中呈现的错误,也就是等级1-3的记录,它们的来源有: #### 系统底层直接产生的错误 系统底层产生的基本是严重错误 (Severe)和致命性错误 (Fatal)级别,这里给几个常见的例子,文章z > Write to journal file has failed > ECP client daemon/connection is hung > Failure during PIJ processing - Declaring a crash > Error reading block – recovery read error > Error writing block – recovery write error > ... 这里是[完整的列表的链接](https://docs.intersystems.com/iris20231/csp/docbook/DocBook.UI.Page.cls?KEY=GCM_monitor#GCM_monitor_errors) #### 系统监视器产生的错误 系统运行中默认的系统监视器(System Monitor)和健康监视器(Health Monitor)负责系统的监控工作。他们工作在%SYS命名空间,默认会随系统启动而启动,然后以30秒一次的频率读取系统指标,当指标达到并超过预置的门限值时会触发错误信息写入控制台日志, 级别是Warning(警告)或者严重错误 (Severe)。 > 这里只列出默认情况下什么样的指标会触发错误消息,而背后详细的技术细节会在 “Caché和IRIS的监控器”章节介绍。 **系统监视器产生的错误**针对系统的运行状态和资源,**产生告警的规则不可修改**。注意下图中Warning, Alert对应着Console log里的Waring级别和Severe或者fatal级别。 下表可以在最新版本的IRIS文档中的[这个链接](https://docs.intersystems.com/iris20231/csp/docbook/DocBook.UI.Page.cls?KEY=GCM_healthmon#GCM_healthmon_sysmon_alerts)找到。 ![image-20230419161017432](.pictures/image-20230419161017432.png) #### 健康监视器产生的错误 Health Monitor是另一个评估内部产生的指标的监视器,也是工作在%sys命名空间。它和System Monitor的区别是: **用户可以修改评估的规则,设置适合自己的告警门限值。** Health Monitor默认不激活,因此需要人工启动。但是,如果你发现虽然你没有启动HealthMonitor, 但系统正按照它的规则发送通知,那也不用奇怪,那就是这个监视器的一部分规则不需要启动就自动工作。它的监控项目和规则如下图。 ``` Sensor Base Max Max M Warn Warn M ------ ---- --- ----- ---- ------ CPUPct 50 90 0 80 0 CPUusage 50 85 0 75 0 CSPActivity 100 0 2 0 1.6 CSPActualConnections 100 0 2 0 1.6 CSPGatewayLatency 1000 2000 0 1000 0 CSPInUseConnections 100 0 2 0 1.6 CSPPrivateConnections 100 0 2 0 1.6 CSPSessions 100 0 2 0 1.6 DBLatency 1000 3000 0 1000 0 DBReads 1024 0 2 0 1.6 DBWrites 1024 0 2 0 1.6 DiskPercentFull 50 99 0 95 0 ECPAppServerKBPerMinute 1024 0 2 0 1.6 ECPConnections 100 0 2 0 1.6 ECPDataServerKBPerMinute 1024 0 2 0 1.6 ECPLatency 1000 5000 0 3000 0 ECPTransOpenCount 100 0 2 0 1.6 ECPTransOpenSecsMax 60 0 2 0 1.6 GlobalRefsPerMin 1024 0 2 0 1.6 GlobalSetKillPerMin 1024 0 2 0 1.6 JournalEntriesPerMin 1024 0 2 0 1.6 JournalGrowthRate 1024 0 2 0 1.6 LicensePercentUsed 50 0 1.5 0 0 LicenseUsedRate 20 0 1.5 0 0 LockTablePercentFull 50 99 0 85 0 LogicalBlockRequestsPerMin 1024 0 2 0 1.6 MirrorDatabaseLatencyBytes 20000000 0 2 0 1.6 MirrorDatabaseLatencyFiles 3 0 2 0 1.6 MirrorDatabaseLatencyTime 1000 8000 0 4000 0 MirrorJournalLatencyBytes 20000000 0 2 0 1.6 MirrorJournalLatencyFiles 3 0 2 0 1.6 MirrorJournalLatencyTime 1000 5000 0 3000 0 PhysicalBlockReadsPerMin 1024 0 2 0 1.6 PhysicalBlockWritesPerMin 1024 0 2 0 1.6 ProcessCount 100 0 2 0 1.6 RoutineCommandsPerMin 1024 0 2 0 1.6 RoutineLoadsPerMin 1024 0 2 0 1.6 RoutineRefsPerMin 1024 0 2 0 1.6 SMHPercentFull 50 98 0 85 0 ShadowConnectionsLatency 1000 0 2 0 1.6 ShadowLatency 1000 0 2 0 1.6 TransOpenCount 100 0 2 0 1.6 TransOpenSecsMax 60 0 2 0 1.6 WDBuffers 1024 0 2 0 1.6 WDCycleTime 60 0 2 0 1.6 WDWIJTime 60 0 2 0 1.6 WDWriteSize 1024 0 2 0 1.6 ``` 表格很长,共列有47个sensor。大概的意思都可以从名字看出来,如果要阅读具体的定义,请看[原始文档](https://docs.intersystems.com/iris20231/csp/docbook/DocBook.UI.Page.cls?KEY=GCM_healthmon#GCM_healthmon_overview_api_sensors)。后面的几个字段,Base,Max,Max M,Warn,Warn M定义了这个sensor是怎么确定门限值的。 **第1类:固定的门限值** 也就是定义了Base, Max, Warning字段内容的条目,比如这个条目: ``` Sensor Base Max Max M Warn Warn M ------ ---- --- ----- ---- ------ CPUusage 50 85 0 75 0 ``` - 只要System Monitor已经启动,这个rule就工作,不需要Health Monitor处于激活状态。 - 只用max和warning值来决定是否超门限。连续3次读数超过了max值,产生alert, 连续5次读数超过了warning值,产生warning. 对于这些指标,系统允许用户自己设置告警的门限值,比如把上面CSPUsage的Warn, Max修改为80,90,或其他适合用户自己的数值。 **第2类:动态的门限值** 也就是定义了Base, Multiplier, WarningMultiplier字段内容的条目。例如下面的DBReads: ``` Sensor Base Max Max M Warn Warn M ------ ---- --- ----- ---- ------ DBReads 1024 0 2 0 1.6 ``` 统计学上, 均值(Mean)加3个Sigma是最常用的判断一个采样是否偏离太多的方法。因为是要设置门限值,这里添加了两个乘法系数(Multiplier), MAX M和Warn M,得到一个动态的门限值。当sensor的采样值比均值大的太多了,就会产生错误条目,warning或者alert. 具体的公式是: `产生错误的门限= Max((平均值+3*Sigma)*Multiplier,最大值+Sigma)` 因为大多数情况Max()中第一项的数值都是大的,所以公式可以翻译为:比(平均值+3个sigma)*Multiplier,就是告警的门限。 以上面例子中DBReads说明: Base= 1024, Multiplier=2;WarningMultplier=1.6。监视器开始运行时,会不停的计算这个时段内的平均值,最大值和sigma,产生一个Chart。假如某一刻平均值=2145, sigma=141,最大值为2327,那么根据上面的公式: `Warning门限 = Max((2145+3*141) * 1.6,2327+141) = 4108.8` `Alert门限 = Max((2145+3*141) * 2, 2327+141) = 5136` 也就是说,当您DBReads, 也就是数据库读的平均值是2145/s时,突然来了一个超过4109/s的业务,就会有一个错误信息写到控制台日志,严重级别是1, warning。短时间数据库查询再增加,超过alert门限,就会有严重级别为2的控制台日志被写入,同时这个条目也会写到alert.log文件,用来向管理员发通知。 可以看出,这个设置中base不重要,它只在监视器刚启动时有用,而使这个门限值有意义的是multipler的设置。 这要求用户对自己的业务很熟悉,而且经常的调整才能得到合适的设置,否则就可能在业务波动大的时候得到很多的错误信息,或者得不到自己想要记录的大的业务波动。 重要的一点: 拥有动态门限值的sensor默认是不工作的, 您想要激活Health Monitor。 是这么操作的: ``` %SYS>do ^%SYSMONMGR 1) Start/Stop System Monitor 2) Set System Monitor Options 3) Configure System Monitor Classes 4) View System Monitor State 5) Manage Application Monitor 6) Manage Health Monitor 7) View System Data 8) Exit Option? 6 1) Enable/Disable Health Monitor 2) View Alerts Records 3) Configure Health Monitor Classes 4) Set Health Monitor Options 5) Exit Option? 1 ...后面省略... ``` 用户还可以自定义了Chart,或者修改及自定义默认的14个监控时段(Period),以得到更准确的错误产生的控制。有关这些内容请参见在线文档。 #### 上层应用产生的错误 上层的应用可以调用代码把它认为的错误写到控制台日志,而且可以任意定义级别。实际情况中,真正使用控制台日志来发送应用层面的错误的不多,如果您的系统中发现有, 那么一定能很清楚的把这部分错误条目和上述Caché , IRIS系统本身产生的区分出来。 ### 维护人员对错误的控制 维护人员对错误的控制最基本就是调整健康监视器的门限值。上面讲了两类门限值的理论,下面给出一个例子,显示是怎么修改固定门限值的设置的: ```bash %SYS>do ^%SYSMONMGR 1) Start/Stop System Monitor 2) Set System Monitor Options 3) Configure System Monitor Classes 4) View System Monitor State 5) Manage Application Monitor 6) Manage Health Monitor 7) View System Data 8) Exit Option? 6 1) Enable/Disable Health Monitor 2) View Alerts Records 3) Configure Health Monitor Classes 4) Set Health Monitor Options 5) Exit Option? 3 1) Activate/Deactivate Rules 2) Configure Periods 3) Configure Charts 4) Edit Sensor Objects 5) Reset Defaults 6) Exit Option? 4 1) List Sensor Objects 2) Edit Sensor Object 3) Exit Option? 1 Sensor Base Max Max M Warn Warn M ------ ---- --- ----- ---- ------ CPUPct 50 90 0 80 0 CPUusage 50 85 0 75 0 CSPActivity 100 0 2 0 1.6 CSPActualConnections 100 0 2 0 1.6 CSPGatewayLatency 1000 2000 0 1000 0 CSPInUseConnections 100 0 2 0 1.6 CSPPrivateConnections 100 0 2 0 1.6 CSPSessions 100 0 2 0 1.6 DBLatency 1000 3000 0 1000 0 DBReads 1024 0 2 0 1.6 DBWrites 1024 0 2 0 1.6 DiskPercentFull 50 99 0 95 0 ...(省略多行) WDWriteSize 1024 0 2 0 1.6 1) List Sensor Objects 2) Edit Sensor Object 3) Exit Option? 2 Sensor? 12 DiskPercentFull Base? 50 => Enter either an Alert Value or a Multiplier Alert Value? 99 => 90 Setting Max Multiplier and Warn Multiplier to 0. Enter a Warn Value Warn Value? 95 => 60 Sensor object DiskPercentFull updated. Base 50 MaxMult 0 AlertValue 90 WarnMult 0 WarnValue 60 1) List Sensor Objects 2) Edit Sensor Object 3) Exit ``` 上面的操作中有一个‘神秘数字’ 12. 怎么知道DiskPercentFull是第12个sensor? 我是从列表里数下来的。 注意在修改senosr会出提示要把System Monitor停掉。修改后再启动System Monitor, 这样如果您的硬盘使用超过了60%, 就会收到类似的控制台日志条目: > 12/12/18-15:32:37:349 (13700) 1 [SYSTEM MONITOR] DiskPercentFull(d:\htp\data\) Warning: DiskPercentFull = 74.52 ( Warnvalue is 60). **重复发生的错误会被再次写入控制台日志吗?** 除了最底层的,关乎系统整体运行的少数错误,大部分错误如果在一个小时内重复发生,只有第一次会被写入日志。这就要求用户必须有实时的通知机制, ### 控制台日志的管理 大多数用户不需要操心控制台日志的管理,少数很老的Caché的用户会拥有一个很大尺寸的console.log, 最大的曾见过80MB的文件,这时候从操作门户的页面去查看,已经出现了显示的延迟。 console.log或者messages.log的大小是由系统设置参数‘MaxConsoleLogSize’设定的。 在IRIS和最近些版本的Caché中, 这个设置的值是5MB(您可以在**操作门户的‘系统>设置>其它设置>启动**‘的列表里查看或者修改这个值。 如果一个控制台日志超过了5MB, 会自动切换, 原来的console.log, message.log,会改名为console.log.old.yyyymmdd, 或者message.log.old.yyyymmdd。
公告
Claire Zheng · 七月 10, 2023

InterSystems 2023年度编程大奖赛获奖名单出炉!

Hi 开发者们, 是时候宣布InterSystems 2023 年度编程大奖赛的获奖者了! 感谢提交20 份应用申请出色参与者们 🔥 专家提名奖 🥇第一名,7,000 美元,获奖者@Henrique Dias, @Henry Pereira, @José Roberto Pereira ,获奖应用 iris-fhir-generative-ai 🥈第二名,5,000 美元,获奖者@Ikram Shah, @Sowmiya Nagarajan,获奖应用 IRIS FHIR Transcribe Summarize Export 🥉第三名,3,000 美元,获奖者 @Muhammad Waseem 获奖应用irisChatGPT 🏅第四名,2,000 美元,获奖者@Dmitry Maslennikov,获奖应用ZProfile 🏅第五名 ,1,000 美元,获奖者@Ikram Shah, @Sowmiya Nagarajan ,获奖应用 FHIR - AI and OpenAPI Chain 🌟 200 美元,获奖者:@Robert Cemper, 获奖应用oex-mapping 🌟 200 美元,获奖者:@Rob Ellis, 获奖应用RDUH Interface Analyst HL7v2 Browser Extension 🌟 200 美元,获奖者:@davi massaru teixeira muta, 获奖应用fhir-chatGPT 🌟 200 美元,获奖者:@davi massaru teixeira muta, 获奖应用interoperability_GPT 🌟 200 美元,获奖者:@Oleksandr Zaitsev ,获奖应用password-app-iris-db 🌟 200 美元,获奖者:@Daniel Aguilar 获奖应用irisapitester ⭐️ 100 美元,获奖者:@Shanshan Yu,获奖应用IntegratedMLandDashboardSample ⭐️ 100 美元,获奖者:@Zhang Fatong 获奖应用 IntegratedML-IRIS-PlatformEntryPrediction ⭐️ 100 美元,获奖者:@Sean Connelly 获奖应用DevBox ⭐️ 100 美元,获奖者:@John Murray 获奖应用 oex-vscode-snippets-template ⭐️ 100 美元,获奖者:@Sergey Mikhailenko,获奖应用appmsw-warm-home ⭐️ 100 美元,获奖者:@yurimarx Marx, 获奖应用 FHIR Editor ⭐️ 100 美元,获奖者:@Oliver Wilms,获奖应用iris-user-manager ⭐️ 100 美元,获奖者:@Oleh Dontsov 获奖应用 Recycler ⭐️ 100 美元,获奖者:@Oleh Dontsov 获奖应用 IRIS Data Migration Manager 社区提名奖 🥇第一名,3,000 美元,获奖者@Henrique Dias, @Henry Pereira, @José Roberto Pereira ,获奖应用 iris-fhir-generative-ai 🥈第二名,2,000 美元,获奖者@Shanshan Yu,获奖应用IntegratedMLandDashboardSample 🥉第三名,1,000 美元,获奖者@Zhang Fatong,获奖应用 IntegratedML-IRIS-PlatformEntryPrediction 我们向所有参赛者和获奖者表示最诚挚的祝贺! 下次一起来参赛吧!;) 热烈祝贺 @Shanshan Yu@Zhang Fatong二位中国选手!期待以后看到更多的优秀作品!
文章
Tete Zhang · 七月 4, 2023

FAQ常见问题系列--InterSystems 产品的基础故障排除

本文讨论了在使用或维护InterSystems产品中遇到问题时,试图确定问题时可能用到的思路和工具。 一般故障排除 确定问题发生的地点和时间 问题是什么时候开始的?多久发生一次? 问题首先出现在哪里? 问题在什么条件下会被触发? 审查日志中的警告、错误和警报 以下日志可能包含有关该问题的有用信息。可以尝试在以下日志中寻找问题开始前后的警告或报错。 检查 messages.log(IRIS)或者 cconsole.log(Caché and Ensemble) 通过文件系统(<install-dir>/mgr/messages.log)访问messages.log文件,或者 通过管理门户(系统操作>系统日志>Messages Log)访问文件内容 检查production事件日志 (详细信息请参见文档) 查看应用程序错误日志 (详细信息请参见文档) 查看Web Gateway/CSP Gateway日志 查看网络服务器(IIS/Apache)日志 检查实例是否可以访问足够的存储空间 检查文件系统剩余空间(推荐设置操作系统层级的存储空间低告警) 检查数据库剩余空间 通过管理门户(系统操作>数据库>Freespace View)查看数据库文件内剩余空间百分比 检查Journal日志空间 检查CPU活动 服务器的负载是否在正常范围内? 监控CPU利用率 CPU使用率是稳定的,还是有尖峰?这些尖峰是活动的增加还是减少? CPU是否经常在I/O上等待? 在安装了sysstat的系统上,可以通过iostat监控此项。 审查开放的事务和锁 是否存在开放事务的问题? 评估锁表大小。 查看messages log中是否有锁表满 LOCK TABLE FULL 的警告 检查所有进程是否按预期运行 监控总进程。 进程数是否有显著增加? 是否有任何进程被卡住,或在循环? 进程使用的内存量是否正常? 进入管理门户 > 系统操作 > 进程 > 进程ID的详细信息,以获得关于具体进程的信息。 检查镜像监视器和镜像状态监视器 监控镜像的状态。同步日志工作是否已经完成? 进入管理门户>系统操作>镜像监视器,查看镜像状态。 记录镜像成员之间的差异。 不是所有在主机上的更改都会通过镜像机制同步到备机。系统管理员需要对主备机上无法自动同步的更改进行手动更改,以及对主备机上不同步的部分做完整的记录。 确保InterSystems IRIS的许可证是有效的 监控许可证使用情况。 进入管理门户>系统操作>软件许可使用情况查看。 监控许可证的过期时间。 联系WRC 你所掌握的关于问题的任何信息都可以帮助WRC确定导致该问题的原因。以下是你可以执行的步骤,以向WRC提供尽可能多的信息。 总结问题 这个问题可以重现吗?它是否持续发生? 最近系统上是否有任何变化,可能导致了这个问题? 记录InterSystems IRIS和其操作系统的版本信息 进入管理门户>关于页面,获取完整的版本信息。 运行监控工具 运行系统诊断报告 IRIS: do ^SystemCheck Caché/Ensemble: do ^Buttons 如果系统处于挂起状态,运行IRISHung IRISHung脚本是一个操作系统工具,用于在InterSystems IRIS实例挂起时收集系统的数据。 该脚本位于install-dir\bin目录下,在Microsoft Windows 系统上名称为IRISHung.cmd,在UNIX®/Linux 系统上名称为 IRISHung.sh。 IRISHung脚本应以管理员权限运行。 如果有性能问题,运行系统性能报告 IRIS: do ^SystemPerformance Caché/Ensemble: do ^pButtons 与WRC取得联系 访问InterSystems全球响应中心(WRC)网站 (wrc.intersystems.com),或 邮件发送问题描述至support@intersystems.com,或 拨打中国区技术支持中心热线电话 400-601-9890
文章
Kelly Huang · 七月 12, 2023

如何利用 InterSystems 开放交换工具进行快速 API 开发

在本文中,我将分享我们在 2023 年全球峰会技术交流室中提出的主题。我和@Rochael.Ribeiro 借此机会,我们就以下话题进行探讨: 用于快速 API 的开放交换工具 开放API规范 传统与快速 Api 开发 复合 API(互操作性) 规范优先或 API 优先方法 API 治理和监控 演示(视频) 用于快速 API 的开放交换工具 当我们谈论快速现代 API 开发(Rest / json)时,我们将使用两个 Intersystems Open Exchange 工具: 第一个是用于快速开发 API 的框架,我们将在本文中详细介绍。 https://openexchange.intersystems.com/package/IRIS-apiPub 第二种是使用 Swagger 作为用户界面,用于 IRIS 平台上开发的 Rest API 的规范和文档,以及它们的使用/执行。其运行的基础是开放 API 规范 (OAS) 标准,如下所述: https://openexchange.intersystems.com/package/iris-web-swagger-ui 什么是开放 API 规范 (OAS)? 它是全球范围内用于定义、记录和使用 API 的标准。在大多数情况下,API 甚至在实现之前就已经设计好了。我将在下一个主题中详细讨论它。 它很重要,因为它定义并记录了 Rest API 供其在提供者和消费者方面使用。但这种模式也有助于加快市场上工具(Rest API 客户端)的测试和 API 调用,例如 Swagger、Postman、Insomnia 等…… 使用 IRIS 发布 API 的传统方式 想象一下,我们必须从现有的 IRIS 方法构建并发布 Rest API(如下图)。 以传统方式: 1:我们必须考虑消费者会如何称呼它。例如:将使用哪个路径和动词以及如何响应。无论是 JSON 对象还是纯文本。 2:在 %CSP.REST 类中构建一个新方法,该方法将处理调用它的 http 请求。 3:处理方法对最终用户预期的 http 响应的响应。 4:考虑一下我们将如何提供成功代码以及我们将如何处理异常。 5:为我们的新方法绘制路线。 6:向最终用户提供API文档。我们可能会手动构建 OAS 内容。 7:例如,如果我们有一个请求或响应有效负载(对象),则实施时间将会增加,因为它也必须记录在 OAS 中。 我们怎样才能更快? 只需使用 [WebMethod] 属性标记 IRIS 方法即可。无论是什么,该框架都会使用 OAS 3.x 标准来处理其发布。 为什么 OAS 3.x 标准如此重要? 因为它还详细记录了输入和输出有效负载的所有属性。 这样,市场上的任何 Rest Client 工具都可以立即耦合到 API,例如 Insomnia、Postman、Swagger 等,并提供示例内容以便轻松调用它们。 使用 Swagger,我们已经可以可视化我们的 API(上图)并调用它。这对于测试也非常有用。 API定制 但是如果我需要自定义 API 该怎么办? 例如:我希望路径是其他东西,而不是方法的名称。我希望输入参数位于路径中,而不是像查询参数那样。 我们在方法之上定义了一个特定的符号,我们可以在其中补充方法本身不提供的元信息。 在此示例中,我们为 API 定义了另一条路径,并补充了信息,以便最终用户获得更友好的体验。 Rest API 的投影图 该框架支持多种类型的参数。 在此图中,我们可以突出显示复杂类型(对象)。它们将自动公开为 JSON 有效负载,并且每个属性都将为最终用户正确记录 (OAS)。 互操作性(复合 API) 通过支持复杂类型,您还可以公开互操作性服务。 这是构建复合 API 的有利场景,复合 API 使用多个外部组件(出站)的编排。 这意味着用作请求或响应的对象或消息将自动发布并由 swagger 等工具读取。 这是测试互操作性组件的绝佳方法,因为通常已经加载了有效负载模板,以便用户知道 API 使用哪些属性。 首先,开发人员可以专注于测试,然后通过定制来塑造 Api。 规范优先或 API 优先方法 当今广泛使用的另一个概念是在实现之前就定义 API。 有了这个框架,就可以导入 Open Api 规范。它自动创建方法结构(规范),只缺少它们的实现。 API 治理和监控 对于Api的治理,也建议一起使用IAM。 除了拥有多个插件之外,IAM 还可以通过 OAS 标准快速耦合到 API。 apiPub 为 API 提供额外的跟踪(参见演示视频) 演示 下载和文档 Intersystems 开放交换: https://openexchange.intersystems.com/?search=apiPub 完整文档:https: //github.com/devecchijr/apiPub @Claudio Devecchi 致敬原创作者
公告
Michael Lei · 六月 3, 2023

InterSystems 硬件OS支持平台更新 2023年2季度

InterSystems 支持的硬件OS平台更新 2023年2季度 我们经常收到有关 InterSystems IRIS 数据平台支持的平台和框架列表最近和即将发生的变化的问题。此更新旨在分享最近的更改以及我们对即将发生的更改的已知的情况,但预测未来是一项棘手的工作,不应将其视为承诺的路线图。 话虽如此,关于更新…… IRIS 生产操作系统和 CPU 架构 红帽企业 Linux 近期变动 RHEL 9.2 和 RHEL 8.8 于 2023 年 5 月发布。Red Hat 计划为这些版本提供 4 年的支持。 InterSystems 计划通过我们称为“次要操作系统版本认证”的新流程对 RHEL 9.2 上的 IRIS 进行额外测试,该流程旨在提供额外的安全性,即次要操作系统更新不会破坏任何明显的内容。 随着 RHEL 9.2 的发布,Red Hat 终止了对 RHEL 9.1 的支持。这与 Red Hat 自 RHEL 8.0 以来一直使用的“奇数/偶数”支持周期一致。 RHEL 8.4 扩展维护将于 2023 年 5 月 31 日结束,这意味着 IRIS 也将在那时停止支持此次要版本。 即将发生的变化 RHEL 9.3 计划在今年晚些时候推出。这将是 Red Hat 的短期支持版本,因此 InterSystems 不会推荐将其用于生产部署。 以前的更新 IRIS 2022.1.2 添加了对RHEL 9.0的支持。 9.0 是一个主要的操作系统版本,将 Linux 内核更新到 5.14,将 OpenSSL 更新到 3.0,将 Python 更新到 3.9 IRIS 2022.2.0 移除了对 RHEL 7.x 的支持。 IRIS 的早期版本仍支持 RHEL 7.9。 进一步阅读: RHEL 发布页面 Ubuntu 近期变动 Ubuntu 22.04.02 LTS 于 2023 年 2 月 22 日发布。InterSystems 目前正在通过我们称为“次要操作系统版本认证”的新流程在 22.04.02 LTS 上对 IRIS 进行额外测试。到目前为止,一切都很好。 即将发生的变化 Ubuntu 的下一次重大更新定于 2024 年 4 月 以前的更新 IRIS 2022.1.1 增加了对Ubuntu 22.04 的支持。 22.04 是一个主要的操作系统版本,将 Linux 内核更新到 5.15,将 OpenSSL 更新到 3.0.2,将 Python 更新到 3.10.6 IRIS 2022.2.0 移除了对 Ubuntu 18.04 的支持。 IRIS 的早期版本仍然支持 Ubuntu 18.04。 IRIS 2022.1.1 及更高版本的容器基于 Ubuntu 22.04。 进一步阅读: Ubuntu 发布页面 SUSE 操作系统 即将发生的变化 SUSE Linux Enterprise Server 15 SP5 目前正在进行公测。我们预计 SUSE 将在第二季度末或第三季度初发布 15 SP5,并在此之后添加对 IRIS 的支持。 SP5 将包括 Linux 内核 5.14.21、OpenSSL 3.0.8 和 Python 3.11 SUSE 对 Linux Enterprise Server 15 SP3 的一般支持于 2022 年 12 月 31 日结束,但扩展的安全支持将持续到 2025 年 12 月。 以前的更新 IRIS 2022.3.0 增加了对SUSE Linux Enterprise Server 15 SP4的支持。 15 SP4 是一个主要的操作系统版本,将 Linux 内核更新到 5.14,将 OpenSSL 更新到 3.0,将 Python 更新到 3.9 延伸阅读: SUSE 生命周期 甲骨文Linux 即将发生的变化 根据他们的历史,Oracle Linux 9 将在 2023 年下半年的某个时候包含 RHEL 9.2。 以前的更新 IRIS 2022.3.0 添加了对Oracle Linux 9的支持。 Oracle Linux 9 是跟踪 RHEL 9 的主要操作系统版本,因此它也将 Linux 内核更新到 5.14,将 OpenSSL 更新到 3.0,将 Python 更新到 3.9 进一步阅读: Oracle Linux 支持政策 微软Windows 即将发生的变化 Windows Server 2012 的扩展支持将于 2023 年 10 月结束。如果您仍在该平台上运行,现在是计划迁移的时候了。 IRIS 2023.2 将不适用于Windows Server 2012。 以前的更新 自 IRIS 2022.1 中添加了 Windows Server 2022 以来,我们未对支持的 Windows 版本列表进行任何更改 进一步阅读: Microsoft 生命周期 AIX 即将发生的变化 InterSystems 正与 IBM 密切合作以增加对 OpenSSL 3.0 的支持。这不会包含在 IRIS 2023.2.0 中,因为 IBM 需要在进一步的 TL 版本中针对该功能。好消息是 IBM 正在寻求为 AIX 7.2 和 7.3 发布 OpenSSL 3.0,而且时间看起来应该与 IRIS 2023.3 保持一致。 以前的更新 自从在 IRIS 2022.1 中添加了 AIX 7.3 并删除了 7.1 以来,我们没有对受支持的 AIX 版本列表进行任何更改 进一步阅读: AIX 生命周期 容器 即将发生的变化 IRIS 容器将只标记年份和版本,例如“2023.2”,而不是我们过去一直使用的完整内部版本号。这样,您的应用程序可以默认获取您发布的最新维护版本。 我们还为最新的扩展维护和持续分发 IRIS 版本添加了“latest-em”和“latest-cd”标签。这些将有利于演示、示例和开发环境。 我们还将开始使用“-preview”标记预览容器,以便清楚哪个容器是最新的 GA 版本。 这些更改都将在 2023.2 GA 版本中生效。我们将在 6 月发布更多相关信息。 以前的更新 我们现在正在发布 IRIS 容器的多架构清单。这意味着拉取标记为2022.3.0.606.0的 IRIS 容器将为您的机器的 CPU 架构(Intel/AMD 或 ARM)下载正确的容器。 IRIS 开发操作系统和 CPU 架构 苹果系统 近期变动 我们在 IRIS 2023.1 中添加了对 MacOS 13 的支持 即将发生的变化 MacOS 14 将很快发布,预计将在今年晚些时候正式发布。 CentOS 我们正在考虑取消对 CentOS/CentOS Stream 的支持。请参阅下面的推理。 Red Hat 几年来一直在运行开发人员计划,该计划使开发人员能够获得非生产环境的免费许可证。鼓励当前使用 CentOS 的开发人员通过此程序切换到 RHEL。 CentOS Stream 现在是 RHEL 的“上游”,这意味着它具有 RHEL 尚未包含的错误和功能。它还每天更新,这可能会给平台上的开发人员带来问题(更不用说我们自己的测试人员了)。 自从我们在 IRIS 2022.1 中添加了对 CentOS 8-Stream 的支持并删除了对 CentOS 7.9 的支持后,我们没有对受支持的 CentOS 版本列表进行任何更改 InterSystems 组件 InterSystems API 管理器 (IAM) IAM 3.2 于本季度发布,其中包括对容器基础映像的更改,从 Alpine 到 Amazon Linux。 Caché & Ensemble 生产操作系统和 CPU 架构 以前的更新 Cache 2018.1.7 增加了对 Windows 11 的支持 InterSystems 支持的平台文档 InterSystems 支持的平台文档是支持技术的最终列表的来源。 IRIS 2020.1 支持的服务器平台 IRIS 2021.1 支持的服务器平台 IRIS 2022.1 支持的服务器平台 IRIS 2023.1 支持的服务器平台 Caché & Ensemble 2018.1.7 支持的服务器平台 以上就是全部内容。同样,如果您想了解更多信息,请给我们留言。
文章
Weiwei Gu · 六月 28, 2023

InterSystems IRIS 数据平台的以太坊适配器

1. 区块链 当我写这篇文章时,比特币的价格还不到其成功顶峰时期的五分之一。因此,当我开始向某人讲述我的区块链经历时,我听到的第一句话是毫不掩饰的怀疑:“现在谁需要这个区块链东西?” 没错,区块链炒作已经减弱。然而,它所基于的技术将继续存在并将继续在特定领域使用。互联网通常提供大量描述这些技术的一般用法的材料 (例如在Medium和福布斯上)。 众所周知,区块链是一个分布式注册表,即分布在多个节点之间的数据库,每个节点都存储注册表的完整副本。区块链的主要特征是记录(交易)形成块,块形成块链。区块链仅支持追加操作。这意味着几乎不可能对已经保存在区块链中的交易进行更改。 网上有无数的区块链教程(如果您从未听说过区块链,可以从这个简单的视频开始)。 当区块链蓬勃发展时,人们多次呼吁在任何地方使用该技术。然而,可能需要区块链的项目/任务有某些明显的特征。 首先,必须有很多玩家/用户编写大量数据,这些数据必须一致且可信。 那么,就不应该存在每个人都信任的第三方。 必须有一个公共数据验证的机制。如果满足所有这些标准,考虑使用区块链可能是个好主意。 任何行业都可以找到这样的任务。 www.101blockchains.com项目汇总了有关潜在和现有区块链项目的信息,以及在各个行业中使用区块链技术的细微差别。 例如,区块链可用于医疗保健领域的以下任务: 用于安全地远程管理患者记录; 通过整个供应链中不可更改的交易来打击假药; 通过排除欺诈和篡改数据的可能性来提高临床试验的监控和有效性。 企业部门通常使用一种特殊类型的区块链,称为私有许可区块链。此类网络具有一组特殊的节点来验证交易。 然而,在开发第一个 InterSystems IRIS 区块链适配器时,我们选择了以太坊,这是一种属于无许可区块链类别的区块链 - 一个没有单一控制中心的开放平台。该决定是基于该区块链引擎的受欢迎程度以及具有大量工具和库的足够成熟的基础设施。请注意,您还可以使用以太坊工具创建私有区块链。 2. 适配器 让我们实际上回到适配器。 InterSystems IRIS 中的适配器(就像 Ensemble 中一样)是 InterSystems IRIS 类的类或包,允许您与外部系统交互。 InterSystems IRIS 适配器分为入站(当外部系统是交互发起者时,用于从外部系统接收数据)和出站(当 InterSystems IRIS 是交互发起者时,用于与外部系统一起工作)。 IRIS 以太坊适配器是出站适配器,与大多数其他 InterSystems IRIS 适配器略有不同。该适配器还包括一个小型 NodeJS 模块。其架构如图 1 所示。 图1。适配器的 NodeJS 模块使用现有的 NodeJS 库来与以太坊配合使用。 该适配器允许您执行以下操作: 将智能合约部署到以太坊(我们计划撰写另一篇文章,涵盖智能合约、开发工具和示例)。 调用智能合约方法:改变区块链状态的方法和不改变区块链状态的方法 保存交易(将资金从一个钱包转移到另一个钱包) 调用额外的方法来获取区块链的状态 记录所有请求(由 NodeJS 模块完成,方便调试) 该适配器附带 OpenExchange 上的源代码。 3. 一个简单的例子 该适配器附带一个“Hello world”示例。 要开始使用以太坊(并运行此示例),您将需要以下内容: 选择您要使用的网络。 Ropsten 等测试网络通常用于开发目的 在此网络中创建一个钱包并向其存款 安装本地以太坊客户端(例如 Geth)或获取与云提供商(例如 Infura)合作的密钥 配置业务操作时需要设置以下内容(图2): NodeJS模块工作的服务器和端口(默认使用3000端口) 提供商设置(在本例中访问 Infura) 访问凭据(指定您的钱包号码作为用户名,指定您的私钥作为密码。InterSystems IRIS 将访问凭据存储在一个单独的数据库中,您必须为其启用加密) 图 2. 为了使用智能合约,您需要在文件系统中创建(为您将使用的每个智能合约)一个文件夹,并在其中放置两个文件:*abi.txt*字节码.txt 这些文件应包含智能合约的 ABI 及其字节码。智能合约的 ABI 是 JSON 格式的接口的正式描述。 ABI 和字节码是在编译智能合约时创建的。 仅部署合约时需要字节码。 您可以使用 InterSystems IRIS 互操作性测试服务来测试业务运营。 图 3 说明了如何使用测试服务部署智能合约。调用此业务操作的结果是包含交易哈希的消息。 图 3. 您可以使用 ropsten.etherscan.io (https://etherscan.io/) 浏览器找到此交易并获取已部署的智能合约的地址。 要使用适配器调用智能合约的方法,您需要在生产配置中填写以下字段:ContractFolder 和 ContractAddress。 智能合约的执行代码非常简单: -----0----- 将智能合约的地址和 ABI 传递给适配器的 GetContract 方法,以创建一个智能合约对象,然后将其用于调用方法。在这种情况下,必须在智能合约中定义返回字符串的 hello() 方法。 在这个例子中,hello()方法不会改变区块链状态,因此可以同步调用。然而,改变区块链状态的方法的执行时间可能相当长(因为必须等待交易被验证)。 要调用此类方法,请使用 InterSystems IRIS 提供的延迟响应机制。适配器必须提交延迟响应令牌,当交易获得批准时,NodeJS 模块会将其执行结果传递给 InterSystems IRIS。为此,您需要配置一个 Web 应用程序并向生产添加额外的业务服务来处理收到的响应。 以下是调用改变区块链状态的方法的代码: -----1----- 在这种情况下,在调用智能合约的 setName() 方法之前,您需要指定许多参数,包括延迟响应令牌。 在下一篇文章中,我们将详细介绍智能合约,并提供使用 InterSystems IRIS 以太坊适配器解决实际问题的示例。