Clients do not communicate directly with the data tier in a multi-tiered architecture. Clients communicate with the application server which talks to the data tier on the client’s behalf. In DevForce applications, clients communicate with the EntityServer, a DevForce component running on the application Server. The EntityServer orchestrates all application activity on the application Server.
The EntityServer’s main job is to translate client requests into actions on the server. Most client requests concern getting and saving data in the form of entities. Entities are .NET CLR objects consisting of persistent state data values saved in the data store and business logic added by the application developer. The core code of the entity classes was most likely generated by DevForce from an Entity Data Model (edm) defined with the Microsoft ADO.NET Entity Framework (EF) design tools.
The EntityServer itself does not talk directly to the data store. Instead it translates client entity requests into commands to an application Data Access Layer (DAL), typically the Entity Framework (EF). The DAL talks to the data store and knows how to move data between the entity properties and their corresponding locations in storage.
The EntityServer can also perform other tasks such as authenticating users, running server-side application logic, and relaying certain client requests to external servers.
We’ve identified the DevForce EntityServer as the governing component executing on the server. It’s not the only component. Here is a fairly typical, high-level inventory:
Your Entity Model
.NET CLR entity classes mapped to data in persistent store
Data Access Layer (DAL)
Moves data between data stores and entity objects in response to query and save commands. Usually the Entity Framework
DevForce EntityServer
Mediates client requests and back-end services
Interceptors and plug-ins
Optional code you wrote to customize EntityServer pipelines and substituted your components for default DevForce services.
Back-end service classes
Optional code you wrote to perform proprietary logic and reach external services accessible only through the central server.