viernes, 23 de diciembre de 2011

Diseño Net Battler

Tomando el tipico diseño de 3 capas (presentacion, para la parte grafica; logica de negocio para las operacion y calculos; persistencia, para las transacciones con la base de datos), el diseño de NB consistira (por ahora?), en tener las tres capas de una manera peculiar. La capa N1 (Numero 1): Presentacion, del lado del cliente, que se encargara de mostrar al usuario, las interfaces, sonidos, animaciones y resultados. Tambien se encargara de tomar las desiciones del usuario (lease input del teclado, joy, etc), La capa de logica de negocio, estara dividida en dos partes, una del lado del cliente y la otra del servidor., esto mas que nada por un motivo de control. La capa N2-A (Cliente), se encargara de tomar y procesar los pedidos por parte de la capa N1, osea registro, login, logout, decisiones, etc. Asi como tambien procesar los resultados parciales y enviarlos a la capa N2-B (servidor), para su comprobacion. La capa N2-B (servidor), se encargara de comparar los resultados parcial y, confirmarlos o enviar la correcion de los mismos, el establecimiento de las "salas" de combate, etc Me detendre un momento sobre esto de la capa 2, ambos clientes calcularan sus resultados parciales y enviaran dicho resultado al servidor, el cual los comparara, si ambos son iguales, devolvera una confirmacion, en caso contrario calculara y devolvera el resultado correcto. Tal vez suene engorroso, pero de esta forma no se debera procesar todo en el servidor. En el caso de que uno de los clientes arroje un resultado distinto (ya sea porque fue modificado para obtener ventaja, alivianar el proceso de calculo en el cliente, etc), en el peor de los casos, se calculara el resultado dos veces, ademas del proceso y envidio de los mensajes intermedio. La capa N3, se encarga principalmente de gestionar las transacciones con la base de datos, lo cual hara que nadie pueda acceder directamente a ella. Todo esto hace que cada capa y en ocasiones, funcionalidades dentro de una capa, sea reemplazables, es decir, da la posibilidad de emplear por ejemplo, una version distinta de la capa de presentacion, para personas con capacidades diferentes, y la capa N2-A se comunique transparentemente con esa capa N1, como con una capa N1 standard. Inclusive, tal vez, la posibilidad de tener varias capas N1 que se comuniquen con una capa N2-A local, a modo de servidor local. y a su vez esta se comunique transparentemente con la capa N2-B.