Improvements In A Number Of Problem Areas Of HTTP/1.1
Mike Spreitzer & Bill Janssen together, as mentioned in research paper unified Web with COM, CORBA, & Java RMI. Prototype solution to problems mentioned below is based upon organizing HTTP into 3 important layers:
- Transport of opaque byte & message streams.
- Application-independent RMI.
- Document fetching/storing application.
The group produced & measured prototype which shows that it is possible to make continuous improvements in following problematic areas of HTTP/1.1 using familiar engineering principles:
- Layering of application protocols over HTTP.
- Modularity & extensibility.
- Networking performance & fairness.
- Rigid binding b/w identifiers and protocol stacks
- Cloudiness of layered traffic to firewalls.
Problems for data type system to be solved are:- be sufficient for good expression of TCWA as well as other applications being layered on HTTP & unify the type systems of COM, CORBA & Java RMI.
Middle layer addresses above problems. These other applications include those that are closely related , less closely related comparatively, based on partial clones of HTTP , completely unrelated & based on layering over HTTP of middleware systems of independentorigin. However, these all fail to address underlying problems with HTTP, & make only a limited contribution to unifying COM with other popular middleware systems.
One lesson I drew from this design exercise is that a fairly conventional type system would support the Web application and other applications being covered on HTTP, with one important caveat. Middle layer’s design is organized into 3 important parts:
- Type system for data (including object values and references) passed in calls
- Way of encoding those data in serial bytes
- Call framing and other conventions needed to implement remote invocations.
ILU supports alternatives at RPC layer, & main comparisons were done using ILU implementations of middle layer of HTTP-NG with corresponding parts of HTTP/1.0 & HTTP/1.1. Data encoding defines how data of types described above are encoded into bytes for transport, and does in a way that addresses network performance problems and rigid binding between object identities and transport stacks.
Transport layer addresses above mentioned problems, and also makes a contribution to unifying middleware systems. The prototype showed that it is possible to make improvements in a number of problem areas of HTTP/1.1, & can be done in a way that could lead to unification of Web with related middleware systems COM , CORBA, and Java RMI.
Without possibility of multiple stacks, it is not at all possible to incrementally move current Web upon a new transport sub stack , nor offer multiple alternatives, except by using mechanisms (such as HTTP redirections or UPGRADE) that costs additional round trips.
Ability of a byte stream connection receiver to initiate message stream connections in reverse direction may be useful both
- solve same performance problems mentioned above and
- to enable callbacks from servers to clients behind firewalls.
MUX filter adds:
- delimiting of messages;
- multiplexing of parallel message streams over a single underlying byte stream;
- the ability of server side of byte stream connection to initiate message stream connections in reverse direction.
Experimental results
Although modularity and flexibility can have a negative impact on performance, PDG produced and measured a prototype that shows it is possible to simultaneously improve performance and make other reported improvements in HTTP. Unification of the Web with other middleware systems would profit from further work on middle layer of HTTP-NG as well as on other systems, to help them all converge. At the base , we can start with a very simple version of the application, which can be rendered in OMG IDL. Idea is that rather than allocate a number for every supported combination and parameterization of transport filters and higher protocols, client simply states desired superior stack at start of a message stream.
Important points:
- Use of HTTP for other applications creates confusions b/w other application and HTTP’s document application.
- HTTP is now used for applications other than TCWA, & causes more problems.
- Also includes more work on making type systems better support decentralized evolution.
- Lower two layers suffice to serve needs of other applications currently being layered over all of HTTP, & provide a more robust platform on which to deploy & evolve a large collection of applications.
- Transport layer, which is so similar to corresponding layer in ILU , addresses reliable ordered bidirectional transport of opaque byte or message streams.
- First call back passes a control object reference to client, who can call on it to make server pause or abort message stream, without closing any connections or back up for error recovery.
- And that message stream differs from a direct byte stream of document content mainly in addition of message framing and a little other per-chunk overhead, which is small.