While there is no standard or formal definition of the term “microservice,” one can essentially view microservices as a method of developing software systems as a suite of independently deployable, small, modular services that work together. Each service performs a specific process and communicates via a well-defined, typically lightweight mechanism to satisfy a particular business need.
Microservices and IBM i
Why, you may ask, is the subject of microservices of interest to the IBM i community?
Microservices can be viewed as an important aspect of application modernization. With application modernization, we want to provide a robust interaction with existing business logic. Typically, when we talk about application modernization in the IBM i space, we are talking about providing a web or mobile presence to DB2-resident data. The reality of that approach is essentially writing new applications that, at times, are performing the same function as existing “green screen” applications. Application modernization is about being able to leverage those existing applications in new and exciting venues to reach a wider constituency of users.
PHP with the XML Toolkit
Let’s take this back to a discussion of microservices and how they apply to PHP in the IBM i space. Imagine treating an existing RPG application as simply providing a service that other applications can leverage. That is exactly what PHP with the XML Toolkit allows us to do.
Using the definition provided in the first paragraph, the RPG program is providing a “service” (typically the overarching business logic); the PHP script/program is also providing a “service” (in this case, user-interface activities such as parameter collection); and the “communications” between these two services is provided by a combination of the “PHP XML Toolkit” on the PHP side (think of it as the client) and the XMLService (an IBM-sponsored open source project that supports calling ILE programs with XML-packaged parameters and providing responses in another XML document). The final piece of this puzzle is the presentation, which isn’t actually a formal part of microservices, but, in this case, is typically provided by an HTML renderer – i.e., web page or mobile application.
Pictorially, it could look something like this:
Moving towards application modernization with a focus on microservices provides the opportunity to turn ILE programs into a wide collection of reusable services that are accessible from a larger number of consumers for a potentially larger number of purposes.
To learn more about microservices and IBM i, visit us at one of our upcoming IBM i events.