Design Principals of Eight

This chapter begins to discuss the selection and design process of Eight’s online management and deployment platform. Eight’s online demonstration system is essentially based on a set of application deployment and management systems developed by Eight (which sounds a bit convoluted). It is also the first complete and thorough system developed using Eight’s solutions, possessing quite unique capabilities. Its complete implementation has provided experience and guidance standards for Eight’s solutions in all aspects. The selection and implementation of the UI are one of these aspects.

For a while, a question has been perplexing me: what should the UI of a system like Eight, which interacts with users, look like? This might not seem like an issue, considering that front-end technology is now quite mature with a rich variety of options. However, mainstream technologies are fundamentally similar (e.g., the three major frameworks of JavaScript). But exceptions exist, and Eight is such an exception: it has a very unique environment and may be used in unprecedented business scenarios. This is not an exaggeration, considering the following requirements:

  • Eight might be extensively used in traditional devices and systems, interacting with old systems on ancient operating system platforms, and may even need to be integrated into old enterprise systems (such as ERP systems from 20 years ago), becoming part of them.
  • Eight might exist in large numbers in resource-constrained systems, such as edge nodes with severely limited CPU, memory, and network resources.
  • Eight also emphasizes high reusability of components, and in principle, the interaction of each component must be considered for the most constrained scenarios.
  • As a business layer platform, Eight’s future business scenarios are limitless, with UI interaction and operational characteristics requiring sufficient richness and high complexity.

Based on the above principles, it is understandable why selecting a UI for Eight’s components is challenging. What kind of UI can provide sufficiently simple and powerful access methods in such a complex application environment?

Since Eight is based on Java, many would naturally think of RIA solutions like JavaFX or SWT. However, this is clearly not feasible, as these UI solutions have almost been phased out over time. They lack sufficient widget libraries, experienced developers, and mature and stable solutions, and their interaction experience is not very good. Not to mention, Eight’s deployment and usage environments might be entirely different.

In fact, approximately 20 years ago, when enterprise informatization was just beginning, B/S solutions had already become mainstream. Since then, the vast majority of applications have been based on web browsers, and browsers have been the gateway to accessing the internet for 30 years. Therefore, like almost all modern enterprise application environments, Eight naturally chose the browser as the user UI. Unlike others, Eight must be able to access browsers from 20 years ago to adapt to complex internal enterprise environments. So, the current question is, what kind of performance can we achieve on browsers from 20 years ago? Can we meet our required capabilities? Can we still satisfy modern users’ aesthetics 20 years later? This exploration is long and arduous, the work is difficult and desperate, but fortunately, the results are beautiful and optimistic.

It is no wonder that Eight’s online system appears somewhat retro if we look at the following usage environments:

win98

Yes, this is the effect achieved on the English version of IE6 on Windows 98. Apart from the overly unattractive fonts provided by the English version, everything else is almost identical to modern browsers, including SVG-based animations. To enhance compatibility, the project developed a set of tool libraries for SVG on IE6 (see the open-source project EIS). The page description includes simple usage methods and precautions.

We can also achieve the same effect on classic operating systems like Windows 95, Windows NT4, and CentOS 4:

win95

winnt4

centos

At the same time, we can also pay attention to Eight’s resource consumption. The following shows the memory consumption after enabling an Eight node locally on Windows NT4. Including the operating system itself, an Eight node running a complete set of systems, including all MVC components and even an in-memory database, and then opening the browser UI, the total memory usage is just under 250MB. Excluding the operating system and browser consumption, Eight’s memory usage is below 150MB.

Eight memory usage