Overview
Nirva is a robust application server combined with integration services and orchestration.
Nirva application platform is available to download but the product is at the end of the product lifecycle which prevents users from receiving updates.
We stopped the marketing on the product.
Nirva is used as:
Nirva application platform is available to download but the product is at the end of the product lifecycle which prevents users from receiving updates.
We stopped the marketing on the product.
Nirva is used as:
- An Application Server for enterprise-wide projects.
- An Application Platform for the products.
Projects
Nirva targets tactical projects for large and medium companies, especially for back-end processes. This kind of project is often motivated by cost reduction but is paradoxically supported by oversized products (e.g. WebSphere, WebLogic). Nirva allows significant cost savings, not only for licenses, but also for development, maintenance and operations costs.
For the larger companies, Nirva adequately complements the enterprise strategic tools by allowing them to be perceived as a business solution by hiding the technical aspects of the various components and by federating heterogeneous information and application systems.
For medium size companies, Nirva projects can be used as a more strategic tool by supplying a robust, independent and complete application base layer.
For the larger companies, Nirva adequately complements the enterprise strategic tools by allowing them to be perceived as a business solution by hiding the technical aspects of the various components and by federating heterogeneous information and application systems.
For medium size companies, Nirva projects can be used as a more strategic tool by supplying a robust, independent and complete application base layer.
Products
For software suppliers, Nirva is used as an application backbone supporting their own products. Its feature rich and flexible architecture hides a significant part of the technical components, thus allowing product development to focus on core functionality. Nirva offers value from the technical integration layer up to the presentation and front-end layer.
Nirva supports the development of applications opened to the outside world (APIs), secured (users and rights management) and extensible (distributed architecture). Its application domain is unrestricted (bank, insurance, industry, health care, etc.).
Nirva can host and support standard applications (client/server) or ‘Software as a Service’ (SaaS) type with multitenancy management.
Users are small and medium software suppliers. Nirva can also be used by specialized integrators who wish to standardize and reuse their development.
Read more : Nirva overwiew & Nirva user guide
Nirva supports the development of applications opened to the outside world (APIs), secured (users and rights management) and extensible (distributed architecture). Its application domain is unrestricted (bank, insurance, industry, health care, etc.).
Nirva can host and support standard applications (client/server) or ‘Software as a Service’ (SaaS) type with multitenancy management.
Users are small and medium software suppliers. Nirva can also be used by specialized integrators who wish to standardize and reuse their development.
Read more : Nirva overwiew & Nirva user guide
Downloads
Updates
Version 4.10.002
Version 4.10.001
Version 4.10.000
Version 4.9.001
Version 4.9.000
Version 4.8.003
Version 4.8.002
Version 4.8.001
Version 4.8.000
Version 4.7.011
Version 4.7.010
Version 4.7.009
Version 4.7.008
Version 4.7.007
Version 4.7.006
Version 4.7.005
Version 4.7.004
win32: http://download.nirva-systems.com/server/binaries/patch_4.7.004_1/win32/nvjava.dll
win64: http://download.nirva-systems.com/server/binaries/patch_4.7.004_1/win64/nvjava.dll
linux32: http://download.nirva-systems.com/server/binaries/patch_4.7.004_1/linux32/nvjava.so
linux64: http://download.nirva-systems.com/server/binaries/patch_4.7.004_1/linux64/nvjava.so
Version 4.7.003
Version 4.7.002
Version 4.7.001
Version 4.7.000
Version 4.6.000
Version 4.0.002
Version 4.0.001
Version 4.0.000
- Bug correction in the embedded per IO module.
- SSL: possibility to restrict SSL protocol to a certain level.
- Sessions cookie: management of HttpOnly and Secure Http flags (SESSION:USED_ID_COOKIE command).
Version 4.10.001
- Changing the perl version on the windows version to perl 5.26 because some perl modules were not working on 4.10.000. The linux perl version is still 5.10.
Version 4.10.000
- Changing the registry task names that corrects a bug in registry export in XML format. The change is transparent for the user (no code or configuration to modify).
- Porting of the code to visual c++ 2015 for windows version. Services compiled with a previous version are compatible with the new one.
- Security: the password storage uses now sha256 hashs instead of md5.
- Command OBJECT:TABLE_GET_ROW: Adding a mode to get all the raw to an INDSTRINGLIST object with mapping of the column names.
- Scheduler: modification of the repeat mode. There is a new option allowing to run a task based on the start time of the last occurence (instead of the last time).
- Scheduler: Global option to use gmt time instead of local time.
- Rest connector: Dynamic URIs by using the wildchar "*" in the URL definition.
- Virtual printer: Possibilty to display a message with a link after input processing. The processing can be stopped at this stage.
- Sessions screen: type filter and sort.
Version 4.9.001
- Bug correction in command parse parameters (rest connector not working on linux and may produce memory leaks under windows).
- Bug correction when using the question mark in rest connector uri.
Version 4.9.000
- Sorting of table and string list objects now made internally in unicode.
- The possibility to set an empty session open and close procedure was not working in the SESSION:CREATE command.
- Dynamic host in web services. It is now possible to set the web service host name as "dynamic" so the host used in WSDL will be the host used when requesting this WSDL.
- The TABLE_GET_ROWS command can now deliver the resulting rows in a string object instead of a table object. With this feature, one can retrieve a complete table in a single string than can be parsed by the programmer. This increases speed.
- The OBJECT:TABLE_SORT and OBJECT:STRINGLIST_SORT have a new optional parameter named LOCALE allowing to explicitly define the locale (language) of the sort. In most cases this parameter will not be necessary since the sort is now made in unicode.
- The java session open and close procedure can now be in a jar file. ATTENTION: with this modification, the server now returns an error if the session open procedure is not found. This may produce incompatibility in your application if your code defines a session open procedure that doesn't exist.
- REST connector. The rest connector, also called universal connector, gives full control to the user to the input request data and to the response. The programmer defines the REST urls in the application.dsc file and provides procedures that will process input and output data returned to the user. The procedure will receive all input data including HTTP method, headers, content, etc…. The REST connector also introduces a 2 steps login (token identification). This avoids sending the password from client to server.
- Applications urls. One can set pre-defined order urls at application level in the application description file. This allows simplifying and reducing the size of the urls sent to Nirva.
- Adding a command named COMMAND:GET_HTTP_HEADERS that gives the http headers when the command comes from the web.
- Adding a command named COMMAND:SET_HTTP_RETURN_CODE that sets the HTTP return code when the command comes from the web.
Version 4.8.003
- Logs: the log lines containing a µ character where producing an xslt error in log search.
- We changed the way of stopping listeners. Now all listeners are stopped simultaneously so they stop more rapidly.
- The OBJECT:TABLE_EXPORT command has a new parameter for adding an utf8 BOM to the export file.
- New command OBJECT:TABLE_GET_COLUMN_NAMES that retrieves all the table column names in the output buffer.
- A renderer can now set an HTTP return code.
Version 4.8.002
- Possible crash of the http or https server when using both ipv4 and ipv6 protocols.
- Web service: the namespace in the soap response was not correct when the protocol was defined in the webservice host name.
Version 4.8.001
- The alias were not working fine in case of redirection.
- There was an issue with the NV_VAR_IDENT parameter when used in requests (commands from on server to the other).
- Possibility to view log data even if the LOG_ADMIN permission is not set. The LOG_SEARCH permission must then be set.
- Adding new permissions: LISTENER_LIST and SCHEDULER_LIST allowing to view scheduler and listener lists.
Version 4.8.000
- The date/time format for the http file cache were not set correctly. This could make some web files not accessible in servers with a local not in english.
- The output buffer was truncated if its content is longer than 256 byte in java procedures.
- The unicode option of the comand line was not working (-u option).
- The machine and local user name were not encoded correctly. This was producing a bad password error if the machine name was not ascii.
- The encoding of line feeds was not made between client and server for the session_open and session_close parameters. This could break the procedure parameters if there were some.
- There was an error in xslt transform for input xml message when the body was greater than the limit (parameter) for memory messages (1024Kb by default).
- The state of the web services operation was not kept after updating (re-install).
- The service renderer content type was not working.
- The application containers were not cleared after a failed application start.
- Renderer compilation was not working on linux.
- Log for web services was not working (nothing logged).
- The success procedure for scheduled tasks were not correctly implemented (procedure not running).
- The file origin was not transmitted from client to server in the OBJECT:SEND command.
- The double spaces in the MISC:EXEC command were replaced by a single space.
- The MAIL:SEND command was not throwing any error in case of error.
- Some exceptions of the perl interface were reported in logs as level 2 instead of level 1.
- Web files log now also logs errors when accessing files (instead of only successful accesses).
- Application init: If the init procedure fails there was standard message. Now the original error is also displayed in the info field.
- Speed up variable recognition process (command parser).
- Changing the way we write registry in order to avoid loosing information in case of crash (we use now file renaming).
- The service executable path may now be relative.
- The OBJECT:TABLE_SET_CELL_LINE allows directly adding a new line to the cell if the given line index is 0.
- The server command line "-c" parameter doesn't need to be the first one any more.
- Test sets: always reload the test table from file before displaying the list of test sets.
- Adding list of services required by an application (APPLICATION:INFO command) and list of running applications using required services (SERVICE:INFO command).
- Adding a removefile action in the package description file. This action removes the specific file or files in the target directory. Can be used with wildchard.
- Adding IPV6 protocol for TCP/IP. The server can be configured to listen on IPV4 only or both IPV4 and IPV6. Client can use IPV4 or IP6 address to connect to server.
- Adding a new NV_HTTP_HOST variable that gives the host http header of the original command.
- Adding a java interface log.
- Application start: adding a reason telling why the starting failed in the error message.
- Adding possibility to change the command variable identifier at application, service and command level (default is still # character).
- Adding a stop on error and stop on success option for scheduled tasks with repeat mode enabled.
- Adding the task name as parameter (NV_TASK_NAME) to task procedure (and task failed and success procedures).
- Adding listener name to the listener main and failed procedures.
- Adding an information telling when a task has been ran manually in the task list.
- Adding socket error information in error info field in a request.
- Security fix: Adding permission to display error info field to clients. Some information in the info field can reveal some server file paths so this feature corrects this situation.
- Adding a flag at application level to disable the trigger if one has been defined in the dsc file.
- Natural sort. The table sort can be done in a "natural" way. This is useful if items contains both letters and digits.
- Adding a new command CONTAINER:MOVE that moves a container to another one.
- Adding a new command COMMAND:GET_HTTP_HEADERS that retrieves the http headers of the original command.
Version 4.7.011
- Bug in the definition of the log and home registry directories in the configuration tool.
- Security: OpenSSL version changed to 1.0.01g. This version corrects an important security issue named "heartbleed".
- Bug correction in the encoding of the output buffer.
- Http headers: possibility to define several http headers with the same name. This is useful for cookies. The COMMAND:SET_HTTP_HEADER command has been modified with an APPEND parameter.
- Logs: the time precision is now the millisecond in the log files.
- Registry: test if an entry exists. We added a parameter "ENTRY" to the REGISTRY:EXISTS command in order to test existence of a single entry.
- Linux compatibility: we compiled with older versions of glibc (2.11.3) in order to be compatible with more linux versions.
- Web services: possibility to define several hosts in the parameters, each associated to a wsdl port.
- Web services: the web service path defined in the wsdl can be customized for each web service.
- Confirmation dialog when deleting a registry key from the configuration interface.
- The process ID (PID) is now recorded in the nirva.run file located in the Bin directory.
- Session cookie: the session ID can be transmitted as a cookie between web browser and Nirva server. This is done by using the new SYSTEM:SESSION:USE_ID_COOKIE command in the open session procedure.
- Logs: a new parameter in logs configuration allows flushing logs at each line written. This is now the default.
- Package file definition: possibility to have a relative file (relative to the current section) in the copyfile command instead of an absolute path. The ".." can also be used in order to point to the parent folder.
- Java procedures: Class cache. We implemented a class cache in memory in order for the system to not reload a java procedure class. This saves time and potentially hides a Sun JVM bug in heap management.
- Java procedures: Environment class loaders. As an option, an environment class loader can be defined for java procedures at system, application, service or web service level. This class loader is then used as a parent class loader for each procedure loaded in the corresponding environment. This improves performance (avoids loading some jars at each call of a procedure) and allows sharing global jar files for the entire environment. The global jars must be in a subdirectory named JavaLib in the Procs directory.
- Open session: possibility to change or remove a parameter of the original command in the session open procedure.
- Security: we added a mechanism in order to check that command parameters do not contain themselves a nirva command. This check injection mechanism is used by default but can be disabled in the application configuration file (dsc file).
- Encoding: adding a message in the console and in the log if an encoding issue is detected (ex encoding non iso character to iso)
Version 4.7.010
- In nvc client when the session id just contains a server ID, the connection parameter were not send to the server.
- A line feed in a command parameter was not transmitted correctly between client and server.
- An application required service could not be stopped even if the application requiring it was stopped.
- Log search: the date format YYYYMMDD was producing an error.
- Web services: there was an exception when the URL path to the web service (webs command) was containing a subpath.
- Implement a custom java ClassLoader to unlock the jar when they are not in use anymore. This is mainly for Windows that locks the jar files.
- Lzma compression in client and server.
- Adding exception checking for xslt transformation.
Version 4.7.009
- X-Forwarded http header management. Nirva now takes care of this header in order to retreive the correct IP address of the sender of a command in case there are some proxies in the route.
- External command trigger. This feature allows defining one or several procedures launched when an external command (from a client connector) is received. These procedures are defined in the application.dsc file.
Version 4.7.008
- Application required services. An application can define some required services by setting an entry named REQUIRED in the application dsc file. If a service is required by an application, it's not possible to stop the service while the application is running.
- Instance name. An instance name (called machine ID) can now be added to the session ID. This feature allows using apache front end load balancing features synchronized with the session ID.
Version 4.7.007
- Scheduler issue under linux. Some scheduled tasks may start at a not expected time on linux.
Version 4.7.006
- Cleanup session in service where session not initialized
- Tasks are started too early at application start
- At install under windows, if user set the drive letter of the install directory with a slash instead of a backslash, Nirva may fail to start.
- Flushing logs when Nirva starts and stops
- Openssl is now upgraded to version 1.0.1c.
- Configure the encoding of the Nirva Server). It's now possible to set the unicod eencoding directly from the configuration tool.
- Documentation icon in Web services. Now a web service can have its own documentation.
- Web service operations are now sorted alphabetically in the configuration tool.
Version 4.7.005
- Truncation of Commands returned String in java interface. When the output buffer is greater than 256 bytes, the last character is missing. This issue occurs only in v 4.7.002 to v 4.7.004.
- Bug corrrection on the encoding of the origin filename in case of file upload.
- Adding a command LOG:GET_LEVEL that retreives the current level of the log.
- Adding a flag to discard the sending of the http "server" header that contains a string identifying the Nirva server. This is a security enhancement.
- Adding a command filter at application level to disable or allow access to nirva commands from client or web connectors.
Version 4.7.004
- Truncation of Commands returned String in java interface. When the output buffer is greater than 256 bytes, the last character is missing. This issue occurs only in v 4.7.002 and 4.7.003.
- Pipes in returning SQL table (SQLite interface). When doing a SQL command for INSERT or REPLACE and using a pipe "|" character within the VALUES to be inserted the resulting select results in 2 NVDATA objects for the cell where the pipe was inserted.
- No error thrown on OBJECT:CREATE command with FILE object. When giving an erroneous filename on OBJECT:CREATE command with TYPE='FILE' and PERSIST='-1', command does not throw an error but does not create the file.
- ATTENTION
- The bug has not been corrected complety on v 4.7.004 so we made a patch to this version that corrects entirely the issue. This patch is only for the 4.7.004 version. It must not be applied on other versions.
- To install it, download the file corresponding to your Nirva version:
win32: http://download.nirva-systems.com/server/binaries/patch_4.7.004_1/win32/nvjava.dll
win64: http://download.nirva-systems.com/server/binaries/patch_4.7.004_1/win64/nvjava.dll
linux32: http://download.nirva-systems.com/server/binaries/patch_4.7.004_1/linux32/nvjava.so
linux64: http://download.nirva-systems.com/server/binaries/patch_4.7.004_1/linux64/nvjava.so
Version 4.7.003
- The exception management changed in the 4.7.001 version under linux. We added a compilation option allowing to throw an exception when a signal occurs. This is not working when the jvm is beeing used because the jvm has its own exception management that is not compatible. . This bug has been corrected in this version. It occurs in 4.7.001 and 4.7.002. Customers using these version under linux should update at least to 4.7.003. We came back to the old signal management under linux. The throwing of an exception in case a signal occurs is available only when the jvm is not used (-j parameter).
- Adding an exception and signal log.
Version 4.7.002
- When some java code calls some java code threw Nirva (ex java procedure calls a java procedure) and the last calling code get something from the output buffer that is greater than 1024 bytes, a potentially fatal exception occurs. Nirva becomes instable and may crash.
- When the import file contains a line with length greater than the specified maximum line length (so terminating with an antislash), the import adds a space in the data before reading the next line.
- The LINE_LENGHT parameter of the EXPORT command is not working fine with a value greater than 1024..
- The command OBJECT:TABLE_CLEAR_ROWS removes the rows instead of clearing them. This occurs in both nvs (server) and nvc (client).
- The OBJECT:TABLE_CLEAR_ROW removes the given row instead of clearing it.
- Adding an exception and signal counter. This feature is in beta version for now.
Version 4.7.001
- Thread identifier sometime cast to integer while it can be 64 bits long on unix
- SetError method of connecteur nvcmd crashes the server
- Under linux, signal management has changed. Segmentation fault signal is now transformed in to c++ exception making the server more stable when such a signal occurs.
- Test set change is not taken into account when stopping and starting an application.
- The default HTTPS port has been changed to 443 in the XML:SEND command
- Adding the java runtime version in java version information in system parameters
Version 4.7.000
- Installation. Under windows if a file has the hidden or read only attribute, the file is not replaced by the installation program and the installation fails. The correction changes the file attribute to "normal" before overriding it.
- MAIL:SEND command. When sending an email with an attachment, the Content-type of the email was Multipart/related, meaning the mail client sees the attachments as inline attachments so it does not displays them (depending on mail client...).
- SSO bug. In case we reuse an existing connection for a new session, the sso was not working because sso structures were not reset.
- The java interface may crash the Nirva 64 bits server on Windows. This bug only occurs on version 4.6.000. We recommand updating to version 4.7.000.
- Error management in procedures. The error code was not propagated correctly in some situations to the calling command
- A correct return value (0) from the procedure may generate an error if there is a last error available
- The alias was case sensitive while it should not be
- Porting to linux 64 bits (x64).
- Compiling the linux 32 bits version with libstd6 instead of libstd5.
- Adding port number display in console and log when starting http/https.
Version 4.6.000
- Http server crash under linux. This may occurs when using a service command in a session open procedure. There was an attempt to access a NULL application pointer in the code.
- Windows 64 bits version (x64).
- Version 4.5.000
- The LICENSE:INFO command was not working with an external file.
- Renderers. Renderers will give developers the opportunity to create HTML pages using other technologies than XSLT (e.g. JSP, ASPX, etc.). A renderer is a special Nirva service written in Java, C++ or C# that implements a function to transform the XML delivered by Nirva to HTML.
- Nirva is now distributed on the LGPL license.
Version 4.0.002
- In web service, using the same message as both input and output generates an error message when building the WSDL. There is now an error message when saving the web service content in order to prevent such situation (using a message for both input and output stays forbidden, even for different operations).
- Possible exception when a command executes a procedure in another session itself sending command back to the parent session.
- Adding an optional http log file for client connectors using the nvc dll.
- Possibility to restrict a web service access to HTTPS protocol only.
- Possibility to use client certificates with HTTPS. This is used for authorizing access to trusted users but not for authentication.
Version 4.0.001
- Some urls for WSDL and web service were not working with the 4.0.000 version.
Version 4.0.000
- The NV_NEW_IF_EXPIRED parameter was returning a session not found error instead of creating a new session.
- A command to a service in the init of an application may crash the server if the service issues a nirva command in its session cleanup code. For current Nirva systems services this may occur only in the database service version 2.35.
- The AIX version may crash if an xslt contains a numeric comparison in a test.
- Bug in the access to service or application containers. In some rare situations, the container of the command may not be the requested one but the one used by the previous command. This bug doesn’t occur on session containers or registry.
- User registries defined on a remote directory under windows were not working.
Modifications
- The session information is not given any more in the XML fault message when the session has been closed.
- The license management is now in a specific library. If this library is not found, the licenses cannot be controlled and the system acts like if there were no license.
- New framework called “nidget framework” based on Ajax and Javascript to built web pages from reusable graphical components.
- New feature: Nirva is now available in 2 major versions: community and enterprise. The community version is open source (kernel only).
Sources
Please read the readme files in the source tree in order to get instruction for compiling Nirva on your target platform.
Download link: http://download.nirva-systems.com/server/sources
Download link: http://download.nirva-systems.com/server/sources