Quien realiza la tarea el vServer o el vClient

vForum público de la plataforma de desarrollo Velneo

Moderador: vCoaches

Avatar de Usuario
rafapetit
vCool
vCool
Mensajes: 208
Registrado: 07 Ago 2007, 23:24

Quien realiza la tarea el vServer o el vClient

Mensaje por rafapetit »

Hola, tengo una duda de quien realiza cada tarea dentro de un proceso en primer plano.
Imaginemos que tengo un simple proceso que carga una lista y despues se filtra esta lista. Quien realizaria cada tarea.

A mi entender seria asi:

vServer -> Cargar lista. El servidor me da la lista.
vClient -> Filtrar lista. El cliente es el que filtra la lista que ha recibido.

Creo que seria asi. Me lo podeis confirmar.
Un Saludo.

Rafa Petit (SGO - Ontinyent)
Francisco Hoyos
vLeader
vLeader
Mensajes: 2712
Registrado: 22 Sep 2005, 17:56

Mensaje por Francisco Hoyos »

Correcto.

Un saludo.
Francisco Hoyos
frhoydon@gmail.com
Avatar de Usuario
Roberto Blasco
vLeader
vLeader
Mensajes: 1028
Registrado: 21 Dic 2005, 10:18

Mensaje por Roberto Blasco »

Hola rafapetit.

Como muy bien dice Francisco Hoyos es correcto....pero con matizaciones :wink:

Prueba a mostrar una lista de 100.000 registros en pantalla y filtra u ordénala e intenta realizar una búsqueda compleja (con indeces ternarios) a esa misma aplicación o a otra en el mismo servidor...al mismo tiempo claro (simulando usuarios concurrentes)

Te da que pensar a que el proceso se realice en el cliente..... :?: Sobre todo cuando las tareas se empiezan a acumular al mismo ritmo que se realizan búsquedas concurrentes.

Consecuencia de no ser multihilo..... :twisted:

Un saludo. Roberto.
Guadalajara - España
E-Mail: roberto.blasco.serrano@gmail.com
Skype: roberto.blasco.serrano
Teléfono: (+34)625653066 [WhatsApp]
Avatar de Usuario
rafapetit
vCool
vCool
Mensajes: 208
Registrado: 07 Ago 2007, 23:24

Mensaje por rafapetit »

Eso es lo que quiero diferenciar. . .
esta claro que el cargar una lista lo hace el vServer igual que una busqueda.

Pero lo que quiero saber es si una vez he realizado la busqueda o el cargar una lista
esto ya esta en el vClient y apartir de ahi es el vClient quien termina de procesar los datos.
Un Saludo.

Rafa Petit (SGO - Ontinyent)
Avatar de Usuario
Fran
vCoach
vCoach
Mensajes: 6599
Registrado: 21 Sep 2005, 08:23

Mensaje por Fran »

Buenas tardes:

También hay que tener en cuenta si los registros están en la caché de vClient o no.

Si cargas una lista muy grande de registros, al abrirse la rejilla, no significa que todos los registros esten ya en la memoria de vClient. Si desplazas el cursor hacia abajo verás que tras mover unos cuantos registros tarda un poco más en pintar los siguientes, porque se los está trayendo del servidor.

Esta explicación no es muy ortodoxa técnicamente hablando... pero vamos, que hay que tenerlo en cuenta también. ;-)
Un saludo,

Francisco Javier Pérez Novo
EfeUno Consultores de Gestión y Software, S.L.
fjpnovo@efeuno.org
http://www.efeuno.org
(+34) 91 519 44 86
Skype: Fran-EfeUno

Google Maps:
40.447943147972445, -3.6719655990600586
Avatar de Usuario
Cuco
vLeader
vLeader
Mensajes: 1179
Registrado: 20 Sep 2005, 20:45

Mensaje por Cuco »

Las búsquedas se ejecutan en el servidor y el filtrado y la ordenación , si se declaran dentro de las propiedades de la búsqueda, se ejecutan también en el servidor.
Ventajas de 'buscar' versus 'cargar lista', a parte de la convinación de componentes, etc., etc. ...
杜鹃鸟
Juan Miguel Figueroa Dorrego

