The Birth of esProc

For over a decade, we have been the leading reporting tool vendor in China. In business, we were often asked to help our users with developing complex reports. Such occasions were so many that over time we found that complex reports have not only complex layouts but, more importantly, hard-to-deal-with data. The raw database data is generally far from the data ready for presentation. Often multistep, complicated computations are needed to process the raw data. Reporting tools can only handle a small number of computations in the presentation stage, but they can’t handle computations before it. Report developing is painful and inefficient because reporting tools are only good at dealing with the layouts and computations already entered the presentation phase.

The problem has remained unsolved. And the industry has come up with workarounds. They turn to writing complicated SQL queries (and stored procedures) or programming with high-level languages (like Java) in an application. The methods are slow and cumbersome and bring problems like tight coupling and difficult maintenance due to SQL and Java’s certain programming features.


Where there is a problem there is an opportunity. And we want to find a way of approaching the problem.

About the end of the year of 2007 when our reporting tool became stable, we set to cracking the hard nut. We collected and analyzed various data computing problems and designed a brand-new data model, and based on it, a programming language (named SPL later, which stands for Structured Process Language) to concisely describe algorithms of preparing report data sources.

It’s easier to think of an idea than to realize it. There were numerous alterations because we always thought better ideas up or find important needs are neglected sometimes, both of which would lead to a remodeling. Beginning from the year of 2008, esProc underwent four major transformations before it finally evolved into a finished product with a stable model and architecture. During the time, parallel computing and cluster computing were added in 2012 and 2013, as well as countless smaller modifications. And though esProc always had a few trial customers, the official release date was uncertain. It had not been commercialized until the second half of 2015.

esProc and reporting tools are technically independent of each other. esProc can integrate with all reporting tools. In the early stages of commercialization, we sold it only as a component module of our own reporting tool instead of an independent product. It didn’t take long for us to find out that data computing is a commercial opportunity, a much bigger one than the reporting tool. That led to the complete unbinding from reporting tool and the establishment of esProc as an independent commercial product in the second half of 2016.