Tecnologia

Arquitectura de Software

En Beetec se ha desarrollado una Arquitectura propia basándose en la teoría y buenas prácticas que hoy en día se conocen. Nuestro principal objetivo es brindar soluciones rápidas, flexibles, escalables y con un alto poder de interconexión con otras aplicaciones, haciendo hincapié en lo último mencionado, para así, poder aprovechar lo que otros pueden tener ya desarrollado o bien intercomunicar nuestros productos y ofrecer así una suite potente, completa y escalable.

Todos nuestros modelos de software están basados en desarrollos bajo OOP Object Orientated Programming. Como el futuro del software actualmente esta fundamentándose alrededor de la Web 2.0 hemos seleccionado tecnología para poder competir en ese ámbito.

 

Modelo de Desarrollo de Software 

Para desarrollar las diversas Aplicaciones de Software hemos utilizado el Modelo MVC Model View Controller un Patrón de Diseño de Arquitectura que brinda versatilidad, bajo acoplamiento y alta cohesión entre las partes del mismo.

Características:

  •  Alta Cohesión: cada componente del Modelo y Controlador representan comportamientos o funcionalidades específicas.
  •  Bajo Acoplamiento: la lógica de negocio se encuentra lo suficientemente separada de la vista como para poder utilizar diversas herramientas a la hora de su construcción.
  •  Alta Escalabilidad: realizar cambios en el modelo de negocio ó agregar nuevas funcionalidades no implica un alto costo.
  •  Bajo Mantenimiento: en caso de ser necesario algún ajuste, este modelo nos facilita y garantiza un control total sobre el mismo evitando errores colaterales.

 

Persistencia de Datos

Debido a que en la actualidad las Bases de Datos OOP aun son muy costosas en tiempos de procesador y equipos, existen diversas Técnicas de Programación para poder llevar la persistencia de los modelos OOP a Bases de Datos Relacionales, una de ellas es ORM Object Relational Mapping que el objetivo principal es mapear Objetos a Tablas Relacionales.

Como también existe el inconveniente que en la actualidad existen diversos Motores de Bases de Datos, hemos creado nuestro propio ORM para lograr de esta manera una abstracción de la Base de Datos como así también del Modelo de Negocio que vamos a implementar, permitiendo de esta manera persistir cualquier objeto en cualquier Base de Datos del mercado sin tener un costo extra en el desarrollo de nuestras aplicaciones, pudiendo de esta manera realizar cambios de plataformas sin necesidad de tocar líneas del código fuente original, evitando así posibles bug’s en la Lógica de Negocio.

En la siguiente imagen veremos una representación simple de cómo funciona conjuntamente todo lo anteriormente mencionado.

 

 

Como podemos apreciar en la imagen existe una alta cohesión entre las partes, ya que cada una de ellas se encarga de una tarea en particular y es esto lo que nos permite reutilizar en otros modelos, logrando de esta manera una reducción en los tiempos de programación y una gran madurez de cada una de estas partes, debido a que funcionan de manera centralizada, garantizando que la solución a un posible bug o bien una adecuación o actualización será expresada en todas las aplicaciones que lo están utilizando.

Aquí también pueden apreciar que una misma aplicación puede tener diversas Vistas, gracias al Bajo Acoplamiento podemos crear diversas interfases de usuario, muchas veces suele ser necesario ya que se poseen dispositivos Mobile y Desktop que debe interactuar con la misma Lógica de Negocio, como ven aquí no es necesario realizar cambios en el Core de la aplicación, sino que solo debemos crear o modificar pantallas, garantizando así la Estabilidad de la aplicación.

En caso de que uno posea otras aplicaciones como lo pueden ser ERP, aplicaciones de terceros gracias a la tecnología aplicada en el proceso de desarrollo de software que utilizamos en Beetec, podemos aprovechar al máximo las funcionalidades ya existentes, es decir, que podríamos utilizar lógica de negocio ya programada o bien hacer que estas aplicaciones tomen datos de las desarrolladas por Beetec, esto es posible gracias a la tecnología SOAP/WSDL. Cabe destacar que toda las funcionalidades de una aplicación desarrollada por Beetec, estar disponible bajo diversos WSDL permitiendo de esta manera comunicar distintas aplicaciones entre si, logrando así una gran comunicación y aportando dinamismo y versatilidad a los negocios.

La reciente incorporación de Memcached le proporciona mayor velocidad a a aplicación permitiendo mantener los datos y objetos más utilizados en Memoria, reduciendo en un 60% a 80% las consultas a la Base de Datos, que generalmente son el cuello de botella de las aplicaciones con muchas transacciones. Memcached es de licencia Libre con lo cual puede ser instalado y utilizado sin ningún inconveniente. Memcached es actualmente utilizado por grandes plataformas que deben soportar gran cantidad de información y transacciones, como: Facebook, Twitter, YouTube, entre otras.

Resumen

Nuestras aplicaciones pueden brindar gran comunicación entre diversos procesos de negocio, existentes o posibles futuros, gracias a la tecnología con la que se implementan cuentan con un modelo flexible, escalable, ágil y versátil, permitiendo de esta manera lograr un gran aporte al negocio, permitiendo tener la información necesaria en el momento preciso en la aplicación correcta.

Características:

  • Alta Escalabilidad: realizar adecuaciones o ampliaciones del software resultan de un bajo grado de complejidad cuando hablamos de modificar funcionalidades ya existentes y asegurando el correcto funcionamiento de el resto de las funcionalidades una vez finalizada dicha adecuación.
  • Alta Cohesión: cada uno de los objetos de la aplicación se encarga de controlar y manejar solo una problemática, logrando así la independencia con el resto de los objetos.
  • Bajo Acoplamiento: al separar las partes vitales del software en Modelo Vista Controlador, esto nos permite, como por ejemplo crear diferentes pantallas o interfaz de usuario, según la plataforma o dispositivo, sin perder o dañar la funcionalidad de la aplicación.
  • Alto campo de Comunicación con aplicaciones de terceros ya existentes: gracias que el 100% de la funcionalidad de la aplicación se encuentra disponible mediante Web Services podemos llevar a misma a otras aplicaciones que soporten dicha tecnología, un ejemplo podría ser llevar información que resulte vital a un ERP y así poder contar con la misma durante la tareas diarias sin la necesidad de salir e ingresar en otra aplicación para obtener la misma.
  • Alta Abstracción del Motor de Base de Datos: gracias al desarrollo de un ORM se ha logrado una total y completa independencia de los Motores de Bases de Datos existentes, permitiendo así que las aplicaciones puedan utilizar cualquier Motor existente del mercado.
  • Independencia de Plataformas: debido a que la el Core de las aplicaciones se encuentra bajo PHP y a su vez, la comunicación de la Vista con la Lógica de Negocio se hace a través de Web Services hemos logrado la independencia de plataformas, pudiendo implementar las aplicaciones tanto en Desktop (Linux, Windows, Mac, otros) como en Mobile.