搜索​​​​

清除过滤器
文章
Kelly Huang · 二月 27, 2023

物联网 (IOT) 在 InterSystems IRIS 平台上的应用

物联网( IoT ,Internet of things )即“万物相连的互联网”,是互联网基础上的延伸和扩展的网络,将各种信息传感设备与网络结合起来而形成的一个巨大网络,实现任何时间、任何地点,人、机、物的互联互通 物联网是新一代信息技术的重要组成部分,IT行业又叫:泛互联,意指物物相连,万物万联。由此,“物联网就是物物相连的互联网”。这有两层意思:第一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;第二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信。因此,物联网(Internet of Things,简称IoT)是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、 连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,通过各类可能的网络接入,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。物联网是一个基于互联网、传统电信网等的信息承载体,它让所有能够被独立寻址的普通物理对象形成互联互通的网络。在https://baike.baidu.com/item/物联网/7306589?fromtitle=IoT&fromid=552548&fr=aladdin 查看更多信息 IoT(物联网)作为一个互连事物的网络,包括车辆、机器、建筑物、家用设备或任何其他具有嵌入式 TCP/IP 远程连接可用的事物,允许其接收和发送执行指令和数据。每个事物都为物联网网络提供一项或多项服务。例如,智能灯泡提供关灯和开灯服务;智能空调维持环境温度;智能相机在捕捉运动时发送通知。然而,所有这些设备都可以一起运行以提供建筑物安全性,例如。当摄像头检测到运动时,灯就会亮起。那些可以提供业务和集成服务(例如构建安全性)的流程的编排由服务器软件控制器完成。它可以从十几个智能设备接收数据和指令并将其发送到 TCP/IP 网络(如 Internet),以将这些东西作为主要服务进行操作。 事物和服务器软件使用两种协议来互操作数据和指令:MQTT(消息队列遥测传输)和 REST(表述性状态传输)API。第一个更常见,因为它的结构更简单。某些设备的内存和处理器功能有限,没有足够的资源来使用 REST。因此,本文将详细介绍如何使用 MQTT 实现服务器端软件以与物联网进行互操作。 关于 MQTT MQTT 是一种用于消息队列/消息队列服务的轻量级、发布-订阅、机器对机器网络协议。它专为连接具有资源限制或网络带宽有限的设备的远程位置而设计。它必须在提供有序、无损、双向连接的传输协议上运行——通常是 TCP/IP。它是一个开放的 OASIS 标准和 ISO 推荐标准 (ISO/IEC 20922)。在https://baike.baidu.com/item/MQTT/3618851?fr=aladdin 上查看更多信息。 MQTT 协议有两个角色来在事物之间互操作数据:消息代理和客户端。第一个角色是服务器软件,用于接收和发布由一个或多个客户端生成或使用的消息。另外一个角色是智能设备和服务器软件,用于使用物的服务提供主要服务,例如提供楼宇自动化服务的服务器软件,或使用智能信号量和公共摄像头服务控制城市交通的软件。 MQTT 代理 市场上有各种 MQTT 消息代理,比较受欢迎的是 Eclipse Mosquitto (https://mosquitto.org/),因此我们将在示例中使用它。MQTT 代理类似于 JMS 或 MQ 代理。它是一种用于接收消息并将其发布到主题中的中间体。因此,连接的客户端可以订阅一个或多个主题以生成或使用来自这些主题的消息。这些主题允许客户端(软件和设备)以一种非耦合和异步的方式完成他们的工作。这意味着每个客户端都会观察一条消息并在必要时采取行动。他们也可以自己发布新消息。例如,如果恒温器在主题“A 楼”中发送一条指示高温的消息,则安装在该建筑物中并列在主题“A 楼”中的空调可以从那里获取此消息并自行打开以降低温度.但是,通常会看到带有业务规则的服务器端软件在温度达到特定值时自动打开空调。如果将 MQTT 代理配置为在关闭时保留消息并在再次打开时恢复它们,则它还可以保证消息传递。 MQTT Broker 的其他优点包括(来自维基百科): 消除易受攻击和不安全的客户端连接(如果配置为这样做)。 能够轻松地从单个设备扩展到数千个小工具。 管理和跟踪所有客户端连接状态,包括安全凭证和证书(如果配置为这样做)。 在不影响安全性的情况下减少网络压力,如果配置为这样做(使用蜂窝或卫星网络时)。 MQTT消息 有 3 种类型的消息: 连接:在 TCP/IP 会话中建立代理和客户端之间的连接。 断开连接:断开服务器和客户端与 TCP/IP 会话的连接。 发布:将消息放入主题并将该消息的副本发送给订阅该主题的每个客户端。 查看正在运行的消息示例: InterSystems IRIS 支持物联网和 MQTT 协议 根据 InterSystems IRIS 文档,目前支持的版本是 MQTT 3.1。此 MQTT 规范被定义为 OASIS 标准, MQTT 版本 3.1.1 。 IRIS 的互操作性模块定义了一个入站(用于使用 MQTT 消息)和一个出站(用于生成 MQTT 消息)MQTT 适配器。可以使用这些适配器开发自定义业务服务和操作,或者您可以分别使用内置业务服务和操作EnsLib.MQTT.Service.Passthrough和EnsLib.MQTT.Operation.Passthrough 。 如果您想在互操作性生产之外使用 MQTT 协议,您可以使用较低级别的 %Net.MQTT 类。 MQTT 类使用Eclipse Paho MQTT C 客户端库。 创建业务服务以使用 MQTT 消息 Class packagename.NewService1 Extends Ens.BusinessService { Parameter ADAPTER = "EnsLib.MQTT.Adapter.Inbound" ; Method OnProcessInput(pInput As EnsLib.MQTT.Message, pOutput As %RegisteredObject ) As %Status { set tsc= $$$OK set messageContent = pInput.StringValue …. Quit tsc } } 创建业务操作以生成/发送 MQTT 消息 Class packagename.NewOperation1 Extends Ens.BusinessOperation { Parameter ADAPTER = "EnsLib.MQTT.Adapter.Outbound" ; Parameter SETTINGS = "-SendSuperSession" ; Method OnMessage(pRequest As packagename.Request, Output pResponse As packagename.Response) As %Status { #dim tSC As %Status = $$$OK #dim e As %Exception.AbstractException Try { Set message = ##class (EnsLib.MQTT.Message). %New () Set message.Topic = ..Adapter .Topic Set jsonValue = {} Set jsonValue.message = "Response message” Set message.StringValue = jsonValue.%ToJSON() Set tSC=..Adapter.Send(message.Topic,message.StringValue) Set pResponse = ##class(packagename.Response).%New() Set pResponse.message = “Message response” } Catch e { Set tSC=e.AsStatus() } Quit tSC } 入站和出站 MQTT 适配器的设置 业务服务和业务运营都可以配置以下参数(来源:https://docs.intersystems.com/irisforhealthlatest/csp/docbook/DocBook.UI.Page.cls?KEY=EMQTT_reference): 客户 ID:这是向经纪人标识此客户的字符串。它必须是 ASCII 编码的并且包含 1 到 23 个字符。 连接超时:这是连接超时。连接到繁忙的服务器可能需要一些时间,因此可以使用此超时来避免过早的连接失败。它指定在连接尝试失败之前等待的秒数。 凭据名称:这是用于访问 MQTT 代理的一组凭据值的 ID 名称。 Credentials 项中定义的用户名和密码必须是 ASCII 编码的。如果代理不需要登录凭据,则不需要。 Keep Alive:指定在客户端发送给代理的消息之间传递的最大秒数。 QOS:这决定了所需的服务质量。它可以有以下两个值之一:0 - QOSFireAndForget:不等待来自代理的响应和 1 - QOSWaitForDelivery:等待来自代理的响应,如果代理没有响应则发出错误。 保留:这是向代理指示消息是否应保留的标志。 主题:这是您希望发布或订阅的主题的名称。主题必须是 ASCII 编码的。主题通常是一个层次结构字符串,其子主题级别由 /(正斜杠)分隔。在订阅中,主题可以使用通配符作为主题级别。 URL:这是您希望与之通信的经纪人的 URL。该方案是“tcp”或“ssl”,后跟域名和以“:”分隔的端口,例如“tcp://BIGBADAPPLE.local:1883”。通常启用 TLS 的端点配置有 8883 端口,但这不是强制性的。 下载并安装示例应用程序 IRIS IoT 示例是一个简单的应用程序,向您展示如何使用互操作性生产来使用(接收)和生成(发送)MQTT 消息。要获取它,请访问 https://openexchange.intersystems.com/package/IoT-Sample。现在,执行后续步骤。 1. clone/git pull repo 到任何本地目录 -----0----- 2、在该目录下打开终端,运行: -----1----- 3. 使用您的项目运行 IRIS 容器: -----2----- 如果要使用 ZPM 安装它,请按照以下步骤操作: 1. 打开启用了互操作性的 IRIS 命名空间。2. 打开终端并调用: -----3----- 运行示例应用程序。 1.打开制作,开始制作。它将开始观察 MQTT 主题 /DeviceStatusInputTopic 并生成对 MQTT 主题 /DeviceStatusOutputTopic 的响应。查看: 2. 使用MQTT 客户端发送消息并测试生产。为此,请在您的 Google Chrome 浏览器上访问https://chrome.google.com/webstore/detail/mqttbox/kaajoficamnjijhkeomgfljpicifbkaf 。它是 Chrome 插件 MQTTBox。只需点击添加到 Chrome,然后点击添加应用程序。 3. 在您的 Google Chrome 浏览器中,转到 chrome://apps/ 并选择 MQTTBox(如果需要,单击仍然打开)。 4. 单击创建 MQTT 客户端按钮。 5. 使用以下设置配置 MQTT 连接: 客户名称:本地 协议:mqtt/tcp 主机:本地主机:1883 用户名:admin 密码:管理员 所有其他设置保留默认值。 6. 配置 MQTT 主题以发送和接收 MQTT 消息: 要发布的主题:/DeviceStatusInputTopic 订阅主题:/DeviceStatusOutputTopic 有效载荷: { "deviceId" : "Air Conditioner Level 1" , "statusDate" : "2023-01-07 14:03:00" , "status" : 0 } 7. 单击按钮订阅以检查关于主题 /DeviceStatusOutputTopic 的消息。 8. 单击按钮 Publish 将消息发送到 /DeviceStatusInputTopic,并在 /DeviceStatusOutputTopic 上查看 IRIS 生产产生的结果。 9. 检查 IRIS 管理门户 Visual Trace 上的消息处理会话 示例应用程序源代码 Dockerfile ARG IMAGE=intersystemsdc/irishealth-community ARG IMAGE=intersystemsdc/iris-community FROM $IMAGE WORKDIR /home/irisowner/irisbuild ARG TESTS= 0 ARG MODULE= "iris-iot-sample" ARG NAMESPACE= "USER" RUN --mount= type = bind ,src=.,dst=. \ iris start IRIS && \ iris session IRIS < iris.script && \ ([ $TESTS -eq 0 ] || iris session iris -U $NAMESPACE "##class(%ZPM.PackageManager).Shell(\"test $MODULE -v -only\",1,1)" ) && \ iris stop IRIS quietly 最新版本的 InterSystems IRIS Community 用于创建 InterSystems IRIS 的 docker 实例,其命名空间名为 USER。 docker-compose 文件 version: '3.6' services: mosquitto: image: eclipse-mosquitto: 2 container_name: mosquitto user : root volumes: - ./mosquitto/config/:/mosquitto/config/ - ./mosquitto/log/:/mosquitto/log/ - ./mosquitto/data/:/mosquitto/data/ ports: - 1883 : 1883 - 9001 : 9001 iris: build: context: . dockerfile: Dockerfile restart: always command: --check-caps false ports: - 1972 - 52795 : 52773 - 53773 volumes: - ./:/irisdev/app 现在创建了两个 docker 容器实例,并且启动并运行。第一个是基于 Eclipse Mosquitto 产品的 MQTT 代理(mosquitto 服务),第二个是 MQTT 服务器端软件,负责消费和生产 MQTT 消息以提供设备监控服务。mosquitto docker 实例在文件 /mosquitto/config/mosquitto.conf 中配置。在那里定义了端口、消息持久性、安全和日志问题。文件 /mosquitto/config/password.txt 也将用户确定为 admin,密码也是 admin。但是,它是通过命令 mosquitto_passwd -U password.txt 加密的(您可以在https://mosquitto.org/man/mosquitto_passwd-1.html阅读更多相关信息)。 虹膜脚本文件 zn "%SYS" Do ##class (Security.Users).UnExpireUserPasswords( "*" ) zn "USER" Do ##class (EnsPortal.Credentials).SaveItem( 0 , "mosquitto_cred" , "mosquitto_cred" , "admin" , "admin" , "" ) zpm "load /home/irisowner/irisbuild/ -v" : 1 : 1 halt 该文件为业务服务和业务操作创建凭证。登录到 MQTT Broker 并运行 ZPM 文件 module.xml。 模块.xml 该文件用于在服务器上编译源代码以及在使用 ZPM 时安装示例应用程序。 <?xml version= "1.0" encoding= "UTF-8" ?> <Export generator= "Cache" version= "25" > <Document name= "iris-iot-sample.ZPM" > <Module> <Name>iris-iot-sample</Name> <Description>A simple IRIS interoperability application - for IoT using MQTT.</Description> <Version> 1.0 .8</Version> <Packaging> module </Packaging> <Dependencies> <ModuleReference> <Name>sslclient</Name> <Version> 1.0 .1</Version> </ModuleReference> </Dependencies> <SourcesRoot>src</SourcesRoot> <Resource Name= "dc.irisiotsample.PKG" /> <SystemRequirements Version= ">=2020.1" Interoperability= "enabled" /> </Module> </Document> </Export> 在 SourceRoot 标签上有要编译的源包。 DeviceStatus 持久类 Class dc.irisiotsample.DeviceStatus Extends %Persistent { Property deviceId As %String ; Property statusDate As %TimeStamp ; Property status As %Boolean ; Storage Default { <Data name= "DeviceStatusDefaultData" > <Value name= "1" > <Value>% %CLASSNAME </Value> </Value> <Value name= "2" > <Value>deviceId</Value> </Value> <Value name= "3" > <Value>statusDate</Value> </Value> <Value name= "4" > <Value>status</Value> </Value> </Data> <DataLocation> ^dc .irisiotsample.DeviceStatusD</DataLocation> <DefaultData>DeviceStatusDefaultData</DefaultData> <IdLocation> ^dc .irisiotsample.DeviceStatusD</IdLocation> <IndexLocation> ^dc .irisiotsample.DeviceStatusI</IndexLocation> <StreamLocation> ^dc .irisiotsample.DeviceStatusS</StreamLocation> <Type> %Storage.Persistent </Type> } } 此类用于将 DeviceStatus 保存在 SQL 表中。 DeviceStatusRequest 类 Class dc.irisiotsample.DeviceStatusRequest Extends Ens.Request { Property deviceId As %String ; Property statusDate As %TimeStamp ; Property status As %Boolean ; Storage Default { <Data name= "DeviceStatusRequestDefaultData" > <Subscript> "DeviceStatusRequest" </Subscript> <Value name= "1" > <Value>deviceId</Value> </Value> <Value name= "2" > <Value>statusDate</Value> </Value> <Value name= "3" > <Value>status</Value> </Value> </Data> <DefaultData>DeviceStatusRequestDefaultData</DefaultData> <Type> %Storage.Persistent </Type> } } 此类用于在互操作性组件之间交换数据。 设备状态服务 Class dc.irisiotsample.DeviceStatusService Extends Ens.BusinessService { Parameter ADAPTER = "EnsLib.MQTT.Adapter.Inbound" ; Method OnProcessInput(pInput As EnsLib.MQTT.Message, pOutput As Ens.StringResponse) As %Status { set tsc= $$$OK set DeviceStatusValue = ##class ( %DynamicAbstractObject ). %FromJSON (pInput.StringValue) set DeviceStatus = ##class (dc.irisiotsample.DeviceStatusRequest). %New () set DeviceStatus.deviceId = DeviceStatusValue.deviceId set DeviceStatus.statusDate = DeviceStatusValue.statusDate set DeviceStatus.status = DeviceStatusValue.status set tsc = ..SendRequestSync ( "DeviceStatusProcess" , DeviceStatus, .Response, - 1 , "Device Status Process" ) set pOutput = Response quit tsc } } adapter 参数表示在接收 MQTT 消息时使用 MQTT 适配器。方法 OnProcessInput 在 pInput 上接收 MQTT 消息并将其发送到业务流程,调用方法 SendRequestSync 作为同步消息。 设备状态进程 Class dc.irisiotsample.DeviceStatusProcess Extends Ens.BusinessProcess { Method OnRequest(request As dc.irisiotsample.DeviceStatusRequest, Output response As Ens.StringResponse) As %Status { Set tsc = 1 Set response = ##class (Ens.StringResponse). %New () Set DeviceStatus = ##class (dc.irisiotsample.DeviceStatus). %New () Set DeviceStatus.deviceId = request.deviceId Set DeviceStatus.status = request.status Set DeviceStatus.statusDate = request.statusDate Set tsc = DeviceStatus. %Save () If $$$ISOK (tsc) { Set tsc = ..SendRequestSync ( "DeviceStatusOperation" , request, .pResponse, - 1 , "Device Status Operation" ) Set response.StringValue = "Device id " _pResponse.deviceId_ " has the status " _pResponse.status } Else { Set response.StringValue = "Error on save the device status" Set SuspendMessage = 1 } quit tsc } Storage Default { <Type> %Storage.Persistent </Type> } } 此类从业务服务接收消息,将其保存到数据库,并调用 DeviceStatusOperation 发送(生成)带有结果的消息。 DeviceStatusOperation Class dc.irisiotsample.DeviceStatusOperation Extends Ens.BusinessOperation { Parameter ADAPTER = "EnsLib.MQTT.Adapter.Outbound" ; Parameter SETTINGS = "-SendSuperSession" ; Method NotifyDeviceStatus(pRequest As dc.irisiotsample.DeviceStatusRequest, Output pResponse As dc.irisiotsample.DeviceStatusResponse) As %Status { #dim tSC As %Status = $$$OK #dim e As %Exception.AbstractException Try { Set message = ##class (EnsLib.MQTT.Message). %New () Set message.Topic = ..Adapter .Topic Set jsonValue = {} Set jsonValue.message = "Device " _pRequest.deviceId_ " has status " _pRequest.status Set message.StringValue = jsonValue. %ToJSON () Set tSC= ..Adapter .Send(message.Topic,message.StringValue) Set pResponse = ##class (dc.irisiotsample.DeviceStatusResponse). %New () Set pResponse.deviceId = pRequest.deviceId Set pResponse.status = pRequest.status } Catch e { Set tSC=e.AsStatus() } Quit tSC } XData MessageMap { <MapItems> <MapItem MessageType= "dc.irisiotsample.DeviceStatusRequest" > <Method>NotifyDeviceStatus</Method> </MapItem> </MapItems> } } 此类从业务流程接收消息,并生成一条 MQTT 消息,发送到具有流程响应的主题。 设备状态生产 Class dc.irisiotsample.DeviceStatusProduction Extends Ens.Production { XData ProductionDefinition { <Production Name= "dc.irisiotsample.DeviceStatusProduction" LogGeneralTraceEvents= "false" > <Description></Description> <ActorPoolSize> 2 </ActorPoolSize> <Item Name= "DeviceStatusService" Category= "" ClassName= "dc.irisiotsample.DeviceStatusService" PoolSize= "1" Enabled= "true" Foreground= "false" Comment= "" LogTraceEvents= "false" Schedule= "" > <Setting Target= "Adapter" Name= "ClientID" >InterSystemsIRIS</Setting> <Setting Target= "Adapter" Name= "Topic" >/DeviceStatusInputTopic</Setting> <Setting Target= "Adapter" Name= "Url" >tcp: //mosquitto:1883</Setting> <Setting Target= "Adapter" Name= "CredentialsName" >mosquitto_cred</Setting> </Item> <Item Name= "DeviceStatusProcess" Category= "" ClassName= "dc.irisiotsample.DeviceStatusProcess" PoolSize= "1" Enabled= "true" Foreground= "false" Comment= "" LogTraceEvents= "false" Schedule= "" > </Item> <Item Name= "DeviceStatusOperation" Category= "" ClassName= "dc.irisiotsample.DeviceStatusOperation" PoolSize= "1" Enabled= "true" Foreground= "false" Comment= "" LogTraceEvents= "false" Schedule= "" > <Setting Target= "Adapter" Name= "ClientID" >InterSystemsIRIS</Setting> <Setting Target= "Adapter" Name= "Topic" >/DeviceStatusOutputTopic</Setting> <Setting Target= "Adapter" Name= "Url" >tcp: //mosquitto:1883</Setting> <Setting Target= "Adapter" Name= "CredentialsName" >mosquitto_cred</Setting> </Item> </Production> } } 此类使用所需参数配置业务服务、业务流程和业务操作,并将这些组件放在一起工作。 主要配置的参数有: URL:设置 MQTT Broker 地址。 主题:接收和发送 MQTT 消息的队列。 DeviceStatusInputTopic 用于业务服务,DeviceStatusOutputTopic 用于业务操作。 CredentialsName:使用用户名和密码设置凭据以连接 MQTT 代理。 ClientID:它是为 InterSystems IRIS 分配的逻辑名称,代理需要它来识别 MQTT 客户端。 如您所见,用于 MQTT 的 IRIS 互操作性适配器是一个非常简单且功能强大的工具,用于使用和生成 MQTT 消息以及自动化涉及 IoT 设备的业务流。所以享受它。 查看原贴由 @Yuri.Gomes 撰写
公告
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上发布您的奇思妙想,对现有想法进行投票和评论!
公告
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 支持的服务器平台 以上就是全部内容。同样,如果您想了解更多信息,请给我们留言。
公告
Claire Zheng · 三月 15, 2023

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

