3 ms·
Already back in 2003, Greg Wilkins, the author of the Jetty Web container and contributor to the Servlet specifications, blogged about some issues with Servlets
by bullen 6y ago
Already back in 2003, Greg Wilkins, the author of the Jetty Web container and contributor to the Servlet specifications, blogged about some issues with Servlets:
- No clear separation between the protocol concerns and the application concerns.
- Unable to take full advantage of the non-blocking NIO due to blocking IO assumptions.
- Full Servlet Web containers are overkill for many applications.
My design fixes all of them and adds many features:
- It has classloader hot-deploy, which means you can replace the implementation while people are requesting things from the server for zero turnaround development over HTTP distributed across continents securely.
- It uses non-blocking sockets, concurrent lock-free data and async. network implementations to allow for joint parallel scaling (many threads accessing the same memory).
- It implements "transfer-encoding: chunked" to allow real-time server -> client messages without over-engineering.
- It has a distributed JSON file database hosted on-top-of HTTP so it can scale.
To answer your question specifically:
The Service.java is similar, but Event.java and Reply.java are different as they allow hold() and wakeup() for NIO concurrent async. features!
- deleted 6y ago[deleted]
- eternalban 6y agoWould like to read the crits of Wilkins. Search engines are not helping, do you have a link? Jetty has continuations per Servlet 3.0 spec.: https://www.eclipse.org/jetty/documentation/current/continuations.html https://www.eclipse.org/jetty/documentation/current/continua... > - No clear separation between the protocol concerns and the application concerns. Waiting for the link to see the details of this conclusion. In the interim, "application concerns" are addressable via https://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html https://docs.oracle.com/javaee/6/api/javax/servlet/ServletCo... > - Full Servlet Web containers are overkill for many applications. This is true. Servlets are clearly part of the Component Oriented Distributed Middleware architectural vision of Sun Microsystems' architects circa late 90s. A beautiful component oriented architecture, imho, but yes, too overblown for your basic web-apps. > My design fixes all of them and adds many features: I'll take a look. I don't think (per above) that your solution is really demonstrating a short-coming in the design of Servlets. You have entirely distinct design goals that merely share a network protocol in common.
- eternalban 6y agop.s. so here is an example of a J2EE startup back in ancient days. I remember interviewing with these guys in Boston. They were dreaming of the future "Component Market" and clearly attempting to execute on Sun's vision. [Sold to BEA and now Oracle] People either don't remember, or never understood, why Sun created JEE. (And apparently, neither did the execs in Sun who completely blew it.) https://web.archive.org/web/19990417094359/http://www.theorycenter.com/home/home.htm https://web.archive.org/web/19990417094359/http://www.theory...
- bullen 6y agohttps://webtide.com/servlets-must-die-slowly/ https://webtide.com/servlets-must-die-slowly/ No comments there, but you can read about his probable contributions to the continuations API in later posts maybe? Sure we all try to implement HTTP the best we can, the difference is how fast and efficiently we do it.
- eternalban 6y agoThanks for the link!