|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface IscServer
The Smart GWT Server can be integrated
into any pre-existing Java application, and is designed to rapidly connect Smart GWT visual components to
pre-existing Java business logic or persistence engines. Smart GWT's Ajax request processing facilities can be easily
integrated into Struts Actions, Spring controllers
, or custom
servlets and JSPs.
Alternatively, the Smart GWT Server provides a complete SQL and Hibernate-based persistence engine for new applications, with out-of-the-box servlets for processing Ajax data requests.
The Smart GWT Server is optional, and Smart GWT'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 Smart GWT Server (described below), and the Smart GWT Server represents a best-of-breed implementation of these facilities with a long history of high-volume production deployments.
Validators
Data passed
from the browser can be automatically validated by the Smart GWT 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 Smart GWT Server delivers data to and from the browser using a proprietary, maximally efficient protocol, providing simple Java APIs for sending and receiving data.
Smart GWT's data protocol is:
trimming
and extracting
only the data you want the browser to see
Smart GWT provides special client and server-side support for file upload
, 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 Smart GWT server as Java InputStreams accessible from the DSRequest object, and can optionally be automatically stored via Smart GWT's SQL subsystem.
Any request transmitted to the Smart GWT
Server can be combined into a "queue" transmitted as a single HTTP request, with in-order execution for all queued
operations. startQueue()
starts a queue and sendQueue()
transmits it; queuing is transparent to the code that
initiates the individual requests. This enables:
Visual Builder
is included with the Smart GWT
Server, and uses server features such as automatic SQL binding to provide a rapid prototyping environment.
Provides a powerful,
type-safe data transmission mechanism
for moving data between a Java
server and the browser.
Any Java objects, including Java Beans, POJOs, Java Collections, XML DOMs and all Java primitives, with any level of nesting, can be automatically serialized and delivered as JavaScript Objects to the Smart GWT client-side components.
JavaScript Objects existing in the browser can likewise be automatically transmitted to a Java Server and translated to Java Objects, with any level of nesting and automatic preservation of primitive types.
DataSources of serverType:"sql" or serverType:"hibernate" can generate and
execute queries against popular SQL engines or against the Hibernate ORM system, providing Smart GWT's DataBoundComponent
s 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 AdminConsole
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 (see example).
The Smart GWT Server provides a standardized request and response protocol designed for data-oriented "CRUD" operations (create, retrieve, update, delete).
This standardized
protocol automatically handles request metadata
(paging parameters, requested
sort order, original values of data being modified) and response metadata
(error handling, cache management, session expiration etc).
Similar to the impact of Struts on early web applications, this standardized protocol avoids developers in different groups inventing their own incompatible and redundant request/response protocols, and allows developers to more easily learn code they didn't author.
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.
Smart GWT 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.
The Smart
GWT Server can compensate for facilities missing or disabled in
certain browsers
, including ActiveX being disabled in IE6 and missing XML support in some versions of Apple's Safari
browser.
Proxying
allows
Smart GWT 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.
Network Performance
ModuleProvides:
The ${isc.DocUtils.linkForDocNode('messaging', 'Messaging')} module allows the server to "push" messages to the client, without client polling, for real-time monitoring/dashboarding applications.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |