OpenERP has separate client and server components. The server runs separately from the client. It handles the business logic and communicates with the database application. The client presents information to users and allow them to inter-operate with the server. Multiple client applications are available.
The server part is written in Python programming language. The client communicates with the server using XML-RPC interfaces.
Business functionality is organised into modules. A module is a folder with a pre-defined structure containing Python code and XML files. A module defines data structure, forms, reports, menus, procedures, workflows, etc... Modules are defined using a client-independent syntax. So, adding new objects, such as menus or forms, makes it available to any client.