You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Luca Zappa <Lu...@ieee.org> on 2002/10/29 09:18:00 UTC

HMI - Http Method Invocation

This is the first email that I write on this mailing-list, after to have
read passively for some days.
First of all, I hope you will be able to understand my bad english!

I'm working on a project that I have called HMI (Http Method Invocation),
the project's proposal is to build a framework (a set of classes and
interfaces) for invoke method over http protocol.
I have started to realize some classes and interfaces, the most important
are:
- ServletSkeleton: this is the server-side servlet to extend, it receives
the method to call, finds the method, and invokes it.
- HttpStub: this is the client-side class to extend, it calls the servlet
and receives the result over http.
- HmiRemote: this is an empty interface that is extended by application
interface, it serves to identify the methods may be invoked with HMI (like
Remote interface utilized in RMI).
- HmiResult: this is the class that contains the return value from a Http
Method Invocation by a servlet. It contains the Object returns by method,
the calculation's time and the possible exception throws by HMI method.

If you want to build an application that utilizes HMI framework you must
build 3 files at least:
1) the interface with all the HMI methods, it must extend HmiRemote
interface.
2) the servlet that extends ServletSkeleton and implements the previus
interface (point 1).
3) the client application that extends HttpStub and implements the previus
interface (point 1) with standard template.

This HMI project utilizes:
- the Reflection to retrieve and invoke the HMI method;
- the JUnit unit testing framework for developing and executing unit tests.

I would like to put the initial code, that must be improved and tested, on
jakarta-commons project. What do you think about?

Comments welcome,
  Luca

---
Luca.Zappa@ieee.org


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: HMI - Http Method Invocation

Posted by Berin Loritsch <bl...@apache.org>.
Luca Zappa wrote:
> This is the first email that I write on this mailing-list, after to have
> read passively for some days.
> First of all, I hope you will be able to understand my bad english!
> 
> I'm working on a project that I have called HMI (Http Method Invocation),
> the project's proposal is to build a framework (a set of classes and
> interfaces) for invoke method over http protocol.
> I have started to realize some classes and interfaces, the most important
> are:
> - ServletSkeleton: this is the server-side servlet to extend, it receives
> the method to call, finds the method, and invokes it.
> - HttpStub: this is the client-side class to extend, it calls the servlet
> and receives the result over http.
> - HmiRemote: this is an empty interface that is extended by application
> interface, it serves to identify the methods may be invoked with HMI (like
> Remote interface utilized in RMI).
> - HmiResult: this is the class that contains the return value from a Http
> Method Invocation by a servlet. It contains the Object returns by method,
> the calculation's time and the possible exception throws by HMI method.


Take a look at AltRMI in Apache Avalon.  It is a pluggable architecture that
serves the same need, but allows you to create new transports.

> 
> If you want to build an application that utilizes HMI framework you must
> build 3 files at least:
> 1) the interface with all the HMI methods, it must extend HmiRemote
> interface.
> 2) the servlet that extends ServletSkeleton and implements the previus
> interface (point 1).
> 3) the client application that extends HttpStub and implements the previus
> interface (point 1) with standard template.
> 
> This HMI project utilizes:
> - the Reflection to retrieve and invoke the HMI method;
> - the JUnit unit testing framework for developing and executing unit tests.
> 
> I would like to put the initial code, that must be improved and tested, on
> jakarta-commons project. What do you think about?
> 
> Comments welcome,
>   Luca
> 
> ---
> Luca.Zappa@ieee.org
> 
> 
> --
> To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
> For additional commands, e-mail: <ma...@jakarta.apache.org>
> 


-- 

"They that give up essential liberty to obtain a little temporary safety
  deserve neither liberty nor safety."
                 - Benjamin Franklin


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: HMI - Http Method Invocation

Posted by James Strachan <ja...@yahoo.co.uk>.
Agreed. Also have you seen EOB..

http://eob.sourceforge.net/

Maybe this could be a HTTP transport for AltRMI used in EOB?

James
-------
http://radio.weblogs.com/0112098/
----- Original Message -----
From: "Ola Berg" <ol...@ports.se>
To: "Jakarta Commons Developers List" <co...@jakarta.apache.org>
Sent: Tuesday, October 29, 2002 8:51 AM
Subject: Re: HMI - Http Method Invocation


> I would like to put the initial code, that must be improved and tested, on
> jakarta-commons project. What do you think about?

Some "non-binding" (I'm not a committer) thoughts:

1) Smells like it, if the idea is useful enough, should be a jakarta project
of its own

2) if you put your project on hold for a short time and instead help out
with clazz if you like, you will find that your thing should probably build
heavily on existing jakarta-commons components, including clazz. IIUC,
building your thing using clazz is much more trivial than without it (if the
promises from the initial discussion will be fulfilled).

3) Isn't your thing what SOAP and similar techniques do? What can you do
using your stuff that you can't do without it? Why use it? (not asked to
discourage, but to see if there is a foreseeable future for the thing).

