Zend Describes Multiple Instances on i5/OS, Previews RPG Wrapper
January 22, 2007 Timothy Prickett Morgan
As I explained in last week’s issue, Zend Technologies, the creator of the open source PHP programming language and the company that provides commercial support for PHP and related products, announced that it had extended support for its Zend Core for i5/OS platform to include not just the current i5/OS V5R4 operating system, but also the prior OS/400 V5R3 release. Which is great. And as part of that rollout, there has been some confusion about the ability of the hybrid Zend-PASE and OS/400-Apache combo to support multiple Apache instances driven by Zend Core.
The Zend Core for i5/OS software is not compiled to run natively on either i5/OS V5R4 or OS/400 V5R3, but rather runs in a PASE AIX runtime environment inside these platforms; that PASE environment is equivalent to AIX 5.2, by the way. The fact that Zend Core is not native on i5/OS–even though it has been extended to link into DB2/400 and data queues in a native fashion–is why this issue of Apache instances occurred. If the System i5 platform had a standard and well-regarded C compiler and was based on the X64 architecture instead of the less dominant and different Power architecture, this would not be an issue. And while there is nothing wrong with the PASE approach–it is rather clever, in fact, and it is also how features such as the TCP/IP stack are delivered to i5/OS and prior releases of OS/400–delivering Zend Core through PASE is what seems to have caused some confusion about supporting multiple, unique Apache instances when working with Zend Core for i5/OS.
A few weeks ago, an independent software vendor contacted me saying that one of its customers had opted to use PHP for its Web infrastructure projects at a major financial institution, and had been gearing up to use the Zend Core for i5/OS products when the ISV and the user discovered–or at least they thought they discovered–that Zend Core for i5/OS would only support a single Apache Web server instance on the OS/400 side of the solution. This, of course, is not how PHP is often used in production, since companies have production Web application environments, test Web environments, and perhaps different Web sites for supporting end user customers or tech support, just to give two examples. On an integrated system like the System i5, you need to be able to do this without having to resort to putting Zend Core for i5/OS into separate logical partitions.
When Zend Core for i5/OS 1.6 was announced on January 10, IBM and Zend put out a Redbook in the same week that explained quite clearly (on page 30) that multiple instances for Apache fed by Zend Core for i5/OS were not supported at this time–support meaning that neither IBM nor Zend recommended this action. However, that same Redbook then explained how you could hack the configuration files within the PASE environment where Zend Core and an AIX-based Apache server is running to create multiple PASE-side Apache instances.
But according to Sam Pinkhasov, project manager at Zend who is responsible for the development of the Zend Core for i5/OS product, this is not recommended for a very important reason–the Apache Web server within PASE does not have SSL encryption on it, which means the Web server is not passing encrypted information. Moreover, there is no graphical user tool to create these PASE Apache Web servers, and there is a lot of file copying and tweaking involved, which is just a recipe for mistakes. (That might change, if enough customers bug IBM and Zend to get a user interface to reach into PASE for configuring Apache and Zend.)
What Pinkhasov is recommending to customers is that they use the Apache Web server built into i5/OS V5R4 or OS/400 V5R3 and create multiple instances on that side–something that the Redbook does not address as a possibility. The Apache server on the PASE side of the solution acts as a reverse proxy back into Zend Core for these Web servers, so the lack of SSL doesn’t matter since these Apache Web servers on the i5/OS or OS/400 side–which are actually out there on the Internet or on an intranet–have SSL encryption. So, basically, the Redbook seems to be wrong about this issue.
If you want to keep track of what the Zend community is doing as it relates to multiple instances on iSeries and System i5 servers, the best place to look is in this area of the Zend forums. The Zend forums have a thread running on this issue now, which you can see here. Zend’s techies are putting together a more complete, formal response to the multiple instances issue, which they will post on the forums next week, according to Jim Dillard, IBM alliance manager at Zend.
Incidentally, you can run multiple copies of Zend Core on an i5 or iSeries server within multiple logical partitions. And these logical partitions can each have multiple Apache Web servers on the i5 and iSeries side if customers want to isolate Web servers and their related Web applications–perhaps if they are running applications from different divisions or different countries (with different languages, time zones, and currencies) in their partitions. The one thing you cannot do, according to Pinkhasov, is have a single copy of Zend Core in one partition feeding Apache servers running on multiple partitions. However, because of the database access tools that IBM and Zend have woven into Zend Core, database access calls made from Zend Core running in one partition can reach out across partitions to talk to DB2/400 instances running in those partitions.
If you really want to go wild, you can, of course, have different Zend Core and databases running in multiple i5 or iSeries partitions, and maybe even Zend running on Unix, Windows, or Linux boxes, and then create Web services that amalgamate those applications to create a single, services oriented application at a much higher level. But this approach runs contrary to the integrated nature of the System i5. If anything, the advent of Zend Core for i5/OS means outboard Zend servers running Windows or Linux can be integrated back on the System i5 platform and those Linux or Windows servers can be removed from the data center.
Of particular interest to i5/OS and OS/400 shops, Pinkhasov says that the forthcoming Zend Studio 5.5 development tools, which was launched in December on X64 platforms and which will be integrated into Zend Core for i5/OS next month, will include a Web services wrapper for RPG-based applications. This will greatly simplify the act of creating PHP-based Web applications, according to Pinkhasov. The future Zend Studio will even include templates that show RPG programmers who to do it.