Tally Developer Architecture

The Tally.ERP 9 architecture can be conceptualized as being divided into three layers:

  • The Application /Tally.ERP 9 Layer
  • The TDL Language and Interpreter Layer
  • The Platform Layer /Engine

THE APPLICATION/TALLY LAYER

All the user interactions take place at this layer. It is through this interface that the user gets access to all the product functionalities.

THE TDL LANGUAGE AND INTERPRETER LAYER

This layer is an intermediate between the application and the platform layer. This mainly consists of:

  • Tally Definition Language
  • TDL Interpreter

TALLY DEFINITION LANGUAGE

Tally Definition Language (TDL) provides capabilities for Rapid Development, Rendering, Data Management and Integration. This is the language used to deliver the capabilities that the platform provides – the entire user interface is built using TDL.

TDL is an Action driven language based on definitions. It comprises of the User Interface and Info/Data objects. User Interface Objects mainly determine the behavior of the product in terms of user experience. Info/Data objects are mainly used for data persistence in the Tally Database.

TDL INTERPRETER

TDL works in an interpreted environment. An action performed by a user will trigger a particular segment of code to get executed. The interpreter examines each line and executes them.

PLATFORM LAYER

The capabilities that TDL offers are due to the capabilities provided by the platform layer. This is the lowermost layer that interacts with the OS and the file system. The various components of the platform layer are:

  • Database Engine
  • ODBC Engine/Driver
  • Parser
  • Business Logic
  • Function Library
  • User Interface and Output Engine
  • Memory Management

All the retrieval and manipulation requests to the database by the application program are handled by the Database Engine. This is a true OODBMS. It is possible to store data as objects and retrieve data as objects. Stored as a block of data, this allows faster retrieval of data. Object-Oriented Recursive Management System follows the concept of Flexi-Length Record, Flexi-Field, and Self-Indexed weighted file structure for an extremely compact and fast database. Fault tolerance is built-in and along with transaction support (using roll forward capability), this provides an extremely robust system to withstand several system failures.

The File System consists of Data files (Master, Transaction, Link Masters), Message Files (for transaction management) and State Files (for concurrency and exclusivity control).