I agree with you, Objectscript is very powerful language and more you know it, more you get to realize just how powerful it is. But this comes with a years and years of experience. This experience is harder and harder to find nowadays in the market. That is why when talking about programming languages, the world has moved on from creating proprietary languages in favor of standardized ones, exactly for that reason. If you know the language already, it will take you much less time to get up to speed.

Having Embedded Python there as a equal to Objectscript allows IRIS Data Platform to get much better attention from the developer community world-wide, exactly the one it finally deserves.

Hey Murillo,

As for the 1st thing, Match() method only returns true if the whole string is matching regular expression. In your case, it is not so, as there are multiple > in between.

Groups are in the regular expression defined with ( ), and are not meant for iterations in the way you expect. For example below, I am trying to extract every <ABC> DEF </ABC>

Set tRegEx = "<([^>]*)>([^<]*?)</([^>]*)>"
Set htmlSnippet = "<h1>Hello1</h1><h1>Hello2</h1>"
Set regex=##class(%Regex.Matcher).%New(tRegEx,htmlSnippet)

while regex.Locate() {  
    for i=1:1:regex.GroupCount { 
        WRITE i_" - "_regex.Group(i) 

Hey Eduard,

The code I sent you, which communicates with OPC UA Server is example for binary protocol (opc.tcp://Server). However, as a new version of old OPC, focus was to make old OPC more available to new trends. Therefore, by standard, each OPC UA server should be able to communicate also as a web service (http://Server). However, I could not find much of the OPC UA servers that offer Web Service capability. Maybe some commercial implementations.

OPC UA is organized similarly to Service Oriented Architecture (SOA) Standard,
with a secure channel.

OPC UA Java Library that I use in my PoC implementation has whole stack implemented. It connects to the OPC UA Server, downloads certificates required for communication, and creates the secure channel to communicate with the server.
There are two main messages: Browse Request und Read Service Request.
The data on OPC UA server are organized in form of a tree, where every node has different types; metadata, attribute, variable, etc. Read Service Request is very sensitive about node types.

I used https://github.com/OPCFoundation/UA-Java-Legacy repository as a basis to build Java Business Host, but this repo is not maintained, so if there are some newer versions of the standard, this repository might not be up to date anymore.

Hello Dmitry,
First of all, very nice article!
Do you know, or where can I find, how exactly are the data written within each of these blocks? I would like to see kind of a byte-to-byte representation.
Further, when it is being said about data being stored as a B* tree, is it meant in a sense of tree of above mentioned blocks or is there also a tree-like structure within each of the blocks?
For example, if I search for ^C(9996,46, yellow), I would jump to block #1346 and from there on I will iterate through each element of the block until I get to ^C(9996,46,yellow). Is this correct?