Hi 开发者社区的成员们,大家好! 欢迎关注我们第4期 InterSystems Ideas News! 我们将分享如下: 如何支持你们team的想法和投票。 在编程大赛中,用户实践Idea(创意)并获得技术奖励。 InterSystems 开发者社区的深色主题版本:是或否(Yay or Nay?)? 最近添加的Idea(创意)。 最重要的消息是,在上一届编程大赛中,有 5 名参赛者因实践InterSystems Ideas 门户网站的创意而获得加分!他们是: 开发者 应用名称 实施的Idea(创意) @Lorenzo Scalese OpenAPI-Suite 添加类似于 SOAP 向导的向导,以根据 OpenAPI 规范生成 REST 客户端 @José Roberto Pereira @Henrique Dias @Henry Pereira iris-tripleslash 添加有助于为 ObjectScript 类生成单元测试的项目 @Sergey Mikhailenko gateway-sql, apptools-admin 创建一个 UI,以便将项目(类、全局变量、应用程序、用户、角色、特权、授权、命名空间映射、SQL 网关、库等)方便、轻松地传输到其他系统实例以进行快速部署。 我们添加了一个新过滤器“我的组织(My organization)”。从现在开始,来自同一公司的人可以过滤来自同一组织的人的想法和投票。 前几天,@Guillaume Rongier 发布了关于为开发者社区添加深色主题的Idea(创意)。我们非常期待您参与 Ideas Portal 主页上的“民意测验”提供意见反馈,或对该想法进行投票和评论。 最近添加的想法 InterSystems Community 深色版本 为 DC 上的工作机会部分添加工作地点 新功能的可搜索索引 通过环境变量设置密码 安排在 DC 站点上发布文章 在 DC 文本编辑器上支持 JSON 支持 DC 文本编辑器上的 linux bash 语言 使用 SQL 命令将数据从 IRIS 捕获更改为 kafka 跨生产互操作消息、服务和操作 ISC 产品的附加数据类型 DTL、BPL 和规则集中 XData 的自动 XML 格式化 断言 CodeAssist 提示 OpenAI API 的 IRIS 类 在消息属性选项卡上显示 UserValues 内容 虹膜即服务 允许在 VS 代码中对互操作性组件 BPL、DTL 和业务规则进行图形编辑 为所有 IRIS 互操作性组件添加源代码控制 审计查找表 为 WRC 门票添加“观察名单”(问题、问题) 连接 InterSystems 文档和开发人员社区 在 npm 上发布适用于 Node.js 的 InterSystems IRIS Native SDK 像往常一样,在InterSystems Ideas上发布您的想法,对现有想法进行投票和评论,并实践Community Opportunity 的Idea(创意)。 请继续关注我们的下一个新闻公告!
公告
Claire Zheng · 六月 19, 2023

