Introduction to SmartGWT Enterprise Edition (EE)

SmartGWT Enterprise Edition (EE) is a set of GWT API's, Java server libraries, servlets and tools that provide the key server-side components needed to build a complete application in a modern web architecture.

The SmartGWT Server can be integrated into any pre-existing Java application, and is designed to rapidly connect SmartGWT visual components to pre-existing Java business logic or persistence engines. SmartGWT's Ajax request processing facilities can be easily integrated into Struts Actions, Spring controllers, or custom servlets and JSPs.

Alternatively, the SmartGWT EE Server provides a complete SQL and Hibernate-based persistence engine for new applications, with out-of-the-box servlets for processing Ajax data requests.

SmartGWT EE is optional, and SmartGWT (LGPL)'s client-side Ajax engine can be integrated with any server that provides HTTP access, using XML, JSON, SOAP or proprietary data protocols. However any server in a modern web application will be required to provide most or all of the features of the SmartGWT EE Server (described below), and the SmartGWT EE Server represents a best-of-breed implementation of these facilities with a long history of high-volume production deployments.

SQL and Hibernate connectors

DataSource of serverType:"sql" or serverType:"hibernate" can generate and execute queries against popular SQL engines or against the Hibernate ORM system, providing SmartGWT's DataBoundComponents with the four standard CRUD operations (create, retrieve, update, delete) without writing any server-side code. For rapid prototyping, these DataSources can even generate SQL tables based on the DataSource declaration, using the Admin Console visual tool.

Server-side APIs allow server-side modification of the request before it is executed (for example, to enforce security) and post-processing of the request after execution (for example, to provide calculated values).

Both serverType:"sql" and serverType:"hibernate" support the field-operator-value queries that can be generated by using the FilterBuilder component

Bi-directional XPath binding to Java Objects

Most UI designs do not directly reflect the underlying Object model and so some degree of translation is necessary in order to populate UI components with data and apply user changes to the Java Object model. This is often accomplished with brittle, difficult to understand data translation code sprinkled throughout the system, done in a different way for every screen or component.

Server enforcement of Validators

Data passed from the browser can be automatically validated by the SmartGWT EE Server. In contrast, when using client-side integration, data arrives as HTTP params or XML messages, and you must parse values into the correct types (eg java.util.Date) and validate them, or use a server framework that does so. The Java Data Integration -> Forms --> Form Client & Server Validation sample illustrates this feature of SmartGWT EE.

High Speed Data Delivery / Data Compression

The SmartGWT EE Server delivers data to and from the browser using a proprietary, maximally efficient protocol (similar to GWT-RPC), providing simple Java APIs for sending and receiving data.

SmartGWT EE's data protocol is:

Transparent upload support

SmartGWT EE provides special client and server-side support for , which allows single and multiple-file HTTP uploads to be performed as a background Ajax request without reloading the page or launching sub-windows.

Uploaded files arrive at the SmartGWT EE server as Java InputStreams accessible from the DSRequest object, and can optionally be automatically stored via SmartGWT's SQL subsystem.

SmartGWT EE provides a standard, XPath-based approach to adapting any Java-based Object model to the requirements of the UI design. Data relevant to the application UI is centrally extracted in the server-side DataSource layer, so that all UI components have a consistent, unified view of the data model for both loading and saving data.

Transparent Proxying

Proxying allows SmartGWT EE applications to access web services, RSS feeds, HTML content and other data services in a secure manner regardless of where they are located: across the enterprise or publicly available.