Client/Server Model
The client/server model is a common approach to sharing data between many programs.
The server is responsible for storing data and ensuring the client only interacts with the data it's allowed to, and the client is responsible for handling the user interactions.
Both the client and server must use the same protocol.