2010-11-16 26 views
7

Me gustaría configurar un pequeño programa que recupere información de una base de datos y luego la distribuya a otro programa cuando se solicite. Por ejemplo, un programa llamado 'Master' recuperaría datos de la base de datos y crearía una colección de objetos (lista, matriz, etc., lo que funcionara mejor) y luego un programa llamado 'Slave' (ejecutado desde múltiples escritorios) podría llamar a un método (es decir, GetNextRecord) de 'Master' para recuperar el siguiente registro de la colección.Método Call Delphi de otro programa Delphi

Me gustaría ser capaz de permitir que un solo 'esclavo' pueda llamar al método GetNextRecord a la vez para evitar dar a múltiples esclavos el mismo registro. 'Master' se ejecutará en el servidor con la base de datos, mientras que 'Slave' se ejecutará en varias máquinas de escritorio.

¿Alguien tiene un ejemplo de esto o un tutorial sobre cómo se hace esto?

TIA, Brian Enderle

Respuesta

1

Lo que también se conoce como load balancing, que puede ser implementado utilizando un Message Queue que está describiendo.

Mirar hacia arriba Message Oriented Middleware y comprobar las implementaciones existentes, como Microsoft Message Queuing (MSMQ):

MSMQ es esencialmente un protocolo de mensajería que permite que las aplicaciones que se ejecutan en servidores separados/procesos para comunicarse de una manera a prueba de fallos.

un periodo recomendado leer es también el libro sobre Enterprise Integration Patterns


Nota: yo soy el autor de bibliotecas de cliente de Delphi y Free Pascal para las colas de mensajes de código abierto/intermediarios de mensajes (ActiveMQ, HornetQ, OpenMQ, RabbitMQ)

12

Lo que generalmente se conoce como de tres niveles o el diseño de varios niveles que usted está describiendo.

Hay algunas bibliotecas de Delphi por ahí para que sea más fácil:

pregunta relacionada:

Advice on moving to a multi tier Delphi architecture

+3

1. Muy buena respuesta. Estaba a punto de decir esto pero me ganaste. :) –

0

Me gustaría ver DataSnap en Delphi XE. Existe un documento técnico gratuito de DataSnap 2010 con videos en http://www.embarcadero-info.com/in_action/radstudio/db.html y actualmente estoy trabajando en una aplicación de estudio de caso pequeña pero real de Delphi XE para otro libro blanco (probablemente publicado el próximo mes o principios de 2011). Mientras tanto, también puedes consultar mi manual de cursos del curso Delphi XE DataSnap Development Essentials publicado hoy en http://www.eBob42.com/courseware (ver TOC en http://www.ebob42.com/training/DataSnapXE.pdf).

Si no tiene la edición Enterprise de Delphi y no desea actualizarla, le recomendamos echarle un vistazo a RemObjects SDK.

Nota: Soy distribuidor de ambos, pero también lo uso tanto en proyectos reales para y con los clientes, así que sé lo que estoy hablando ;-)

Cuestiones relacionadas