搜索​​​​

清除过滤器
公告
Claire Zheng · 三月 17, 2021

InterSystems IRIS数据平台在AWS提供完全托管式服务

通过持续进行云投资,InterSystems能够提供礼宾级的云服务。 InterSystems IRIS®数据平台和InterSystems IRIS医疗版™现已在亚马逊AWS云服务平台提供完全托管式服务,并可向客户提供一种风险最低、最便捷的充分利用云资源的途径。 客户在AWS基础架构中部署InterSystems环境后,InterSystems的礼宾级托管服务将帮助其处理性能、安全、可用性和操作问题。这种端对端服务可以让客户专注于自己的核心业务,而InterSystems则负责软件部署、基础架构、监测、高可用性、安全、补丁及升级等一系列工作。 InterSystems数据平台副总裁Scott Gnau表示:“在InterSystems,我们致力于通过云服务为客户提供礼宾级的托管式服务,并在AWS云端维持安全、可扩展、高性能的环境。” “我们的完全托管式云服务可为客户提供两全其美的解决方案——客户既可以利用InterSystems的云端技术,又可以免去相关的担忧和复杂问题。这一最新服务再次证明了我们对云投资的持续承诺,同时也为更多的客户提供了获得所有云技术效益的机会,并彰显了我们一流的客户参与度和支持服务。” 作为一个独立于云的数据平台,InterSystems IRIS可部署在所有的大型公有云中,并支持多云和混合云环境。InterSystems IRIS无需集成多种技术,可以更加便捷地构建支持机器学习的高性能应用程序,从而连接数据和应用程序孤岛。 欢迎国内的云托管服务小伙伴们前来咨询
公告
Claire Zheng · 二月 13, 2023

技术奖励结果公布 | 2023 InterSystems 开发者竞赛:工具(Tool)

Hi,开发者们! 以下是2023 年 InterSystems 开发者竞赛:工具(Tool)参赛者应用的技术奖励分数! Project Idea Implementation Python Docker ZPM Online Demo Code Quality First Article on DC Second Article on DC Video on YouTube First Time Contribution Total Bonus Nominal 3 3 2 2 2 1 2 1 3 3 22 gateway-sql 3 2 2 2 1 10 xml-to-udl 2 1 2 3 3 11 iris-persistent-class-audit 2 2 1 2 3 3 13 GlobalStreams-to-SQL 2 2 2 1 2 1 3 13 DX Jetpack for VS Code 2 2 2 1 3 10 JSONfile-to-Global 2 2 2 1 2 1 3 13 apptools-admin 3 2 5 irissqlcli 3 2 2 7 OpenAPI-Suite 3 2 2 2 1 2 1 13 iris-connections 2 2 1 2 1 3 11 Intersystems IRIS platform queue trend monitoring component 2 2 3 7 message_key_query 2 2 3 7 iris-log-viewer 3 2 2 2 1 2 1 3 16 iris-tripleslash 3 2 2 1 2 1 3 14 iris_log_analytics 3 3 iris-deploy-tools 2 2 2 6 blockchain - [ IRIS python ] 3 3 cos-url-shortener 3 2 2 1 2 3 3 16 iris-geo-map 3 2 2 2 1 2 1 3 16 ISC DEV 0 IRIS Data Migration Manager 3 3 奖金可能会有更新变化。 请在下面的评论或Discord 聊天中跟帖。
文章
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 · 五月 31, 2023

欢迎参加InterSystems 2023年度编程大奖赛(Grand Prix)!

