Java Enterprise Development Framework


1. The story of creation

The Java Enterprise Developer Framework (JEDF) team welcomes you. We hope what we have done on the basis of our experience will be useful and effective solution for tasks which face Java developers.

1.1 Background: we are developers of large systems for big companies, usually industrial. We devoted to this work more than 20 years of our life, everyone, and some of us even more. We had an old proved system which had been working for more than 10 years, but the time had come when we had to go to the next level because of cumulative set of problems in the current system. This task was huge in size, but it did not make sense to delay. And one of our customers had agreed to fund the development of a new enterprise management system from scratch. We still decided to do this job. But this document is not about a particular, though not trivial, having a large number of tasks, comprehensive enterprise management system. It is about the development environment for this system and any other systems that greatly simplifies the development process and reduces its time. We called this development environment Java Enterprise Developer Framework (JEDF). Using JEDF increased the efficiency of the application system development by several times! We think that JEDF will be useful not only for us but also for other developers.

1.2 Briefly about problems in our system that drove us to this development:

  • Drop in system performance with an increase in users. It is a question about 2-3 thousand concurrent users doing a variety of tasks: from simple input of documents to complex analysis or calculations per-minute plans for the production of each piece of equipment at the plant. What is most surprising that the customer can always say I bought another company, let them also connect to a single control system, and it might be necessary to connect to the system several hundred new users. And performance limit as obviously was not far off. We used the classical solution with SQL server, application server and client side.
  • Impossibility to maintain the integrity of the data structure of the system due to the continuous flow of modifications making by programmers of our customer according to their own ideas about the system. Typically, these modifications are made by programmers with insufficient qualification for this. These modifications - adding a field to a table or create a new table have no effect on the system as a whole, but it is only at the first glance. As a result, it can lead to disastrous consequences, for example, with the performance. All data were stored on a classic SQL servers on which triggers and built-in procedures were widely used to implement the business logic.
  • Inability of the development due to the accumulation of differences in the source codes, the cause of which were frequent modifications and unpredictable effect of these modifications on each other. The continuous growth of the system source code, which must be compiled to make changes to almost any part of the system.
  • Intricacy and complexity of user rights management, again with unexpected dependencies.
  • The complexity of the transfer from one SQL server to another, rather almost impossibility due to the nature of widespread servers: each server has its own characteristics, which can greatly facilitate the programming, but they are usually unique and not portable to other servers.
  • Using Windows operating systems at work places and on application servers.

1.3 Identified problems allowed us to formulate the requirements for the development environment, we need to create application systems. Requirements were formulated to eliminate such problems at all. Here are these requirements:

  • System performance. Providing quick system response to the tasks.
  • Scalability. Ability to increase productivity with simple means for little money.
  • Multiplatform.
  • If possible, free software used to develop JEDF and application systems later.
  • Speed ​​of development, at least comparable with the rapid application development systems like Delphi.
  • Low skill requirements of application system developers using JEDF.
  • Independence of system modules:
    • change of any module without having to recompile the rest of the system;
    • replacement of the module is completely not noticeable to the user,
    • modules can be replaced without stopping the system;
    • internal mechanisms of a module are fully isolated from other modules in the system;
  • Simplicity of data stored in the database.
  • Inability to break the system by adding or removing fields in the database table.
  • The use of almost any SQL Server to implement applications.
  • The ability to quickly change the SQL server.
  • Built-in mechanism to create applications with the ability to work with them from anywhere in the world where there is Internet access.
  • The system should save the results of the user job even without clicking Send/Save when using unreliable communication lines or power.
  • Simple user rights management in the system.

How to install JEDF.

Enter Amount