RE: Eve integration with Geronimo

2004-09-10 Thread Noel J. Bergman
Alan D. Cabrera wrote:
 Alex Karasulu is working on it.  I suspect that it will be
 completed soon.  Alex?

Small matter of something called a hurricane has Alex off-line at the
moment.

--- Noel



Re: RE: Eve integration with Geronimo

2004-09-10 Thread Alex Karasulu
Hey guys,

As a Hurricane refugee (sounds weird saying that) I have no dependable internet 
connectivity so I appologize for getting to these emails so late.  And thank 
you Noel for letting people know.

Now for Geronimo integration Alan and I had discussed making some components 
into GBeans.  We were debating whether or not to make the entire server into 
one GBean or to make all services in the server into a GBean.  To show how that 
is done Alan whiped together a few wrappers for all the services here:

http://svn.apache.org/viewcvs.cgi/incubator/directory/eve/trunk/frontend/geronimo/?root=Apache-SVN

But after he did this we began thinking the single GBean approach for all of 
Eve may be better.  So with Alan's examples I think one of us can pick up the 
torch and write a single wrapper pretty easily for plugging into Geronimo.

There are however some considerations.  We have begun to decouple the backend 
code from Avalon and will have pure pojos with Avalon wrappers.  This must 
happen before the backend can be integrated as well as the frontend code.  

Also we have begun to separate out frontend plumbing from LDAP specific code in 
Eve's frontend.  This code is a TCP specific SEDA framework.  We're going to 
make this into a subproject on its own so we can reuse it for a Eve integrated 
Kerberos server without tight coupling (it can also be standalone).  Trustin 
Lee (guy who did Netty) will be looking into adding UDP support to this in 
project.  

So what does this all mean for integration?  Well we want to write wrappers for 
this SEDA framework where Eve just plugs in as another simple protocol to be 
able to benefit from those wrappers.  By writing a geronimo wrapper for SEDA 
rather than an Eve specific frontend we now allow any protocol to be fired up 
within geronimo without having to specifically integrate that protocols 
frontend.  WDYT?  

So we really want to write a SEDA framework wrapper intead of one specifically 
for Eve.  This also makes me think if its worth writting wrappers for the 
backend of Eve and this raises several questions I still don't have answers to 
but these I'll leave for other emails.

Hope that helps,
Alex


 From: Noel J. Bergman [EMAIL PROTECTED]
 Date: 2004/09/10 Fri AM 12:26:39 EDT
 To: [EMAIL PROTECTED]
 CC: Apache Directory Developers List [EMAIL PROTECTED]
 Subject: RE: Eve integration with Geronimo
 
 Alan D. Cabrera wrote:
  Alex Karasulu is working on it.  I suspect that it will be
  completed soon.  Alex?
 
 Small matter of something called a hurricane has Alex off-line at the
 moment.
 
   --- Noel
 
 



RE: Eve integration with Geronimo

2004-09-10 Thread jastrachan
Hey Alex
 From: Alex Karasulu [EMAIL PROTECTED]
 Also we have begun to separate out frontend plumbing from LDAP  
specific code in Eve's frontend.  This code is a TCP specific SEDA  
framework.
 We're going to make this into a subproject on its own so we can reuse  
it for a Eve integrated Kerberos server without tight coupling (it can  
also be
 standalone).  Trustin Lee (guy who did Netty) will be looking into  
adding UDP support to this in project.

 So what does this all mean for integration?  Well we want to write  
wrappers for this SEDA framework where Eve just plugs in as another  
simple
 protocol to be able to benefit from those wrappers.  By writing a  
geronimo wrapper for SEDA rather than an Eve specific frontend we now  
allow any
 protocol to be fired up within geronimo without having to  
specifically integrate that protocols frontend.  WDYT?

 So we really want to write a SEDA framework wrapper intead of one  
specifically for Eve.  This also makes me think if its worth writting  
wrappers for the  backend of Eve and this raises several questions I  
still don't have answers to but these I'll leave for other emails.

I guess it depends what you mean by SEDA. Mostly I tend to think of the  
Channel abstraction in the concurrent.jar as being a pretty good  
abstraction for SEDA, where the channels can be local in VM or remote  
and you can put/take/poll objects - then the rest is just  
implementation details. Or some folks like to abstract away the low  
level SEDA like protocol of sync/async send behind a dynamic proxy to  
make SEDA invisible as it were. e.g.

http://activemq.codehaus.org/maven/apidocs/org/codehaus/activemq/util/ 
AsyncProxy.html

If what you mean is more of a SEDA based transport framework, well  
we've been working for quite some time on one of those on the ActiveMQ  
project :). Last benchmark we did was 22,000 messages/second sustained  
throughput on 2 2-way linux boxes with producer, broker, consumer all  
going across the network for 1-2K message sizes and reasonably low CPU  
usage (YMMV).

Currently we've transports for
* VM (in memory both sync  true SEDA)
* TCP / SSL
* UDP  multicat
* NIO through g-networks and EmberIO
* JGroups
* JRMS
* JXTA
* HTTP (for tunnelling)
* Jabber (experimental)
* AIO4J (experimental)
In addition we have discovery protocols (Zeroconf  ActiveCluster) to  
make peer-style clusters of auto-discoverying clients  servers  
(Zeroconf is particularly cute as it works nice with Apple's  
Rendezvous), together with load balancing  fault tolerance transports  
(e.g. auto-fail over to another server in case of failure etc).

Other protocols to come are SOAP-over-TCP, FTP,  SMTP, SQL and file  
system when we get chance.

Details of the code are here...
http://activemq.codehaus.org/Code+Overview
Basically we have a really simple TransportChannel API which can  
represent any kind of transport protocol.

http://activemq.codehaus.org/maven/apidocs/org/codehaus/activemq/ 
transport/package-summary.html

The minimal contract we support for application protocols is that they  
must decide if a method call is sync (requiring a receipt such as a  
commit()) or async (fire  forget) and for async, whether a flush is  
required after the send. Consuming is pluggable based on the transport  
- so it decides if there is a thread, is it pull/push or how threads  
multiplex such as for NIO / AIO.

Most of the transport channels can be reused as is with a pluggable  
WireFormat which dictates how command objects (we use the Packet base  
class) get serialized on the wire. e.g. we have a default, fast as  
possible, wire format for the JMS Packets, as well as Jabber  XStream  
based ones etc.

The TransportChannel abstract represents about the 8th or 9th  
generation of this kind of abstraction the team have used over the last  
5 years or so for implementing high performance messaging  SEDA  
transport abstractions - so if nothing else, I'd advise you to go down  
a similar route of abstraction; then at the very least you'll be able  
to reuse our transports easily  we can easily plugin into your stuff -  
especially if you want to take advantage of our clustering, failover   
replication protocols..

James
---
http://radio.weblogs.com/0112098/


Eve integration with Geronimo

2004-09-09 Thread Bruce Snyder
Does anyone have a configuration or a plan that integrates Eve with 
Geronimo? If not, can anyone tell me if there are any tricks to creating 
one?

Bruce
--
perl -e 'print 
unpack(u30,0G)[EMAIL PROTECTED]5R\\F9EG)E=\\$\\!FFEI+F-O;0\\`\\`);'

The Castor Project
http://www.castor.org/
Apache Geronimo
http://incubator.apache.org/projects/geronimo.html