How HTML5 Web Sockets Interact With Proxy Servers
Peter Lubbers explains in this article how HTML5 Web Sockets interact with proxy servers, and what proxy configuration or updates are needed for the Web Sockets traffic to go through.
Tracking change and innovation in the enterprise software development community
Posted by R.J Lorimer on Jan 21, 2008
GWT (Google Web Toolkit) is seeing continued adoption in the RIA (rich internet application) community. This has triggered the initiation of a number of frameworks and libraries that either supplement GWT, or use it as a foundation for more feature-rich functionality:Hibernate4gwt also provides documented support for working with the Spring framework (which is valuable for developers also using GWT-SL listed below).
- stateless (the default) : your server remains stateless and do not store any extra information. Your domain classes will have to inherit from LazyGwtPojo to store lazy attributes.
- dynamic proxy : a proxy is generated to handle lazy properties information both on server and client side. You just have to implement the Serializable interface and force GWT deferred binding on client side (see the associated guide for details)
- Java5 support : because GWT does not support Java5 beans, hibernate4gwt allow you to dynamically clone your Domain classes to GWT compatible DTO. Theses clone classes must have the same name than the Domain class (in a different package) and inherits from LazyGwtPojo. On the other hand, hibernate4gwt will manager lazy properties for you and do not require any clone mapping file.
- stateful : lazy informations are not stored in the POJO but in HTTP session. So, your Domain classes won't have to inherit from LazyGwtPojo anymore, but your web server become stateful.
The purpose of this project is to provide a set of code generators, scaffolding, utilities, and a basic MVC framework for use with Google Web Toolkit based applications.In many ways, Gwittir is similar to MyGWT and GWT-Ext in that it is a GWT UI library, and provides functionality such as components, flow control, validation, and even animation. However, while both MyGWT and GWT-Ext use a fairly familiar MVC-style pattern (analogous to the layout of Swing components as an example), Gwittir uses a significiantly different approach to integrating business models to the UI. The authors state their frustrations with traditional MVC models on the Gwittir website:
The SL is a sub project of the GWT Widget Library which aids integration of GWT RPC services to Spring by allowing the publication of POJOs as RPC services.Meanwhile, the GWT Widget Library (GWT-WL) is another project aimed at providing a series of more feature-rich widgets than those available in the base GWT installation. Widget support in GWT-WL includes calendars, calculators, image buttons, progress bars, pagination, and more.
JBoss versus IBM WebSphere: Cost, Performance, Efficiency, Innovation (IBM wins)
Unix, Linux Uptime & Reliability Increase While Patch Management Woes Plague Windows (Yankee Group)
Comparing WebLogic, WebSphere, Oracle, and Open Source Application Servers
Redbook: WebSphere Application Server V7.0: Planning, Concepts, and Design
Consolidation and Virtualization Are NOT Enough: The Case for Non-x86
The UFace project provides support for Eclipse Data Binding on GWT as well as a UI widget facade so you can develop your application once and deploy on GWT, MyGWT, gwt-ext, Swing or Eclipse/JFace.
James
An abstraction of the abstraction of the abstraction? Here we go again... :)
An abstraction of the abstraction of the abstraction? Here we go again... :)
Yeah James, I have to admit I'm skeptical about such an abstraction as well. Whats good for the web isn't good for the desktop and vis a versa. Maybe for some limited applications its useful, but as a general idea I'm wary. Thoughts?
An abstraction of the abstraction of the abstraction? Here we go again... :)
Yeah James, I have to admit I'm skeptical about such an abstraction as well. Whats good for the web isn't good for the desktop and vis a versa. Maybe for some limited applications its useful, but as a general idea I'm wary. Thoughts?
So GWT doesn't have any data binding facilities at all, to take an object and bind it to a form or take a list of objects (maybe a property of an object) and bind it to a table or tree etc. So thats the first thing UFace does; provide an implementation of Eclipse Data Binding for GWT, gwt-ext and MyGWT. Thats got nothing to do with abstractions on abstractions; its purely a data binding implementation for GWT*. There's also one for Swing and SwingX too. Note that the Data Binding implementations work directly off of the actual widgets, not through any kind of UI abstraction.
Then, when you look at the GWT API, the gwt-ext and MyGWT APIs for widget creation; there kinda the same abstractions - a GWT/gwt-ext/MyGWT/Swing/JFace table are all kinda the same widget in what they can do; ditto for tree, combo box, input field, text area, buttons etc. The guts of the widgets are the same, they just support different styling options. Its also worth mentioning that if you want to deploy your app with pure GWT, with gwt-ext or MyGWT you need some kind of abstraction as the APIs are all totally different (and thats just for GWT never mind Swing/JFace).
Sure whats good for a typical server side web framework like Struts isn't good for the desktop. However the widgets in GWT are pretty much desktop widgets in what they can do and how you use them; they are very similar to Swing & SWT/JFace widgets so the abstracts fit very nicely. Take a look at the examples in UFace; they are typical rich applications which work great in GWT, gwt-ext, MyGWT, Swing, SwingX and JFace using the same Java code. Note that the abstraction is really just a Builder abstraction for creating widgets in a generic way.
Sure there are differences; mostly in layout. Also there's some fun and games with GWT as it doesn't support introspection so you need to use things like gwt-reflection. Ultimately it'd be good if we could build Swing & JFace UIs in a GWT way (using HTML for the layout, CSS for styling and the Java code just mostly deals with the data binding).
You might thing its a bit wacky; but then I think most folks coming from a Java server side web framework think GWT is wacky too until they really get it. (At first I thought GWT was crazy with all this Java -> JavaScript compiling until the penny dropped). GWT really is a kinda desktop UI framework that deploys in web browsers:)
An abstraction of the abstraction of the abstraction? Here we go again... :)
Putting on my pedant hat for a second, the GWT/gwt-ext/MyGWT UI APIs are not really abstractions; they are Java classes for working with specific widget implementations :)
The goal of the Tatami project is to integrate Dojo Widgets in the GWT.
You can have a look to the demo.
Jeff
Peter Lubbers explains in this article how HTML5 Web Sockets interact with proxy servers, and what proxy configuration or updates are needed for the Web Sockets traffic to go through.
Neal Ford shows what ThoughtWorks learned from scaling Rails development: infrastructure, testing, messaging, optimization, performance.
Stuart Halloway discusses Clojure and functional programing on the JVM in depth, and touches on the uses of a number of other modern JVM languages including JRuby, Groovy, Scala and Haskell.
Oren Teich and Blake Mizerany talk about the technology behind Heroku and the benefits of the new add-on system.
Chris Riley presents security issues threatening service based systems, examining security threats, presenting measures to reduce the risks, and mentioning available security frameworks.
This talk investigates technical issues encountered when moving to an Agile process.
Don Box and Amanda Laucher present “M”, a declarative language for building data models, domain models or external DSLs. Don Box's demos show some of M’s features and latest changes of the language.
It is four months since the SOA manifesto was announced; InfoQ interviewed the original author’s to get insight into the motivations and the process behind the initiative.
6 comments
Watch Thread Reply