Fontanía Lógica ™, E.P.I.
Una empresa personal imaginaria
Posición:
43.532928,-5.628616
Avatar de Usuario
rafapetit
vCool
vCool
Mensajes: 208
Registrado: 07 Ago 2007, 23:24

Mensaje por rafapetit »

Perdonar que insista en el tema. Pero me gustaria que me quedara claro.
Asi que voy a ser mas esacto en el ejemplo.

Seria un proceso sin salida de rejilla, tendria una salida de lista imprimiendo un informe.

vServer ->Entonces yo cargo una lista de un indice creado para esta lista.
vClient ->Despues la filtro.
vClient ->La paso a una tabla en memoria para el tratamiento de documentos con historicos.
vClient ->Se imprime esta lista.

Esta seria la forma de ejecutarse el proceso.????????
Un Saludo.

Rafa Petit (SGO - Ontinyent)
Avatar de Usuario
Fran
vCoach
vCoach
Mensajes: 6599
Registrado: 21 Sep 2005, 08:23

Mensaje por Fran »

Buenos dias:

Para realizar la mayor parte posible de trabajo en tercer plano y asi conseguir un mejor rendimiento del proceso, se podría hacer un pequeño cambio: Utilizar una tabla en disco con identificación de usuario en lugar de una tabla en memoria.

De esta forma, podrías realizar la mayor parte del trabajo en tercer plano:

- Borrar los registros del usuario que ejecuta de la tabla de infomes
- Buscar
- Filtrar (aunque si puedes evitar este paso, mejorará el rendimiento)
- Entubar registros a la tabla de informes, marcando el usuario propietario.

Todo esto lo harías en un solo proceso en tercer plano, por lo que todo el trabajo se realiza en el servidor.

Luego en primer plano, cargas la lista de registros del usuario e imprimes el informe.
Un saludo,

Francisco Javier Pérez Novo
EfeUno Consultores de Gestión y Software, S.L.
fjpnovo@efeuno.org
http://www.efeuno.org
(+34) 91 519 44 86
Skype: Fran-EfeUno

Google Maps:
40.447943147972445, -3.6719655990600586
Avatar de Usuario
rafapetit
vCool
vCool
Mensajes: 208
Registrado: 07 Ago 2007, 23:24

Mensaje por rafapetit »

Es que lo que quiero conseguir es todo lo contrario. Quitarle todo el trabajo posible al servidor.
Es decir entender al 100% como trabaja internamente, para que el servidor se dedique a realizar tareas de servir datos no de calcular o crear las listas que necesito.
Por eso prefiero crear los procesos en primer plano para que los ejecute el vClient. Y que el servidor simplemente me de la lista.
Yo la trabajo y despues la imprimo o la modifico o la pinto de color verde.
Un Saludo.

Rafa Petit (SGO - Ontinyent)
Avatar de Usuario
Fran
vCoach
vCoach
Mensajes: 6599
Registrado: 21 Sep 2005, 08:23

Mensaje por Fran »

Buenos dias:

Desconozco porque quieres específicamente realizar las tareas en local... pero si te puedo decir que el rendimiento sería bastante peor.

Cuando filtras la lista estás generando sockets contra el servidor, para comprobar condiciones. Al grabar los datos en la tabla en memoria lo mismo.

Siempre que sea posible conviene disparar los procesos en tercer plano... en cualquier caso, puedes hacer la siguiente prueba: Desarrolla los 2 procesos, prueba primero a ejecutar el proceso llamado en primer plano, luego en tercero y mide los tiempos de ejecución de cada uno para ver las diferencias.

Las diferencias en ejecución en WAN serán mucho mayores que en LAN.
Un saludo,

Francisco Javier Pérez Novo
EfeUno Consultores de Gestión y Software, S.L.
fjpnovo@efeuno.org
http://www.efeuno.org
(+34) 91 519 44 86
Skype: Fran-EfeUno

Google Maps:
40.447943147972445, -3.6719655990600586
Responder