Java AUGUR® Web Server
JAWS is a complete HTTP/HTTPS web server,
ideal for browser-based interfaces, web services, and some static web sites (like this one).
— anywhere an "application server" would be overkill.
JAWS has built-in frameworks help implement
JSON-RPC
client/server communications via
Ajax and/or
WebSockets.
JAWS can run stand-alone, or embedded in your Java application.
Why Another Web Server?
Public web sites (e.g. news, reference, product marketing, etc.) often want to be found in search engine results.
Search engines efficiently scan HTML pages for static text content,
but they generally do not navigate through interactive sites that change content via client-side scripting (JavaScript).
So web sites usually need to deliver separate HTML web pages that plainly display text to be indexed by search engines.
This results in web site designs that rely on
server-side software (e.g. JSP, ASP.NET, PHP, etc.) to dynamically construct
separate HTML pages in response to each significant user interaction.
There are many web servers that cater to this need: Apache, node.js, et al.
For web applications (e.g. private portals, proprietary interfaces, etc.),
a designer can instead opt to send a HTML/JavaScript framework once,
then deliver data (e.g. text, statistics, images, prices, etc.) — not more HTML pages.
In this design, client-side JavaScript is used to dynamically show/hide/modify the content within a single HTML page.
Not surprisingly, this is often called single-page design.
It is faster and more efficient (less data transmitted and less HTML affected).
In the end, it provides a nicer user experience, since
a browser does not need to blank the screen and redraw a whole page in response to every user action.
Web sites that use single-page design feel like a native application, if you ignore the browsers's toolbar, etc.
Single-page design depends on JavaScript in the web browser client software.
In the past this was not a safe or consistently-implemented assumption.
In recent years, that has changed, so single-page designs are feasible.
Therefore, single-page designs should proliferate for web applications.
So why another web browser? Because existing web servers are biased towards Google-friendly
web pages. JAWS is uniquely optimized for web applications.
(JAWS is also fast, compact, friendly to Java developers, and has some unique features too.)
JAWS for Browser-based Interfaces
A browser interface is the de-facto standard for equipment and stand-alone software systems,
because it avoids client software installation.
If your system is written in Java, then JAWS can be embedded to provide
the HTTP service you'll need to communicate with browsers.
JAWS also includes frameworks to integrate
LDAP, TACACS+, or an ID/password file
to authenticate and authorize access.
JAWS for Web Sites
To host a web site, you need an HTTP server for delivering static
HTML pages and their resources.
You might also need some custom server-side code,
e.g. to handle a submitted form. JAWS can accommodate that.
If your web site is on the public Internet, you also need
high throughput and tolerance for malicious traffic.
JAWS supports standard optimizations, e.g. ETAG headers, compression, etc.
JAWS can also recognize attempts to probe for popular security exploits,
and silently quarantine those clients — avoiding trouble,
and protecting your bandwidth since attackers will often try a long list of possibilities.
JAWS for Web Services
A web service usually provides only data, (not HTML for web pages).
That data is often in JSON format, to be consumed by another
system, or visualized by JavaScript in a browser.
Traditionally, a web service runs inside an "application server"
which is a rather large piece of software that may manage multiple
web services.
That may be overkill or impossible in
some environments, e.g. an "Internet of Things" device.
JAWS can be embedded in your web service application with one line of code
and a configuration file. Since it runs in the same JVM,
life-cycle headaches and overhead are avoided.
Internet web services need high throughput, low latency, and tolerance for malicious traffic.
JAWS addresses those needs.
Unique Features...
- Logs are organized per session (not per individual request)
- Logs include dwell time per page.
- Quarantine for requests of known exploits
- JSON-RPC: client commands execute your server-side methods
- One-line of code to embed in your Java app
- Footprint: < 250kb
Availability
JAWS is currently in use for this web site and in our products.
For its open-source launch, we need to tidy up and write documentation.
We'd also like to finish a few more unique features.
There is no strict time line for this.
If you are seriously interested in beta testing,
or just receiving an announcement when it's ready,
please
send us a note.