Ver Mensaje Individual
  #7  
Antiguo 05-05-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hola jachguate

He estado no diré que estudiando sino leyendo algunas cosas y vagando por aquí y por allá. Veo que lo de los RemoteDataModules es más sencillo (igual me equivoco pero de entrada así parece) de lo que pensaba. O mejor dicho, que Borland colocó todo para que fuera prácticamente igual que en una aplicación de una sola capa.

De alguna manera veo que son dos opciones las que se ajustarían a lo que quiero: DCOM y Sockets. En varios lados mencionan la dificultad de configurar DCOM aunque como todavía no lo he probado más que en local pues no sé a qué se refiera dicha complejidad y por otro lado pareciera que los sockets darían más flexibilidad en cuanto al tipo de clientes que podrían acceder en un futuro. Pero veo que el problema con los sockets es que, tal como se maneja con los RemoteDataModules, la capa intermedia maneja un único cliente a través de ScktSrvr.exe que administra todos los accesos.

Poco después de mi mensaje anterior me di cuenta que la pregunta de las consultas SQL "especializadas" era un poco tonta, esto es, si puedo colocar un TTable (como en el demo de Delphi) seguro puedo colocar cualquier DataSet en la capa intermedia y esto incluye claro cualquier tipo de Query. Pero entonces me viene otra duda: muchas veces nos encontramos aquí sugieriendo construir consultas "al vuelo", ¿cómo se haría esto aquí?

Esto de los dos canales (DCOM e Idy o ScktSrvr.exe e Indy) entiendo lo que dices, quizá sea un justo precio pero pienso: si hago una comunicación por sockets ¿para que establecer otra igualmente por sockets?

Buscándole vi gente que propone usar una capa intermedia mediante Indy y ADO olvidándose de DCOM y ClientDataSets. No lo he visto en detalle pero quien lo propone parece ser muy convincente en cuanto a sus posibilidades o por lo menos contestó puntualmente a casi todos los peros que le ponían. Viendo esto me acordé entonces del demo que viene con las Indy (TCPDataSet) en donde usan componentes Indy junto con un dataset en memoria, el TKBMMemTable, que parece que tiene un buen manejo de envio y recepción de cursores mediante una binarización de los datos. A fin de cuentas, esto es lo que hace DCOM ¿no? empaquetar los datos de alguna forma para que sea fácil transportarlos. Si esta opción fuera viable me permitiría usar el mismo canal de comunicación para el envío de consultas así como de otro tipo de información.

Bueno, sé que por ahora sólo divago pero realmente nunca he trabajado así y apenas empiezo a picarle aquí y allá.

Una pregunta sí hago sin embargo:

En la capa intermedia, de cualquier forma que se haga habrá, a fin de cuentas varios accesos simultáneos y supongo que de alguna manera hay que controlar las concurrencias. Si uso DCOM o ScktSrvr.exe este manejo ¿ya está dado? O tengo que preocuparme de hilos y demás yerbas. Si uso Indy no sé porque pienso que sería más sencillo en cuanto a que Indy ya maneja un hilo por cada cliente.

Bueno, no espero que contestes ya que realmente no estoy diciendo ni casi preguntando nada pero seguiré curioseando.

// Saludos
Responder Con Cita