Browse Prior Art Database

Programming Support for Developing Lotus Agents in Java

IP.com Disclosure Number: IPCOM000123216D
Original Publication Date: 1998-Jul-01
Included in the Prior Art Database: 2005-Apr-04
Document File: 2 page(s) / 83K

Publishing Venue

IBM

Related People

Ryman, AG: AUTHOR

Abstract

Programming support for developing Lotus Agents is disclosed. The support consists of a Java program that creates an execution context for the Agent, allowing it to be executed and debugged in a Java integrated development environment (IDE) such as the IBM VisualAge for Java software.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Programming Support for Developing Lotus Agents in Java

   Programming support for developing Lotus Agents is
disclosed.  The support consists of a Java program that creates an
execution context for the Agent, allowing it to be executed and
debugged in a Java integrated development environment (IDE) such as
the IBM VisualAge for Java software.

   A Lotus Agent is a program that can perform actions on a
Lotus Notes database.  An Agent can be invoked in many ways, for
example, interactively by the user, when a database action is
performed, or at scheduled times.  Prior to the Lotus Domino 4.6
server software, Agents were written in the LotusScript programming
language.  Lotus Domino 4.6 allows developers to create Agents using
either the LotusScript or Java programming languages.

   The problem is that Domino provides no tools for developing,
testing, or debugging Agents written in Java, in contrast to the
comprehensive support it does provide for LotusScript Agents.  The
Domino server does include a Java Virtual Machine that can run
Agents written in Java, but it provides no development, testing, or
debugging support.  Developers must code Agents in an external Java
IDE and construct test driver code to exercise them.

   The solution to this problem is to create a Java tool that
acts like the Domino server.  The idea is analogous to the use of
the AppletViewer program for testing Java applets outside of a Web
browser.  The AppletViewer program acts like a simplified Web
browser.  When the AppletViewer is invoked, it creates an
AppletContext for the applet which allows the applet to communicate
with the browser.  The AppletViewer also invokes the applet's life
cycle methods: construct, init, start, stop, destroy.

   A Lotus Agent in Java is a subclass of
lotus.notes.AgentBase.  It obtains its context by calling the
getSession() method which returns a Session object.  When the Domino
server receives a request to run the Agent, it constructs a Session
object and an instance of the Agent, and passes the Session object to
the Agent.  It then runs the Agent by creating a thread and invoking
the Agent's public void NotesMain() method.

   The above concepts are illustrated in the following...