Application usage reporting solution architectures may seem unimportant, but they are fundamental in determining the kinds of data available for reporting, how incremental functionality can be delivered, or the underlying cost of support. Over time, application architectures drive the fundamental economics of solution delivery.
What do we mean by architecture? For us, the key components of a modern solution are:
- Application Programming Interfaces (APIs)
- Load balancers for performance and scaling
- Web reporting and administration
- Managers for intermediate data caching and flexible management
- Lightweight desktop agents for monitoring and usage data collection
A multi-tenant relational database provides a critical foundation for efficient operational management. Enterprise applications, even computationally and visually intensive ones such as engineering applications, are becoming Software-as-a-Service (SaaS) based. SaaS applications are easier and faster for the developer to build, test, enhance and maintain, and also let end-user organizations use fewer IT resources to implement and support. Putting individual relational databases “in the cloud” and calling it SaaS doesn’t make the application multi-tenant - someone still has to maintain and upgrade each database instance.
APIs are important because they allow easier and more secure access to data in the database. APIs make it easier to separate the data gathering process and user interface from data access and manipulation. Large enterprises often have solutions and processes in place that reporting data can supplement, and APIs make it easier to integrate these processes. In addition, APIs also make it easier for Managed Service Providers to pull data into other applications, or present information in their own dashboards. Lastly, exception information, such as thresholds or license denied messages, when exposed through APIs, allow the reporting solution to be incorporated into transactional or workflow applications to help increase efficiency.
Load balancers are needed to ensure that as individual customers add users, or as the workload becomes heavier or more mixed, performance doesn’t suffer. It is difficult to add load balancers to existing solutions, so we incorporated them from the beginning of our development.
Web access for reporting and administration is an absolute requirement because users and administrators work from multiple locations and use multiple devices. We use HTML5 for performance, ease of support, and to make it easier to access and present information on a variety of form factors.
Managers, or controllers, temporarily cache usage data and store configuration files for multiple Agents. Managers allow organizations to implement their usage-reporting infrastructure in the same way that they are organized: by groups, subsidiaries, locations or territories. Managers can run in the cloud, reducing the need for servers or dedicated PCs in remote locations. In locations with inconsistent internet access, companies can put Managers in multiple offices to ensure no data is lost. Installing a Manager on a laptop allows offline application-usage monitoring.
Lastly, we use desktop Agents to gather usage data. An Agent is simply a small, lightweight program that runs on a desktop and “listens” for specific activities. In our case, the Agent listens for specific applications to be launched, and when a related activity - such as opening a new, or minimizing a window - occurs. Some other solutions gather usage data by reading server log files. Desktop agents capture usage data as soon as an application is requested. They also identify when an application goes idle, can monitor multiple windows, can allow non-internet connected monitoring, or enable associating usage to a project. They also monitor applications independently of where the license to run the application comes from. Agents are not an afterthought to us and we’ve built easy management and upgrade capabilities that don’t require expensive and hard to schedule IT resources.
Enterprises are under constant pressure to both improve their internal ability to monitor and evaluate processes for efficiency while reducing the technical resources needed to do so. Process Meter is a modern, flexible, scalable architecture that not only allows end user groups the ability to capture the information they need, but also enables them to easily manage the solution.