Implementar servicio de red

30/07/2003 - 09:42 por Mario | Informe spam
Hola a todos/as;

Tengo un desarrollo de un servicio de red y me surgen alguna dudas, que
espero podaís orientamerme.

Dicho servicio de red consistiría en la escucha de peticiones de unos 200
clientes de manera aleatoria (es decir, no secuenciales), sobre TCP y un
puerto lógico determinado (pongamos 38000).

A partir de ahí los clientes realizarían peticiones de conexión, se
establecerían y se procedería al intercambio de datos entre el cliente y el
servidor.

Es decir, es el cliente quién comienza la comunicación y el servidor debe
ser capaz de establecer conexión con cada uno de manera asíncrona e
intercambiar datos.

A partir de esta pequeña introducción las dudas puntuales en referencia a la
programación de la aplicación de servidor (escucha).

1)
Había pensado en realizar programar un servicio, también necesitaría poder
añadir una interfaz gráfica para poder monitorizar conexiones concurrentes,
flujos de datos, etc.
¿Es posible insertar parte GUI en una aplicación tipo servicio?

2)
El servicio deberá atender y trabar de modo asíncrono, es decir, establecer
un hilo de ejecución por cada petición de los clientes, procesar en seguno
plano esa petición, pero poder atender siempre las nuevas peticiones a dicho
pueto.
Por lo que he examinado de programación con sockets en .Net, sería cuestión
de utilizar un socket de servicor asíncrono, no?
A este punto agradecerá cualquier sugerencia u orientación

3)
Por temas de robustez, debería poder controlar cuando se ha perdido una
conexión con un cliente (evento) para suspender y eliminar dicho subproceso
lo antes posible.

4)
En principio no atenderá a un número excesivo de clientes, pero debería ser
escalable sin problemas.
¿Sería interesante en este punto, interactuar con COM+ de alguna manera para
optimizar el redimiento?

5)
Para finalizar y por temas de seguridad, debería implementar un mecanismo
que no permitiera un desbordamiento de peticiones desde un mismo cliente en
principio.
Es decir, no aceptar más de una petición y/o establecimiento de conexión de
un mismo cliente. (cómo mínimo sin cerrar la que pudiera tener abierta).
¿Sugerencias a este punto teniendo en cuenta lo explicado hasta ahora?


Si habeís llegado hasta aquí os doy las gracias por vuestro tiempo y
atención, esperando ansioso vuestras sugerencias de cualquier tipo.

Saludos
Mario Garralda
 

Leer las respuestas

#1 Mario
30/07/2003 - 09:46 | Informe spam
Se me olvido en el anterior mensaje.
Dicho servicio también interactuará con un SQL-Sever donde consultará
información, y agregará datos.

A este punto el planteamiento sería que cada subproceso generé sun conexión
(en principio utilizaría el tema del pool de conexiones) y actulice datos
o por el contrario sería conveniente una instancia de conexión común a todos
los subprocesos.

Gracias de nuevo.

Preguntas similares