Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: draw.io diagram "Untitled Diagram.drawio" edited

What is the ModuleApiProxy?

The ModuleApiProxy has been created to allow Noah Modules utilizing .NET 6 or later to connect to Noah 4.
The current ModuleAPI which is implemented using the Full .NET Framework (version 4.6) relies upon technologies that have been deprecated in .NET 6 and later.
To mitigate this HIMSA is providing the ModuleApiProxy which will host the Noah 4 ModuleApi in a process separate from the .NET 6+ module and allow the module to interact with the Noah 4 ModuleApi via the ModuleApiProxyLib.
See diagram below:

Drawio
zoom1
simple0
inComment0
pageId3211264056
custContentId3253108775
lbox1
diagramDisplayNameUntitled Diagram.drawio
contentVer12
revision12
baseUrlhttps://himsanoah.atlassian.net/wiki
diagramNameUntitled Diagram.drawio
pCenter0
width11011120.00000000000025
links
tbstyle
height771770.5

Legend:

Green = Shared library (provided by Himsa)

...

Note

Please observe!!

When porting modules utilizing the Noah 4 ModuleApi to a .NET 6+ module using the ModuleApiProxy there are some differences to be aware of.
When This mostly applies when updating and retrieving the actionsactions but events and callbacks are also handled differently.
See: Differences in usage of the ModuleAPI Proxy vs the traditional moduleAPI

Available samples and source code (SDK)

The binaries for the ModuleApiProxyLib and SharedLib libraries and .NET 6+ module sample source code is available here:
https://www.himsa.com/members-2/noah-4-module-development/noah-module-development-with-net-6-and-later/ (log-in required)

...

When developing a new .NET 6+ module for Noah 4 you will need to reference a few files required when developing a .NET 6+ module utilizing the ModuleApiProxy.

Steps involved to develop a .NET 6+ module that utilizes the ModuleApiProxy

  1. Reference the following files in your .NET module project (available from the ModuleApiProxy SDK see here:

...

Module Deployment

When deploying a .NET 6+ module using the ModuleApiProxy to a computer with Noah 4 the following files must be deployed.
The files in the ModuleApiProxy are self-contained and do not depend upon the .NET Runtime, however the .NET 6+ module utilizing the ModuleApiProxy will have to install the appropriate .NET Runtime upon which it depends.
The .NET 6+ Runtimes can be downloaded from here: Download .NET

Required steps when deploying a .NET 6+ module using the ModuleApiProxy

In addition to all the .NET 6+ modules files the following files, (which are ModuleApiProxy dependencies), must be added to the modules deployment folder as part of the installation process.
All Module Api Proxy files deployed to the .NET 6+ modules folder (SharedLib.dll, ModuleApiProxyLib.dll, ModuleApiProxy.exe, ModuleApiProxy.Config.json) can be removed when the module is uninstalled.

Info

Install ModuleApiService by running the Setup.exe (available from the ModuleApiProxy SDK).
The setup.exe will install the 'ModuleApiService' which creates and updates the certificate used for the https communication between ModuleApiProxyLib and ModuleApiProxy.
This file can be installed without user interaction using this command line:
setup.exe /v"/qb"
or silently, (no user interaction and no progress is displayed), using this command line:
setup.exe -s /v"/qn"
The ModuleApiService must be installed before the ModuleApiProxy can be used.

Note

The ModuleApiService should never be uninstalled when a PIMA module is uninstalled as this service is shared by all PIMA modules on the computer

Info

Deployment configurations (version dependent)
The following step specifies different deployment folders for PIMA 1.0.0 and 1.0.1 vs 1.0.3.
The files below (available from the ModuleApiProxy SDK) must be included when installing/deploying the module to a computer where Noah 4.9 or later is installed (see

...

below)

  1. ModuleApiProxyLib.dll

  2. SharedLib.dll

  3. ModuleApiProxy.exe

  4. ModuleApiProxy.Config.json

...

...

Using PIMA version 1.0.0 and 1.0.1 of the ModuleApiProxy the component must be deployed like this:
(In the table below the files in cells with green background are provided by HIMSA)

.NET 6+ Module Deployment files

Deployment Folders

MyDotNet6Module.exe
“Other Module related files“

..\MyModuleFolder\

SharedLib.dll
ModuleApiProxyLib.dll
ModuleApiProxy.exe
ModuleApiProxy.Config.json

..\MyModuleFolder\

Starting with version 1.0.3 of the ModuleApiProxy the component must be deployed like this:
(In the table below the files in cells with green background are provided by HIMSA)

.NET 6+ Module Deployment files

Deployment Folders

MyDotNet6Module.exe
“Other Module related files“

..\MyModuleFolder\

ModuleApiProxyLib.dll
SharedLib.dll

..\MyModuleFolder\

ModuleApiProxy.Config.json
ModuleApiProxy.exe

..\MyModuleFolder\.proxy