Etiquetas

,

La arquitectura de software es el proceso de diseño de la estructura que soportara a una aplicación de software basándonos en el cumplimiento de unos requerimiento funcionales y no funcionales que deberan ser cumplidos de la forma que nos ofrezca el mejor rendimiento, eficacia, seguridad, manegabilidad y escalabilidad.

Un mal diseño de la arquitectura de una aplicación  puede concluir en un mal funcionamiento de los procesos, en un rendimiento pobre que termine en el abandono de los usuarios de tu aplicación, en un consumo exagerado de recursos que implicarian un aumento de los costes de operación, en fallas de seguridad que comprometan los datos de los usuarios u operaciones lo que en algunos casos podria provocar perdidas millonarias, en problemas para mantener y dar soporte a la aplicacion haciendo imposible que esta cresca o se adapte a las tranformaciones de los procesos del negocio o a la evolucion del mercado y las tecnologias lo que cual podria provocar que la aplicacion tenga que ser desechada en poco tiempo con las perdidas de dinero que esto significa, en poca escalabilidad  o escasees total de la misma que podría provocar que nuestra aplicación no sea capaz de adaptarse a un crecimiento en el numero de usuarios, limitando de esta manera el crecimiento de la empresa o los servicios que esta presta y por lo tanto perdida de dinero.

Mala Arquitectura= Perdida de Dinero

Mal Arquitecto= Perdida de Dinero

Los costes de tener un buen arquitecto de software siempre estaran por debajo de las perdida de dinero que traera la ausencia del mismo.

Tipos de aplicaciones que nos ofrecen la tecnologias  de Microsoft.

-Mobiles

-Rich Internet Application (RIA), aplicaciones de Internet ricas en interfaz de usuario

-Rich Client, aplicaciones stand alone ricas en interfaz de usuario

-Servicios

-Aplicaciones Web

Tipos comunes de Arquitecturas que podemos implementar en nuestras soluciones .NET.

-Cliente Servidor

-Arquitectura basada en componentes

-Arquitectura en Capaz

-Arquitectura Mesagge Bus

-Arquitectura Modelo Vista Controlador

-Arquitectura de N capaz

-Arquitectura Orientada a Objetos

-Arquitectura Orientada a Servicios (SOA)

Situaciones que deberemos tener en cuenta a la hora de diseñar nuestra arquitectura.

¿Como realizaremos el caching o cacheo dentro de nuestra aplicacion?

¿Como se realizara la comunicación entre los componentes o capaz?

¿Como manejaremos la concurrencia y las transacciones?

¿Como realizaremos la configuración o que mecanismos tendremos para configurar la aplicación, y que tan configurable sera?

¿Como ser realizara el acceso a los datos?

¿Como se realizara el manejo de las excepciones y el Log de mas mismas?

¿Como mediremos el correcto funcionamiento de la aplicacion?

¿Como se realizara el manejo de los estados de la aplicación?

¿Como se realizaran las validaciones?

¿Como llevaremos a cabo el acoplamiento entre componentes ?

Pasos básicos en el diseño de la arquitectura.

1. Determinar que problema deberá resolver nuestra arquitectura y el conjunto de escenarios posibles.

2.Determinar que tipo de aplicacion se debera desarrollan basandones en los escenarios posible, en los atributos de calidad de nuestra aplicación y en el método de despliegue.

3. Determinar el tipo de arquitectura a utilizar y que mejor se adapte a nuestras necesidades.