Open source framework explained – Scout at Javaland 2018

Legacy modernization, application frameworks and browser peculiarities were just a few of the interesting topics we discussed with fellow participants at Javaland this year. Our BSI booth turned out to be a great meeting point for both Scout novices and enthusiasts. We presented the newest release of our application framework Scout and took the opportunity to answer many questions. As some questions were asked several times, we decided to write you a summary in an FAQ style.

Which framework is the right one to modernize our application landscape?

Some visitors at our booth shared the problem that they are looking for a modern application framework to renew their legacy applications. Our first question then usually was: what is your application about? Which need does it meet? We were quite happy to hear that many applications were about administrating certain data, e.g. in the public administration or scientific area. Hence, we were able to tell them that Scout is the right choice and was built with the focus on business applications, data-centric use-cases such as managing customer data and creating reports. In short,
Scout is about managing and navigating complex data.

"If tomorrow a new UI technology is state of the art, Scout will adapt and provide an efficient migration path for your project."

Pascal Gamper, Software Engineer at BSI 

How does Scout differ from other application frameworks?

BSI at Javaland

Since its creation more than 15 years ago, Scout has pursued a different approach than many other existing frameworks. A main goal of Scout is to keep your application in a technical way up to date over years and decades. If tomorrow a new UI technology is state of the art, Scout will adapt and provide an efficient migration path for your project. One main advantage of Scout is that the developer is in full charge of server and client code. Scout doesn’t keep you in the dark in what the code does. You don’t like how the framework behaves for buttons in IE 9? Well, then just adapt the code. You would like to extend the framework? Then write your own components within a few steps.

Is Scout really open-source? Under which license is Scout published and why?

Scout was published as an open-source framework in 2009 under the Eclipse Public License (EPL) and has since been further developed each year. Currently, the latest stable release version is 7.0. Information about the installation and setup can be found on eclipsescout.github.io. Going open-source made us aware that every single line of code in an open-source project has to be “real” open-source. So, no copied code snippets, no 3rd party libraries which are not fully open-source. Today, Scout can be used for commercial projects and even forked for your own purposes. Back in 2009, EPL set high standards for our framework development, but we are convinced that those made us work harder, gave us more control over our code, and meets our high expectations of good quality.

How does Scout relate to Eclipse?

Overall, Scout is published under the umbrella of Eclipse as an open-source project. Hence, Scout is available under the Eclipse Public License (EPL). Scout is technically fully independent of the Eclipse platform. Therefore, you can use your preferred development environment to develop your own Scout application.

"The benefit of having pure Java code results in robust, clean and long-living business applications. Why should we let client technologies that change every couple of years influence business logic and application behavior?"

Pascal Gamper, Software Engineer at BSI 

What is the architecture approach of Scout?

Scout consists of two main parts. On the one hand there is the ScoutJS widget library. The ScoutJS widgets can be used in a classic Single Page Application (SPA). You can extend the library with own components and can integrate these in existing applications. Further, you can write your own styling using CSS3.

On the other hand, ScoutJS can be used together with the Scout application model, which is a Java application model to orchestrate your application. Scout covers the application stack from the HTML/JavaScript components to the backend services where you access data and bind it to the application model. If the choice of Scout widgets is sufficient, you do not have to write any JavaScript nor HTML. Nevertheless, you can extend the application model with your own components and write your own renderer for existing or new components.

What are the advantages and disadvantages of Scout?

BSI booth at Javaland

First of all we need to distinguish between the classic Scout framework and the recently introduced ScoutJS. The classic Scout framework manages client state in the server. The benefit of having pure Java code results in robust, clean and long-living business applications. Why should we let client technologies that change every couple of years influence business logic and application behavior? We have experience with full-featured, professional applications such as BSI CRM and we have proof that Scout performs well up to thousands of concurrent users.

But sure, if you need ten thousands of concurrent users, you might need another software architecture. And the answer is ScoutJS. With ScoutJS, we extrapolated the advantages of the Scout application model to the client. This means that you will write client code in JavaScript, and the client state resides in the client. And still, the advantages of Scout remain. A perfect application scenario for ScoutJS is for instances a highly scaled web portal such as our BSI Portal.

Which browsers are compatible with Scout?

Scout provides full browser compatibility, from Chrome to Internet Explorer, from Firefox to Safari. Scout applications are responsive and are optimized for mobile devices and desktop browsers. Our client rendering code is optimized for every browser individually and the small number of issues and the responsiveness of the UI tells us this is the right approach.

All in all we enjoyed two interesting days at Javaland. Are there any questions unanswered? Please don’t hesitate to contact us! In this spirit we send greetings from our booth.