KAPI bugfix

Hi folks,

KAPI is a tool for agent communication. It is designed to deliver messages in KQML format to distributed agents.

I have downloaded and installed KAPI (2.6d) and the update patch (see: ftp://cdr.stanford.edu/pub/JATLite/). Then I tried to run it. But it wont do. I have found some bugs and fixed them. Most of them deal with memory allocation and freeing. But I also changed the timeout in the socket connection code (katcpUtil.c), because I have discovered some problems in receiving the MSG_EOF character of a message. Now the problems are gone. Furthermore I changed the old signal handling style to a POSIX conform signal handling. And there are some fixes in the kapi_register and kapi_unregister files too. My bug fixes are usually marked with FIX_BUGS. But I did not mark all.

You also should know, that KAPI still may contain bugs. I have had problems with the socket connection. Sometimes the last character (MSG_EOF) is not send or cannot be received (see above). This is worse, because TCP/IP is a reliable protocoll, which guaranties that no message is lost and all information is transmitted. During my final tests (sending 8 * 10000 messages) no message or character was lost. So this bug seems to be fixed, but I am not shure about this point and if this will be true under different conditions. So be warned about this fact.

The version (kapi-2.7d.tgz) you can download here (last debugged on Jul 24 2000) runs under Linux (SuSe, Mandrake) and under SunOS (Solaris 7). Up to now lots of debug messages are included. You can activate them by definig DEBUG in the Makefile of each directory.

Please read the standard KAPI documentation for installation and usage.

If you want communication between KAPI and JATLite you can do this with the functions defined in kaRouter.c. You should know, that there are two slightly different versions of kaRouter.c. One in kapi-update.tar.gz and the other in RouterKapi.tar.gz. The laters seems to be newer. There are also some sligthly changes in other files (kaConnect.c, kaUtil.c and katcpUtil.c), but they are harmless. They only add some print statements.

The EMBASSI project currently uses KAPI and JATLite. But we have found out, that the JATLite router is too slow. So we try to use the router as name server and send the messages directly to the agents. The (experimental!!) KAPI software for this behaviour is included in kapi-2.7d.tgz. You can find the functions in the KAPI-Tools directory.

Cheers Matthias

Installation of ANS using (Apache) web servers

I want more information about KQML and KAPI
Matthias Nutt
Last modified: May 31 2000 (01:00pm)