# JAPI library - Job Application programming interface

# Overview

The JAPI library is a layer on top of libgdi, libevc . JAPI collects the specific qualities of both modules to provide a to-the-point interface providing those operations a typical Grid Engine end user depends upon. That is submission of jobs and array-jobs, enquire and control of job status, synchronizing with jobs end as well as examining the manner how a job finished. In contrast to this manipulating the configuration of a Grid Engine queue is typically not done by end users. The design of the core JAPI functions was vitally influenced by the interface specification the GGF DRMAA working group developed. Note that currently only qsub(1)-ish jobs can be submitted through JAPI.

# Implementation

Constraints of the protocol used by libevc, made it necessary to run a service thread in background of JAPI. The purpose of this thread is to wait for new events sent by Grid Engine qmaster, acknowledge received events to qmaster and provide information related to job states in a shared data structure that is maintained to implement services certain JAPI calls base upon (i.e. japi_wait(3)). The JAPI library is a MT safe library allowing any number of application threads to use JAPI services without explicit synchronization.

Copyright 2003 Sun Microsystems, Inc. All rights reserved.

#

#