What is OpenKicks?
OpenKicks is a transaction processor for UNIX® and Linux® that implements the CICS® API. That is, it implements the command level (EXEC CICS®) commands.
Even more than that, OpenKicks takes the approach most suitable for using OpenKicks as a development platform; that is: It implements the CICS® API, and not anything more. For instance it does not force you to recode your terminal IO using .net® technology.
If you would like to see an online presentation of OpenKicks via WebEx web conference(www.webex.com), please email us at email@example.com. This will be at no cost to you, and I will be glad to answer your questions during this one hour session. You are welcome to invite your associates to the web conference and presentation.
We have tried moving our COBOL/CICS® applications to Client server and it failed, why is OpenKicks different?
OpenKicks still runs on a central server so a team of programmers can share a region; as opposed to a region running on a programmer’s PC.
OpenKicks relies on a database for data integrity. The state of a region is held in the database. It does not rely on proprietary software such as Encina®.
Why haven’t I heard of OpenKicks before?
OpenKicks is 100% brand new code. It is a not a renaming of any previous CICS® emulation environment. It is the sole product of Replatform Technologies, LLC.
My environment has several regions (terminal owning, application owning, and file owning). Can OpenKicks emulate that complex of an environment?
Yes. You can use the same techniques that you are comfortable with to split up an application between multiple regions. But, you probably will not need to do that. Let’s first look at why you do that: The most basic reason for splitting an application between multiple regions is that CICS® is single threaded. Even when running in thread safe mode CICS® single threads many things. For instance, starting transactions is single threaded necessitating the need for terminal owning regions.
OpenKicks is fully threaded. Adding the complexity of multiple terminal owning regions is not necessary. This is because the daemon process that controls the terminals uses a round-robin technique to allow for handling many transactions. Also, if desired, the region administrator can start multiple daemon processes.
So, in summary, where you currently use multiple TORs, in OpenKicks you rely on the automatic round robin logic or a manual start of multiple daemon processes. Where you currently use multiple FORs, in Openkicks you simply tune your database to use more agent threads.
For those of you using a separate TOR to simplify setup of VTAM, there is also good news: OpenKicks does not need any VTAM like facility. Each region is allocated its own port number. To access a different region the terminal emulator is simply configured to use the appropriate port.
There is one point of clarification of “fully threaded”: this term is used in the mainframe sense that one daemon process will not block another daemon process from running. While this would seem unnecessary to mention to those with a UNIX background, it is necessary to mention for those with a mainframe background who are familiar with the reasons for starting multiple Terminal Owning Regions.
When would I choose round robin, and when would I choose to start multiple daemons?
The choice is clear. If you want to control access to the region from different networks, then you would choose to start separate daemons. Each daemon listens on a different port and can be shutdown, brought up, and firewalled separately.
For instance, you may want to control the access of your programmers to your production region. When there is reason for the programmer to have access, you would start the daemon with the port that the programmers use.
You use the term region in relation to OpenKicks. How does that relate to the notion of a region on the mainframe?
From the application programmer’s point of view a region is an instance of an application or group of applications. From a system administrator’s point of view a region is a directory structure, a database, and a group of daemon processes. From a database administrator’s point of view a region is a set of tables in a database.
My applications are mission critical. Why should I trust OpenKicks with my data?
OpenKicks is built on top of a database and it relies on the database for transactional integrity. We chose this design because it pushes the complicated job of data integrity to a well tested and widely trusted software.
What databases does OpenKicks support?
The OpenKicks developers develop and test using Postgres. The database code is isolated and compiled separately into a share object (.dll). The developers follow a strict coding standard and it is expected that the port to DB2®, and Oracle® will be straight forward.
What COBOL compilers does OpenKicks support?
It is actively tested with GnuCOBOL® and MicroFocus® COBOL 5. It has been tested with IBM® COBOL for AIX®.
COBOL Operating System Status GnuCOBOL Intel Linux This is what Replatform Technologies uses for development and demonstrations. GnuCOBOL zLinux Replatform Tech periodically tests OpenKicks on a zLinux machine. Micro Focus Intel Linux Replatform Tech uses Micro Focus to test EBCDIC support on Linux. Micro Focus zLinux Not tested but Replatform Tech is confident that it can be supported IBM COBOL AIX OpenKicks was tested with IBM COBOL on AIX early in development. We are confident we can quick revive active support IBM COBOL Intel Linux Building on the IBM COBOL support for AIX we are confident we can support IBM COBOL on Linux. IBM COBOL zLinux Building on the IBM COBOL support for AIX we are confident we can support IBM COBOL on zLinux. Fujitsu Intel Linux Tested with OpenKicks but Fujitsu is not focused on Mainframe compatibility so there were issues requiring non-trivial COBOL code changes P3 Intel Linux P3 COBOL works with the JVM based runtime of OpenKicks. gCOBOL Intel Linux gccCOBOL is a new open source compiler. https://git.symas.net/cobolworx/gcc-cobol Your COBOL OpenKicks was specifically designed to port to new COBOL compilers, contact us to add support for your favorite
I have never heard of GnuCOBOL®, what is GnuCOBOL®?
GnuCOBOL® is project hosted on sourceforge.com implementing an open source COBOL compiler. It works surprisingly well.
Which COBOL compiler should I choose?
Microfocus® COBOL and IBM® COBOL for AIX® are champions of mainframe compatibility. That is, they have the most number of features that allow them to compile and run mainframe COBOL unchanged. If you have COBOL code that is very ANSI compliant, then you can consider the Fujitsu and AccuCOBOL® compilers. We have not formed an opinion on the use of GnuCOBOL® for production.
Does OpenKicks support PL/1®?
Not at this time. If you have a PL/1® application that you want ported, please contact us.
Will OpenKicks run on VMWare®?
Yes. In fact this is how we distribute OpenKicks to our beta testers.
Does OpenKicks implement BMS?
Yes, OpenKicks implements full BMS. More specifically, BMS macros (DFHMSD, DFHMDI, and DFHMDF) are processed twice by an ‘assembler’: a) once to produce a load module, and b) once to produce a copybook.
Like the mainframe, the type of output (loadmodule or copybook) is set by the &SYSPARM variable. Setting of the &SYSPARM variable is done with a command line option.
OpenKicks implements BMS! How do I connect to a UNIX® box with a 3270 terminal?
You connect to a region using a tn3270 terminal emulator such as: x3270. Each region is assigned a range of port numbers. One of those port numbers is used for attaching to the region with TN3270.
This is different than on the mainframe. On a typical mainframe a user would attach using the standard port 23, then be presented with a menu of what to connect to. On OpenKicks, the user attaches directly to a region using a unique port.
How can I get OpenKicks?
OpenKicks is available to select customers for beta testing.
Why isn’t OpenKicks available on Windows?
OpenKicks is available for Windows, but we do not actively develop on Windows. If you are interested in Windows please express your interest; it will influence the resources that we allocate to testing under Windows.