Hi 开发者们!一年一度的 InterSystems IRIS 开发者大奖赛已启动! 我们非常高兴地邀请大家参加此次编程大赛——使用 InterSystems IRIS 数据平台构建开源解决方案! 🏆 InterSystems 2023 年度编程大奖赛🏆 时间: 2023年6月12日-7月9日(美国东部时间) 奖金池: 26,000 美元 主题 InterSystems Grand Prix 是我们的年度编程大赛,旨在寻找使用 InterSystems IRIS 的最佳应用程序。我们欢迎您提交任何主题的申请! 欢迎展示任何类型的 InterSystems IRIS API 或数据模型,提交以 InterSystems IRIS 为后端(API 或数据库)的任何应用程序。 欢迎您对去年在 InterSystems 竞赛系列中展示的应用程序进行改进,并将它们提交给大奖赛。 欢迎您提交 100% 全新的应用参与竞赛。 一般要求: 有效应用程序:100%全新的Open Exchange Apps或已有的应用程序(但有显著提升)。所有参赛者/团队提交的应用程序只有经过我们团队的审核之后才会被批准参赛。 该应用可以在 IRIS Community Edition or IRIS for Health Community Edition or IRIS Advanced Analytics Community Edition上运行。 该应用需开源并在GitHub上发布。 该应用的README文件应为英文,包含安装步骤,并包含视频demo或/和应用程序如何运行的描述。 每位开发者最多可提交 3 个申请。 竞赛大奖: 1. 专家提名奖(Experts Nomination)- 获奖者由InterSystems专家团选出: 🥇第一名 - 7,000 美元 🥈第二名 - 5,000 美元 🥉第三名 - 3,000 美元 🏅第四名 - 2,000 美元 🏅第 五 名 - 1,000 美元 🌟第 六~十 名 - 200美元 🌟第 十一~二十 名 - 100美元 2. 社区提名奖(Community Nomination)- 获得总投票数最多的应用: 🥇第一名 - 3,000 美元 🥈第二名 - 2,000 美元 🥉第三名 - 1,000美元 ✨ 所有获奖者都将获得Global Masters徽章! 注:如果同时多位参赛者获得同样的票数,均被视为优胜者,将平分奖金 关键参赛节点: 🛠 应用开发&提交阶段: 2023 年 6 月 12 日(美国东部时间 00:00):竞赛启动。 2023 年 7 月 2 日(美国东部时间 23:59):提交截止。 ✅ 投票时间: 2023 年 7 月 3 日(美国东部时间 00:00):投票开始。 2023 年 7 月 9 日(美国东部时间 23:59):投票结束。 注意:在整个参赛期间(开发与投票期间),开发者可持续编辑、提升其应用。 谁可以参加? 任何开发者社区的成员均可参加,InterSystems内部员工除外(InterSystems contractor员工可以参加)。还没有账号?现在来建一个! 👥 开发者可以组团 创建一个协作应用程序,组团限定人数为2-5人。 请注意,要在您的README文件中标注您的团队成员——社区用户profile 资源助力: ✓ InterSystems IRIS(初学者): 使用 InterSystems IRIS 构建服务器端应用程序 新手学习路径 ✓ ObjectScript 包管理器 (ZPM) 初学者: 如何使用 InterSystems IRIS 的 REST 应用程序构建、测试和发布 ZPM 包 使用 InterSystems IRIS 和 ZPM 的封装优先开发方法 ✓ 如何将您的APP提交给大赛: 如何在InterSystems Open Exchange上发布应用程序 如何把参赛APP提交给大赛 ✓ IRIS 应用程序示例: intersystems-iris-dev-template iris-embedded-python-template interoperability-embedded-python isc-cloud-sql-python-demo rest-api-template integratedml-demo-template iris-fhir-template iris-fullstack-template iris-interoperability-template iris-analytics-template 需要帮助? 加入InterSystems' Discord server频道,或跟帖评论提出您的问题! 期待您的精彩提交!祝好运 👍 参加本次比赛,即表示您同意此处列出的比赛条款。请在继续之前仔细阅读它们。 往期国内作品展示一Intersystems IRIS平台队列监控组件 汇总了一下近年来InterSystems中文社区的成员们往期参赛作品—— iris_log_analytics @银行 郝 message_key_query @王喆 Student score query @yang shijie IRIS-Database-and-Machine-Learning-Based-Approaches-for-Prediction-of-Spontaneous-Intracerebral-Hemo @Fatian Wu AlertDashboard @John Pan HealthInfoQueryLayer @Botai Zhang Dictionary comparison scheme of cache database @Weiwei Yang Create a unified hospital data extraction scheme based on IRIS for Health @Deming Xu RESTFUL_API_For_Hotel_OverBooking_System @jingqi LIu Intersystems IRIS platform queue trend monitoring component @yubo mao
公告
Michael Lei · 六月 8, 2023

InterSystems 测试管理器 - %UnitTest 框架的新 VS Code 扩展

如果您已经使用%UnitTest 框架构建了单元测试,或者正在考虑这样做,请查看InterSystems 测试管理器Test Manager。 无需离开 VS Code,您现在可以浏览单元测试、运行或调试它们,并查看之前的运行结果。 InterSystems 测试管理器适用于 ObjectScript 扩展支持的两种源代码位置范例。您的单元测试类可以在 VS Code 的本地文件系统(“客户端编辑”范例)或服务器命名空间(“服务器端编辑”)中掌握。在这两种情况下,实际测试运行都发生在服务器命名空间中。 欢迎反馈。
文章
Claire Zheng · 十一月 7, 2022

InterSystems开发者关系主管Dean:集成FHIR,改变游戏规则

