While I have a pretty good idea how things work with execution contexts in AF, I don't think I've seen this described in the documentation. A customer asked me the other day how this all works, and I looked at the AF documentation briefly without finding anything relevant. Where are linked AFTable data updates executed?
We all know that data references execute on the client (a feature with both pros and cons). The table lookup data reference is no exception, all clients need to keep a copy of the underlying tables in memory throughout the session (or until the cache expires), and in order to do that they need to be able to connect to the data. If the AFTable and the table connections are set up with integrated security the end user / client will need read access directly into the data source. But I believe the actual mechanism for connecting to the data source and filling up an AFTable (per user session) is done in the server, every time a client requests the data for this AFTable. The technology used is Microsoft's .NET System.Data.DataTable.Select. The client then keeps this table cached, and every time data is requested from this table it compares the time with the age of the cached table to see if it needs a refresh.
This means any provider software or settings only need to exist on the server. A client without the SQL Server Native Client or the Oracle OLEDB Provider installed can still get data from SQL Server- or Oracle database-fed tables, since the AFTable mechanism does the connection on the server, and only feeds the resulting table data back to the client.
Is this the correct interpretation of the process?