The development arc for EATS more closely reflects windings of yarn in the construction of a ball which grows in size than it does a linear arc reaching from point A to point B. For a while things move from A, to B, to C and D. But then, going forward involves going back and using a revision of B, C, or A as the next step to get to point E.
Making a move to grow EATSv4.6 to v5.2020 involves moving the code forward to include a web-based housing. But that is also a back to the future endeavor. We already had a functional JWPM, Java Web Presentation Manager, version of EATS in 2008, twelve years ago. That was code was labeled v1.08 and v1.09. And, we had a v1.06 version of code, developed in Java, using NetBeans and Swing, which were desktop versions of AIR. EATSv1.06 equates, in a form, to what v4.6 accomplished using Eclipse, e4, and JavaFX. There are technical and functional differences; but there are also functional similarities and redundant activity that needs to occur not to move the functionality forward, but more because of a lack of consistency in tooling.
When I learned to code, the training was technically functional. There were language differences. But what needed to be coded was highly correlated to function. Machine language for a Monrobot was all about how to move information in and out of memory cells and registers, and how to manipulate data in registers, because memory was only a mechanism for remembering state, not for manipulating content, except via store and retrieve. FORTRAN was all about read, write and compute. COBOL and databases in the early 1970’s added a variety of information manipulation schemes, including a report writer, which was less effective than RPG or Mark IV, but external system interaction was still via keypunched cards, paper tape and magnetic tape input, with the same technology for output, along with line printers pounding through carbon using 1,2, 3 and 4 part paper.
The productivity promise of automation moved exponentially up the logistics curve as mainframe power was reduced to microprocessor levels, and video screens replaced Hollerith cards, but at some point along the way flavor of the week tooling and throw-away systems have evolved to automated systems which foster sand-castle building rather than development on granite foundations. Today, I try to perform basic text editing, whether writing code or writing documentation, using a Quad-Pentium processor computer, and I am less productive than I was in the 1990’s on a 386 chip running Windows 3 and DOS 3.3.
EATSv5.2020 is as much a function of assembly and refurbishment as it is a function of forward movement.
EATSv5_Ref has been compiles as a reference base of prior code to form the nucleaus of the development effort for v5.2020. It includes a number of older, fundamental, documents describing the EATS architecture, which has not changed in concept even though it has gone through multiple transformations from technology to technology seeking an architectural base for application software development similar to what Fred Brookes and Gene Amdahl accomplished for IBM with S/360. It includes four early versions of AIR/EATS from the 2007/2009 time-frame.
- AIR_V01.06 – Java, Netbeans, Swing Desktop
- AF_EATS_V01.07 – C# Desktop
- AF_EATS_V01.08 Tomcat JWPM – Java, Netbeans, JSP Webserver and related PHP reference code
- AF_EATS_V01.09 – similar to V01.08; Java, Netbeans, JSP Webserver and related PHP reference code, abandoned with the move of the Desktop and Server code to Eclipse culminating in V4.5 and v4.6.
Objectives and Strategy
A technical objective of EATS has been to create a framework for application development which allows the business logic to be a free as possible from the technical platform on which it is implemented. Technology is transitory, core business function is not. This can not be accomplished in a pure sense, but it can be approximated. Getting there is one objective of architecture: durability of utility of mechanism to achieve intent.
- Development Plan
- Component Packaging
- Eclipse IDE Configuration
- Maven Build System