IBM PASE for i as a useful option for application development

You can use the API analysis tool to determine whether an application is suitable for PASE for i. PASE for i is not the best solution under some circumstances.

PASE for i provides considerable flexibility when you are deciding how to port your AIX® applications to your system. Of course, PASE for i is only one of several options you can use to port AIX applications.

API analysis

Your starting point for determining whether an application is suitable for PASE for i is an analysis of the application: the APIs, libraries, and utilities that the application uses and how effectively the application will run on the IBM® i operating system. For more information about how code analysis fits into the procedures for porting applications to PASE for i, see Preparing programs to run in IBM PASE for i.

Characteristics of a potential PASE for i application

Here are some useful guidelines that you might consider when making the decision whether to use PASE for i:

  • Is the AIX application a highly computation-intensive application?

    PASE for i provides a good environment for running computation-intensive applications on the IBM i operating system by providing highly optimized math libraries.

  • Does the application rely heavily on functions that are supported only in PASE for i (or only partially supported in ILE), such as fork(), X Window System, or pseudo-terminal (PTY) support?

    PASE for i provides support for the fork() and exec() functions, which do not currently exist on the IBM i operating system (except through the spawn() function, which incorporates the fork() function with the exec() function).

  • Does the application use a complicated AIX system-based build process or testing environment?

    PASE for i lets you use AIX system-based build processes, which are especially useful when you have an existing, complicated process that is not readily transferred onto a new operating system.

  • Does the application have dependencies on an ASCII character set?

    PASE for i provides good support for applications with these needs.

  • Does the application do a lot of pointer manipulation, or does it convert (cast) integers to pointers?

    PASE for i supports both 32- and 64-bit AIX addressing models with low performance cost and the ability to convert integers to pointers.

When PASE for i might not be the best solution

PASE for i is generally not a good choice for code that provides a large number of callable interfaces that must be called from ILE and that has any of the following characteristics:

  • Code that needs higher performance call and return than provided by either starting or ending PASE for i on each call or by calling an PASE for i procedure in an already-active PASE for i program (using the Qp2CallPase() API).
  • Code that needs to share memory or namespace between an ILE caller and the library code. An PASE for i program does not implicitly share memory or namespace with ILE code that called it. (However, ILE code that is called from PASE for i can share or use PASE for i memory.)