By: Nelson M. Nones CPIM, Founder, Chairman and President, Geoprise Technologies Corporation
LAMP, WAMP and HTML
There is also a "Java Stack" consisting of Apache Tomcat/Jboss, Apache and MySQL; and Microsoft's .NET stack.
On the client side, when users request a page from a Web application using their browsers, the Web application server returns a document written in HTML (hypertext markup language). HTML is a global standard which all popular browsers are built to support. Those browsers will have no trouble displaying the page just as the developer intended.
But "pure" HTML pages can be a bit boring; and they're not quite as pretty or rich in features like PC applications or smartphone apps which are installed and run on client devices. That's because HTML is mostly static. Aside from displaying dropdown and radio lists dynamically, and allowing users to enter text from the keyboard, the only thing it can do is receive an instruction—such as a user's gesture or mouse click on a hyperlink or button—and relay it to the server along with any text entries. The server does nearly all the work.
- A popup date picker that appears whenever a user selects a text field containing a date, and allows the user to interactively browse a calendar and select a date instead of typing the date from a keyboard;
- A password strength meter that interactively measures and graphically displays how easy or hard it would be to guess a new password, while the password is being entered from a keyboard;
- Dynamic combo bar-line charts for visualizing employee performance in the GM-X Strategic HR subsystem;
- Dynamically expandable and collapsible Gantt charts for visualizing project plans and progress in the GM-X Project subsystem; and
- Dynamic drag-and-drop workflow process authoring and visualization canvas in the GM-X Workflow subsystem.
Lean, MEAN and Single-Page
Reality Check 1: Performance
So, why didn't Geoprise jump on the MEAN SPA bandwagon? Well, as they say, "If it sounds too good to be true, it probably is ..."
Consider the purpose of the GM-X ERP application. Unlike a lot of Web applications—such as online retail banking portals—which are designed and built to serve marketing as well as purely business purposes, the GM-X ERP application is designed and built strictly for business. In business the only things that matter are performance, security, end-user productivity and cost. Performance, in turn, is judged by an application's speed, reliability, accuracy and the extent to which functional requirements of the business are satisfied. Moreover, enterprise applications typically don't use a NoSQL database like MongoDB; instead enterprises prefer to use proven relational databases like Oracle or Microsoft SQL Server for performance and high availability.
- The application relies on the node Node.js server runtime to communicate with the database. However the relational database integration capabilities of Node.js are immature, causing SQL queries to execute slowly or fail in high-volume deployments. For example Node.js doesn’t properly handle the Microsoft SQL Server snapshot isolation feature. As a result, the failure rate for finalizing approval workflow cases is about 4%—meaning that 4% of those cases need to be re-started and approvals sought from multiple users all over again.
Reality Check 2: Security
Reality Check 3: Mobility
GM-X: The No-Page Web Application
Proponents of the MEAN solution stack would likely point to those 2,580 GM-X screens as a key reason why the SPA approach is leaner and more agile. They'd be right if all those screens were static, handcrafted HTML. But they aren't.
GM-X also uses an MVC framework at run time, just like AngularJS. Our MVC framework doesn't require static HTML pages. Instead, it generates HTML pages on the fly whenever users request them. Technically speaking, when responding to each request, our framework organizes and then constructs an eXtensible Markup Language (XML) document, which it then transforms to HTML using eXtensible Stylesheet Language Transformations (XSLT). As a result, the GM-X ERP application doesn't have any static pages. It is truly a "No-Page Web Application."
That's a 100% reduction in the number of Web pages compared to an SPA, yet GM-X works on any full-screen, tablet or mobile device and remains fully functional even when scripting is disabled for security reasons. The Web pages which GM-X generates at run time work identically on every modern browser and are fully equipped to handle UTF-8, which is by far the most widely used Unicode encoding standard for Web applications today. They are fast, reliable, accurate and secure; and require no applications other than a browser to be installed on end-user devices.
How simple, lean and agile is that?