作为开发者社区的一员,多年来我亲眼目睹了访问和共享数据的障碍是如何阻碍创新的。在与医疗科技领域的初创公司和大企业合作时,我看到了封闭的数据是如何阻碍了我们的合作,那种我们都意识到的对提供高质量医疗服务至关重要的合作。 随着我对FHIR®(快速医疗互操作性资源)标准的了解,我开始相信这是医疗创新的前进之路。我希望全世界的开发人员——包括我们全球InterSystems开发社区的1.1万余名开发人员——都能够充满激情地来了解如何使用FHIR推动数据驱动的医疗解决方案,来了解这种以前所未有的方式促进生态系统利益相关者之间合作的技术。 Sage Growth Partners的一项调查发现,医疗行业有一半的高管表示,数据集成和互操作性是实现其战略数据分析目标的最大障碍。只有20%的人对自己的数据充满信心。 他们渴望改变。其中约80%的高管表示,在整个组织内创建和共享高质量数据是他们的首要任务。一个全球性的运动正在呼吁更多的协作医疗,然而数据的缺陷阻碍了这一进程。 集成FHIR,就可以改变游戏规则。 协作医疗意味着协同IT 将医疗行业的利益相关者聚集在一起、交换信息和知识,毫无疑问将改善患者的结果。但是当你观察成功的协作医疗的背后,你会发现什么呢? 协同IT。这意味着实现健康信息的互操作性,无论是测试结果、报告患者监测数据、索赔信息还是电子健康记录(EHR)。随着医疗健康数据比以往任何时候都更加庞大和分散,从多个系统访问数据,以及从一个应用程序实时访问数据,能够使利益相关者更好地关注细节,并快速构建定制的医疗护理计划。 FHIR是医疗互操作性的未来 简单介绍一下背景知识:FHIR是一个全球互操作性标准,描述了机构间如何共享大约150种医疗健康“资源(Resource)”——例如药物、医疗设备数据、付款人信息以及跨EHR和其他系统托管的其他数据。 从去年开始,医疗计划必须允许成员通过使用安全FHIR Release 4 (R4) API的应用程序访问其医疗数据。这迎来了来自世界各地的开发人员的爆发式创新,开发人员能够构建FHIR应用程序、工具和技术,利用这一标准来促进协作医疗。 这惠及患者。现在,只需轻轻一划手指,患者就能轻松获取个人医疗健康信息,使用基于FHIR的应用程序编程接口(API)从移动设备上获取医疗健康数据。 用FHIR改变医疗 作为InterSystems开发者关系主管,我很自豪我们正在构建核心医疗IT的协作工具,帮助开发人员充分利用FHIR。InterSystems IRIS for Health(医疗版)、InterSystems HealthShare®和InterSystems IRIS云服务都利用FHIR来支持互操作性。 HL7 达芬奇项目(Da Vinci)是一项倡议,通过该倡议,医疗IT专家和行业领袖通过利用HL7 FHIR,在基于价值的医疗中改善跨社区数据共享。该项目侧重于在质量改进、覆盖率/减轻负担、成员访问、流程改进和临床数据交换方面取得成果。 看看正在进行和已经上市的产品,很明显,FHIR集成将改变医疗健康行业。当医疗服务提供者、支付方和医疗护理行业的其他人能够利用庞大的健康数据来改善患者的结果时,每个人都是赢家。 作者介绍 本文作者 Dean Andrews (社区ID: @Dean.Andrews2971 )是InterSystems数据平台开发者关系主管。他的团队管理着InterSystems开发者社区、黑客马拉松项目和创业加速器项目。Dean专注于为开发人员、创业公司和客户提供工具和信息,使他们能够在InterSystems技术上进行创新。Dean还是非营利组织HealthTech Build的顾问委员会成员,他是出版自己的专著,并且经常在行业活动中发表演讲。 原文链接可以点击此处查看:How Collaborative IT Can Unlock Collaborative Care
公告
Tete Zhang · 二月 16, 2023

InterSystems 产品支持的平台 - 版本更新 (2023 年 2 月)

