1.1 What You Should Know

This section includes the following information:

1.1.1 Prerequisite Knowledge

This guide assumes you have the following background:

  • Sound understanding of networks, operating environments, and system architectures.

  • Familiarity with the Python development language. For more information, see the following online references:

    • Python Development Environment (PyDEV): The PyDEV plug-in enables developers to use Eclipse* for Python and Jython development. The plug-in makes Eclipse a more robust Python IDE and comes with tools such as code completion, syntax highlighting, syntax analysis, refactor, debug and many others.

    • Python Reference Manual: This reference describes the exact syntax and semantics but does not describe the Python Library Reference, which is distributed with the language and assists in development.

    • Python Tutorial: This online tutorial helps developers get started with Python.

    • Extending and Embedding the Python Interpreter: This resource describes how to add new extensions to Python and how to embed it in other applications.

  • Sound understanding of the ZENworks Orchestrator Job Development Language (JDL).

    JDL integrates compact Python scripts to create jobs to manage nearly every aspect of the Orchestrator grid. For more information, see Section A.0, Orchestrator Job Classes and JDL Syntax.

  • Knowledge of basic UNIX shell commands or the Windows command prompt, and text editors.

  • An understanding of parallel computing and how applications are run on ZENworks Orchestrator infrastructure.

  • Familiarity with on-line ZENworks Orchestrator API Javadoc as you build custom client applications. For more information see Section B.0, Orchestrator Client SDK.

  • Developer must assume both Orchestrator administrative and end-user roles while testing and debugging jobs.

1.1.2 Setting Up Your Development Environment

To set up a development environment for creating jobs, we recommend the following procedure:

  1. Initially set up a simple, easy-to-manage server, agent, and client on a single machine. Even on a single machine, you can simulate multiple servers by starting extra agents (see Independent Installation of the Agent and Clients.

  2. As you get closer to a production environment, your setup might evolve to handle more complex system demands, such as any of the following:

    • A server deployed on one computer.

    • An agent installed on every managed server.

    • A client installed on your client machine.

      From your client machine you can build jobs/policies, and then remotely deploy them using zosadmin Command Line tool. You can then remotely modify the jobs and other grid object through the Orchestrator Console.

  3. Use a version control system, such as Subversion*, to organize and track development changes.

  4. Put the job version number inside the deployed file at make time. This will help you keep your job versions organized.

  5. Create make or Ant controls for bundling and deploying your jobs.

  6. After you are familiar with more simple jobs, you will want to move to more complex “meta jobs,” which enable you to tie together several applications in a service. These jobs will include startup dependencies and other logic to enable one application job code with different parameters and policies to be used in more than one service.

  7. To enhance the robustness of your jobs, we suggest you deploy all jobs to more than one site, with different policies activated at each site.

  8. Ideally, to leverage the flexibility of the Orchestrator environment, you should not have to write jobs targeted specifically for one container technology (Xen, VMWare, etc.).