Martin Klang | 2 Jan 19:59 2007
Picon

Re: Java agents call functions

Hi Francisco,

You can call o:XML functions using the internal Java API [1].

All o:XML objects implement the org.oXML.type.Node interface, which  
includes the function
     public Node invoke(Name name, Node[] args)
         throws ObjectBoxException;

This only works within the context of an o:XML program being  
executed, so how you would actually call this method depends on how  
you are running the program.

I can probably provide an example if you could pls explain how your  
system works - eg How do your software agents and the o:XML program 
(s) interact? Are they executing concurrently in different threads,  
or one after the other? Do the agents invoke the o:XML programs, or  
vice versa?

best regards,

/m

[1] http://www.o-xml.org/docs/java-api/

On 30 Dec 2006, at 13:48, Francisco wrote:

> Dear All,
>
> I am a newbie of O:XML. Our project needs to software agents  
(Continue reading)

Francisco | 11 Jan 02:05 2007
Picon

external java agent calls functions in o:XML

Dear All and Martin,
 
I am quite interested in external java agents calling functions in o:XML files. I am not sure if this can be done provided that current o:XML API and libraries.

Can anybody provide me an example or explain if this can be done? the details of this thinking is described as follows:
 
Currently I would like to describe the object-oriented MIB with O:XML language. This O:XML "configuration" file is written beforehand and java agents do NOT need to generate this o:XML, whereas, java agents need to invoke the methods predefined in this file with regards to event notifications, and reassign the value of the variables in o:XML file itself. In
addition, the java agents could act in either multiple threads mode simutaneously or
operate one after one another. We could always make it complicated later. Currently
I am confused by the possible implementation of methods invoked by java agents. I am
not sure if there are available API or library for this external operation done by java agents.
 
Thank you in advance for providing me with a simple example about this. Your help is highly appreciated and will be acknowledged in the in future network management research.
 
Looking forward to hearing from you very soon.
 
Best regards,
Francisco

All new Yahoo! Mail "The new Interface is stunning in its simplicity and ease of use." - PC Magazine
_______________________________________________
o-xml mailing list
o-xml@...
http://lists.pingdynasty.com/mailman/listinfo/o-xml
Martin Klang | 11 Jan 23:55 2007

Re: external java agent calls functions in o:XML

Hi Francisco,

If I understand your problem correctly then what follows might be an  
interesting solution - though first a couple of notes -

The o:XML execution model has the notion of a session. The session is  
essentially a hash table, where variables can be stored and reused in  
between program invocations. It was designed for programs handling  
web requests, but can be used in any execution context. Session  
variables are important, because in o:XML there are no static or  
global variables.

Furthermore o:XML programs can be compiled once then executed (by  
concurrent threads) any number of times.

So the solution would be to create an o:XML controller that receives  
requests from your Java agents, then compiles (if necessary) and  
invokes the right o:XML program or function, with the right session  
for storing/updating results, and then you're flying!

Basically this is what the ObjectBox Servlet and Struts Action do  
when receiving HTTP requests (ObjectBox is the o:XML Java-based  
compiler/interpreter).

You will probably need to make a few design decisions -

1) Will the agents invoke a single function defined in an o:XML  
program, or an entire program?
In o:XML, any XML file is an o:XML program, and if you use the  
<o:program> construct you can also pass parameters (such as a  
session) to the program. Program parameters are declared much in the  
same way as function parameters.

2) How does the controller know which program/function to invoke?  
Does the agent tell it which one, or is it set in the application  
configuration?

3) How and when are session variables used? Does the same agent  
always update the same set of results, or can different agents update  
the same set of results?

4) How are results accessed? Are they accessed realtime in some form  
of console, or collated at the end of the process, output to a log  
file..?

I can easily knock together a working example if you can answer the  
above questions and give me some idea of what the requests coming  
from the Java agents might look like.

However, you might also want to consider using a framework such as  
Spring. As described in a previous posting [1], o:XML can integrate  
with Spring and this can be used to tie Java code into o:XML code,  
and vice versa. It also has the significant advantage of integrating  
with several other scripting languages, eg Ruby and Groovy.
An updated version of ObjectBox including Spring integration should  
be out in the next few weeks.

best regards,

/m

[1] http://lists.pingdynasty.com/pipermail/o-xml/2006q2/000087.html

On 11 Jan 2007, at 2:05, Francisco wrote:

> Dear All and Martin,
>
> I am quite interested in external java agents calling functions in  
> o:XML files. I am not sure if this can be done provided that  
> current o:XML API and libraries.
>
> Can anybody provide me an example or explain if this can be done?  
> the details of this thinking is described as follows:
>
> Currently I would like to describe the object-oriented MIB with  
> O:XML language. This O:XML "configuration" file is written  
> beforehand and java agents do NOT need to generate this o:XML,  
> whereas, java agents need to invoke the methods predefined in this  
> file with regards to event notifications, and reassign the value of  
> the variables in o:XML file itself. In
> addition, the java agents could act in either multiple threads mode  
> simutaneously or
> operate one after one another. We could always make it complicated  
> later. Currently
> I am confused by the possible implementation of methods invoked by  
> java agents. I am
> not sure if there are available API or library for this external  
> operation done by java agents.
>
> Thank you in advance for providing me with a simple example about  
> this. Your help is highly appreciated and will be acknowledged in  
> the in future network management research.
>
> Looking forward to hearing from you very soon.
>
> Best regards,
> Francisco
>
>

Gmane