FILM: the NDB CORBA Server (release 20030908) Python client README This is a sample NDB CORBA client expressed in Python. Since CORBA is language-independent, it can be written in any language for which CORBA bindings exist, notably C++, Python, or Java. Python allows for greatest ease of use, compactness, and clarity. We use omniORB/omniORBpy, a free software CORBA implementation for C++ and Python. Everything is developed on a Linux system, and should work on any system where omniORB and python are supported. This package consists of three files: -- README this file -- some.idl CORBA IDL specification for MacroMolecular Structure, as implemented by the NDB CORBA server -- client.py a sample python client to access the server Here's how to install and run the client: -- Get the omniORB and omniORBpy. www.omniorb-support.com The recentmost version is 4.0.2. -- build and install them with the same ${prefix}, first orb, then py. By default they go to /usr/local -- copy the config file to /etc/omniORB.cfg there, edit/uncomment the following: InitRef = NameService=corbaname::pdb-bioshark-7.rutgers.edu giopMaxMsgSize = 2097152 # 2 MBytes The first line is where the server is, the second increases the maximum CORBA package size so we can send a really large molecule, such as a ribosome. -- create a working directory, copy the IDL there (some.idl, attached) and the client (client.py, attached) -- set the environment and generate IDL-python stubs This and the next step can be automated with the script python.setup.sh. If you installed omniORB/py into the default /usr/local, just run it; otherwise, specify the location in PREFIX there before running. Or you can set the environment manually as follows: export PYTHONPATH=${PREFIX}/lib/python2.2/site-packages export LD_LIBRARY_PATH=${PREFIX}/lib Manually running the IDL-to-python compiler: ${PREFIX}/bin/omniidl -b python some.idl This will produce python stubs for the IDL. -- run the client python client.py [NDB_ID] The NDB ID is optional: python client.py PD0299 (If not supplied, that is also the default NDB ID.) In case you cannot modify the InitRef line in /etc/omniORB.cfg (e.g. you use a local naming server by default), invoke the client with an option specifying the NDB CORBA Naming Server explicitly: python client.py -ORBInitRef NameService=corbaname::pdb-bioshark-7.rutgers.edu The client returns list of atoms, symmetry information, and secondary structures for at particular NDB or PDB ID. FEEDBACK -------- Send all questions, patches, improvements and suggestions for the client to: Dr. John Westbrook Alexy Khrabrov -- $Id$