As you develop your application, you will be faced with numerous choices, both in terms of architecture and technology, before even choosing supporting tools and software packages. Often, there are a variety of competing factors that will come to the fore well before you choose components to support your application’s functionality. Furthermore, these choices may be made on a project-by-project basis so making a choice that has lasting value to your organization may be difficult.
Consider the case of creating charts and graphs to help visualize your data — a given implementation of this functionality may not be appropriate depending on whether you expect graphics to be handled by a server or a client application. Fortunately, if you are writing your applications in Java, JClass has both desktop and server versions available for its components, including its packages for rendering charts and graphs, report generation, and rendering dashboard gauges. Therefore these architectural choices won’t limit your options for adding data visualizations.
Despite the rise of newer alternatives, Java remains a popular and in-demand programming language. However, when it comes to the type of Java applications being developed, server side development rules the roost. When it comes to skills that are recommended for Java developers to learn or listings posted on job boards, there is a heavy bias towards server-side related technologies for service-oriented architectures or complementary JavaScript frameworks that support web apps.
Meanwhile, the desktop side of Java has negative associations with its performance (both in terms of speed and memory consumption), look and feel and perhaps most importantly, security. Moreover, as JavaScript frameworks and browser capabilities have become more robust, desktop applications themselves have generally been become less and less relevant. Users familiar with Google’s suite of office software such as Google Docs know that these tools offer functionality quite comparable to their desktop equivalents with the added benefit for ease of sharing and extreme portability.
The reason for the bias of server-side technologies as part of the Java developer’s skill set owes in part to the popularity of N-tiered architectures for enterprise development (architectures that separate out presentation, business logic, and storage concerns). Larger enterprises tend to store data in central repositories (given issues with size of datasets, availability, back ups, and security). A service layer on top of that storage ensures that business logic managing the data is consistent. Micro services are now a typical way to expose that functionality to a variety of clients handling presentation duties.
This type of architecture still leaves a choice as to the actual client handling and displaying data, and one of these choices is thought of as “thick” versus “thin” with the distinction being where the majority of the processing will be done in order to do calculations and create the end user experience. This work will be done either on the user’s local machine (i.e. the desktop) for thick clients or the server for thin clients. With Java, this typically translates as to whether the client is a Swing/JavaFX based client that has downloaded, installed and launched outside the context of a web browser or a browser (or a device with limited computing resources) reading web pages rendered with a combination of HTML, JavaScript, and images hosted/generated by the server (applets, which allowed Java GUI components to be embedded in web pages, have been deprecated and removed from more recent versions of the Java language and support for browser plugins of any type are not popular in IT organizations).
While there are many advantages as far as the distribution and maintenance for thin browser-based clients, for a long time the thicker desktop applications were regarded as more responsive to interaction from end users and offered richer user interface and multimedia experiences. While there are still certain niches where thick clients will still be popular, these days the main technical limitation on a thin client’s suitability would be the necessity for a network connection and issues with working offline. Even then, a significant barrier to thick client development will be security concerns. Organizations may not have the necessary internal security staff with the correct tools and experience to assess and validate a thick client.
There are still, of course, issues with doing server side development supporting thin clients, despite the fact that many aspects such as hosting having been commodified. These include issues with the hassle of uploading files, securing the web app, hosting fees, bandwidth costs and the necessary IT resources to support such an application. And while common frameworks such as Spring have eased implementation of micro services and the standard model-view-controller pattern, developers will still have to deal with inter-service communication, authentication/authorization, distributed logging and tracing, etc. If the target audience of a given application is limited, these costs and this level of development may not be justified. Certainly, a stand-alone utility program can live happily on the desktop without any need for consideration of multi-tiered architectures. There are also of course legacy applications with thick clients still in the wild that continue to be maintained and serve their function.
Fortunately, if your goal is to enhance your application with charts and graphs or other data visualizations, JClass offers both desktop and server versions of its comprehensive suite of options for generating well formatted and professional visualizations of your data. So regardless of the types of clients being deployed by your organization, there is a solution JClass offers that can meet your needs.
For instance, a wide variety of options for creating charts and graphs includes pie, bar, scatter plot, area, Hi-Lo, candle, and polar charts. JClass ServerChart also offers a timeline style charts for such as Gantt charts. These charts can be populated with data from different data sources (such as XML or JavaBeans) and have a number of display options that can be customized, such as transparency.
Both implementations of the charting component can be prototyped and customized easily by developers, either using the JClass Chart Customizer for the desktop or with JClass ServerChart Designer. These tools provide a quick way to set the dimensions and properties of axes and the legend. With utilities such as color pickers and font selectors, creators of both thick and thin clients have options for prototyping their charts and graphs to suit their needs and show potential end users, even without having to write any code. For desktop clients, developers can experiment with combinations of property settings, seeing results immediately in the context of a running application, greatly aiding chart debugging. The JClass Chart Customizer may even be configured such that it is available run time for end users to their own customizations with the click of a mouse button. The JChart Server Chart Designer may be configured to allow custom charts to be added to its Chart Palette and the creation and export of customized preferences.
In the case where you do decide to develop a thick client, JClass offers a broad collection of GUI components and utility classes designed to augment Swing’s basic offerings with JClass Elements. These elements include font and calendar choosers, help panels and splash screens, as well as sortable tables and tree explorers. Additionally JClass LiveTable is a Java GUI component that displays rows and columns of user- interactive text, images, hypertext links, and other Java components in a scrollable window.
Current JClass customers with an active maintenance and support agreement can upgrade their current JClass version for free. Scout Solutions has a dedicated JClass Support team that is available to fix technical problems and answer questions at any time. Save yourself the trouble of switching to a new program and see what JClass can offer for you.