Information Systems:5733-OPS - IBM i Open Source Solutions
uniPHARM is no longer using open-source on IBM i. InfoNext has been migrated to uwdoss (Linux).
Open source on i is no longer implemented as a licensed program (5733-OPS) nor managed through PTFs, but rather through the package manager yum.
Overview
As part of the initiative to modernize development on IBM i (read here and here), 5733-OPS was installed during the May 2017 round of PTFs (7.2 TR6). This page will document usage and configuration details associated with this licensed program.
The 5733-OPS licensed program
5733OPS refers to the licensed program (e.g. 5733LD9 - Domino, 5770BR1 - BRMS), but unlike Domino and BRMS, this package is better known by its code name vs. its canonical name (i.e. IBM i Open Source Solutions). IBM's intent was to combine all open-source tools and programs under this one product offering, with customers able to pick and choose what to install by installing options to the base package. This way, IBM is also able to expand the portfolio with more options (which they've done several times already). It is important to note that while 5733-OPS is supposed to be regarded as a single package with many options within, each option is actually listed as a separate entry in GO LICPGM.
Click here to access the main product page where all the different options in the product are specified.
Currently, options 1, 2, 3, 6, 7, and 8 are installed. Option 2 (Python 3), Option 6 (Git), and Option 7 (Tools) will likely be the most used.
Maintaining the software
The entries for 5733-OPS in GO LICPGM (menu option 10 to display licensed programs) are actually just placeholders, with corresponding PTFs delivering the 'meat' of the package. IBM recommends installing all options/placeholders initially (even if there is no interest using them), with the reason being that new functionality can be obtained by simply installing PTFs (vs. doing a 'Restore Licensed Program' for the new option and then installing PTFs). However, this doesn't make much sense as a) doing a RSTLICPGM is easy and non-invasive enough, and b) there will inevitably be more options for which there is currently no placeholder, so you would still have to do a) anyhow. Thus on our system, only select options were installed (see previous section).
Upgrading the currently installed packages is done through the simple upgrading of PTF group SF99223. As per this article of instructions, the established way of keeping the system current here at uniPHARM is to upgrade PTF groups bi-annually. SF99223 thus becomes just another one of these PTF groups that, if brought to the latest level, will upgrade everything within, where relevant (i.e. only the installed options).
It is important to note that the Technology Refresh is a separate PTF group (SF99717 for IBM 7.2). New TRs may support features related to 5733-OPS, but to obtain such features, both PTF groups will likely have to be upgraded. We are already in the habit of upgrading all PTF groups during a TR upgrade, so this should not be a concern.
Installing new options
- RSTLICPGM from the XPF image catalog...
- Elaborate on this section
5733-OPS Options
Python 3 (Option 2)
Generally, one of greatest strengths (if not the greatest) of the Python programming language is its packages/libraries. In a nutshell, user-contributed Python code can pick up steam and become so widely used that it in a way becomes a de facto standard (I think this is the way some of these packages get integrated into core Python). Because Python emphasizes a strong use of packages, it contains a wonderful package manager called pip. Packages simply are installed using pip install packagename.
Important Python on i packages
Python on the i is useless without the following packages.
itoolkit
Let's you run system commands (i.e. CALL PGM(), DSPSYSSTS etc.) in Python.
ibm_db
Let's you interact with DB2 (run SQL on our database). Importance of this package is kind of a no-brainer.
Other
- Include Django? Include cherrypy, bottle, flask. Elaborate on json, csv packages.
Git (Option 6)
Git is a code repository and version control system. We will likely use the i as a git server to host our code. Unless we want to use GitHub, which is a paid service if you want private repos. It's dirt cheap, but it's also cloud.
Using 5733-OPS
It needs to be emphasized that all this open-source stuff happens in PASE (the *nix shell environment within IBM i). A discussion of the philosophy and any criticism of this is left to another article (perhaps here?)