Webswing is a specialized web server for running Swing based Java applications in your browser.
For many years Swing has been the framework of choice for many companies and individuals for creating rich applications. They all invested a lot of money and effort into developing these applications. But nowadays, the Swing framework is becoming the limiting factor for them, because they are not able to use these applications in modern web browsers. And with the Applet technology support being discontinued, it leaves these companies with very few options.
This is where Webswing comes to the rescue. With virtually no extra work, the Swing application or Applet can instantly be used in a browser just like the native application. All it takes is a simple configuration using the built-in admin web interface.
Webswing offers a unique and instant solution for:
all this with:
- No browser plugin required - only HTML5
- No code modification or conversion
- Works with every framework
And as a bonus you get:
- live control of user sessions
- recording and playback of sessions
- memory, CPU usage statistics
- logs viewer
- advanced access control
# Who is it for?
Webswing was created for existing Swing based applications and Applets. If you have a Swing application you would like to deploy in cloud, as SaaS, or you are looking for a way to support your Applet on modern browsers, Webswing is a great option for you.
native JavaFx application support (beta) has been added to 2.5 version
Running your application in Webswing brings many advantages compared to standard desktop use, such as:
- Swing application codebase protection
- Easy distribution of new application version
- Control of Java version used for running Swing applications
- No security threats from outdated Java runtime on client machines
- Faster connection to backend services
- Centralized access management
But it has some technology limitations too:
- It does not work well with multimedia applications - video or sound is not supported
- 3D accelerated content is not supported
- Due to higher rendering latency, things like action games will not work very well
- Requires more server resources (cpu/memory) per session compared to native web applications
# What features are supported?
Webswing provides many convenient integrated features which makes working with Webswing applications as easy as if they were running locally.
- Printing integration with preview
- Filesystem integration - download / upload / delete files in isolated folder
- Advanced Clipboard integration
- Session recording and playback capability built-in
- DirectDraw - rendering directly from Java2d to HTML Canvas
- Configurable Swing window decoration themes
- Java 8 and 11 support
- Open JDK
On Server, you can:
- Configure and monitor your applications from admin console
- Use Multi Tenant Deployment with isolated login contexts
- Use one of built-in security providers (including SAML2 or OpenID Connect) or create your own
- Mirror view - see what users see from admin console
- Use your own branding
- Cluster deployment (Enterprise edition)
- Docker and Kubernetes (Enterprise edition)
# How does it work?
Swing API is by design cross-platform, which means all interactions with platform dependent features happen through a well defined minimal interface (java.awt.Toolkit). Java ships with platform specific implementations for Windows, X11 and Mac.
Webswing defines a new platform implementation for "Web", which simply turns web browser to a virtual desktop and translates platform specific actions to browser actions in the best possible way.
There are two core actions that every platform has to provide for Swing.
- Display content on screen
- Generate user input events