120 likes | 244 Views
The Globus APIs. Francesco.Giacomini@cnaf.infn.it 11 th January 2001. General remarks. Globus Software is structured in modules A developer tutorial is available on “common ” services, security , io, gram ( client , myjob, jobmanager), duroc, gass, ldap, rsl , nexus Lack of documentation.
E N D
The Globus APIs Francesco.Giacomini@cnaf.infn.it 11th January 2001
General remarks • Globus Software is structured in modules • A developer tutorial is available on “common” services, security, io, gram (client, myjob, jobmanager), duroc, gass, ldap, rsl, nexus • Lack of documentation
“common” services • Module management • activation/deactivation • it would be useful to have a dependency graph • OS services • threads, mutexes, condition variables • generic interface, but not OO • globus-dependent naming
Security • Basic gssapi and gss_assist • Not an expert, both difficult for me • Some errors in source code (port number not in net byte order, variable not initialized, missing arg to a function)
RSL • No documentation (no reference manual, no user’s guide) • Which functions belong to the API? • From the examples one can intuitively understand how to use some of the functions • How to navigate in the internal representation tree?
RSL (cont) • In the spec executable, stdin, stdout, stderr can be URLs (http) • Ok for stdin • Not for executable
GRAM client GRAM_CLIENT POLL IO GRAM_HTTP (acquire credentials) COMMON THREAD_POOL THREAD ERROR CALLBACK THREAD_COMMON THREAD THREAD_POOL
GRAM client functions • General • globus_gram_client_error_string() • Job (globus_gram_client_job_*) • request(), status(), cancel(), contact_free() • callback_register(), callback_unregister() • check(), start_time() • Callback (globus_gram_client_callback_*) • allow(), disallow()
Job submission module_activate(GLOBUS_GRAM_CLIENT_MODULE) job_request(jm_contact, rsl_spec, …) -> job_contact job_contact_free(job_contact) module_deactivate_all() https://1linux.cnaf.infn.it:2702/18926/978976875 job_contact is used by job_status() and job_cancel() Running machine port JM pid UNIX time
Callbacks • Enabling a callback callback_allow(cb_fun, cb_arg) -> cb_contact • Implicit callback registration job_request(…, cb_contact, …) • Explicit callback registration job_callback_register(job_contact, cb_contact, …) job_callback_unregister(job_contact, cb_contact, …) • Disabling a callback callback_disallow(cb_contact)
Callback contacts https://1linux.cnaf.infn.it:2676/ • Existing callback contacts are disabled deactivating the module • No API function to free a callback contact Submitting machine port
When will my job start? • job_start_time(job_contact, …) • estimated start time of a PENDING job or • actual start time of an ACTIVE job • job_check(jm_contact, rsl_spec, …) • estimated start time of a job with the specified characteristics Not yet implemented!