InterSystems 2023年度编程大奖赛(Grand Prix)技术奖励细则

大家好! InterSystems Grand Prix 2023 结合了 InterSystems IRIS 数据平台的所有主要功能! 因此,我们邀请您使用以下功能并收集额外的技术奖励,以帮助您赢得奖品! 如下: LLM AI 或 LangChain 用法:Chat GPT、Bard 等 - 6 InterSystems FHIR SQL Builder- 5 InterSystems FHIR-3 IntegratedML - 4 Native API - 3 嵌入式 Python - 4 互操作性 - 3 生产扩展(PEX)- 2 自适应分析 (AtScale) Cube的使用 - 3 Tableau、PowerBI、Logi 的使用 - 3 InterSystems IRIS BI - 3 列索引使用 - 1 Docker 容器使用 - 2 ZPM 包部署 - 2 在线演示 - 2 单元测试 - 2 实施 InterSystems Community Idea中的创意 - 4 在开发者社区发布的第一篇文章 - 2 在开发者社区发布的第二篇文章 - 1 代码质量通过 - 1 第一次贡献 - 3 YouTube 上的视频 - 3 LLM AI 或 LangChain 使用:Chat GPT、Bard 等 - 6 分 为构建使用LangChain库或大型语言模型(LLM)(例如 ChatGPT、Bard 和其他 AI 引擎(例如PaLM 、 LLaMA等)的解决方案会为您赢得 6 个专家奖励积分。 AutoGPT 的使用也很重要。 在 Open Exchange 中已经可以找到一些示例: iris-openai、 chatGPT telegram bot 。 这是一篇带有 langchain 使用示例的文章。 InterSystems FHIR SQL Builder - 5 分 InterSystems FHIR SQL Builder是 InterSystems IRIS for Health 的一项功能,有助于将 FHIR 资源映射到 SQL 表并通过应用程序中的 SQL 查询使用它。 在文档中了解更多信息。 在线课程。这是一个关于 Open Exchange 的例子。 注意:如果您实施 InterSystems FHIR SQL Builder,则不包括 InterSystems FHIR 即服务和 IRIS For Health 的 3 分奖励。 InterSystems FHIR 即服务和 IRIS For Health - 3 分 我们邀请所有开发人员使用InterSystems FHIR Server (FHIRaaS)构建新的或测试现有的应用程序。登录门户,进行部署并开始在您的编程竞赛应用程序中使用 AWS 上的 InterSystems FHIR 服务器。 您还可以使用 InterSystems IRIS for Health docker 版本构建 FHIR 应用程序。您可以使用IRIS-FHIR-Template ,它在 docker 镜像构建期间准备 FHIR 服务器。可以在此处找到 FHIR API 4.0.1 的文档。在InterSystems IRIS for Health 文档中了解更多信息。 IntegratedML 使用 - 4 分 1. 在您的 AI/ML 解决方案中使用 InterSystems IntegratedML。这是使用它的模板。 InterSystems IntegratedML 模板 2、数据导入工具: 数据导入向导 CSVGEN - CSV 导入工具 CSVGEN-UI - CSVGEN 的网络用户界面 3.文档: 使用 IntegratedML 4.在线课程和视频: 在 InterSystems IRIS 中学习 IntegratedML 为机器学习准备数据 使用机器学习工具包进行预测建模 IntegratedML 资源指南 IntegratedML 入门 使用 IntegratedML 和数据机器人进行机器学习 InterSystems Native API 使用 - 3 分 如果您使用任何 InterSystems Native API 选项( .NET 、 Java 、 Python 、 Node.js )访问全栈应用程序中的数据,您将获得此奖励。在这里了解更多。 嵌入式 Python - 4 分 在您的应用程序中使用嵌入式 Python并获得 4 分加分。您至少需要 InterSystems IRIS 2021.2。 注意:如果您还使用 Native API for Python,则只有 Embedded Python 才算奖励。 与 BPL 或 DTL 的互操作性生产 - 3 分 IRIS Interoperability Productions的主要特征之一是业务流程,可以用 BPL(业务流程语言)来描述。 在文档中了解有关业务流程的更多信息。 业务规则是一种无代码/低代码方法,用于管理互操作性生产的处理逻辑。在 InterSystems IRIS 中,您可以创建一个业务规则,您可以通过可视化或通过 ObjectScript 表示创建该规则。 如果您在互操作性产品中创建和使用业务流程或业务规则,您可以获得业务流程/业务规则奖励。 业务规则示例 在文档中了解有关业务规则的更多信息 生产扩展 (PEX) 使用 - 2 分 PEX 是互操作性产品的 Python、Java 或 .NET 扩展。 如果您在互操作性产品中将 PEX 与 Python、JAVA 或 .NET 结合使用,您将获得此奖励。 PEX演示。 在文档中了解更多关于 PEX 的信息。 InterSystems IRIS 具有Python Pex模块,该模块提供了从 Python 开发 InterSystems 互操作性产品的选项。使用它并为您的应用程序收集 3 个额外积分。也可以使用 Guillaume Ronguier 介绍的替代 python.pex 轮。 您还可以使用Python 互操作性,它是@Guillaume Rongier 提供的 Python 上 InterSystems IRIS 的 PEX 插件模块 这提供了在清晰的 python 中开发 InterSystems IRIS 互操作性解决方案的机会。 将 PEX 用于 Hugging Face 的文章,示例。 自适应分析 (AtScale) 多维数据集使用 - 3 分InterSystems Adaptive Analytics 提供创建和使用AtScale多维数据集的选项,用于分析解决方案。 您可以使用我们为比赛设置的 AtScale 服务器(可以在Discord 频道中收集 URL 和凭据)来使用多维数据集或创建一个新的多维数据集并通过 JDBC 连接到您的 IRIS 服务器。 使用 AtScale 的分析解决方案的可视化层可以使用 Tableau、PowerBI、Excel 或 Logi 制作。 文档, AtScale 文档 训练 Tableau、PowerBI、Logi 的使用 - 3 分 为您使用 Tableau、PowerBI 或 Logi 制作的可视化收集 3 分 - 每个 3 分。 可以通过直接 IRIS BI 服务器或通过与 AtScale 的连接进行可视化。 Logi 代表 InterSystems Reports 解决方案可用 - 您可以在InterSystems WRC 上下载作曲家。可以在discord channel中收集临时许可证。 文档 训练 InterSystems IRIS BI - 3 分 InterSystems IRIS 商业智能是 IRIS 的一项功能,它使您可以选择针对 IRIS 中的持久数据创建 BI 立方体和枢轴,然后使用交互式仪表板将此信息传递给用户。 了解更多 基本的iris-analytics-template包含 IRIS BI 多维数据集、数据透视表和仪表板的示例。 以下是 IRIS BI 解决方案的一组示例: 样品商务智能 Covid19分析 分析这个 权力的游戏分析 透视订阅 错误全局分析 使用 Docker 和 VSCode 创建 InterSystems IRIS BI 解决方案(视频) 可视化选择的自由:InterSystems BI (视频) InterSystems BI(DeepSee) 概述(在线课程) InterSystems BI(DeepSee) 分析器基础知识(在线课程) 列索引使用 - 1 分 列索引功能可以显着提高分析查询的性能。在您的解决方案的持久数据模型中使用列式索引并获得 1 个额外奖励积分。了解有关列索引的更多信息。 Docker 容器使用 - 2 分 如果应用程序使用在 docker 容器中运行的 InterSystems IRIS,则该应用程序将获得“Docker 容器”奖励。这是最简单的模板。 ZPM 包部署- 2 分 如果您做到以下措施,可以收集到奖励。为全栈应用程序构建和发布 ZPM(InterSystems Package Manager)包,这样它就可以通过以下方式部署: zpm "install your-multi-model-solution" 安装了 ZPM 客户端的 IRIS 上的命令。 ZPM客户端。文档。 项目的在线演示 - 2 分如果您将项目作为在线演示提供给云,则可额外获得 2 个奖励积分。您可以自己完成,也可以使用此模板- 这是一个 示例。这是有关如何使用它的视频。 单元测试 - 2 分 对 InterSystems IRIS 代码进行单元测试的应用程序将获得奖励。 在文档和开发人员社区中了解有关 ObjectScript 单元测试的更多信息。 实施Developer Opportunity Idea的创新理念 - 4 分 实施来自InterSystems Community Ideas 门户的处于具有“社区机会(Community Opportunity)”状态的任何创新想法。这将为您提供 4 个额外的奖励积分。 关于开发者社区的文章 - 2 分 在 Developer Community 上发表一篇文章,描述您的项目的功能,并为该文章收集 2 分。 开发者社区第二篇文章 - 1分 您可以为第二篇文章或有关申请的翻译获得额外的奖励积分。第 3 次及以上不会带来更多积分,但您仍将赢得所有关注。 代码质量通过且零错误 - 1 分 包括用于代码静态控制的代码质量 Github 操作,并使其显示 0 个 ObjectScript 错误。 首次贡献 - 3 分 如果您是第一次参加 InterSystems Open Exchange 竞赛,可获得 3 个奖励积分! YouTube 上的视频 - 3 分 制作演示您的产品的 Youtube 视频,每个视频可获得 3 分奖励积分。 奖励清单可能会发生变化。敬请持续关注!
公告
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 新闻公告!
公告
Michael Lei · 一月 10

全球创新:2023 年欧洲医疗健康黑克松Hackathon InterSystems FHIR 挑战赛获胜数字健康项目

嗨,大家好, 我们想重点介绍 2023 年布拉格欧洲欧洲医疗健康黑克松Hackathon期间创建的一些杰出项目。IKEM 和阿斯利康向参与者提出了九个现实世界的医疗保健挑战。 InterSystems 向参与者介绍了使用 FHIR 存储库并通过在 AWS 上提供 FHIR 云服务来在其解决方案中执行 FHIR 可用性的机会。 来认识一下我们挑战的获胜者: 第一名Čarodějové (PathoSync) “PathoSync 软件是复杂病理学家平台的坚实基础。通过使用自定义映射,任何实验室都可以将其数据投影到 FHIR7 标准,该标准很快将在全球范围内强制执行。这使得数字化过程更加顺利。与 InterSystems 的连接确保了质量并实现了很多医疗保健功能。此外,使用位于欧洲的FHIR服务器严格遵循GDPR规范,因此软件的使用遵循欧洲标准。 项目详情|视频演示| GitHub链接 1链接 2 第二名ICU SPYEYES(生命视力Vital Vision) “ICU 需要一个系统来自动记录视频循环,捕捉患者和人员移动等关键活动。该系统将允许人进行回顾性注释、预先注释和识别人员,并可选择模糊患者面部。它的目的是收集数据以用于开发未来医院中的患者监控算法。 我们为 ICU 开发了一个系统,该系统利用运动检测、LLM 和标准 CV 技术进行视频分析。它构建了一个带注释的视频数据库,对于专注于患者监护的训练算法至关重要。我们的解决方案生成通过 FHIR 共享的结构化报告和视频,确保高效的数据处理。通过开源平台 CVAT 进行手动审核,质量得到提高,优化了我们用于监测患者康复情况的实时警报系统。” 项目详情|视频演示| GitHub 第三名 VariantCall (PathoX) “端到端解决方案 PathoX 是一个可轻松进行数据摄取、特征提取和映射的平台,可增强病理学家的工作流程。导入器工作流程支持列映射并通知用户缺失的信息。我们使用 FHIR 来保证未来的互操作性和合规性与未来的立法。病理学家还可以像平常的工作流程一样突出显示数据并留下评论,并查看所有文件的分析。” 项目详情|视频演示| GitHub 大家都很棒,恭喜!希望能对大家有所启发,我们也期待看到您的项目如何发展成为创新且有影响力的初创企业!
公告
Claire Zheng · 一月 12, 2021

InterSystems多模型数据库竞赛

亲爱的开发者们,欢迎您参加在线编程竞赛!这是2020年的系列竞赛,主题是利用InterSystems IRIS构建多模型解决方案。在这个竞赛中,开发者需要创建一个至少使用两种不同模型来操作数据的应用程序,例如key-value和relational, Object和relational, DocDB和key-value。这场由开发者社区发起的编程马拉松将从1月11日持续到1月31日。 展示最棒的编程技能,赢取炫酷奖品! 主题:利用InterSystems IRIS构建多模型应用 时间:2021年1月11日-31日 奖品丰厚 1. Experts Nomination——获奖者由我们特别挑选的专家团选出: 🥇 1st place - $2,000 🥈 2nd place - $1,000 🥉 3rd place - $500 2. Community Nomination——获得总投票数最多的应用 🥇 1st place - $1,000 🥈 2nd place - $500 🥉 3rd place - $250 如果同时多位参赛者获得同样的票数,均被视为优胜者,将平分奖金。 谁可以参加? 任何开发者社区的成员均可参加,InterSystems内部员工除外。还没有账号?现在来建一个! 参赛时间安排 1月11日 - 24日: 在这两周,您可以将开发的应用上传至Open Exchange (在此期间,还可以继续编辑您的项目). 1月25日 - 31日: 投票周 2月1日: 宣布获胜者! 主题 💡 多模型应用构建 💡 利用InterSystems IRIS数据平台构建多模型解决方案。 InterSystems IRIS数据平台是一个多模型DBMS. 我们公开了一些可开箱即用的APIs,可以为您提供数据管理的键-值,SQL,对象和文档模型。通过IRIS,您可以开发自己的模型,并公开API,这些API将提供一些新的数据模型,比如 GraphDB, column-store等。 在这个竞赛中,开发者需要创建一个至少使用两种不同模型来操作数据的应用程序,例如key-value和relational, Object和relational, DocDB和key-value。 应用程序应该在 IRIS Community Edition 或 IRIS for Health Community Edition 或 IRIS Advanced Analytics Community Edition上运行。 应用程序应该开源并在GitHub上发布。 资源助力 1. 资源——模型方面 文档 Multi-model data aсcess 1.1. Globals (key-value) Globals是可以在IRIS数据库中存储和管理的稀疏多维数组。您可以使用ObjectScript和本机API处理Globals。 工具: Managing globals in management portal 文档: Using Multidimensional Storage (Globals) Using Globals 社区文章: Globals are Magic Swords for managing data The art of mapping Globals to Classes 视频: Globals QuickStart 1.2. SQL访问 InterSystems IRIS通过 ObjectScript/REST API和ODBC/JDBC提供对数据的SQL访问. 工具: VSCode SQL Tools DBeaver SQL in Management Portal Other SQL tools 文档: SQL Access InterSystems SQL Reference 社区文章: Class Queries in ObjectScript 视频: SQL Things you should know 1.3. Object访问 通过ObjectScript/REST API,本地API (Java/.NET/Node.js/Python)和XEP(Java/.NET),InterSystems IRIS提供了在Globals 存储和更改对象实例的途径。 文档: Object Access 1.4. Document访问 InterSystems IRIS提供DocDB,通过REST API和ODBC/JDBC(SQL)来存储和管理JSON数据文档。 文档: DocDB 2. 如何提交您开发的应用: 如何在Open Exchange上发布应用 如何递交竞赛申请 3. 线上课程: Multi-Model QuickStart 4. 视频: Multi-Model Development Multi-Inheritance in a Multi-Model Environment 公平公正 投票规则. 那么! 准备好了吗? 开始编程吧! ❗️ 点击此处,查看 官方竞赛术语解读.❗️
文章
Claire Zheng · 三月 15, 2021

InterSystems开发者社区行为准则

我们的承诺 为了建设一个开放、包容的环境,我们(社区贡献者、社区版主、社区经理)承诺为使用InterSystems开发者社区的所有成员提供没有任何骚扰的环境,而不论其年龄、体型、残障、种族、性别认同和表达、经验水平高低、国籍、外表、种族、宗教或性取向。 我们的标准 以下做法是有助于创建积极社区环境的例子: * 使用欢迎和包容的语言 * 尊重不同的看法和经历 * 优雅得体地接受建设性的批评建议 * 关注对社区最好的做法 * 与其他社区成员产生共鸣 以下做法是不提倡的社区成员行为: * 使用带有性色彩的语言或图片,进行不被欢迎的性关注和挑逗 * 键盘侠,发布侮辱/贬损的评论,进行人身攻击或政治攻击 * 公开/私下的骚扰 * 未经允许公布他人私人信息(如地址或电子邮箱) * 其他在专业环境下不被认可的行为 * 在InterSystems数据平台产品特性方面,我们接受任何指责和评价,但是不接受、也不讨论任何与InterSystems部门、雇员相关的服务水平和行为。 * 我们保留删除任何我们认为不能为社区成员提供有用信息的帖子的权利(无需给出理由)。 * 对被多次删除帖子的个人,我们保留限制其访问社区的权利(无需给出任何理由)。 我们的责任 项目维护者有责任澄清可接受行为的标准,并对任何不可接受的行为采取适当和公平的纠正措施。 项目维护者有权利和责任删除,编辑,或对评论、提交、代码、wiki编辑、问题、和其他与行为准则不一致的发帖行为进行“拒绝”,或暂时、或永久地禁止任何他们认为不合适的、有威胁的、有侵犯性的或有害的行为。 范围 本行为准则适用于任何可以在community.intersystems.com, es.community.intersystems.com和openexchange.intersystems.com上找到的InterSystems开发者社区的公共贡献(发帖、发言等社区行为)。社区管理者可以通过InterSystems社区管理进行进一步定义和澄清。 执行 关虐待、骚扰或其他不可接受的行为的情况,可通过联系项目团队support@intersystems.com进行报告。社区小组将审查和调查所有投诉,并将以其认为适合情况的方式作出回应。社区团队有义务为事件的报道者保密。有关具体执行政策的详情,可另行公布。 不遵守InterSystems开发者社区成员准则,将面临由其他社区管理成员作出的临时或永久后果。 来源 行为准则改编自Contributor Covenant1.4版, 可在 http://contributor-covenant.org/version/1/4][version上获取。 欢迎大家踊跃建言献策,共建繁荣社区!
公告
Claire Zheng · 五月 8, 2021

InterSystems开发者竞赛: FHIR加速器

亲爱的社区开发者们,大家好! 欢迎积极参与新一轮InterSystems开发者竞赛! 🏆 InterSystems 编程大赛:FHIR 加速器 🏆 提交在AWS上使用InterSystems的IRIS FHIR-as-a-service的应用程序,或帮助使用InterSystems IRIS FHIR加速器开发的解决方案。点击这篇文章,了解如何在AWS上申请应用InterSystems IRIS FHIR 加速器服务 (FHIRaaS) 。 时间:2021年5月10日-6月6日 奖金总额: $8,750 👉 点击登录活动页面 👈 奖项设置 1. 专家提名奖(Experts Nomination)- 获奖者由我们特别挑选的专家团选出: 🥇 第一名- $4,000 🥈 第二名 - $2,000 🥉 第三名 - $1,000 2. 社区提名奖(Community Nomination)- 获得总投票数最多的应用: 🥇 第一名 - $1,000 🥈 第二名 - $500 🥉 第三名 - $250 如果同时多位参赛者获得同样的票数,均被视为优胜者,将平分奖金 谁可以参加? 任何开发者社区的成员均可参加,InterSystems内部员工除外。还没有账号?现在来建一个! 👥开发者可以组团 创建一个协作应用程序,组团限定人数为2-5人。 请注意,要在您的README文件中标注您的团队成员——社区用户profile 参赛时间安排 🛠 5月10日 -5月30日: 应用开发、提交阶段 ✅ 5月31日 - 6月6日: 投票阶段 🎉 6月7日: 宣布优胜者! 注意:在整个参赛期间(开发与投票期间,即5月10日-6月6日),开发者可持续编辑、提升其应用。 主题 💡 InterSystems IRIS FHIR 加速器服务(InterSystems IRIS FHIR Accelerator as a service ) 💡 支持FHIR R4,包括美国核心实施指南 测试、理解FHIR api的开发人员门户 多种身份验证方法,包括API密钥和OpenID连接 通过sFTP批量导入FHIR包 记录FHIR请求数据 基于AWS的ISO 27001:2013和HITRUST认证,以支持HIPAA和GDPR 提交在AWS上使用InterSystems的IRIS FHIR-as-a-service的应用程序,或帮助使用InterSystems IRIS FHIR加速器开发的解决方案。 以下是参赛须知 有效应用程序:100%全新的Open Exchange Apps或已有的应用程序(但有显著提升)。所有参赛者/团队提交的应用程序只有经过我们团队的审核之后才会被批准参赛。 该应用程序可以使用任何应用InterSystems IRIS FHIR服务的技术来构建。 该App应开源并在GitHub上发布。 该应用的README文件应为英文,包含安装步骤,并包含视频demo或/和应用程序如何运行的描述。 (如果有),那么InterSystems ObjectScript部分的源代码应该以UDL(而非XML)格式提交, 举例说明。 上述要求可能会按需修订。 资源助力 1. 我们建议从以下模板开始 (敬请期待) 2. 文档 InterSystems IRIS FHIR 加速器服务(英文) 3. InterSystems FHIR 在线课程: Learn FHIR for Software Developers Building SMART on FHIR Apps with InterSystems FHIR Sandbox Exploring FHIR Resource APIs Using InterSystems IRIS for Health to Reduce Readmissions Connecting Devices to InterSystems IRIS for Health Monitoring Oxygen Saturation in Infants FHIR Integration QuickStart 4. 视频: Getting Started with the InterSystems IRIS FHIR Accelerator Service on AWS 其他与FHIR相关的视频: 6 Rapid FHIR Questions SMART on FHIR: The Basics Developing with FHIR - REST APIs FHIR in InterSystems IRIS for Health FHIR API Management Searching for FHIR Resources in IRIS for Health 更多视频在这里: FHIR playlist on DC YouTube. 5. FHIR问答: 在开发者社区查询更多FHIR相关: 开发者社区FHIR标签 在这个版块提问: community.fhir.org 6. 如何将您的APP提交给大赛:: 如何在InterSystems Open Exchange上发布应用程序 如何把参赛APP提交给大赛 参赛评比 投票规则即将发布,敬请期待! 期待您的精彩提交!加入我们的编程马拉松,赢取大奖! ❗️ 点击此处,查看 官方竞赛条款解读.❗️
文章
姚 鑫 · 六月 2, 2021

第十四章 其他InterSystems %Net工具

# 第十四章 其他InterSystems %Net工具 下面是`%Net`中其他一些有用类的简短列表: # %Net.URLParser InterSystems IRIS提供了一个实用程序`类%Net.URLParser`,可以使用它将URL字符串解析为其组成部分。例如,当您重定向HTTP请求时,这很有用。 该类包含一个类方法`Parse()`,它接受一个包含`URL`值的字符串,并通过引用返回一个包含`URL`各部分的数组。例如: ```java /// w ##class(PHA.TEST.HTTP).URLParser() ClassMethod URLParser() { Set url = "https://www.google.com/search?q=Java+site%3Adocs.intersystems.com&oq=Java+site%3Adocs.intersystems.com" Do ##class(%Net.URLParser).Parse(url,.components) zw components } ``` ``` DHC-APP>w ##class(PHA.TEST.HTTP).URLParser() components("fragment")="" components("host")="www.google.com" components("netloc")="www.google.com" components("params")="" components("path")="/search" components("query")="q=Java+site%3Adocs.intersystems.com&oq=Java+site%3Adocs.intersystems.com" components("scheme")="https" ``` 返回时,组件将包含此URL各部分的数组: Element | Value |Description ---|---|--- `components("fragment")` | `null` |URL的片段(#字符后面) `components("host")` | `www.google.com` |URL请求的主机 `components("netloc")` | w`ww.google.com` | URL的网络地址 `components("params")` | |URL中包含的URL参数 `components("path")` | `/search` | URL的文件路径 `components("query")` | `q=Java+site%3Adocs.intersystems.com&oq=Java+site%3Adocs.intersystems.com` |URL中包含的查询字符串 `components("scheme")` | https | 此URL指定的传输方案 # %Net.Charset 可以使用`%Net.Charset`表示InterSystems IRIS内的MIME字符集,并将这些字符集映射到InterSystems IRIS区域设置。此类包括以下类方法: - `GetDefaultCharset()`返回当前InterSystems IRIS区域设置的默认字符集。 - `GetTranslateTable()`返回给定输入字符集的InterSystems IRIS转换表的名称。 - `TranslateTableExists()`指示是否已加载给定字符集的转换表。 # %Net.TelnetStream 可以使用`%Net.TelnetStream`模拟`Windows NT Telnet.exe`的握手行为。 # %Net Security Classes `%Net`包提供了许多用于身份验证和安全性的类。
文章
Claire Zheng · 二月 13, 2022

2021 InterSystems热门直播链接

在刚刚过去的2021年,InterSystems举办了多场线上直播,我们汇总了多场重要直播,您可以点击链接或扫描相应二维码进入直播间,即可观看精彩回放! 直播一 聚焦InterSystems数据平台与WRC服务 直播二 InterSystems Caché系统运维培训 直播三 集成平台赋能智慧医院建设 直播四 国内外互联互通标准解读与实践 直播五 Health Connect系统运维培训 直播六 高效实施,加速互联互通标准化成熟度测评 直播七 InterSystems 2021全球线上峰会 直播八 InterSystems TrakCare助力医疗机构运营优化和质量提升
文章
Jingwei Wang · 六月 6, 2022

windows版Intersystems IRIS安装步骤

双击安装文件 选择同意协议,下一步 实例名称默认IRISHEALTH,不需要修改,直接下一步 安装路径,可修改,但不可使用中文路径 安装类型选择Development,点击下一步 选择Unicode,下一步 选择Normal,下一步 默认选项,不做修改,下一步 输入IRIS管理账户密码 输入CSP服务管理密码,和上一步密码保持一致。 点击安装,等待安装成功
公告
Claire Zheng · 一月 4, 2022

InterSystems开发者竞赛:数据集

亲爱的社区开发者们,大家好! 欢迎积极参与新一轮InterSystems开发者竞赛! 随着 InterSystems IRIS 2021.2 预览版 的发布和全新的 LOAD DATA 功能,我们希望将其与最新的竞赛(数据集)结合起来! 🏆 InterSystems 数据集竞赛🏆 竞赛时间: 2021年12月27日-2022年1月16日 奖金总额: $9,450 奖项设置 1.专家提名奖(Experts Nomination)- 获奖者由我们特别挑选的专家团选出: 🥇 第一名 - $4,000 🥈 第二名 - $2,000 🥉 第三名 - $1,000 🌟 第四名-第十名 - $100 2. 社区提名奖(Community Nomination)- 获得总投票数最多的应用: 🥇 第一名 - $1,000 🥈 第二名 - $500 🥉 第三名 - $250 如果同时多位参赛者获得同样的票数,均被视为优胜者,将平分奖 谁可以参加? 任何开发者社区的成员均可参加,InterSystems内部员工除外(InterSystems contractor员工可以参加)。还没有账号?现在来建一个! 👥 开发者可以组团 创建一个协作应用程序,组团限定人数为2-5人。 请注意,要在您的README文件中标注您的团队成员——社区用户profile 参赛时间安排 🛠 12月27日 - 1月9日: 应用开发、提交阶段 ✅ 1月10日 - 16日:投票阶段 注意:在整个参赛期间(开发与投票期间),开发者可持续编辑、提升其应用 主题 在我们此前的竞赛中,最常被提及的问题之一是缺乏数据集(Dataset)。每当您有一个关于特定领域或行业的项目idea时,您就需要一个相关数据集。此次竞赛的部分工作就是寻找/准备/加载数据集。 这就是为什么我们要举办此次数据集竞赛!让我们为社区带来一些有用的数据集吧! 我们在寻找什么? 提供将数据集加载到InterSystems IRIS名称空间中的存储库。 理想情况下,这可以使用ZPM包来完成,数据可以在包(package)中,或者包可以有一个方法,将数据从URL加载到IRIS实例中。 无论如何,一旦安装您的项目,应该带来一个类(class)及其与特定主题、主题领域、想法,行业等相关的数据。 项目应该建议如何使用数据——SQL查询、REST API或两者兼用。 数据的可视化是加分项。可视化和API(如果有的话)都可以与其他项目一起交付,但不是强制性的。 我们不会限制您在存储库中存储数据的方式。 例如,这可能是: 导出global(-s) (最好是XML格式而不是GOF格式) 创建数据的SQL脚本 在IRIS中生成数据的ObjectScript (或 java, js, python等) 与外部数据API集成 以下是一些项目示例: Dataset-titanic, Dataset-countries, Posts and tags, Synthea 要求: 类(Class)的命名约定。Class命名以 dc.data.your_name.class格式。例如:如果有一个关于交易数据的数据集,Class名可以是dc.data.finance.transaction或者dc.data.finance.instrument. 对数据源的引用。如果您从Internet上的某个地方获取数据集,并将其调整为InterSystems IRIS格式,请提供源链接。 如果这是您自己的数据,请提供使用许可。 ZPM包应以“dataset-”名称开头,例如:dataset-countries, dataset-titanic. 针对docker, demo, 文章, zpm和视频等,我们照例会提供技术奖励。 为数据集提供许可。 👉 数据集的常用许可类型 (源链接) Spoiler Common licenses in order of most open to most restrictive: PUBLIC DOMAIN MARK - PUBLIC DOMAIN Dedicate your dataset to the public domain: This isn’t technically a license since you are relinquishing all your rights in your dataset by choosing to dedicate your dataset to the public domain. To donate your work to the public domain, you can select “public domain” from the license menu when creating your dataset. OPEN DATA COMMONS PUBLIC DOMAIN DEDICATION AND LICENSE - PDDL This license is one of the Open Data Commons licenses and is like a public domain dedication. It allows you, as a dataset owner, to use a license mechanism to surrender your rights in a dataset when you might not otherwise be able to dedicate your dataset to the public domain under applicable law. CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL CC-BY This license is one of the open Creative Commons licenses and allows users to share and adapt your dataset so long as they give credit to you. COMMUNITY DATA LICENSE AGREEMENT – CDLA PERMISSIVE-2.0 This Community Data License Agreement is similar to permissive open source licenses such as the MIT license. It allows users to use, modify and adapt your dataset and the data within it, and to share it. The CDLA-Permissive-2.0 terms explicitly do not impose any obligations or restrictions on results obtained from users’ computational use of the data. The 2.0 version is significantly shorter, uses plain language to express the grant of permissions and requirements. The only obligation is to "make available the text of this agreement with the shared Data," including the disclaimer of warranties and liability. OPEN DATA COMMONS ATTRIBUTION LICENSE - ODC-BY This license is one of the Open Data Commons licenses and allows users to share and adapt your dataset so long as they give credit to you. CREATIVE COMMONS ATTRIBUTION-SHAREALIKE 4.0 INTERNATIONAL - CC-BY-SA This license is one of the open Creative Commons licenses and allows users to share and adapt your dataset so long as they give credit to you and distribute any additions, transformations or changes to your dataset under this license. We consider this license (a.k.a a viral license) problematic since others may decide not to work with your CC-BY-SA licensed dataset if there is risk that by doing so their work on your dataset will need to be shared under this license when they would rather use another license. COMMUNITY DATA LICENSE AGREEMENT – CDLA-SHARING-1.0 This license is one of the Community Data License Agreement licenses and was designed to embody the principles of "copyleft" in a data license. It allows users to use, modify and adapt your dataset and the data within it, and to share the dataset and data with their changes so long as they do so under the CDLA-Sharing and give credit to you. The CDLA-Sharing terms explicitly do not impose any obligations or restrictions on results obtained from users’ computational use of the data. OPEN DATA COMMONS OPEN DATABASE LICENSE - ODC-ODBL This license is one of the Open Data Commons licenses and allows users to share and adapt your dataset so long as they give credit to you and distribute any additions, transformation or changes to your dataset under this license. We consider this license (a.k.a a viral license) problematic since others may decide not to work with your ODC-ODbL licensed dataset if there is risk that by doing so their work on your dataset will need to be shared under this license when they would rather use another license. CREATIVE COMMONS ATTRIBUTION-NONCOMMERCIAL 4.0 INTERNATIONAL - CC BY-NC This license is one of the more restrictive Creative Commons licenses. Users can share and adapt your dataset if they give credit to you and do not use your dataset for any commercial purposes. CREATIVE COMMONS ATTRIBUTION-NODERIVATIVES 4.0 INTERNATIONAL - CC BY-ND This license is one of the more restrictive Creative Commons licenses. Users can share your dataset if they give credit to you, but they cannot make any additions, transformations or changes to your dataset under this license. CREATIVE COMMONS ATTRIBUTION-NONCOMMERCIAL-SHAREALIKE 4.0 INTERNATIONAL - CC BY-NC-SA This license is one of the most restrictive Creative Commons licenses. Users can share your dataset only if they (1) give credit to you, (2) do not use your dataset for any commercial purposes, and (3) distribute any additions, transformations or changes to your dataset under this license. We consider this license a viral license since users will need to share their work on your dataset under this same license and any users of the adapted dataset would likewise need to share their work on the adapted dataset under this license and so on for any other changes to those modified datasets. CREATIVE COMMONS ATTRIBUTION-NONCOMMERCIAL-NODERIVATIVES 4.0 INTERNATIONAL - CC BY-NC-ND This license is one of the most restrictive Creative Commons licenses. Users can share only your unmodified dataset if they give credit to you and do not share it for commercial purposes. Users cannot make any additions, transformations or changes to your dataset under this license. ADDITIONAL LICENSE COVERAGE OPTIONS If a license is not listed in the data.world menu options, you may select Other and specify the details in the summary of your dataset. NO LICENSE SPECIFIED No one can use, share, distribute, re-post, add to, transform or change your dataset if you have not specified a license. These descriptions are only summaries of these licenses. For the actual text of the licenses, which we strongly encourage you to read, click on the links provided. Summary of common license types: PUBLIC DOMAIN The work has been dedicated to the public domain by waiving all rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law. ATTRIBUTION You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. SHARE-ALIKE If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. NON-COMMERCIAL You may not use the material for commercial purposes. DATABASE ONLY License applies to the database only and not its contents or data. NO DERIVATIVES No Derivative Works. You may not alter, transform, or build upon this work. All licenses that begin with CC-BY in the table above refer to version 4.0 of those licenses. 一般要求: 有效应用程序:100%全新的Open Exchange Apps或已有的应用程序(但有显著提升)。所有参赛者/团队提交的应用程序只有经过我们团队的审核之后才会被批准参赛。 该应用可以在 IRIS Community Edition or IRIS for Health Community Edition or IRIS Advanced Analytics Community Edition上运行。 该应用需开源并在GitHub上发布。 该应用的README文件应为英文,包含安装步骤,并包含视频demo或/和应用程序如何运行的描述。 资源助力 1. InterSystems IRIS初学者: Build a Server-Side Application with InterSystems IRIS Learning Path for beginners 2. ObjectScript Package Manager (ZPM) 初学者: How to Build, Test and Publish ZPM Package with REST Application for InterSystems IRIS Package First Development Approach with InterSystems IRIS and ZPM 3. 如何将您的APP提交给大赛 如何在InterSystems Open Exchange上发布应用程序 如何把参赛APP提交给大赛 4. 更多 InterSystems IRIS 和 IRIS for Health 2021.2 预览版发布 LOAD DATA 参赛评比 投票规则即将发布,敬请期待! So! 期待您的精彩提交!加入我们的编程马拉松,赢取大奖。 ❗️ 点击此处,查看 官方竞赛条款解读. ❗️
公告
Claire Zheng · 五月 30

第三届InterSystems创意大赛

嗨,开发者们! 我们非常高兴地邀请开发者社区的所有成员(包括InterSystems员工)我们的最新竞赛! 💡 第三届InterSystems创意大赛 💡 我们正在寻求您的创新想法,以增强InterSystems的产品和服务。我们鼓励基于现实生活用例的建议,凸显您的创意将给其他用户带来的切实好处,以及它将如何增强开发人员使用InterSystems技术的体验。 📅 参赛时间:2024年6月10日-7月7日 🏆 我们为最佳创意准备了丰富的奖品! 🎁 我们也为每一位参赛者准备了礼物:只要您的创意被大赛接受,就会收到一份特别的礼品。 >> 从6月10日起,即可提交您的创意! << 合格的参赛创意应符合以下要求: 用户在Idea-A-Thon创意马拉松期间提交,由通过InterSystems创意门户注册的用户创建(您可以通过InterSystems SSO登录); 不要成为其他已经存在的想法的一部分——只允许提交新创意; 不要描述InterSystems产品或服务的现有功能; 使用英文发布; 由您本人进行撰写,不允许使用人工智能生成; 要具体而不是笼统,解释这个确切的变化将如何使用户受益,并与现实生活中的用例联系起来; InterSystems 专家认为该创意有意义。 所有想法都将受到审核。我们可能会要求您更详细地阐释您的创意。 符合要求的创意将获得特殊的"Ideas Contest(创意大赛)" 图示.标记。 谁可以参加? 我们邀请所有人加入我们的创意马拉松。欢迎InterSystems员工和社区成员参与并提交创意。 奖品 1. 参与奖——所有发布合格创意的参与者都会将获得奖励 🎁 Branded T-shirt with InterSystems logo (unisex) 2. 专家奖 ——InterSystems 专家将评选出 3 个最佳创意。获胜者将获得: 🥇 1st place - JBL Tour Pro wireless Noise Cancelling earbuds 🥈 2nd place - Patagonia Unisex Nano Puff® Vest 🥉 3rd place - LEGO Vespa 125 / Corvette / NASA Mars Rover Perseverance / Kawasaki Ninja H2R Motorcycle 3. 社区奖——得票最多的创意将获得: 🎁 LEGO Vespa 125 / Corvette / NASA Mars Rover Perseverance / Kawasaki Ninja H2R Motorcycle 注:InterSystems员工只能获得参与奖。专家奖和社区奖只会颁发给社区非 InterSystems 成员。 参赛时间 ⚠️ 提交创意:6月10日-30日 ✅ 创意投票:7月1日-7日 🎉 公布获奖者:7月8日 我们鼓励您在此期间登录创意门户上分享您的想法。注册会员可以对已发布的创意进行投票、发表评论。 注意:只有在开发者社区上发表过至少一篇文章的活跃社区用户的投票才会被计算为社区奖。 -- 来 InterSystems 创意门户上发布您的创意吧,并随时关注您创意的状态更新: >> 在此提交您的创意 << Good luck! 🍀 Note: All prizes are subject to availability and shipping options. Some items may not be available for international shipping to specific countries, in this case, an equivalent alternative will be provided. We will let you know if a prize is not available and offer a possible replacement. Prizes cannot be delivered to residents of Crimea, Russia, Belarus, Iran, North Korea, Syria, or other US-embargoed countries. 重要提示:所有奖品均视供应情况和运输情况而定。有些奖品可能无法通过国际航运到特定国家,在这种情况下,我们将提供等效的替代方案。如果没有奖品,我们会通知您,并提供备选的替代奖品。奖品不能寄给克里米亚、俄罗斯、白俄罗斯、伊朗、朝鲜、叙利亚或其他美国禁运国家的居民。