InterSystems 产品支持的平台 - 版本更新 (2023 年 2 月 我们经常收到有关 InterSystems IRIS 数据平台支持的平台和框架的问题。此更新旨在分享最近的更改以及我们对即将发生的更改的当前决策。(预测未来是一项棘手的工作,不应将此视为我们对未来支持平台和框架的承诺。) 我们计划大约每 3 个月发布一次此类更新,然后在一年内重新评估。如果您觉得此更新有用,请告诉我们!我们很感激您的建议。 关于更新…… IRIS 生产操作系统和 CPU 架构 红帽企业版 Linux 近期变动 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 9.1 于 2022 年 11 月发布。Red Hat 仅在 RHEL 9.2 发布之前支持此次版本。 RHEL 9.2 计划于 2023 年第二季度末发布。 Red Hat 计划在未来4年内继续支持 9.2。 InterSystems 计划通过一项我们称为“操作系统次版本认证”的新流程,对 RHEL 9.2 上的 IRIS 进行额外测试。该流程旨在提供额外的安全性,即操作系统次版本更新不会对产品有大的影响。 RHEL 8.4 扩展维护将于 2023 年 5 月 31 日结束,这意味着 IRIS 也将在那时停止支持此次版本。 进一步阅读: RHEL 发布页面 Ubuntu 近期变动 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 20.04.05 LTS 和 22.04.01 LTS 最近已经发布。 InterSystems 计划通过一项我们称之为“操作系统次版本认证”的新流程,在 20.04.05 LTS 和 22.04.01 LTS 上对 IRIS 进行额外测试。我们将在未来的通告中详细介绍这个新流程。 Ubuntu 的下一次重大更新定于 2024 年 4 月 进一步阅读: Ubuntu 发布页面 SUSE 操作系统 近期变动 IRIS 2022.3.0 增加了对SUSE Linux Enterprise Server 15 SP4的支持。 15 SP4 是一个操作系统主版本,将 Linux 内核更新到 5.14,将 OpenSSL 更新到 3.0,将 Python 更新到 3.9 即将发生的变化 根据他们的发布节奏,我们预计 SUSE 将在第二季度末或第三季度初发布 15 SP5。在那之后我们将把此版本加入到IRIS支持的平台列表中。 延伸阅读: SUSE 生命周期 Oracle Linux 近期变动 IRIS 2022.3.0 添加了对Oracle Linux 9的支持。 Oracle Linux 9 是跟随 RHEL 9 的操作系统主版本,因此它也将 Linux 内核更新到 5.14,将 OpenSSL 更新到 3.0,将 Python 更新到 3.9 即将发生的变化 Oracle Linux 9.1 于 2023 年 1 月发布。 进一步阅读: Oracle Linux 支持政策 微软Windows 近期变动 自 IRIS 2022.1 中添加了 Windows Server 2022 以来,我们未对支持的 Windows 版本列表进行任何更改 即将发生的变化 Windows Server 2012 的扩展支持将于 2023 年 10 月结束。如果您仍在该平台上运行,现在可以开始计划迁移了。 进一步阅读: Microsoft 生命周期 AIX 近期变动 自从在 IRIS 2022.1 中添加了 AIX 7.3 并移除了 7.1 以来,我们没有对支持的 AIX 版本列表进行任何更改 即将发生的变化 InterSystems 正与 IBM 密切合作以增加对 OpenSSL 3.0 的支持。这不会包含在 IRIS 2023.1.0 中,因为 IBM 需要在未来的 TL 版本中包含该功能。好消息是 IBM 正计划在 AIX 7.2 和 7.3中支持OpenSSL 3.0。 IBM 于 12 月发布了 AIX 7.3 TL1,认证正在进行中。 下一个 TL 版本预计在 4 月发布。 进一步阅读: AIX 生命周期 容器 近期变动 我们现在正在发布 IRIS 容器的多架构描述文件(manifest)。这意味着拉取标记为2022.3.0.606.0的 IRIS 容器将为您的 CPU(Intel/AMD 或 ARM)下载正确的容器。 如果您需要为特定 CPU 拉取容器,我们为特定架构的容器制定了标签。例如, 2022.3.0.606.0-linux-amd64将拉取 Intel/AMD 容器, 2022.3.0.606.0-linux-arm64v8将拉取 ARM 容器。 即将发生的变化 我们将在今年下半年逐步淘汰 arm 的镜像(image)名称,例如iris-arm64,以进一步向多架构描述文件转移。 我们还将开始使用“-preview”标记IRIS体验版(Preview)的容器,以便于和最新的正式版本(GA Release)进行区分。 IRIS 开发操作系统和 CPU 架构 MacOS 近期变动 自从我们在 IRIS 2022.1 中迁移到 MacOS 11 以来,我们没有对支持的 MacOS 版本列表进行任何更改 即将发生的变化 我们计划在 2023 年添加对 MacOS 13 的支持,最早可能会在 IRIS 2023.1版本上添加。 CentOS 我们正在考虑取消对 CentOS/CentOS Stream 的支持。以下是我们的考虑。 Red Hat 几年来一直在运行一项开发者计划,该计划使开发人员能够获得非生产环境的免费许可证。这个项目旨在鼓励正在使用CentOS的开发者通过此项目切换到 RHEL。 CentOS Stream 现在是 RHEL 的“上游”,这意味着它具有 RHEL 不包含的缺陷和功能。它还在每天更新,这可能会给平台上的开发人员和测试人员带来不稳定性。 自从我们在 IRIS 2022.1 中添加了对 CentOS 8-Stream 的支持并移除了对 CentOS 7.9 的支持后,我们没有对支持的 CentOS 版本列表进行任何更改 Caché & Ensemble 生产操作系统和 CPU 架构 近期变动 Cache 2018.1.7 增加了对 Windows 11 的支持 InterSystems 支持的平台列表文档 InterSystems 支持的平台列表信息的最终版将发布在InterSystems 支持的平台列表文档中。 IRIS 2020.1 支持的服务器平台 IRIS 2021.1 支持的服务器平台 IRIS 2022.1 支持的服务器平台 IRIS 2022.3 支持的服务器平台 Caché & Ensemble 2018.1.7 支持的服务器平台 以上就是这一次发布的全部信息。如果您想了解更多信息,请联系我们。
文章
Claire Zheng · 一月 4, 2023

【动画视频】InterSystems IRIS数据平台支持多少种开发语言?

多种开发技术,令开发人员随心所愿!
公告
Jingwei Wang · 一月 26, 2023

2023 年 InterSystems 开发者工具大赛的技术奖励

以下是 2023 年 InterSystems 开发者工具大赛的技术红利,您可以在投票中获得额外加分: 嵌入式 Python的使用 Docker容器的使用 ZPM 包部署 在线演示 代码质量通过 开发者社区文章 开发者社区第二篇文章 上传 YouTube 视频 第一次贡献 请参阅下面的额外加分项详细信息: 嵌入式 Python的使用 - 3 分 在您的应用程序中使用嵌入式 Python,可以获得 3 分加分。您至少需要 InterSystems IRIS 2021.2及以上版本。 Docker 容器的使用 - 2 分 如果应用程序使用在 docker 容器中运行的 InterSystems IRIS,则该应用程序将获得“Docker 容器”奖励。这是最简单的模板。 ZPM 包部署 - 2 分 如果您为您的全栈应用程序构建和发布 ZPM(ObjectScript 包管理器)包,您可以获得2分加分,以便它可以使用如下方式部署: zpm "install your-multi-model-solution" 已安装的ZPM 客户端命令,请参考: ZPM客户端。文档。 项目的在线演示 - 2 分如果您将项目作为在线演示提供给云,则可额外获得 3 个奖励积分。您可以自己完成,也可以使用此模板- 这是一个 示例。这是有关如何使用它的视频。 代码质量通过且零错误 - 1 分 包括用于代码静态控制的代码质量 Github 操作,并使其显示 0 个 ObjectScript 错误。 关于开发者社区的文章 - 2 分 在 Developer Community 上发表一篇文章,描述您的项目的功能。每篇文章获得2分。不同语言的翻译也有效。 开发者社区第二篇文章 - 1分 您的第二篇文章或其应用的翻译文章可以获得额外的奖励积分。第 3 篇及以上不会带来更多积分,但文章和应用程序的关注度将全部归您所有。 上传 YouTube 视频 - 3 分 制作演示您的产品的 Youtube 视频,每个视频可获得 3 分奖励积分。例子。 首次贡献 - 3 分 如果您是第一次参加 InterSystems Open Exchange 竞赛,可获得 3 个奖励积分! 奖励积分清单可能会发生变化。敬请关注! 祝比赛好运!
文章
Tete Zhang · 一月 29, 2023

如何在 Ensemble 中重发大量消息

消息查看器可以重新发送消息,但不适合重新发送大量消息(>100)。为此,您应该使用如下的Object Script代码: Class Sample.Resender Extends %RegisteredObject{ClassMethod Resend(){//Resend all messages sent from 'FromComponent' to 'ToComponent' between 2016-06-15 and 2016-06-20&sql(DECLARE C1 CURSOR FOR SELECT ID INTO :id FROM Ens.MessageHeader WHERE SourceConfigName='FromComponent' AND TargetConfigName='ToComponent' AND TimeCreated BETWEEN '2016-06-15' AND '2016-06-20')&sql(OPEN C1)&sql(FETCH C1)set tSC = $$$OKwhile (SQLCODE = 0) {//id holds the id for one message. Resend itset tSC = ##class(Ens.MessageHeader).ResendDuplicatedMessage(id)quit:$$$ISERR(tSC)&sql(FETCH C1)}&sql(CLOSE C1)quit tSC}} 您还可以向其中添加代码,例如不同的消息筛选条件、更好的错误检查逻辑、在出现问题时从重发列表中断处重新启动的代码等。 以下是嵌入式 SQL 和 Ens.MessageHeader 方法 ResendDuplicatedMessage 的文档: http://docs.intersystems.com/ens20161/csp/docbook/DocBook.UI.Page.cls?KEY=GSQL_esql#GSQL_esql_cursor http://docs.intersystems.com/ens20152/csp/documatic/%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=ENSLIB&CLASSNAME=Ens.MessageHeader#METHOD_ResendDuplicatedMessage
文章
Hao Ma · 九月 22, 2021

IRIS 2021 技术文档 First Look 8 - 技术概要:ODBC和InterSystems数据库

技术概要:ODBC 和 InterSystems 数据库 如果您希望在 InterSystems IRIS®数据平台上使用 ODBC,本文将介绍如何设置它。要浏览所有的技术概要(First Look),包括可以在 InterSystems IRIS 免费的评估实例上执行的那些,请参见 InterSystems 技术概要(InterSystems First Looks)。 1 ODBC: 如何在 InterSystems IRIS 中使用它InterSystems 提供了一个完全兼容的(ODBC 3.5)ODBC 驱动程序,您可以使用它通过 ODBC 访问 InterSystems IRIS 数据库。当您安装 InterSystems IRIS 时,默认安装该驱动程序。为了开始在 InterSystems IRIS 中使用 ODBC,您只需要在 InterSystems IRIS 实例上配置驱动程序。本技术概要(First Look)文档对这一过程进行了概述。如果您还不熟悉 ODBC,请参见本文档末尾的 "了解更多信息" 一节中的链接,以获得更多信息。 2 用前须知要使用这个程序,您需要一个安装了 InterSystems IRIS 实例的 Windows 系统。有关如何安装和授权 InterSystems IRIS 开发实例的说明,请参见InterSystems IRIS Basics: Installation(《InterSystems IRIS 基础:安装》)。 3 在 Windows 上设置 ODBC本节介绍如何在 Windows 上为 InterSystems IRIS 数据库创建 DSN。本节中的说明假定您已经安装了 InterSystems ODBC 驱动程序。默认情况下,标准的 InterSystems IRIS 安装过程会安装驱动程序,所以除非您执行了自定义安装,否则驱动程序应该存在于您的实例中。要使应用程序能够通过 ODBC 访问 InterSystems IRIS 数据库,您需要创建一个 DSN,该 DSN 为 ODBC 客户端驱动程序定义数据库的位置。在 Windows 上,您可以从 Windows 控制面板执行此操作,如下所示:1. 打开Windows Administrative Tools control panel(Windows 管理工具控制面板)。2. 选择 Data Sources(数据源)(ODBC)。3. 在 User DSN(用户 DSN) 标签上,选择 Add(添加)。4. 选择 InterSystems ODBC 并点击 Finish(完成)。 技术概要:ODBC 和 InterSystems 数据库 1 了解更多有关 ODBC 的信息 DSN 创建完成后,将显示 InterSystems ODBC Data Source Setup (InterSystems ODBC 数据源设置)对话框。图 1:InterSystems ODBC 数据源设置对话框 5. 输入必要的配置细节:• 输入 DSN 的名称和描述。• 输入与此 DSN 代表的 InterSystems IRIS 数据库相对应的 IP 地址、端口号和命名空间。• 选择一种身份验证方法,并输入或选择适合 InterSystems IRIS 实例的其他安全信息。 6. 选择 Test Connection(测试连接) 按钮来测试您的设置是否正确。 如果连接测试成功,那么恭喜您!您已经完成了 InterSystems IRIS 数据库的设置,以使用 ODBC。现在您可以修改支持 ODBC 的应用程序,以使用刚刚创建的 DSN。 4 了解更多有关 ODBC 的信息如果您更喜欢使用文件 DSN,请参见Using the InterSystems ODBC Driver guide(《使用 InterSystems ODBC 驱动程序指南》)中的 " Using File DSNs and DSN-less Connections(使用文件 DSN 和无 DSN 连接) "一章,以了解相关说明。InterSystems IRIS 还支持 UNIX®上的 ODBC;详情请参见Using the InterSystems ODBC Driver guide(《使用 InterSystems ODBC 驱动程序指南》)中的 " Using an InterSystems Database as an ODBC Data Source on UNIX®(在 UNIX®上使用 InterSystems 数据库作为 ODBC 数据源)"一章。若要在 Windows 上使用 TLS 保护 ODBC 连接,请参见Connecting from a Windows Client Using a Settings File(《使用设置文件从 Windows 客户端进行连接》)。 要了解更多有关 ODBC 和 InterSystems IRIS 的信息,请参见:• Using the InterSystems ODBC Driver(《使用 InterSystems ODBC 驱动程序》) — InterSystems 文档:使用 ODBC 的逐步说明• Using InterSystems SQL(《使用 InterSystems SQL》) — InterSystems 文档:使用 SQL 的逐步说明• InterSystems SQL Reference(《InterSystems SQL 参考文献》) — InterSystems 文档:SQL 参考文献 2 技术概要: ODBC 和 InterSystems 数据库 了解更多有关 ODBC 的信息 • SQL Optimization Guide(《SQL 优化指南》) — InterSystems 文档:优化 InterSystems SQL 性能的指南
文章
Jingwei Wang · 十一月 2, 2021

IRIS 2021 最新技术文档 First Look 1 技术概要

InterSystems 技术概要 技术概要(First Look)是为用户提供InterSystems IRIS的关键技术和选项的实践经验的简短文档,其中涉及到的许多技术都可以在免费的评估实例上体验。所有这些技术都可以在已授权的InterSystems IRIS实例上完成。 部署 技术概要:InterSystems 云管理器(First Look: InterSystems Cloud Manager) 介绍InterSystems 云管理器,为您展示如何利用它在公有云上部署InterSystems产品。 技术概要: 容器中的InterSystems 产品(First Look: InterSystems Products in Containers) 介绍Docker容器和在容器中运行InterSystems产品。 InterSystems IRIS 基础:安装(InterSystems IRIS Basics: Installation 指导用户完成InterSystems IRIS的单实例安装,以便与其它技术概要(First Looks)一起使用。 架构 技术概要:使用InterSystems分布式缓存扩展系统的用户容量 介绍了使用由ECP支持的分布式缓存来扩展用户容量。 技术概要:部署InterSystems分片集群 介绍分片(sharding),以及如何使用分片扩展基于InterSystems的应用程序的数据量。 技术概要:数据弹性和镜像 介绍InterSystems产品的故障恢复、高可用性和灾备功能。 开发环境 InterSystems IRIS基础: 连接一个IDE 介绍如何将一个IDE连接到InterSystems IRIS上。 Java和JDBC 技术概要:JDBC 和 InterSystems数据库 介绍如何通过JDBC连接到InterSystems数据库:快速入门,并有机会自己尝试 技术概要: InterSystems IRIS Native API for Java 介绍如何使用InterSystems IRIS Native从Java应用程序中访问InterSystems globals。 技术概要:用XEP实现Java对象持久化 介绍如何使用XEP对象持久化API存储和检索持久化的Java对象。 技术概要:Java 网关和 InterSystems 产品 介绍InterSystems产品通过Java 网关与Java组件进行互操作的能力。 .NET和ODBC 技术概要: ODBC 和 InterSystems数据库 介绍如何通过ODBC连接到InterSystems数据库。 技术概要:InterSystems IRIS Native API for .NET 演示如何通过使用了IRIS Native的.NET应用程序访问InterSystems globals 技术概要:ADO.NET 和InterSystems产品 介绍了如何通过InterSystems ADO.NET Managed Provider连接到InterSystems产品 技术概要: 用XEP实现.Net对象持久化 介绍如何使用XEP对象持久化API存储和检索持久化的.NET对象 技术概要:InterSystems .NET网关 介绍如何使用InterSystems . NET网关(Gateway)。 嵌入式语言 技术概要: ObjectScript 介绍ObjectScript语言,演示如何使用它以多种方式访问数据。 技术概要: Globals 介绍Globals概念,这是InterSystems IRIS数据平台的底层存储结构。. 技术概要:InterSystems SQL 介绍InterSystems SQL、InterSystems产品中常用SQL语句的使用,以及优化查询性能的独特方法。 技术概要:使用InterSystems产品优化SQL性能 介绍InterSystems SQL查询优化技术。 技术概要:在InterSystems产品中开发REST接口 介绍在InterSystems产品中开发REST接口,以提供对数据库和应用程序的访问。 互操作Production 技术概要:使用带有互操作性的Production连接系统 Production介绍。 技术概要:使用 Production 进行大文件传输(Managed File Transfer,MFT) 介绍了大文件传输(MFT)特性,该特性允许用户将第三方文件传输服务直接轻松地包含到InterSystems互操作性产品中。 技术概要:数据转换 介绍DTL编辑器以及如何在互操作性产品中将数据转换为不同的格式。 分析 技术概要:使用InterSystems产品进行SQL搜索 介绍对SQL文本搜索的支持,它为非结构化文本数据提供了语义上下文搜索。 技术概要:InterSystems产品文本分析功能 介绍了对自然语言处理(NLP)文本分析的支持,它为各种自然语言中的非结构化文本数据提供语义分析。 技术概要:InterSystems IRIS 和 UIMA 介绍InterSystems IRIS如何实现并补充了UIMA分析管道. 安全 技术概要:基于角色的访问控制 介绍InterSystems产品中基于角色的访问控制:快速了解并尝试。 技术概要:LDAP和InterSystems产品 介绍如何使用LDAP服务器对InterSystems产品的用户进行身份验证和分配特权。 技术概要:数据加密 技术概要:数据加密 提供对InterSystems数据库加密工具的简要的实际操作介绍。 技术概要:InterSystems公开密钥基础设施 (PKI) 技术概要:InterSystems公开密钥基础设施 (PKI) 介绍了在InterSystems产品中可用的公钥加密、证书颁发机构(CAs)和PKI。 文档目录里面的链接打不开,请看看,谢谢!
文章
Lele Yang · 七月 13, 2021

FAQ 常见问题系列--系统管理篇 如何在Linux上配置InterSystems IRIS服务随机自启动?

与Windows上默认安装为服务随机自启动不同,我们在Linux上安装完InterSystems IRIS后,默认是没有配置系统服务的,需要做手动配置。本文提供使用systemd方式来配置InterSystems IRIS服务随机自启动的简单示例,供大家参考。 假设我们已经安装了InterSystems IRIS产品,安装完成后您可以通过iris list来来查看实例信息,包括安装路径,如:"/intersystems/iris" [root@RHEL8-64-001 ~]# iris list Configuration 'IRIS' (default) directory: /intersystems/iris versionid: 2021.2.0L.546.0 datadir: /intersystems/iris conf file: iris.cpf (SuperServer port = 51773, WebServer = 52773) status: running, since Mon May 31 05:03:09 2021 state: ok product: InterSystems IRIS 在安装完成后,用以下方式搜索不到iris.service, [root@RHEL8-64-001 ~]# systemctl list-unit-files --type=service|grep iris.service 如何将其配置为系统服务呢,下面是一个简单示例及操作步骤,供大家参考。注意:请使用root用户或者拥有root权限的用户来进行。 1. 创建systemd service,1) 在/usr/lib/systemd/system下创建文件,iris.service,内容如下, [root@RHEL8-64-001 system]# cat iris.service [Unit] Description=InterSystems IRIS [Service] Type=forking ExecStart=/bin/bash -c '/intersystems/iris/irisstart 2>&1 | logger -t iris_start' ExecStop=/bin/bash -c '/intersystems/iris/irisstop quietly 2>&1 | logger -t iris_stop' RemainAfterExit=yes [Install] WantedBy=multi-user.target 其中,/intersystems/iris为实例安装目录。2) 创建后,更改文件的属性, [root@RHEL8-64-001 system]# chmod 755 iris.service 更改后,文件属性如下,-rwxr-xr-x. 1 root root 225 May 31 07:32 iris.service 2. 启用该Service。1)启用,创建系统service的link, [root@RHEL8-64-001 system]# systemctl enable iris.service Created symlink /etc/systemd/system/multi-user.target.wants/iris.service → /usr/lib/systemd/system/iris.service. 2)确认状态,确保已经enabled [root@RHEL8-64-001 system]# systemctl list-unit-files --type=service|grep iris.service iris.service enabled 3. 测试该Service,1)进行到这个步骤,查看状态应为inactive(dead)。 [root@RHEL8-64-001 system]# systemctl status iris ● iris.service - InterSystems IRIS Loaded: loaded (/usr/lib/systemd/system/iris.service; enabled; vendor preset> Active: inactive (dead) lines 1-3/3 (END) 2) 下面来启动iris服务, [root@RHEL8-64-001 system]# systemctl start iris.service 3) 再次查看服务状态已经为active(running),启动成功。 [root@RHEL8-64-001 system]# systemctl status iris ● iris.service - InterSystems IRIS Loaded: loaded (/usr/lib/systemd/system/iris.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2021-05-31 07:57:43 EDT; 1min 37s ago Process: 1704 ExecStart=/bin/bash -c /intersystems/iris/irisstart 2>&1 | logger -t iris_start (code=exited, status=0/SUCCE> Tasks: 52 (limit: 11442) Memory: 246.0M CGroup: /system.slice/iris.service ├─2076 /intersystems/iris/bin/irisdb -s/intersystems/iris/mgr/ -w/intersystems/iris/mgr/ -cc -B -C/intersystems/i> ├─2085 /intersystems/iris/bin/irisdb WD > ├─2086 /intersystems/iris/bin/irisdb GC > ├─2087 /intersystems/iris/bin/irisdb JD > ├─2088 /intersystems/iris/bin/irisdb AUX7 > ├─2089 /intersystems/iris/bin/irisdb AUX6 > ├─2090 /intersystems/iris/bin/irisdb AUX5 > ├─2091 /intersystems/iris/bin/irisdb AUX4 > ├─2092 /intersystems/iris/bin/irisdb AUX3 > ├─2093 /intersystems/iris/bin/irisdb AUX2 > ├─2094 /intersystems/iris/bin/irisdb AUX1 > ├─2095 /intersystems/iris/bin/irisdb DBXD > ├─2098 /intersystems/iris/bin/irisdb -s/intersystems/iris/mgr -cj -p13 START^MONITOR ├─2102 /intersystems/iris/bin/irisdb -s/intersystems/iris/mgr -cj -p13 START^CLNDMN ├─2105 /intersystems/iris/bin/irisdb -s/intersystems/iris/mgr -cj -p13 stumonitor^JRNRESTO ├─2109 /intersystems/iris/bin/irisdb -s/intersystems/iris/mgr -cj -p13 ^RECEIVE 4)最后重启操作系统,测试iris可以随机自启动。 注:以上测试在Red Hat Linux Enterprise 8版本上进行。
文章
jieliang liu · 三月 15, 2021

iris-analytics-package 上场!

大家好, 现在是九局下半,但在我们的技术世界大赛还留了几手![laugh](https://community.intersystems.com/sites/all/libraries/ckeditor/plugins/smiley/images/teeth_smile.png "laugh") iris-analytics-package 旨在演示各公司可以如何轻松简单地在其软件中利用 InterSystems Analytics 支持。 无论是创建新的简单解决方案,还是使用 OpenExchange 改进现有解决方案。 大多数升级到 InterSystems IRIS 的公司都在利用该工具提供的所有功能;他们了解前沿技术,处于领先地位。 我们在本次竞赛中的方案有着不同的目标,即那些已使用 InterSystems 很长时间,但仍然未挖掘到其全部潜能的公司。 此项目是以其他项目为基础和灵感来创建的。 感谢 @Evgeny.Shvarov @Guillaume.Rongier7183 @Peter.Steiwer * [DeepSeeWeb](https://openexchange.intersystems.com/package/DeepSeeWeb) * [csvgen](https://openexchange.intersystems.com/package/csvgen) * [csvgen-ui](https://openexchange.intersystems.com/package/csvgen-ui) * [AnalyzeThis](https://openexchange.intersystems.com/package/AnalyzeThis) 这些项目一起成就了这个简单的向导。### 导入向导 主页面看起来很简单,涉及的过程也很直接。 正确使用向导需要填写几个字段: 1. 选择 CSV 文件 2. 分隔符 3. 类名称 4. 选择是否要创建多维数据集 5. 多维数据集名称 6. 选择向导是否应创建仪表板示例 为了使创建的内容可视化,我们使用 DeepSeeWeb 来实现。 ### 点击上传按钮后,gif 可能看起来定住了,但原因是记录太多。 选定的 CSV 文件超过 **15Mb**, 导入 **134100 条记录**!![]顺便说一下,此演示的数据集来自人道主义数据交换 - 一站式查找、分享和使用人道主义数据您可以尝试使用同一数据集;CSV 文件位于以下文件夹 iris-analytics-package/data 如果您喜欢这个应用程序,并认为我们值得您投票,请为 **iris-analytics-package** 投上一票! [https://openexchange.intersystems.com/contest/current](http://If%20you%20liked%20the%20app%20and%20think%20I%20deserve%20your%20vote,%20please%20vote%20for%20npm-iris!%20%20laugh%20https://openexchange.intersystems.com/contest/current)
文章
Johnny Wang · 二月 11, 2022

翻译文章-初学者资源库

Hello 家人们, InterSystems 学习网站有许多非常棒的课程。 因此,如果您想了解 InterSystems 并开始使用 InterSystems,希望这些资源可以帮到你: 概述: InterSystems 产品和技术简介 基础知识: InterSystems ObjectScript 基础知识 InterSystems SQL 概述 InterSystems IRIS 对象介绍 迁移到 IRIS 后端开发: 设置 RESTful 服务 在 InterSystems IRIS 中使用 JSON 面向开发人员的 InterSystems API Manager 动手实践 构建数据驱动的 Web 应用程序 集成开发: 集成架构 构建 BPL 业务流程 建立自定义业务运营 构建定制业务服务 数据转换基础 非常好的外部资源 互操作性课程 分析开发: IRIS BI 架构师 IRIS BI 分析器 BI 数据模型 InterSystems IRIS 自适应分析基础 InterSystems 报告入门 IntegratedML 动手实践 来自 learning.intersystems.com 的资源: 如果你想开始,您还可以根据您想要做的事情来个性化选择你需要的资源: 使用 InterSystems 构建服务器端应用程序 使用 InterSystems IRIS 构建业务集成 使用 InterSystems IRIS BI 分析数据 使用自适应分析构建数据模型 使用 InterSystems 报告以可视方式交付数据 在 InterSystems IRIS 中使用 IntegratedML 预测结果 或者,我们在这里为实施合作伙伴(或将做所有事情的其他人,资源对所有人开放)提供了一些更大的资源