Noah 4 architecture
The following figure shows a logical view of Noah 4, with the focus placed on the Noah Client side, which will be of particular interest to the Module developer.
Figure – The Noah 4 architecture including Noah 3 components
The Noah 4 system can be divided into 6 logical groups:
1Â Â Â Â Â Â Business API
2Â Â Â Â Â Â Module API
3Â Â Â Â Â Â NOAH 3 Module Server
4Â Â Â Â Â Â NOAH 2 Module Server and wrapper
5Â Â Â Â Â Â Noah 4 Client
6Â Â Â Â Â Â Noah 4 Server
One of the objectives of Noah 4 is to convert as much as possible from COM to .NET components. However, some COM remains due to the requirements of backwards compatibility. It is also a requirement that the HIMSA development platform should be the latest Visual Studio version.
The Module API
The ModuleAPI is very like the Business API, with both servers implementing almost the same object model for handling the business logic; the difference lies in the methods implemented by each API. The way in which the Module API is embedded into a module and used by Noah 4 modules is the same as for a business system.
NOAH 3 Module Server
NOAH 3 has been provided with complete backwards compatibility. The NoahClientProxy.dll converts all COM traffic from the NOAH 3 Module Server.dll into .NET, which can then be interfaced to Noah client. The NoahClientProxy.dll has support for all NOAH 3 methods.
NOAH 2 Module Server and Wrapper
In the case of NOAH 2 modules the components have been copied from latest NOAH 3.
The blue processes are all copied from NOAH 3 and ensure that the legacy system is in place and working for all NOAH 2 modules. Do note that NOAH 2 modules do not work on 64-bit operating systems, as they use 16 bit components.
Noah Client
Noah Client will normally not be visible to the end user since it is implemented as a Windows service. Noah Client will be responsible for keeping track of registered modules on the workstation and regulating the number of modules that are simultaneously connected to Noah on the same workstation. Noah Client will also provide access to Noah for Module APIs and Business APIs.
Noah Server
Noah Server has a number of tasks to perform;
Database access
License evaluation
Structured storage maintenance
Event distribution to attached Noah Clients
It is important to notice that Noah Server acts for the attached Noah Clients in the same way as the Noah Clients act for any attached Business API or Module APIs. Thus, Noah Server distributes events to attached Noah Clients. These events are broadcast to all attached Clients besides the Client originating the event.