Augmenting Third-Party Solutions With PHP-Custom Applications
In a blog last year, I provided my take on a definition for modernization, and I made a point of stating that a goal of modernization should be to extend the reach of data stores to a large constituency as well as to bring efficiencies to the business. I would like to explore both of those goals a little deeper by taking a look at the benefits that can be obtained by augmenting existing applications with PHP-custom scripts.
A trend that we are seeing in the IBM i space as it relates to PHP is customers with third-party solutions who have augmented the functionality of those solutions with PHP-custom applications. This blog explores the reason that customers are doing that and the benefits that they are realizing. The predominant reason appears to be the presentation of the data maintained by the third-party solutions. As an example, one shop that performs custom manufacturing augmented their commercial ERP application so that they could support tablet devices and large screen monitors on the shop floor to support order fulfillment. Essentially, they are using PHP applications as a new presentation layer for the data model implemented by the ERP solution.
Looking a little bit deeper at this example, prior to augmenting the solution with PHP scripts, all of the solutions functions were performed via the commercial application. This provides limitations in the consumption of the data as well as the currency of the data. As an example, order fulfillment would be accomplished by printing out a pick-list of parts as well as a detailed order sheet. If any changes were made to on-hand inventory or to the order itself, those changes would not be reflected in the printed order information.
Contrast this to the augmented approach where visual displays such as the aforementioned tablets and monitors are used – in this environment, the order details and on-hand inventory are updated in real time and reflected on the displays. In this way, the shop floor is always working with current information. The manufacturing customer in my example uses large footprint monitors to show the status of order processing and on-hand inventory on the shop floor and hand-held devices like tablets to show the order details.
What some shops have found is that by augmenting their commercial solution with PHP scripts, they can have the best of both worlds – the custom solution continues to be used for those activities that benefit from green-screen/5250 interfaces, like data entry, while other activities that would benefit from web displays are implemented via PHP. As one customer put it, the green screen is great for data entry, but it lacks data consumption. By moving the "data consumption" function to PHP/web, we move beyond the 80x25 display and are able to combine data from multiple traditional screens/applications into a more consumption-friendly interface.
Another advantage in augmenting existing solutions with PHP-custom scripts is that everything does need to be done at once. A gradual step-wise approach can be taken in which individual PHP scripts are implemented for specific functions and are then extended to additional functions over time.
A key concept is that the data model doesn't change, just the presentation of that data! All of the investment that has been made in collecting/generating the data is maintained, while becoming easier to consume. The PHP scripts have access to the same data via the language's rich set of db2 API calls. Additionally, if there are items in the ILE that the scripts would benefit from executing, that can be done as well through the XMLToolkit support.
In closing, the point of all of this is to say that the thinking behind modernization shouldn't be limited to concepts such as screen-scrapping and/or rip-and-replace. Companies can benefit from looking into the possibilities of augmenting their existing solutions with PHP-custom scripts. Want more information? Feel free to reach out to me. You can also try Zend Server for free for 30 days.
- 101 Guide: Developing Web Applications with PHP
- Blog: Unleash Your DB2 Databases with PHP
- Blog: What Is a PHP Function?
- Blog: PHP Server Basics