Bringing back the old!

Our recent partnership with Looksoftware has brought a new view on some of our old products. We have been looking for an application that could demonstrate the power of the looksoftware products. Our initial thoughts were to use the in-house packaging product we use to generate our products as IBM Licensed Program Products. The product has not changed in the 12 years we have been using it and could do with a new look and feel. We used to distribute the product as Software Packaging Manager/400 many years ago but with very little success. Not many ISV’s were using the IBM Software Packaging capabilities so we retired the package from distribution and simply kept the internal version updated with the features we required. After some deliberation we then decided the base product would require too much attention before we could add a new interface to it. That would take far too long for it to be valuable to us at the present time. We then looked at our JobQGenie and Receiver Apply program products and again decided that the products did not justify a first round update using the Looksoftware.

Eventually we decided to pull the FTP Manager product out of retirement and see what we can do with it. While integration into the desktop and adding additional data streams will not feature in any redesign we do, it does have a very pressing need to be updated.

The FTP Manager product was released over 10 years ago from a need to replace the IBM ‘i’ FTP client and provide security for the Client and Server functions. Because we develop software we needed to ensure that no code could be down loaded without our knowledge or permission. The FTP server on the IBM ‘i’ has no logging feature so we needed to provide our own, plus the security was pretty dismal to say the least. We wanted to be able to stop people from getting to the FTP server from unknown origins, restrict access to set times as well as only allowing access to certain functions. These capabilities are not available in the standard IBM ‘i’ FTP functions (or AS/400 as it was when we developed it!).

IBM does provide the exit point access to allow you to allow or deny access so we built the functionality around these exit points and came out with the FTP Manager product all those years ago! None of the limitations in the IBM FTP Client or Server functions have been improved since so it is just as important today as it was then.

The first thing we had to do was bring the coding standards up to date, as we grew we developed new coding standards which allow the maintenance of the code to be far better and easier. We have also moved to modular based programming so a lot of functionality had to be moved from individual programs into bound modules. As we started to review the code and changed the structure we also found a lot of new features needed to be added so the product would be simpler to use plus provide a better base for the Looksoftware. While Looksoftware does not require you to change the underlying code we decided because we are going to relaunch the product with Looksoftware interfaces it would be beneficial to everyone.

A couple of things needed attention, firstly the product had no real SERVER keepalive, the use of the sockets keepalive setting does not ensure the server will not drop the connection (something which happened regularly during testing) so we had to come up with a solution. We had originally done this by simply issuing a NOOP to the server every time the user did anything, even local actions would cause a NOOP to be sent to the server. While this worked to a degree, it was not perfect. We needed something that would do this in the background all the time the application had an open connection. If the user was working within a directory and left the pages unchanged (eg: editing a local file) we need to ensure the connection is kept alive. The solution was pretty simple and in our minds elegant. We used the alarm() function to raise a signal, the signal processor sends the server a NOOP request keeping the link alive. When the signal is raised the alarm function dies so we had to re-issue the alarm() request each time. When the connection is dropped we simply set the alarm() signal to 0 and it no longer gets raised.

Next we looked at the view cycle, the interface was very clunky to say the least. Every time you viewed the Local or Remote directory you had to press F12 to get back to the initial page then F7 or F8 to get to the new view. I wanted to be able to simply press F7 or F8 from anywhere to immediately display the correct view. This is something that will make the interface redesign under Looksoftware a lot slicker too. After some trials and tribulations we finally came up with a new design that would support the cycle we wanted.

As people are used to the WRKLNK functionality we decided to make the FTP Client a little more like it. Now selection of a list entry using option 5 will result in a directory change or display of the object. We will probably look at taking the ENTER key as a move back one directory request at some time, but for this release we have decided the use of 5 against the previous directory marker will be enough.

One thing the product could never do was view remote files, we thought this would be a nice feature to add so we designed a new function that will retrieve the remote object and display it locally. The file is cleaned up after display so no trace is left of the transaction.

There are a lot of other features we want to add now that we have started to play with the product again. The Security Management side has yet to be reviewed for functionality and ease of use so we may find a few chnages to be made there.

The next challenge will be to design the new interface using the Looksoftware products. We have already made an initial view which we think is OK and will be using it as the base template. This took us about 5 minutes ( a lot more understanding the technology first) and requires no changes to the application, now we can start to look at each screen and where appropriate change the layout or add additional features.

Once we get a couple of the screens generated we will put them on the blog for you to see. Eventually we will publish the new version for free download and trail.

Chris…

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.