Hola Omoreno, se me ocurre que la arquitectura puede ser así:
El cliente pregunta a servidor el servidor consulta la base de datos y esta le responde. Luego servidor por socket responde a cliente.
Con esta arquitectura se logra separar el el código en dos proyectos o mas, por ejemplo cliente web.
También se evita el bloqueo si la conexión de red se interrumpe, ya que cuando un programa se conecta a una base de datos remota la latencia o el corte de red afectan mucho el funcionamiento del sistema.
También el cliente puede pedir un template, por ejemplo una factura y los datos que tiene que poner en esta o un archivo PDF generado en el servidor o cosas de esas.
O el camino inverso, enviar un documento desde el cliente al servidor y que el servidor lo gestione. El documento puede ser una factura de un proveedor, un tiket, un plano de arquitectura de un proyecto o cosas por el estilo. digamos que todo lo que tenga una relevancia para el flujo de trabajo de una empresa.
Tercoide: Claro propone funciones, hace una lista o como quieras.