Kaazing Enterprise Gateway
Kaazing Enterprise Gateway is a cutting-edge,
enterprise WebSocket server that enables full-duplex communication
from the browser to any TCP-based back-end service (for example, JMS,
JMX, IMAP, Jabber, and so on). This simplified architecture allows
developers to code directly against back-end services, using
JavaScript or technologies such as Adobe Flex and Microsoft
Silverlight, which eliminates the need for complex server- and
client-side architectures to bridge various protocols to the browser
over HTTP.
Developers simply
configure Kaazing Enterprise Gateway (to accept and connect to
certain hosts and ports, and so on), include a few script tags that
can talk directly to the back-end APIs (for example, Apache ActiveMQ
JMS over Stomp), and develop their client application, allowing them
to maintain focus on what matters most: building applications, rather
than reinventing the wheel.
Kaazing Enterprise Gateway Components
Kaazing Enterprise Gateway consists of
the following components:
Kaazing Gateway - An open source
enterprise WebSocket server that enables direct TCP
connectivity between browsers and back-end services and is available at kaazing.org
Kaazing Protocols - A set of
API-specific JavaScript and Adobe Flex libraries that provide
protocol implementations (e.g. STOMP, AMQP, XMPP, etc.)
Kaazing Gateway Extensions - A set of
enterprise-ready extensions for Kaazing Enterprise Gateway
Enterprise HTML 5 WebSocket Architecture
Kaazing Gateway is configured to interpret the emulated or native TCP calls and pass them directly to the TCP-based back-end service (for
example, a JMS broker, a database, IMAP server or Instant Messaging
Server) At that point, an end-to-end TCP connection is established
over which messages can be sent with minimal overhead.
The browser connects directly to the Kaazing Gateway. The use of the
Kaazing Protocols libraries directs requests immediately to the
Kaazing Gateway. The Kaazing Gateway supports the WebSocket protocol
and can emulate WebSocket using two HTTP connections, one for
upstream and one for downstream communications. The downstream
connection is implemented using the Server-sent events wire protocol,
allowing native browser Server-sent events and WebSocket
implementations to be used as they are made available in future
browser releases.
Setting up Kaazing Enterprise Gateway in an enterprise topology is not much
different from the simple setup shown in the above figure. Kaazing
Enterprise Gateway TCP connections seamlessly traverse firewalls and
proxy servers between the different enterprise tiers, ensuring that
message delivery guarantees are maintained.
Additional hardware load-balancing routers and
additional Kaazing Gateways can be configured for high availability
and failover.
Kaazing Enterprise Gateway Features
The following are the key features of
Kaazing Enterprise Gateway:
Reliability - Message
delivery from back-end systems and services is guaranteed all the
way from the server to the browser and vice versa in the same way
that the HTML 5 Specification guarantees TCP message delivery
natively.
Standards-Compliance - The
current implementation of Kaazing Enterprise Gateway is based on the
HTML 5 standard. Once browsers support full-duplex connectivity, per
the HTML 5 specification, there is no need to change any server or
client code; applications will automatically take advantage of the
native implementations of HTML 5's Server-sent events and WebSocket
with improved performance.
Binary and Text-Based Protocol Support-While
the JavaScript WebSocket specification only supports text-based
protocols, the Kaazing Enterprise Gateway also supports binary
protocols, enabling raw TCP communication between client and server.
Scalability-Kaazing
Gateway is stateless and therefore scales quite easily to enormous
amounts of concurrent users. Kaazing Gateway runs separately from
the application logic, which eliminates resource competition between
applications.
Performance - HTTP is a
request and response-driven protocol, whereas TCP is centered around
the reliable delivery of message data. With each HTTP request and
response, header information is sent, which is an unnecessary
overhead. This overhead is virtually eliminated by the Kaazing
Gateway, which favors TCP-based traffic.
Low Latency - With no
need to contact server systems through custom Servlets and application
server logic, the browser can now send binary data packages and
receive an immediate response.
Enterprise-Ready -
Network proxy servers and firewalls are not a problem, because the Kaazing
Gateway automatically reconnects in case a request is broken,
guaranteeing message delivery. All connectivity
is client-initiated, enabling the seamless traversal of firewalls
and proxy servers. Additionally, Kaazing's emulation layer
automatically honors the browser's proxy settings, elimination
potential problems with connections that must pass through a Web
proxy server.
-
Protocol Validation Support - The
Kaazing Protocol Validator extension verifies that bytes passing
through the Kaazing Gateway match expected protocol wire formats to
prevent any buffer overrun attacks on back-end servers.
Cross-Browser Support - Kaazing
Enterprise Gateway supports all major browsers (Firefox version 1.5
and higher, Internet Explorer version 5.5 and higher, Safari 3.0 and higher, Google Chrome 0.2 and higher).
-
Internet Explorer 5.5+
-
Firefox 1.5+
-
Safari 3.0+
-
Google Chrome 0.2+
|