Dado que la aplicación IDIS COLABORATIVA fue desarrollada bajo el marco de trabajo Codeigniter, el cual esta fuertemente ligado al patrón de diseño MVC, nuestro patrón de diseño no podía ser otro diferente, además porque es un patrón que facilita el trabajo distribuido y la integración de desarrollos independientes de una manera extraordinaria que fue más que adecuado teniendo en cuenta la celeridad con la cual tuvo que desarrollarse la presente aplicación.
Nuestra aplicación se compone de 3 capas a saber, la capa de presentación o de alto nivel, la capa de lógica de aplicación o capa intermedia y la capa de acceso a recursos o capa de bajo nivel, a continuación se procede a detallar la manera como se implemento cada una de estas capas y su estrecha relación.
Capa de Presentación o de Alto Nivel
Como establece el patrón de diseño MVC las vistas fueron llamadas desde los controladores y se utilizaron para recoger información de los usuarios como en el caso de los formularios o para entregar información a los mismos acerca de procedimientos solicitados o de datos consultados por estos y extraídos de la base de datos por medio de los modelos.
Capa de Lógica de Aplicación o de Nivel Medio
Capa encargada de implementar la lógica de negocio, es decir, de darle tramite a las solicitudes realizadas por los usuarios a través de la capa de presentación, por lo cual estas dos capas se encuentran fuertemente ligadas. La lógica de aplicación esta representada bajo el patrón MVC por los controladores y para el caso concreto de nuestra aplicación decidimos implementarla utilizando el patrón especifico de un controlador por página (Page Controller), que aun cuando dificulta el proceso de seguridad nos permitió estructurar en gran detalle nuestra aplicación haciendo controladores especializados que solo atendieran una determinada solicitud o grupo de solicitudes relacionadas beneficiando la modularidad e independencia de los controladores. Éstos se encuentra almacenados en una carpeta denominada controllers y todos tienen nombres con la terminación controller para facilitar su identificación.
Siguiendo las reglas establecidas por el patrón MVC, los controladores se encargaron de recibir las solicitudes e información proporcionada por los usuarios, para realizar el llamado del adecuado modelo que extrajera o almacenara la información en la base de datos de acuerdo al tipo de solicitud recibida, y posteriormente por medio de las vistas renderizar la información pedida o informar del éxito o fracaso de la operación.
Capa de Datos o Bajo Nivel