4) Have you looked at Avalon? Seems like your thing needs to exist in some
kind of component framework, and Avalon is a pretty good one.

/O





--
To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
For additional commands, e-mail:
<ma...@jakarta.apache.org>

__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: HMI - Http Method Invocation

Posted by Ola Berg <ol...@ports.se>.
> I would like to put the initial code, that must be improved and tested, on
> jakarta-commons project. What do you think about?

Some "non-binding" (I'm not a committer) thoughts:

1) Smells like it, if the idea is useful enough, should be a jakarta project of its own

2) if you put your project on hold for a short time and instead help out with clazz if you like, you will find that your thing should probably build heavily on existing jakarta-commons components, including clazz. IIUC, building your thing using clazz is much more trivial than without it (if the promises from the initial discussion will be fulfilled).

3) Isn't your thing what SOAP and similar techniques do? What can you do using your stuff that you can't do without it? Why use it? (not asked to discourage, but to see if there is a foreseeable future for the thing).

4) Have you looked at Avalon? Seems like your thing needs to exist in some kind of component framework, and Avalon is a pretty good one.

/O





--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: HMI - Http Method Invocation

Posted by "Craig R. McClanahan" <cr...@apache.org>.

On Tue, 29 Oct 2002, Luca Zappa wrote:

>
> I'm working on a project that I have called HMI (Http Method Invocation),
> the project's proposal is to build a framework (a set of classes and
> interfaces) for invoke method over http protocol.

This sounds like an interesting notion (and there are many different
approaches to implementing it).

You might see how close or far you are from some other existing
technologies at Apache, and see if it might make sense to combine efforts
with an existing project.  For example:

* The XML-RPC project (http://xml.apache.org/xmlrpc> is about remote
  invocation of dynamically selected methods, although it tends to
  focus XML as a data transport format.

* Web application frameworks such as
  Struts <http://jakarta.apache.org/struts> and Turbine
  <http://jakarta.apache.org/turbine> are built around a controller
  servlet that dynamically executes the code to be executed based on
  the URL.  Struts in particular includes a standard Action called
  DispatchAction that not only dynamically selects the class to use,
  it also dynamically selects the method to be called.

The above projects don't deal with building client side APIs for you.  If
you're primarily interested in that space, you might want to look at the
web services world of stuff being built around SOAP and WSDL.  For
example:

* The JAX-RPC reference implementation (part of the Java Web Services
  Developer Pack) <http://java.sun.com/webservices/>.

* Apache Axis (http://xml.apache.org/axis), which is an implementation
  of JAX-RPC and other stuff.

If you really want to submit a project to Apache (and I would agree with
others that this sounds more like a top-level Jakarta thing than it does a
commons package), the general guidelines are at:

  http://jakarta.apache.org/site/newproject.html

The hardest part for a "new brainstorm" idea is usually building up a
robust developer community first.

Good luck!

Craig McClanahan


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


RE: HMI - Http Method Invocation

Posted by Luca Zappa <Lu...@ieee.org>.
Thank you Ola, James, Craig and Berin!

I will reflect about our comments and I will take a look at other other
existing technologies at Apache.

Bye
  Luca


-----Original Message-----
From: Luca Zappa [mailto:Luca.Zappa@ieee.org]
Sent: Tuesday, October 29, 2002 9:18 AM
To: commons-dev@jakarta.apache.org
Subject: HMI - Http Method Invocation


This is the first email that I write on this mailing-list, after to have
read passively for some days.
First of all, I hope you will be able to understand my bad english!

I'm working on a project that I have called HMI (Http Method Invocation),
the project's proposal is to build a framework (a set of classes and
interfaces) for invoke method over http protocol.
I have started to realize some classes and interfaces, the most important
are:
- ServletSkeleton: this is the server-side servlet to extend, it receives
the method to call, finds the method, and invokes it.
- HttpStub: this is the client-side class to extend, it calls the servlet
and receives the result over http.
- HmiRemote: this is an empty interface that is extended by application
interface, it serves to identify the methods may be invoked with HMI (like
Remote interface utilized in RMI).
- HmiResult: this is the class that contains the return value from a Http
Method Invocation by a servlet. It contains the Object returns by method,
the calculation's time and the possible exception throws by HMI method.

If you want to build an application that utilizes HMI framework you must
build 3 files at least:
1) the interface with all the HMI methods, it must extend HmiRemote
interface.
2) the servlet that extends ServletSkeleton and implements the previus
interface (point 1).
3) the client application that extends HttpStub and implements the previus
interface (point 1) with standard template.

This HMI project utilizes:
- the Reflection to retrieve and invoke the HMI method;
- the JUnit unit testing framework for developing and executing unit tests.

I would like to put the initial code, that must be improved and tested, on
jakarta-commons project. What do you think about?

Comments welcome,
  Luca

---
Luca.Zappa@ieee.org


--
To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
For additional commands, e-mail:
<ma...@jakarta.apache.org>


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>