tag:blogger.com,1999:blog-5913122713300466178.post3610006738269578742..comments2017-12-05T11:17:54.341-08:00Comments on thesoftwarekraft: How JBoss Netty helped me build a highly scalable HTTP communication server for GPRSArchanaa Pandahttp://www.blogger.com/profile/02932767571085446643noreply@blogger.comBlogger20125tag:blogger.com,1999:blog-5913122713300466178.post-52749140471439967632017-12-05T11:17:54.341-08:002017-12-05T11:17:54.341-08:00Really nice article. Very informative.Really nice article. Very informative.Amitnoreply@blogger.comtag:blogger.com,1999:blog-5913122713300466178.post-58982080067975958132015-10-19T03:57:24.111-07:002015-10-19T03:57:24.111-07:00hi, just to clarify that , if developed with asyn...hi, just to clarify that , if developed with asynch i/o NIO2 GPS server, it will not run on linux/unix as expected result. Only work on windows server. If so than how can achive the same performance on non window serves.Vivek Bohrahttps://www.blogger.com/profile/07566169165960126239noreply@blogger.comtag:blogger.com,1999:blog-5913122713300466178.post-60109973814868171602013-09-03T07:43:17.195-07:002013-09-03T07:43:17.195-07:00Hello,
i am trying to build an application for th...Hello, <br />i am trying to build an application for the very same purpose you did, but i dont understand netty that much, i would like to know if you could give some documentation regarding pools, work groups cause i don't get how they work. Or if you could tell me how to start, i cant find any tutorials or anything that would explain them. Thanks a lot in advance my mail is jonathanmelian@gmail.com. Jonathan Melianhttps://www.blogger.com/profile/12159320487103871617noreply@blogger.comtag:blogger.com,1999:blog-5913122713300466178.post-45676756665408789122012-06-22T04:16:38.973-07:002012-06-22T04:16:38.973-07:00Just to add to that, most JavaEE servlet container...Just to add to that, most JavaEE servlet containers (of various application servers) seemed to do it in the reactor fashion - that is, instead of assembling complete request in-memory, they call the servlet when the first hint of a new request comes and then it is the job of the application's servlet to read the request bytes from the actual socket. At least that was the case in late 2008. I don't know if newer versions of servlet containers of various application servers give a configuration parameter to allow us to specify whether we want the HTTP request to be pre-read before the servlet is called or not.Archanaa Pandahttps://www.blogger.com/profile/02932767571085446643noreply@blogger.comtag:blogger.com,1999:blog-5913122713300466178.post-12045265998406092382012-06-22T04:11:39.715-07:002012-06-22T04:11:39.715-07:00Hi, my definition of Reactor and Proactor may be d...Hi, my definition of Reactor and Proactor may be different than what academically it is defined as, in which case - please do feel free to correct me :-)<br />The article 'Do we really need Servlet Containers always? Part 2' (http://thesoftwarekraft.blogspot.in/2010/07/do-we-really-need-servlet-containers_10.html ) details how I view reactor and proactor especially for HTTP. <br /><br />In short, my definition of proactor (or at least pseudo-proactor) for HTTP is that - the container or HTTP software API layer reads the complete request into (user-defined) buffer and then calls the application handler to handle it.<br /><br />Whereas the reactor one is that - the container or HTTP software API layer calls the application handler when the first few bytes of the request arrive and then it is the job of the application handler to synchronously (or blockingly) read the complete HTTP request from the socket. <br /><br />In case of GPRS, if the first few bytes of the request arrive, it doesn't mean that the rest of the request will follow smoothly and immediately - there can be pauses due to the nature of GPRS. So in the proactor/pseudo-proactor, the HTTP layer would keep reading and concatenating whatever bytes it gets into a buffer in a non-blocking manner. When it sees that an HTTP request has been fully read (by virtue of content-length or other means), only then it gives the complete request to the application layer to handle in a buffer. Thus, there is minimal blocking. <br /><br />Of course, at the expense of some memory consumption while the request is being concatenated and assembled.Archanaa Pandahttps://www.blogger.com/profile/02932767571085446643noreply@blogger.comtag:blogger.com,1999:blog-5913122713300466178.post-90510129664795207702012-06-22T03:43:27.483-07:002012-06-22T03:43:27.483-07:00Doesnt netty also use Reactor pattern as does MINA...Doesnt netty also use Reactor pattern as does MINA ?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5913122713300466178.post-35937455601934504932012-03-23T04:18:24.219-07:002012-03-23T04:18:24.219-07:00Because of the decoupling nature, IMO, JMS is more...Because of the decoupling nature, IMO, JMS is more scalable than NIO-only from architecture point of view. However, if physical scalability is available (i.e. more boxes are available), then NIO-only would be fine too. If only the CPU's are not wasted, the result will be the same.jacknowhttps://www.blogger.com/profile/00421038421408010892noreply@blogger.comtag:blogger.com,1999:blog-5913122713300466178.post-16292731424864680742012-01-20T10:40:04.885-08:002012-01-20T10:40:04.885-08:00Sorry , that should read what she's done.Sorry , that should read what she's done.Jonnoreply@blogger.comtag:blogger.com,1999:blog-5913122713300466178.post-36335248501970896122012-01-14T18:34:21.868-08:002012-01-14T18:34:21.868-08:00Rather silly to post non-constructive criticism me...Rather silly to post non-constructive criticism methinks. The writer has at least shared what he's done. Why not be brave and post under your own name geezer?Jonhttp://www.google.comnoreply@blogger.comtag:blogger.com,1999:blog-5913122713300466178.post-44340823355768497442011-12-15T12:01:32.830-08:002011-12-15T12:01:32.830-08:00Good reading, thanks.
But there is nothing scalab...Good reading, thanks. <br />But there is nothing scalable in this article.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5913122713300466178.post-17672783913348524482011-09-11T14:38:19.588-07:002011-09-11T14:38:19.588-07:00Thanks that was a great article!Thanks that was a great article!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5913122713300466178.post-1227388033252183592011-01-06T01:18:44.326-08:002011-01-06T01:18:44.326-08:00informative articleinformative articleManujhttps://www.blogger.com/profile/10196011034804077431noreply@blogger.comtag:blogger.com,1999:blog-5913122713300466178.post-23683847918002914832010-11-13T01:03:24.103-08:002010-11-13T01:03:24.103-08:00Regarding deployment - the custom engine that I ma...Regarding deployment - the custom engine that I made with Netty was in plain Java. For monitoring, it was simple enough to maintain my own statistics like number of current connections, details of the connections etc. A little more work, but it pays because one is able to maintain and collate exactly all the information one needs per the application. These statistics can be exposed with a simple Swing GUI or exposed using standard JMX connectors that come with the JDK or application server runtimes. <br /><br />Regarding NIO primer, there are several good articles that clear concepts of NIO but my favortites are the ones whose links I have given in the article above - Introducing Non blocking sockets and Building Highly Scalable Servers with Java NIO.Archanaa Pandahttps://www.blogger.com/profile/02932767571085446643noreply@blogger.comtag:blogger.com,1999:blog-5913122713300466178.post-34087761731530960252010-11-12T20:57:20.537-08:002010-11-12T20:57:20.537-08:00Nice article. I wish if I could find some basic do...Nice article. I wish if I could find some basic documents about Netty. I am not a pro java developer and finding it little hard to grasp whats Channel, Buffer etc. Trying to learn, but both MINA and Netty document assumes that you know about these terms and NIO already.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5913122713300466178.post-39111846148677560062010-11-02T11:20:48.811-07:002010-11-02T11:20:48.811-07:00Great Article. Would like to see how the services ...Great Article. Would like to see how the services were deployed. App Servers give some tools to allow monitoring and such. So, any suggestions on deployment aspects would be great help.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5913122713300466178.post-85730407659618265812010-08-12T19:18:09.534-07:002010-08-12T19:18:09.534-07:00Hi Archanaa,
It is a Great article and thank you f...Hi Archanaa,<br />It is a Great article and thank you for sharing it.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5913122713300466178.post-62939106916302369712010-08-12T05:02:58.996-07:002010-08-12T05:02:58.996-07:00It was sufficient for me that the IO was non-block...It was sufficient for me that the IO was non-blocking if not completely AIO. But yes, the system was on windows.Archanaa Pandahttps://www.blogger.com/profile/02932767571085446643noreply@blogger.comtag:blogger.com,1999:blog-5913122713300466178.post-85045873545816207702010-08-10T22:33:42.648-07:002010-08-10T22:33:42.648-07:00Just curious because I also encounter similar situ...Just curious because I also encounter similar situation. <br /><br />Does the system base on window? Doc e.g. http://lse.sourceforge.net/io/aio.html says that linux/ unix does not support socket asynchronous io.arsene linnoreply@blogger.comtag:blogger.com,1999:blog-5913122713300466178.post-62726259331944439362010-07-28T15:55:00.696-07:002010-07-28T15:55:00.696-07:00Great article and thanks for sharing. Recently, I ...Great article and thanks for sharing. Recently, I also questioned (and am still questioning) the Servlet container-based approach when I needed a custom server/http web server and proxy. I evaluated MINA, Netty and xLightWeb. I ended up choosing xLightWeb because of its extensive support for HTTP.Paulnoreply@blogger.comtag:blogger.com,1999:blog-5913122713300466178.post-72916725062555656342010-07-04T10:26:06.632-07:002010-07-04T10:26:06.632-07:00To the point and technically very informative!!To the point and technically very informative!!Unknownhttps://www.blogger.com/profile/04986652391741831387noreply@blogger.com