Jeeves was founded in 1992 on the idea that no two businesses are alike—and that software should celebrate and automate the processes and workflows that differentiate one company from the next. We knew the core problems facing most ERP system users: either they were changing their business in order to use their software (losing sight of their original vision while wasting time on process workarounds and workflow mismatches), or they were changing their software to preserve their business processes (throwing money at upgrades and customizations both new and old).
We knew there had to be a better way—we needed to solve these problems and, at the same time, deliver a lower total cost of ownership to end users. So we set out to design an ERP software solution that could deliver easily-built, highly-custom implementations that that were also easy to upgrade. We wanted to build an ERP software solution that would allow companies to implement their chosen business strategies and allow them to be different. We envisioned an ERP software solution that would be easy to modify to help companies grow, adapt to changing market conditions, and better serve their customers.
The Jeeves ERP genius architecture is the result of our desire to solve these real problems with the ERP market. Our architecture is ”genius” not only in the way that it’s technically built, but also in the way that it offers undeniable value to our customers.
The Architectural Evolution
The many definitions of the word architecture describe the process and result of planning, designing and building physical structures. We study the architecture behind buildings and cities as works of art that can be classified into categories of similar style and approach.
Software architecture is no different. Architecture is responsible for software usability, flexibility, and longevity. And, just as with buildings, software architectures can be categorized and classified. Historically, we can trace different software architecture styles according to the core problem-solving ideas behind different ERP systems, including their advantages and limitations:
Best Practice Systems
Many of the ERP systems available today are rooted in their evolution from the demands of the very first customer to those of the next customer, and so on and so forth. More often than not, these architectures are the accidental backbones of on-premise systems built to fit a handful of companies—but that end up being used by many companies. And more often than not, these architectures are plagued by rigid databases and older technology that are difficult to evolve over time. Changes in one area of the system often have deep consequences elsewhere in the system. Systems of this type, modeled on a small core of companies, are generally referred to as “best practice” systems, since they implement the practices of a selected group of companies. Unfortunately, these systems rapidly become difficult to change and require you to change your processes to follow those of the original group of companies. Customers coming from these systems beg for the ability to make easy customizations to support their competitive differentiators.
Next came the 10,000-switch gorilla, a popular architectural direction during the 1990’s, led most famously by SAP. These systems were built to meet the needs not of a few select companies, but of every company, no matter what industry they worked in. Every possible requirement was included in the code base, and all you had to do was “configure” the system. After customers select from the thousands of parameters and data views available to them, they then embark upon a tedious and lengthy custom development process. Implementations tend to be long and complex, made that way by installing, sorting through, configuring, and testing massive amounts of code. And, just like prior systems, the 10,000-switch architectures are difficult to evolve and test. As a result, they became nearly impossible to upgrade without a full reimplementation. Customers of these systems rapidly become frustrated with their aging technology, the cost of ownership, and the massive cost to upgrade.
In the 2000’s, the backlash from these types of systems sent vendors running in the opposite direction. Leaving the idea of highly custom, costly systems, software vendors went back to the idea of simplicity, where everyone shares the same system, database, and infrastructure with minimal configuration. Essentially shrink-wrapped software running in the cloud. Customers essentially had state-of-the-art technology at a lower cost, but they were back to their original problem: they owned a generic system that didn’t fit anyone and was also difficult to customize. Even worse, customers don’t even have a fully defined “best practice” system. They now have a “lowest common denominator” system with no way to differentiate themselves or handle their advanced business functions. Users of these systems quickly learned that the pain of not being able to even customize your system is the worst pain of all.
Is there an architecture that is as cost-effective and technology-proof as a SaaS solution but still allows for customization? An architecture that allows companies the ability to protect their unique business processes without thousands of hours of effort? An architecture that doesn’t create a barrier to continuous improvement as companies grow and change? An architecture that is capable of adapting as technology evolves?
Enter the Model-Driven Architecture – this is what makes the Jeeves ERP architecture so “genius.”
Model-driven architectures are built on technical models that describe how software works and business models that describe what the software should do. Model-driven architectures produce flexible systems built for modification and change. The architecture allows new logic and data behaviors to be added at any time. Old logic and behaviors remain functional even when the underlying system logic is upgraded. Model-driven architectures start from the premise that you will tell the system what you want done and the system will do just that. Not someone else’s best practice—but your best practice. Not 10,000 options—just the options you want. And certainly not the lowest common denominator in the industry. What you want, the way you want it, fast and easy.
The Architectural Revolution
Unlike earlier ERP systems where every aspect of the product is hard-coded and difficult to adapt or change, the Jeeves ERP system architecture is model-based. A developer defines the way the product should look and feel and that model is used to control the operation of the system. Not only is the customer data unique to each customer implementation, but the look and feel of the product and the content of every page is unique as well.
The Jeeves ERP system carries a Site Repository where all of the customer-specific implementation details are stored. When the core application is upgraded, these changes are retained, and the product continues to operate as specified in the Site Repository. Customers can easily create a truly unique ERP solution that preserves their ability to change and upgrade their system over time. The idea is simple: describe the desired system, rather than hard-code it, and keep this description separate from the core system.
Let's explore some of the key benefits of Jeeves ERP's genius architecture.
Some model-driven architectures implement the model by regenerating the code that implements the system. The Jeeves ERP architecture maintains its model as a critical element of the system. The model is used and executed at run time so that changes and enhancements and upgrades can all be done with a minimum amount of disruption to the run-time system.
Upgrade New Functionality Alongside Modifications
The Jeeves ERP architecture separates the model for the standard system from the model for the customizations, so that customers can keep their adaptations, while continuing to take advantage of newly released, standard functionality.
Zero Upgrade Force (ZUF)
In code-based systems, adaptations must be manually transferred from the old version to the new version and then adjusted based on new features or dependency changes. With Jeeves ERP, the core system is upgraded around the customizations. This means that customers can upgrade on their own terms and pace with significantly less effort. More than 80 percent of Jeeves customers upgrade to the next version within two years of its release—and that’s a decision they make. We stand by this unbeatable statistic in the ERP industry.
The Jeeves model-based development environment is very efficient and productive. Programming is kept to a minimum, allowing Jeeves to quickly release new functionality, and allowing customers, as well as partners, to rapidly release new functionality as well. Significant changes can often be made in a matter of minutes.
The Jeeves architecture easily supports ubiquitous connectivity, and by that, we mean more than just accessing the application in the cloud on a Web browser from a mobile device. Jeeves ERP has very effective client-server communication system that allows the application to be used in networks with narrow bandwidth, outside local networks, or by companies with a geographically dispersed organization.
Collaboration and New Feature Time-To-Market
The Jeeves Application Builder (JAB) allows customers to quickly and easily share functionality between installations, allowing them to import and export settings in applications, report templates, or new programs as an “app.” Apps can also be shared between different Jeeves environments via the JAB, allowing you to collaborate with Jeeves, our partners, or other customers to solve problems and further extend your system—or to automate the process of moving customizations from development to test to production. This provides for a much shorter outage window during deployments into production and eliminates human error.
The Jeeves Component Framework
There are many components that make up the Jeeves ERP genius architecture. This section will define and explain each component.
Jeeves Application Development Environment (JADE) (DevDB)
The Jeeves Application Development Environment (JADE) is a model-driven development environment for ERP applications, with support for declarative and programmable development. JADE can create working applications with all standard Jeeves features without writing a single line of code. Or complex features can be developed by hand and integrated into the code base. Either way, with JADE, it is possible to quickly and efficiently define, extend, and maintain Jeeves ERP.
Jeeves Metadata Model
Jeeves Metadata Model is a description of all model objects, including data types, terms, columns, tables, relationships, programs, and reports. The Metadata Model makes it possible to extend Jeeves ERP in run time with extended data-, program-, and execution- models, making it possible to apply customizations in run time from the Jeeves Site Repository. The Jeeves Metadata Model separates the standard system from adaptations, enabling high efficiency development and customizations atop an upgradable standard system.
The Jeeves Server is used to host the logic tier of the Jeeves application. It manages the user interaction and integration logic and enables the server to be accessed from the user interface tier. It is the framework dedicated to create efficient execution of macros, events programs and more. The Jeeves server is the engine that manage all types of events, building applications by merging model data with transaction data as the application runs. It handles all database access and all other Jeeves services. The Jeeves Server also handles both types of clients, the Jeeves Classic Client and the Jeeves Web Client, known as Jeeves Insight.
Implemented in Microsoft SQL Server, the Jeeves Database is a relational database with high-performance data storage and logic applied via in stored procedures and triggers. The database stores all the business data, provides transaction handling, and keeps data integrity. Triggers and procedures ensure all business rules are always applied, regardless of the source of the transaction, in addition to supporting web services. The implementation of the Jeeves Database provides a flexible and extendible platform that will support your business today and tomorrow. As businesses grow and change, the Jeeves Database can be extended with columns, tables, new procedures, and extensions of existing procedures that are maintained through every upgrade. The Jeeves Database also enforces custom business rules, independent of the source of database access.
Jeeves Site Repository
The Jeeves Site Repository is a storage database for customizations, storing the customizations, the added model data, and settings. The Site Repository is a description of the desired alterations of the system. It stores:
- Altered appearance due to styles, colors, fonts, font sizes, and field positions.
- Altered or added text such as form and tab names, field names, and changed or added tables, terms, etc.
- Handling of end user roles, including the connection of users to roles.
- Customized user interactions along with customized navigation and validation logic.
The Site Repository is multi-layered so it is possible to have sets of changes applied and prioritized. The Site Repository is the cornerstone of the Jeeves ERP genius architecture that allows customizations to be separated from the standard functionality and achieves its promise of zero forced upgrades.
Jeeves Control Server
The Jeeves Control Sever is a surveillance tool that runs the Jeeves Server. In other words, it’s a super server that monitors the Jeeves foundation and user sessions, and makes sure it is healthy. The Jeeves Control Sever makes it easy to administrate several Jeeves servers to support growth and scalability over time, as well as execute upgrades and proactively administer the system based on rules and other scheduled actions.
Jeeves Client Broker
The Jeeves Client Broker connects the clients with servers, acting as a broker for client sessions. Jeeves Client Broker manages the traffic against Jeeves and provides load balancing on the Jeeves Servers. It also manages server call back to the client and secures a connection between the Jeeves Server and the Jeeves Client over the internet. The Jeeves Client Broker functions as a middle tier for internet access through firewalls. With the Jeeves Client Broker, it is possible to handle multiple connection methods with or without a VPN.
Jeeves Standard Client
The Jeeves Standard Client provides a rich user interface that can be easily customized and personalized without making any changes to the client itself. The model simply tells the server how the client should look and the forms are generated as defined. You can easily add fields, build forms, construct process workflows, write macros, and design reports using a limited number of IT resources rather than contracting for full-time application support or services engagements that are normally required. The Jeeves client also easily integrates with other client-side software, such as Microsoft Office, web browser bookmarks, .NET programs, PDF-viewer, COM-objects, ActiveX Controls, and more. It also provides services for output reports and file formats. The design of the Jeeves Client enables efficient and secure communication via the internet. It is easily implemented and provides an excellent search tool. The Jeeves Client works well in all type of networks, including WAN, LAN, mobile, and wireless. It is also resilient to network disturbances and reconnects where it left off.
Jeeves Web Client
Jeeves Insight is Jeeves ERP’s new, browser-based client that was designed to be used on both PCs and MACs. Jeeves Insight is the next-generation user interface for Jeeves ERP, and it can be run in a browser while providing a rich client user experience. Jeeves Insight’s role-based user interface can hide irrelevant information and enhance features that are important to a particular role, including program design, available reports, dashboard pages, program menus, and much more.
Jeeves Message Integrator
Jeeves Message Integrator (JMI) is a framework that permits asynchronous message integration and batch integration with Jeeves. With Jeeves Message Integrator, you can map data into and out of XML messages, as well as make SQL calls. The framework provides a mapping tool, transaction handler, message queues, and exception management. Jeeves Message Integrator is the preferred way to integrate asynchronously to Jeeves ERP. Jeeves Message Integrator provides a single access system from all applications using XML messages. Traditional integrations are based on one table per message. The JMI allows for the easy setup and configuration of the parallel processing of messages and is proven to handle large volumes of transactions.
Jeeves Service Gateway
The Jeeves Service Gateway provides computer-to-computer access to the Jeeves Server and is used for integrations to almost any external system or platform. The Jeeves Service Gateway provides a modular, plug-in based interface for technologies such as Java, web services, more. The Jeeves Service Gateway exposes all the logic in the Jeeves Client and Jeeves Database, including your customizations. This makes system-to-system integrations simpler and more cost-effective.
Jeeves Services Builder
The Jeeves Service Builder (JSB) is an information gateway that provides a single point of access to different information resources. Information can be retrieved, created, modified, or deleted. JSB is not an integration server; it dynamically creates endpoints that can be used by integration servers to connect to Jeeves ERP. Jeeves Service Builder combines with the Jeeves Message Integrator and the Jeeves Database to create the foundation for Jeeves ERP’s Service Oriented Architecture.