You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by Oleg Kalnichevski <ol...@apache.org> on 2005/10/15 13:46:20 UTC

[HttpClient 4.0] Further development

Folks

It looks like it is going to be a very dull and uneventful weekend here
and I'll have some spare time to work on the new HTTP components for
HttpClient 4.0. I'll be mostly writing boring test cases since the test
coverage slipped from 80% to 50% as a result of code refactoring
intended to improve performance. The test coverage needs to be
improved. 

At the same time I would like to suggest some design level changes

* I would like to move all NIO related code from HttpCommon to
HttpAsync. Hence on NIO will be used for non-blocking HTTP only.
Blocking NIO proved inferior in terms of performance to classic IO, and,
frankly, is useless for blocking HTTP.

* Rename HttpCommon to HttpBase (better name suggestions are welcome) to
avoid confusion with Jakarta Commons

* Rename HttpAsync to HttpNIO. In my opinion NIO (as in non-blocking
I/O) should be more descriptive and recognizable to an average Java folk
than async.

Please let me know what you think and feel free to suggest a better name
for HttpCommon/HttpBase package if you happen to have some new ideas

Oleg



---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-dev-help@jakarta.apache.org


Re: [HttpClient 4.0] Further development

Posted by Ortwin Glück <od...@odi.ch>.
Totally fine with me. Patch away...

Odi

Oleg Kalnichevski wrote:
> Folks
> 
> It looks like it is going to be a very dull and uneventful weekend here
> and I'll have some spare time to work on the new HTTP components for
> HttpClient 4.0. I'll be mostly writing boring test cases since the test
> coverage slipped from 80% to 50% as a result of code refactoring
> intended to improve performance. The test coverage needs to be
> improved. 
> 
> At the same time I would like to suggest some design level changes
> 
> * I would like to move all NIO related code from HttpCommon to
> HttpAsync. Hence on NIO will be used for non-blocking HTTP only.
> Blocking NIO proved inferior in terms of performance to classic IO, and,
> frankly, is useless for blocking HTTP.
> 
> * Rename HttpCommon to HttpBase (better name suggestions are welcome) to
> avoid confusion with Jakarta Commons
> 
> * Rename HttpAsync to HttpNIO. In my opinion NIO (as in non-blocking
> I/O) should be more descriptive and recognizable to an average Java folk
> than async.
> 
> Please let me know what you think and feel free to suggest a better name
> for HttpCommon/HttpBase package if you happen to have some new ideas
> 
> Oleg


---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-dev-help@jakarta.apache.org


Re: [HttpClient 4.0] Further development

Posted by Oleg Kalnichevski <ol...@apache.org>.
On Sat, 2005-10-15 at 07:56 -0400, Michael Becke wrote:

> Might be the same here.  I plan to do some work on HttpClient this
> afternoon and tomorrow.
> 

That'd be cool

> > * Rename HttpCommon to HttpBase (better name suggestions are welcome) to
> > avoid confusion with Jakarta Commons
> 
> HttpBase works.  Also perhaps HttpCore/CoreHttp.
> 

I like HttpCore even better. 

Oleg


---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-dev-help@jakarta.apache.org


Re: [HttpClient 4.0] Further development

Posted by Michael Becke <mb...@gmail.com>.
> It looks like it is going to be a very dull and uneventful weekend here
> and I'll have some spare time to work on the new HTTP components for
> HttpClient 4.0. I'll be mostly writing boring test cases since the test
> coverage slipped from 80% to 50% as a result of code refactoring
> intended to improve performance. The test coverage needs to be
> improved.

Might be the same here.  I plan to do some work on HttpClient this
afternoon and tomorrow.

> At the same time I would like to suggest some design level changes
>
> * I would like to move all NIO related code from HttpCommon to
> HttpAsync. Hence on NIO will be used for non-blocking HTTP only.
> Blocking NIO proved inferior in terms of performance to classic IO, and,
> frankly, is useless for blocking HTTP.

Yep

> * Rename HttpCommon to HttpBase (better name suggestions are welcome) to
> avoid confusion with Jakarta Commons

HttpBase works.  Also perhaps HttpCore/CoreHttp.

> * Rename HttpAsync to HttpNIO. In my opinion NIO (as in non-blocking
> I/O) should be more descriptive and recognizable to an average Java folk
> than async.

Sounds good.

Mike

---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-dev-help@jakarta.apache.org


Re: [HttpClient 4.0] Further development

Posted by Roland Weber <RO...@de.ibm.com>.
Hi Oleg,

> Now I am utterly confused as well. I thought the http-asynch per
> definition required a non-blocking HTTP stack? Am I missing something?

I think blocking IO along with one or two background threads for
each connection will provide a suitable implementation for HttpAsync.
NIO can be used to reduce the number of background threads, since
multiple connections can be handled by a single thread. On the down
side, a single thread can only make use of a single CPU of an SMP
server. That's why I think that alternative implementations based
on blocking and non-blocking IO will be useful. 

> If so, we just keep the http-nio as a separate module and leave
> http-synch be as it is

Sounds reasonable.

cheers,
  Roland


---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-dev-help@jakarta.apache.org


Re: [HttpClient 4.0] Further development

Posted by Oleg Kalnichevski <ol...@apache.org>.
On Mon, Oct 17, 2005 at 07:56:30AM +0200, Roland Weber wrote:
> Hi Oleg,
> 
> > * Rename HttpAsync to HttpNIO. In my opinion NIO (as in non-blocking
> > I/O) should be more descriptive and recognizable to an average Java folk
> > than async.
> 
> I just deleted a paragraph of this mail I had already written. When I
> read NIO, I immediately associated it with the java.nio classes. The
> HttpAsync design does not rely on java.nio classes, and I'm afraid this
> renaming would lead users to believe that it does. It sure confused me.
> 
> cheers,
>   Roland
> 

Hi Roland

Now I am utterly confused as well. I thought the http-asynch per
definition required a non-blocking HTTP stack? Am I missing something?
If so, we just keep the http-nio as a separate module and leave
http-synch be as it is

Oleg

> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: httpclient-dev-help@jakarta.apache.org
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-dev-help@jakarta.apache.org


Re: [HttpClient 4.0] Further development

Posted by Roland Weber <RO...@de.ibm.com>.
Hi Oleg,

> * Rename HttpAsync to HttpNIO. In my opinion NIO (as in non-blocking
> I/O) should be more descriptive and recognizable to an average Java folk
> than async.

I just deleted a paragraph of this mail I had already written. When I
read NIO, I immediately associated it with the java.nio classes. The
HttpAsync design does not rely on java.nio classes, and I'm afraid this
renaming would lead users to believe that it does. It sure confused me.

cheers,
  Roland


---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-dev-help@jakarta.apache.org