Information Systems:Iptor Integrator
Overview
Iptor Integrator is software known as middleware, which is a suite of tools for building integrations - or programs that bridge different sytems. An integration might be a program that takes in a CSV file and writes it into a database. Middleware software usually contains various adapters to talk to different kinds of databases and information systems, as well as to communicate via different protocols (EDI, TCP/IP, ESB).
Integrator is Java-based, meaning that the programs you make with it are in Java, and the server software itself runs on the Java platform (e.g. Tomcat, class runner etc.).
History
Integrator was acquired in October 2019 for the DC1 project. However, it is system-agnostic and would provide good value used with other back-end business system or ERP. It most definitely can be used without ASW/DC1, and is actually more of a generic software than the brand (Iptor) would indicate.
Administration
Integrator Server
Integrator server runs on xtgui.unipharm.local, so both the server programs and developed code reside there. The web control panel is used for administration of Integrator jobs and functions.
Integrator Server Web Admin
Integrator comes with an admin control panel to control the jobs and to configure settings:
https://xtgui.unipharm.local:16999/admin/servlet/admin.AdminStart User: admin Password: visionit Note: A similar-looking web portal runs on this site on port 17999. This is the web admin control panel for the XT server (DC1 front-end). They are unrelated.
Important files and folders
- Source code - C:\Integrator\bin\classes
- Input/output files - C:\Integrator_Data\in and C:\Integrator_Data\out. Some of the sub-folders are watch folders.
- Libraries - C:\Integrator\bin\extensions\ibs\eclipse\plugins\IBSExternalPackages. Additional JARs go here. However, read this article for more information on Integrator systema and project dependencies.
Integrator Studio IDE
The IDE is what is used to make programs. Installing Integrator installs both the server software and the IDE. Integrator Studio is aimed towards power users more than developers. A discussion of why can be found here.
License Information
Integrator is licensed by network adapter (MAC address). uniPHARM's license entitles us to one production server instance and one development workstation - essentially two licenses. The licenses are as follows:
UniPharm server: Serial Key: 2019-1101-2021-0131 MAC Address: 00-50-56-92-5e-c5 (virtual NIC on xtgui.unipharm.local) Expiry Date: January 31, 2021 ---------------------------------------------------------------------- UniPharm Workstation: Serial Key: 2019-1101-2021-0131 MAC Address: 00-ff-dd-3e-fc-f9 (Norwin's USB ethernet adapter) Expiry Date: January 31, 2021
- The license utility has a bug. It lists the wrong MAC addressses for the network card in the dropdown. So I licensed the wrong NIC on my machine initially. I've also switched machines multiple times now and don't really feel like requesting a new license each time, especially since I don't actually run Integrator on my machine (see Usage section). So I have a workaround, which involves overriding the MAC address on a virtual NIC. Wink wink, lol. -norwizzle (talk)
Rewnewal
- The license must be renewed yearly. For the first renewal, Iptor reached out proactively to facilitate the process.
- Integrator installations ships with a license utility (License Registration, and also License Request). The process involves:
- Generating a license request file (one per server). The correct network adapter should be chosen (this is what binds the license to the NIC). See above regarding the potential "bug" with this utility.
- Providing the request file to Iptor.
- Activating the license using the Adapters.dat file and serial keys provided by Iptor.
Acquiring help
- Integrator Server and Integrator Studio have decent documentation that can be accessed through the Help buttons in their respective apps.
- Previously, we have sought help from Mesa Group, a top-tier Iptor partner. From that experience, they seemed to know Integrator well, although it was apparent in that call that they stick with using Integrator Studio and were not as versed in general Java programming (the issue was slightly more complex).
Features and usage concepts
This is a very general overview of the major Integrator features. Consult software documentation for more detail.
Timer jobs
Timer jobs execute programs (classes) on a schedule. The options are fairly flexible e.g. every x minutes, every Friday, every 1st of the month etc.
Folder Watcher jobs
The folder watcher feature monitors folders for changes and triggers the execution of a class. There are various sub-folders in C:\Integrator_Data\in that are being watched by Folder Watcher jobs.
Automatic file management
Folder Watcher jobs have good auto file management features:
- Processed files are moved from the watched folder (e.g. new/) to the backup folder if successful, or the error folder if there were errors.
- File in the backup folder are archived (zipped) according to the rollup settings (e.g. if the backup files reach 10MB).
- If "reject duplicates" is set, a hash file is placed in the temp/hash folder. This is an empty file with the filename being a hash of the original filename. This is how Integrator keeps track of files it has processed without needing a database. On the one hand, it's clever (small footprint) and works well. However, the filenames, as they are, make it difficult to identify which file it correlates with.
Database Connection Pool
A database connection pool is a pool of connections to a database that is usable by programs. The idea is to provide central management of connections (through a pool manager) such as limiting the total number used at any one time and ensuring that connections don't remain open. This feature is not being used currently because its usage requires training/instruction from Iptor. Refer to this article for more information.
Class runner
The class runner allows the manual running of a class (e.g. if you need to test program by running it within Integrator immediately instead of configuring a job trigger or condition).
Logs
- Logging can be configured and set for a minimum log level (debug, info etc.). A separate log is associated with each job:
- Currently, email alerts for errors are sent to norwizzle (talk). The message itself is not very useful as it does not provide much details about the error, but it does contain a link to the log.
Tips
- Integrator will not execute the class when the modifier for the default constructor is not set to
public
. - Integrator will not execute the class when a default constructor is not explicitly specified.
Other notes
It is worth noting that I do not use Integrator in a "stock" manner i.e. I don't use Integrator Studio, nor do I use many of its facilities. The reasons are more thoroughly discussed here. It just deserves to be mentioned here because if you were an Integrator specialist (rather than a generic developer), you may find the programs difficult to work with as I work around a lot of it. However, this point shouldn't affect the creation of new programs.-norwizzle (talk)