IRISHealth-2019.1.0.510.4 能在 CentOS 7.5上部署吗?
InterSystems非常高兴地宣布,InterSystems IRIS数据平台、InterSystems IRIS for Health和HealthShare Health Connect的2021.1版本现已向我们的客户和合作伙伴全面开放。
这个版本的为开发者提供了更大的自由度,使他们可以用自己选择的编程语言在服务器端和客户端建立快速和强大的应用程序。这个版本还使用户能够通过新的和更快的分析能力更有效地消费大量的信息。
第八章 Other Options of the Writer
Other Options of the Writer
Canonicalize()
方法的作用是:以规范化的形式编写XML节点。此方法具有以下签名:
method Canonicalize(node As %XML.Node, ByRef PrefixList, formatXML As %Boolean = 0) as %Status
node是文档的一个子树,作为%XML.Node的实例。PrefixList是以下其中之一:- 对于包含式规范化,将
PrefixList指定为“c14n”。 在本例中,输出的形式是XML Canonicalization Version 1.0,由https://www.w3.org/TR/xml-c14n。 - 对于排他规范化,将
PrefixList指定为具有以下节点的多维数组:
- 对于包含式规范化,将
| Node | Value |
|---|---|
PrefixList(前缀),其中前缀是名称空间前缀 |
与此名称空间前缀一起使用的名称空间 |
FormatXML控制格式。如果format XML为true,则编写器使用为编写器实例指定的格式,而不是XML规范化规范指定的格式。因此,输出不是规范的XML,但是已经对规范的XML进行了命名空间处理。
本帖概述了通过为 InterSystems 数据平台(InterSystems IRIS、Caché 和 Ensemble)上的数据库磁盘创建 LVM 物理盘区 (PE) 条带来实现低延迟存储 IO 的最佳实践配置,并提供了有用链接。
一致的低延迟存储是获得最佳数据库应用程序性能的关键。 例如,对于在 Linux 上运行的应用程序,经常在数据库磁盘中使用逻辑卷管理器 (LVM) ,因为它能够扩展卷和文件系统,或者为在线备份创建快照。 对于数据库应用程序,在使用 LVM PE 条带化逻辑卷的情况下,并行写入还可提高数据 I/O 的效率,从而有助于提高大规模连续读取和写入的性能。
第六章 控制名称空间的使用
控制名称空间的使用
如将对象投射到XML中所述,可以将类分配给名称空间,以便相应的XML元素属于该名称空间,还可以控制类的属性是否也属于该名称空间。
将类中的对象导出为XML时,%XML.Write提供其他选项,例如指定元素是否为其父级的本地元素。本节包括以下主题:
- 默认情况下,
%XML.Writer如何处理命名空间 - 如何指定本地元素是否合格
- 如何指定元素是否为其父元素的本地元素
- 如何指定属性是否合格
- 命名空间分配方式的摘要
注意:在InterSystems IRIS XML支持中,可以按类指定名称空间。通常,每个类都有自己的命名空间声明;但是,通常只需要一个或少量的命名空间。还可以在逐个类的基础上指定相关信息(而不是以某种全局方式)。这包括控制元素是否为其父元素的本地元素以及子元素是否合格的设置。为简单起见,建议使用一致的方法。
名称空间的默认处理
若要将启用XML的类分配给命名空间,请设置该类的Namespace参数,如将对象投影到XML中所述。在%XML.Writer会自动插入命名空间声明,生成命名空间前缀,并在适当的地方应用前缀。例如,以下类定义:
Class GXML.Objects.WithNamespaces.Person Extends (%Persistent, %Populate, %XML. 第五章 生成XML元素
生成XML元素
如果使用RootElement()启动文档的根元素,则负责生成该根元素内的每个元素。有三个选择:
将对象生成为元素
可以从InterSystems IRIS对象生成输出作为元素。在本例中,使用object()方法,该方法写入支持XML的对象。输出包括该对象中包含的所有对象引用。可以指定此元素的名称,也可以使用在对象中定义的默认值。
只能在RootElement()和EndRootElement()方法之间使用object()方法。
此示例为给定启用XML的类的所有已保存实例生成输出:
/// desc:将表里数据输出本地文件里
/// w ##class(PHA.TEST.Xml).WriteAll("Sample.Person")
ClassMethod WriteTableAllToXml(cls As %String = "", directory As %String = "E:\temp\")
{
if '##class(%Dictionary.CompiledClass).%ExistsId(cls) {
Write !, "类不存在或未编译"
Quit
}
s check=$classmethod(cls, "%Extends", "%XML. 第四章 添加命名空间声明
添加命名空间声明
默认行为
在%XML.Writer会自动插入命名空间声明,生成命名空间前缀,并在适当的地方应用前缀。例如,以下类定义:
Class Sample.Person Extends (%Persistent, %Populate, %XML.Adaptor)
{
Parameter NAMESPACE = "http://www.yaoxin.com";
}
如果导出此类的多个对象,则会看到类似以下内容:
DHC-APP> w ##class(Demo.XmlDemo).Obj2Xml(1)
<?xml version="1.0" encoding="UTF-8"?>
<Person xmlns="http://www.yaoxin.com">
<Name>yaoxin</Name>
<SSN>111-11-1117</SSN>
<DOB>1990-04-25</DOB>
<s01:Home xmlns="" xmlns:s01="http://www.yaoxin. 第三章 指定输出的字符集
指定输出的字符集
若要指定要在输出文档中使用的字符集,可以设置Writer实例的Charset属性。选项包括“UTF-8”、“UTF-16”以及InterSystems IRIS支持的其他字符集。
Writing the Prolog
XML文件的序言(根元素之前的部分)可以包含文档类型声明、处理指令和注释。
影响Prolog的属性
在writer实例中,以下属性会影响prolog:
Charset
控制两件事:XML声明中的字符集声明和(相应的)输出中使用的字符集编码。
NoXmlDeclaration
控制输出是否包含XML声明。在大多数情况下,默认值是0,这意味着已经编写了声明。如果没有指定字符集,并且输出定向到字符串或字符流,则默认为1,并且不写入任何声明。
生成文档类型声明
在根元素之前,可以包含文档类型声明,该声明声明了文档中使用的模式。
要生成文档类型声明,需要使用WriteDocType()方法,该方法有一个必选参数和三个可选参数。
就本文档而言,文档类型声明包括以下可能的部分:
<!DOCTYPE doc_type_name external_subset [internal_subset]>
如这里所示,文档类型有一个名称,根据XML规则,该名称必须是根元素的名称。 声明可以包含外部子集、内部子集或两者。
请问cahce中所有的数据库访问都是通过cache server完成的吗,比如使用终端访问数据库、studio开发的应用、使用第三方库使用代码都是先访问cache server,然后通过cache server对数据进行存取的吗?使用studio开发的应用程序也是跑在cache server中吗? 如果是的话studio开发的应用程序(比如web程序)如何跟cache server分开部署呢?
Hi colleagues!
Is there a way to export globals in XML if I have the access to Management Portal or any other web app?
Currently, it gives the option to export into gof format only.
Hi 同事们好!
是否有办法通过管理门户或任何其他的web app以XML的形式导出globals?
目前,它只提供了导出为gof格式的选项。
门诊医生工作站是帮助医生规范和高效的完成日常处方、病历书写、结果查询、会诊转诊等一系列诊疗行为的综合应用平台。该平台以电子病历为中心,内置常用模版和术语库;与医嘱系统、实验室系统、影像系统等相联通,为医生提供便捷、快速的辅助工具。
然而,日渐增长的患者数量、逐步扩大的职责范围和频繁添加的系统功能,都对医生的工作密度和强度造成影响。传统模式化的交互页面无法精准应对复杂多变的临床场景,且难以满足医生的个性化需求。
说到医院信息系统(EHR)的“个性化需求”,就不得不提到国际知名调研组织KLAS在2019年发布的The Arch Collaborative项目报告。该项目在179家已经部署EHR的医疗机构中,采取问卷和访谈的形式,通过对收集到的八万余份回复进行分析,得出如下结论:1)决定EHR应用功效的首要因素是医务人员(占所有因素的60%),2)决定医务人员EHR满意度的首要因素是可否满足个性化需求(占所有因素的32%);3)医务人员EHR满意度高的医疗机构无一例外的开展了严格的用户培训、进行了充分的上线前交流、实施了细致的个性化配置;4)部分在上线初期医务人员EHR满意度较低的医疗机构,采纳上述改进方案后,满意度提升了80%以上。
很多EHR已经将“个性化配置”列入其产品改进计划的重要部分,并且“医嘱偏好”、“诊断偏好”、“病历模板”等功能的出现,可以满足医务人员对“个性化”的一部分需求。
第二章 从对象写入XML输出
本章介绍如何从InterSystems IRIS对象生成XML输出。
创建XML编写器概述
InterSystems IRIS提供了用于为InterSystems IRIS对象生成XML输出的工具。可以指定XML投影的详细信息,如将对象投影到XML中所述。然后创建一个Writer方法,该方法指定XML输出的整体结构:字符编码、对象的显示顺序、是否包括处理指令等。
基本要求如下:
-
如果需要特定对象的输出,则该对象的类定义必须扩展
%XML.Adaptor。除了少数例外,该对象引用的类还必须扩展%XML.Adaptor。 -
输出方法必须创建
%XML.Writer的实例,然后使用该实例的方法。
下面的终端会话显示了一个简单的示例,在该示例中,我们访问启用了XML的对象并为其生成输出:
/// d ##class(Sample.Person).Populate(100)
/// w ##class(PHA.TEST.Xml).Obj2Xml(1)
ClassMethod Obj2Xml(ID)
{
s obj = ##class(Sample.Person).%OpenId(ID)
s xml = ##class(%XML.Writer).%New()
s xml.Indent=1
s status = xml. 第一章 InterSystems XML工具简介
介绍了如何使用 IRIS XML工具。
InterSystems IRIS为XML处理带来了对象的力量--可以使用对象作为XML文档的直接表示,反之亦然。由于InterSystems IRIS包括本机对象数据库,因此可以将此类对象直接用于数据库。此外,InterSystems IRIS提供了用于处理XML文档和DOM(文档对象模型)的工具,即使它们与任何InterSystems IRIS类无关。
用XML表示对象数据
有些InterSystems IRIS XML工具主要用于支持XML的类。要为类启用XML,需要将%XML.Adaptor添加到其超类列表中。%XML.Adaptor类使能够将该类的实例表示为XML文档。可以添加类参数和属性参数来微调投影。

对于启用了XML的类,数据可以采用以下所有形式:
- 包含在类实例中。根据类的不同,还可以将数据保存到磁盘,在磁盘中数据可以像其他持久类一样以所有相同的方式使用。
- 包含在
XML文档中,可以是文件、流或其他文档。 - 包含在
DOM(文档对象模型)中。
下图概述了用于在这些表单之间转换数据的工具:

%XML.Writer类使能够创建XML文档。输出目的地通常是文件或流。确定要包括在输出中的对象,系统根据在类定义中建立的规则生成输出。
%XML.Reader类使能够将合适的XML文档导入到类实例中。
如果您在升级了系统之后,打开SMP时看到如下报错,
ERROR #5001: 对象的服务器版本与客户端发送的版本不一致: %ZEN.Component.vgroup
一般情况下,这个报错是由浏览器缓存中残留的过期信息造成的,可以通过清除浏览器缓存来解决。
如果清除浏览器缓存之后仍然未能解决此问题,请您前往系统安装目录, 如:d:\InterSystems\IRIS\CSP\broker,查看css/js文件的时间戳在本次更新安装之后是否并没有相应地更新,如果没有,请您做以下尝试,
1)在IRIS中更改数据库IRISLIB, 之前的版本是CACHELIB, 取消只读装载,方法如下,打开管理门户SMP, 系统管理->配置->本地数据库,选择要更改的数据库,取消"只读方式挂载",点击【保存】。
2)重新编译%Zen组件,
w ##class(%SYSTEM.OBJ).Compile("%ZEN.Component.vgroup")
此时,再次前往,d:\InterSystems\IRIS\CSP\broker,会看到相关的css/js文件时间戳已经更新。
3)恢复上述数据库的只读装载。
如果以上办法仍然未能解决您的问题,建议您联系WRC,寻求Support的进一步帮助。
.png)
这是一个系列的第一篇文章。我将使用bpmn符号提供细节,如何开发、部署、保护、运营和消费IRIS数字服务,并与IRIS文档相联系。每一个子流程都将用一个单独的bpmn图来描述。这就是宏观过程。
Documentation links:
1. https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=PAGE_data_science
2. https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=D2GS
3. https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=PAGE_rest_json, https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=PAGE_soap
4. https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=PAGE_multimodel
5. https://docs.intersystems.com/irislatest/csp/docbook/Doc.
新安装的cache在本地可以连接terminal,外部主机连接不上,网络通畅,可以连接studio,端口telnet 23端口不通
ensemble提供的soap服务如何自定义URL地址
如将mirror主机转为生产机:详细操作步骤或命令
Caché 网络实用工具
第一章 发送HTTP请求☆☆☆☆☆
第二章 设置和获取HTTP标头☆☆☆☆☆
第三章 发送HTTP请求☆☆☆☆☆
第四章 收发电子邮件☆
第五章 向邮件添加附件☆
第六章 从POP3服务器提取电子邮件☆
第七章 从POP3服务器提取电子邮件☆
第八章 处理收到的电子邮件☆
第九章 创建、编写和阅读MIME邮件☆
第十章 使用FTP☆☆☆☆☆
第十一章 发送和接收IBM WebSphere MQ消息☆
第十二章 IBM WebSphere MQ检索邮件☆
第十三章 使用SSH☆
第十四章 其他InterSystems %Net工具☆☆☆
第十五章 Caché WebSocket☆☆☆
前言
手册帮助程序员使用%Net包中的一些关键类,这些类为许多有用的Internet协议提供了易于使用的接口。因为这个包的类文档相当广泛,所以本手册提供了一个快速、有条理的概述,而不是深入研究每个参数、属性和方法。熟悉本手册中提到的协议和第三方工具。
预告
下一期系列将用一个月的时间连载,《Caché XML》,敬请期待。
交流群
- QQ群号:410039091
- 笔者QQ:454115408
- 公众号:技术理科直男
- intersys版主:姚鑫
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f9VqwzNP-1608850948003)(3E1D939266954ED48BDAEA9B8086B11E)]](https://img-blog.csdnimg.cn/20201225070433434.png)
大型免费课程,进群410039091获取课程目录
- 适合所有阶段程序员,总有一款你遗漏的知识点!

第七章 Caché JSON %JSON快速参考
%JSON快速参考
本节提供本章中讨论的%JSON方法、属性和参数的快速参考。
%JSON.Adaptor方法
这些方法提供了从JSON序列化和序列化到JSON的能力。
%JSONExport()
%JSON.Adaptor.%JSONExport()将启用JSON的类序列化为JSON文档,并将其写入当前设备。
method %JSONExport(%mappingName As %String = "") as %Status
%mappingName(可选)-要用于导出的映射的名称。基本映射由"" 表示,并且是默认映射。
%JSONExportToStream()
%JSON.Adaptor.%JSONExportToStream()将启用`JSON的类序列化为JSON文档并将其写入流。
method %JSONExportToStream(ByRef export As %Stream.Object,
%mappingName As %String = "") as %Status
export- 包含序列化的JSON文档的导出流。%mappingName(可选)-要用于导出的映射的名称。基本映射由""表示,并且是默认映射。
%JSONExportToString()
%JSON.Adaptor.
第六章 Caché JSON 使用JSON适配器
JSON适配器是一种将ObjectScript对象(registered, serial or persistent)映射到JSON文本或动态实体的方法。本章涵盖以下主题:
- 导出和导入-介绍启用
JSON的对象并演示%JSON.Adaptor导入和导出方法 - 带参数映射-描述控制如何将对象属性转换为
JSON字段的属性参数。 - 使用扩展数据映射块-介绍将多个参数映射应用到单个类的方法。
- 格式化
JSON-演示如何使用%JSON.ForMatter格式化JSON字符串。 %JSON快速参考-提供本章中讨论的每个%JSON类成员的简要说明。
Exporting and Importing
从JSON序列化或序列化到JSON的任何类都需要子类%JSON.Adaptor,它包括以下方法:
%JSONExport()将启用JSON的类序列化为JSON文档,并将其写入当前设备。%JSONExportToStream()将启用JSON的类序列化为JSON文档并将其写入流。%JSONExportToString()将启用JSON的类序列化为JSON文档并将其作为字符串返回。%JSONImport()将JSON作为字符串或流导入,或者作为%DynamicAbstractObject的子类导入,并返回启用JSON的类的实例。
之所以称为Dynamic,是说这个对象在代码编译的时候可以不定义对象的属性和结构,在runtime时才根据装入的数据来产生对象定义。IRIS里用Dynamic Object来处理JSON数据。简单说: 先定义一个Dynamic Object, 把JSON数据装进去,然后用对象的方式处理JSON文档。
让我们看看是它是怎么工作的。
创建一个Dynamic Object很简单, 标准而且啰嗦的写法是:
set dynObject1 = ##class(%DynamicObject).%New()
大家通常用简单的写法,像这样用一个{}来定义Dynamic Object:
DEMO>set dynObject1 = {}
DEMO>zw dynObject1
dynObject1={} ; <DYNAMIC OBJECT>
字符串,流到DynamicObject的导入导出
把JSON数据从字符串或者流导入DynamicObject被称作Deserializing;反之,把DynamicObject里的JSON导出来到String或者Stream叫Serializing。在类%DynmicObject中用的是%FromJSON()和%ToJSON()两个方法,一个是类方法,一个是实例方法:
//从字符串,流里导入数据到%DynmicObject。 第十五章 Caché WebSocket
使用WebSockets (RFC 6455)
web是围绕请求/响应范例构建的:客户机向服务器发送请求,服务器通过向客户机发送响应进行响应。此范式和HTTP本身不允许此通信协议的反向形式,即服务器与客户机启动请求/响应周期。已经开发了许多技术来解决了这个问题,即服务器可以启动与客户机的对话。这些技术通常被称为基于推送或 comet-based的技术,它们都存在不适合在web基础设施上进行全面部署的问题。目前使用的三种主要技术如下所述。
Short Polling 短轮询
使用这种技术,客户端定期发送HTTP请求来检测服务器状态的变化,服务器被编程为立即响应。空响应表示没有变化。
问题:
- 轮询频率(和响应能力)受到客户机可以容忍的刷新延迟的限制。
- 每个请求都是一个完整的
HTTP请求/响应往返过程,这会导致大量的HTTP流量,而这又会给服务器和网络基础设施带来无法接受的负担 - 每个消息交换都承载着
HTTP协议的开销,如果消息大小超过了最大传输单元(MTU)(通常是以太网的1500字节),则会特别繁重。
Long Polling 长轮询
使用这种技术,客户端发送HTTP请求,但服务器只在需要通知客户端更改时才响应。客户端通常在服务器发送响应消息时发送另一个“长轮询”请求。
第十四章 其他InterSystems %Net工具
下面是%Net中其他一些有用类的简短列表:
%Net.URLParser
InterSystems IRIS提供了一个实用程序类%Net.URLParser,可以使用它将URL字符串解析为其组成部分。例如,当您重定向HTTP请求时,这很有用。
该类包含一个类方法Parse(),它接受一个包含URL值的字符串,并通过引用返回一个包含URL各部分的数组。例如:
/// 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.InterSystems产品有四种备份方法:
(1) 外部备份
(2) 在线备份
(3) 冷备份
(4) 传统的并行外部备份
有关这些方法的细节请参考在线文档 https://docs.intersystems.com/irisforhealthlatest/csp/docbook/DocBook.U…
以下是对每种备份方法的简要描述:
(1) 外部备份
外部备份是InterSystems推荐的最佳备份方式。
外部备份一般是对数据库文件所在的存储创建快照的方式来实现。
创建快照可以在多个层面进行,例如存储层面,操作系统层面,等等,因此这些相关技术和工具一般由第三方来提供。
在做快照前,一定要先停止对数据库文件的写入(InterSystems IRIS的IRIS.DAT,Caché/Ensemble的CACHE.DAT)。但是用户进程可以继续对内存进行更新,而不需要中断。
InterSystems提供了停止对数据库文件写入的方法,用户可以把这个加入到快照工具的脚本里。
外部备份一般包括以下几步:
1. 使用Backup.General.ExternalFreeze()方法来停止对数据库文件的写入。
2. 使用第三方快照工具来对文件系统创建快照。
3. 使用Backup.General.ExternalThaw()方法来恢复对数据库文件的写入。
4.
第十三章 使用SSH
%Net.SSH软件包支持SSH(安全外壳)通信。本主题简要介绍此包中的类。
创建SSH会话
%Net.SSH.Session表示SSH会话。要使用此类,请执行以下操作:
- 创建类的实例。
- 使用
Connect()实例方法连接到服务器。 - 使用
AuthenticateWithKeyPair()或AuthenticateWithUsername()向服务器验证身份。 - 使用
%Net.SSH.Session的其他方法执行进出远程系统的单个文件的SCP(安全复制)操作、执行远程命令、传输TCP通信或执行SFTP操作。
例如,使用SFTP将会话用于SFTP操作。此方法通过引用返回可用于SFTP操作的%Net.SSH.SFTP实例。
重要提示:有关可以使用这些类的受支持平台的信息,请参阅%Net.SSH.Session和%Net.SSH.SFTP的类参考。
示例:通过SFTP列出文件
以下方法显示了如何通过SFTP在服务器上写入文件列表:
Method SFTPDir(ftpserver, username, password) As %Status
{
set ssh = ##class(%Net.SSH.Session).%New()
do ssh.Connect(ftpserver)
do ssh.什么是 Data Fabric?
“这是一套用于在公司中实施、管控、管理和执行数据操作的硬件基础架构、软件、工具和资源,功能包括跨所有数据存储平台的数据采集、转换、存储、分发、整合、复制、可用性、安全性、保护、灾难恢复、演示、分析、保存、保留、备份、恢复、归档、召回、删除、监视和容量规划,并可使应用程序的使用满足公司的数据需求”。 (Alan McSweeney)
Data Fabric 是一种可利用包括多模型数据库、Analytics、AI、ESB/SOA、微服务和 API 管理在内的所有可用资源和技术创新来获取商业价值的新型数据操作方法。
按照此网址的指示 https://gettingstarted.intersystems.com/language-quickstarts/java-quick… 下载quickstarts-java示例代码 运行xepplaystocktsTask1模块程序提示InterSystems XEP is not supported by the specified server 请问有人知道具体原因吗我的server有什么不对吗。
使用客户端的server manager添加server没有server类型的选项,是因为我使用的cache版本目前不支持吗
第十二章 IBM WebSphere MQ检索邮件
检索邮件
要检索邮件,请执行以下操作:
- 按照“创建连接对象”中的说明创建连接对象。在这种情况下,请创建
%Net.MQRecv的实例。Connection对象有一个消息队列,可以从中检索消息。 - 根据需要调用以下方法:
%Get()-通过引用返回字符串消息作为第一个参数。%GetStream()-给定初始化的文件字符流,此方法从队列中检索消息,并将其放入与该流关联的文件中。请注意,必须设置流的Filename属性才能对其进行初始化。不支持二进制流。
- 检查调用的方法返回的值。请参阅“获取错误代码”。请记住,当队列为空时,IBM
WebSphere MQ返回2033。 - 检索完消息后,调用
Connection对象的%Close()方法以释放动态链接库的句柄。
示例1:ReceiveString()
下面的类方法从mqtest队列检索消息。
///Method returns string or null or error message
ClassMethod ReceiveString() As %String
{
Set recv=##class(%Net.MQRecv).HealthConnect中创建HTTP服务端
这里我说说怎么在HealthConnect上开发HTTP服务。
作为消息引擎,HealthConnect会需要从一个接口接收HTTP请求发送到另一个接口,中间做消息转换,路由等等,目的的接口可能是HTTP,或者SOAP,REST等等。这里只介绍HTTP服务的内容,也就是最简单的两种实现:
第一种:实现客户定制的HTTP服务业务服务组件(Business Servie)
创建Business Service类,继承EnsLib.HTTP.Service, 如下面的示例:
Class SEDemo.IO.HTTP.ServiceExample1 Extends EnsLib.HTTP.Service
{
Parameter ADAPTER;
Method OnProcessInput(pInput As %Stream.Object, Output pOutput As %Stream.Object) As %Status
{
//创建Ensemble消息发送给其他组件
set pRequest=##class(Ens.StreamContainer).%New()
Set tSC=pRequest.StreamSet(pInput)
set tSC= .

