DESARROLLO DE SISTEMAS Y APLICACIONES

ENFOQUE DE PROCESOS (BPMN) Y DISCIPLINA DE PROYECTOS (PMI)

DESARROLLO ÁGIL DEL SOFTWARE (SCRUM)

ENFOQUE HACIA EL EDGE COMPUTING

DESARROLLO DE SISTEMAS Y APLICACIONES

 

Productos

Desarrollamos proyectos de logística y control de inventarios, activos, personas, etc., basados en tecnología de Radio Frecuencia, que se integran a los sistemas administrativos que ya tenga operando la organización (ERP; CRM).

Selecciones una de las siguientes opciones

Enfoque de procesos (BPMN) y disciplina de proyectos (PMI)

Primero los procesos.  Para entender los requerimientos de nuestros clientes estudiamos los procesos dentro de los cuales se busca instrumentar una solución; al modelar los procesos ó analizar los procesos que el cliente ya tiene documentados, se entienden más fácilmente, paso a paso, las actividades, condiciones, responsables, interacciones, reglas de negocio y todos los flujos de información implicados.

 El análisis de procesos estándar (BPMN) es una herramienta efectiva para el acuerdo consensado del requerimiento planteado y la viabilidad de la solución propuesta, mitigando riesgos y mejorando el desempeño.

Al interactuar sobre los procesos documentados, el analista entiende mejor a nuestro cliente, en sus prácticas de negocio y en sus objetivos, entiende mejor las ideas y alternativas para la resolución de los requerimientos y permitirá posteriormente que el producto y su implantación resultante sean más fáciles de entender y usar, porque nuestra meta es entregar un sistema que cubra necesidades funcionales y de calidad de la solución.

El análisis de los procesos perfecciona los alcances y objetivos de un proyecto de construcción de sistemas, de tal manera que estos objetivos resulten significativos, alcanzables en un tiempo razonable, con resultados medibles y siempre orientados al resultado.

El mapeo de procesos va a simplificar en gran medida la concepción y ágil definición de los casos de uso y el siguiente modelado en el análisis y diseño del sistema, obteniendo una arquitectura más eficiente.

Todo requerimiento lo resolveremos bajo el enfoque de proyecto.    La solución de un requerimiento de un sistema o una aplicación específica por parte de nuestros clientes, implica para nosotros establecer un orden claro y un conjunto de disciplinas que nos permitirá no apartarnos del objetivo.        Nos alineamos invariablemente a las disposiciones del PMI y las áreas de conocimiento y gestión del PMBOK Guide, de tal manera que no perdamos el foco y entregar los resultados esperados por quien nos contrata.      Dependiendo del tamaño del proyecto ajustamos algunos artefactos y disciplinas propuestas con un sentido práctico, pero es imperativo para nosotros seguir el orden de un proyecto bien administrado; las disciplinas a las que nos referimos son:

  • Manejo (gestión) de la integración del proyecto
  • Manejo de alcances
  • Gestión del tiempo
  • Planificación (primer acercamiento en base a alcances)
  • Plan de dirección de proyecto
  • Gestión de Control. Incluye gestión de versiones y configuraciones
  • Gestión de Calidad
  • Gestión de Costos
  • Procuración (otros proveedores ó asociados al proyecto)
  • Gestión de RH
  • Gestión de la comunicación.
  • Gestión de riesgos
  • Administración de requerimientos (gestión de alcances), en sus niveles de negocio, usuarios y sistema.

Dentro del proceso de planificación debemos ya tener bien determinados los objetivos y alcances del proyecto, debidamente consensados con nuestro cliente.

Como parte de la administración de requerimientos integramos el modelado de procesos, casos de uso y análisis de flujo de datos y extendemos las acciones y mecanismos de control hasta el grado necesario que demande la complejidad de un proyecto específico.     Un proyecto complejo siempre lo administrará un PMP calificado.

La ejecución ordenada del Plan de Proyecto nos llevará a las etapas de análisis, diseño, construcción y pruebas, que de manera iterativa termina en la entrega del producto final a nuestros clientes.

Desarrollo ágil de Software (SCRUM)

La ejecución del Plan de Proyecto nos llevará a las etapas de análisis, diseño, construcción y pruebas, que de manera iterativa termina en la entrega del producto final a nuestros clientes.   Generalmente (salvo especificación explícita de nuestro cliente que demande el uso de otras metodologías como pudiera ser RUP, la cual también la hemos utilizado como framework de trabajo), nos organizamos para la construcción del sistema bajo la metodología SCRUM de desarrollo ágil.

Una vez que el proyecto tiene claros su visión y alcance, están planificadas sus tareas a partir del análisis de procesos y se ha modelado una arquitectura inicial sujeta a evolución y, de manera relevante, se tiene un primer esquema del modelo de datos del que se va a partir (Product Backlog),  se inicia un conjunto de ciclos iterativos e incrementales de análisis de requisitos, diseño, construcción, pruebas y documentación sobre los módulos que definen el sistema o los más significativos para arrancar el proyecto si este es muy grande.  El arranque del desarrollo de cada módulo (lo llamamos ciclo ó Sprint) lo dirige y acota el Product Owner.      El primer ciclo (sprint) es para nosotros muy importante pues su resultado será un prototipo modular probado de la aplicación que van a revisar los usuarios finales en conjunto con el grupo que lo realizó; la discusión del prototipo con los usuarios directamente con los involucrados en construirlo (Team), dará señales definitivas para perfeccionar el análisis y el diseño, incluso la propia codificación, y los siguientes sprints perfeccionarán el producto utilizable, que también presentarán a los usuarios y demás interesados, (Stakehorlders ó Product Owners),  para acelerar su maduración hasta su pre-liberación.    El arquitecto del sistema (Scrum Master) será el responsable de que el ensamblaje de los diversos módulos sea consistente, para lo cual dentro de su equipo se ubica el DBA (propietario) que administra la base de datos, siendo este último instrumento el que rige la integridad del sistema.   La integración y los Sprints terminan cuando el sistema ó aplicación funciona en su conjunto y es el momento en que todos los equipos dan la versión final de la documentación, y participan con la gestión de calidad hasta la total liberación del sistema.

Esquema de un Sprint en SCRUM

Asumimos el framemework completo de la metodología SCRUM con distintas variantes de acuerdo al tamaño del proyecto pero siempre poniendo en el centro sus principales características: trabajo colaborativo, desarrollo incremental, orientado a resultados y traslapar los eventos del ciclo de vida del desarrollo en vez de realizarlos en forma secuencial o lineal.

Enfoque hacia el Edge Computing

Al utilizar la nube (WEB), siempre se tiende a la saturación de conexiones y canales de comunicación, sobre todo cuando se establecen diseños de computación distribuida (ó perimetral), por lo que la distribución del procesamiento y el almacenamiento de datos deben optimizarse cerca de donde el tráfico es más intenso (donde se da la mayor cantidad de demanda de respuestas de internet), de tal modo que se optimicen tiempos de respuesta y usos de ancho de banda.   Esta es una decisión crítica al momento de diseñar la arquitectura de un sistema WEB, prever y evitar el congestionamiento de transacciones en la nube y es allí donde hay que integrar a la arquitectura soluciones en el borde (Edge computing), que se establecen en el límite entre la red de dispositivos geográficamente distribuidos en muchas redes y el acceso a la nube.

IQIA da soporte a nuevos procesos en las empresas mediante sistemas y aplicaciones WEB

Ofrecemos a nuestros clientes desarrollo de software tradicional para Intranet (Localizado) en diversas plataformas, pero hemos puesto el foco, por sus posibilidades y su actualidad, en nuestra oferta de desarrollo de sistemas y aplicaciones WEB.

Soportar nuevos procesos o cambiar procesos en la organización, demanda aplicaciones informáticas flexibles, robustas e integradas a los sistemas que ya operan en un escenario de evolución.  Las condiciones actuales del mercado informático permiten optimizar recursos de hardware y software (y por ende costos) utilizando los recursos de la nube para desarrollar nuevas aplicaciones: las aplicaciones y sistemas WEB.     Hay sistemas muy complejos o reservados que requieren aplicaciones propietarias en sitio, pero la mayoría de los cambios en la organización se soportan con mayor eficacia con aplicaciones en la nube

Un sistema o aplicación WEB se aloja en Internet y se accede a él vía un servidor WEB a través de un navegador; generalmente se accede al sistema por diversos dispositivos, desde computadoras de escritorio hasta teléfonos móviles, pasando por equipos robóticos especializados que gestionan información interactuando directamente con Internet, lo que se denomina Internet de las cosas (IoT).

En IQIA desarrollamos desde aplicaciones Web dinámicas que utilizan una base de datos, portales web app para acceder a muchas opciones de la aplicación, aplicaciones para e-commerce y aplicaciones web que gestionan contenidos.     Nos apoyamos en las principales plataformas del mercado que estructuran la posibilidad indiscutible de operar en ambientes seguros y eficientes para la mayor parte de sus requerimientos de nuevas aplicaciones informáticas, que se integran en forma transparente (particularmente RedHat y Microsoft), vía intercomunicación de bases de datos, con las aplicaciones empresariales en la intranet.

Tres servicios en la nube son paradigmáticos en esta integración de sistemas y aplicaciones WEB con eficacia: SaaS, PaaS e IaaS (Software, Plataforma e Infraestructura como servicio).     Integrarnos a los servicios de la nube posibilita de manera amplia cubrir los requerimientos de computación móvil, por lo cual IQIA ofrece desarrollos de Aplicaciones Móviles, que son fácilmente accesibles desde cualquier dispositivo conectado a Internet (omnicanalidad), funcionalidad de las aplicaciones hoy indispensable en mercados tan dinámicos.

Las ventajas a nuestro juicio más relevantes de utilizar Sistemas y aplicaciones WEB serían:

  • Independencia de la plataforma del usuario: se utilizan desde cualquier sistema operativo, pues dependen del navegador.
  • Evolución de las aplicaciones utilizando nuevos recursos de los proveedores de servicios en la nube: los navegadores evolucionan rápidamente en sus funcionalidades y facilitan cada vez con mayor solvencia enriquecer las funcionalidades de las aplicaciones WEB y su interacción con dispositivos locales; basta con actualizar el navegador (o los navegadores) para acceder a nuevas funcionalidades o modificar las aplicaciones WEB para que las aprovechen.
  • Portabilidad y ubicuidad: los sistemas y aplicaciones WEB son independientes de la computadora o dispositivo móvil desde donde se utilicen, porque se accede a ellas desde una página WEB y siempre es factible hacer las adecuaciones requeridas para que la página WEB opere ergonómicamente en los móviles de pequeñas pantallas. Por esta razón, utilizan mínimamente o no utilizan el disco duro o memoria flash del almacenamiento local, todo se puede ejecutar y guarda en la nube, y también se puede establecer una interacción eficiente y no invasiva entre información en la nube y la información localmente almacenada cuando esto es requerido por las aplicaciones.
  • Disponibilidad extendida: Se tiene acceso a los sistemas y aplicaciones WEB desde cualquier dispositivo que tenga acceso a Internet; algunas funcionalidades, como vimos arriba, demandan que el navegador esté actualizado.
  • Ambientes más colaborativos: trabajar en la nube hace sencillo compartir ó integrar información entre varios usuarios que participan de un proceso o de un proyecto, dado que el punto de acceso a la información es único y se da en forma de un URL y se pueden multiplicar los puntos de colaboración de acuerdo a requerimientos.
  • Utilización intensa de mayores recursos informáticos con menores recursos de la empresa: Muchas tareas sencillas se pueden realizar con herramientas de uso colectivo integradas en la nube sin necesidad de descargar ni instalar algún programa; también el uso de las aplicaciones WEB no requiere un gran poder de cómputo en el escritorio ni la última tecnología de cómputo personal, pues el procesamiento de información se da en la nube y en caso de requerimientos de procesamiento muy voluminoso en las empresas, se da en el borde (Edge Computing), por lo que se incrementa significativamente el Valor Total de Propiedad del conjunto de equipos de que ya se disponen y son aptos para soportar actualizaciones de los navegadores, que son la mayoría de los equipos de cómputo en un horizonte de 8 años desde su inicio de vida útil.    En un esquema de arrendamiento de equipos, baja dramáticamente el costo del mismo a partir del tercer año, si que se mantienen los equipos en funcionamiento via navegadores.
  • Seguridad incrementada: Los virus y el malware afectan menos a los equipos que se utilizan la mayor parte de su tiempo en sistemas WEB bien protegidos; no elimina el riesgo, pues los usuarios tienden a utilizar la WEB con demasiada libertad, pero con un buen control de accesos a la WEB, el riesgo disminuye significativamente.

La integración de aplicaciones, Localizadas/WEB, demandan estar interconectadas mediante WEB Services, que son parte de la propuesta de IQIA..

Los WEB Services son un caso particular de middleware, pues se construyen bajo estándares y normas  de OASIS y W3C  y nos permiten intercambiar datos entre aplicaciones construidas sobre distintas plataformas y lenguajes, lo que abre enormes posibilidades a la integración de los sistemas; también nos permiten el intercambio de datos entre redes acotadas (LAN y WAN) e Internet para alimentar información a los sistemas WEB.

Un servicio Web Service establece los mecanismos de entrada/traducción/salida de datos de un sistema en cualquier momento transaccional para ponerlos a disposición de otro sistema o aplicación específico para su uso, generalmente para su incorporación a su base de datos.

El concepto funcional de los WEB Services es la interoperabilidad que es la “la habilidad de dos o más sistemas o componentes para intercambiar información y utilizar la información intercambiada”.

La capacidad transaccional de los WEB Services es particular y específica para la unión eventual de dos o más aplicaciones o sistemas y no es equivalente con los estándares abiertos de la computación distribuida (CORBA, Common Object Request Broker Architecture).

Generalmente se utilizan vía HTTP sobre TCP con gran solvencia y seguridad.   Los WEB Services se basan en el protocolo SOAP (Simple Object Access Protocol).

Dentro de la arquitectura de Sistemas y Aplicaciones que IQIA desarrolla y da soporte, incorporamos los servicios WEB.   Un uso muy particular y frecuente es utilizarlos para enviar información capturada por distintos señalizadores y sensores (soluciones con RFID generalmente) que se captan desde ambientes Android y Linux en línea hacia los ERP de las empresas.    Con los WEB Services actualmente las empresas tienen la posibilidad de integrar sus sistemas en un gran sistema multi-vendor.

Un ejemplo claro y cotidiano del uso de los WEB Services es el sistema del SAT en México, que interacciona de manera directa con los más diversos sistemas y ambientes (gráfica pública):

Middleware (lógica de intercambio entre aplicaciones

La computación distribuida requiere desarrollo middleware para comunicar diferentes ambientes operativos y aplicaciones donde transita la información de unos dispositivos a otros y permite la interoperabilidad en aplicaciones distribuidas; también se integran a los servicios WEB para intercomunicar dispositivos automatizados con servidores WEB de aplicaciones y bases de datos, lo mismo que para intercomunicar dispositivo especializados de recolección de datos (biométricos, escáners, antenas RFID, sensores, etc.).

Es muy amplio el universo y el uso del Middleware en los sistemas informáticos, pero siempre son mediadores entre una o varias partes entre dos o más sistemas para que se realicen varias tareas desde varias aplicaciones dentro de un mismo proceso de datos; su uso y desarrollo demanda una especialización para el tipo de Middleware que se va a utilizar.

RedHat, nuestro gran proveedor y aliado para herramientas de middleware en aplicaciones WEB,  define:

 “El término middleware se refiere a un sistema de software que ofrece servicios y funciones comunes para las aplicaciones. En general, el middleware se encarga de las tareas de gestión de datos, servicios de aplicaciones, mensajería, autenticación y gestión de API.”

“A pesar de todos los beneficios que ofrece el desarrollo nativo de la nube, también implica una complejidad adicional. Las aplicaciones se pueden implementar en múltiples infraestructuras, desde sistemas locales hasta nubes públicas. Las arquitecturas pueden variar considerablemente. Los desarrolladores deben coordinar varias herramientas, lenguajes y marcos. Además, hay una presión extra por lograr más objetivos en menos tiempo y a un menor costo.”

“Las empresas recurren al middleware como una forma de abordar esta complejidad y de agilizar y rentabilizar el desarrollo de aplicaciones. El middleware admite entornos de aplicaciones que funcionan de manera uniforme y sin problemas en una plataforma altamente distribuida.”

Podemos decir que el middleware es todo el software que soporta una relación cliente-servidor y que no está en el dominio del cliente, sino en el dominio del servidor, pero permite que el cliente obtenga los servicios que requiere para ejecutar tareas.  De otro modo, el middleware permite separar y distinguir funciones de comunicación complejas entre redes e interconexiones subyacentes en una ruta completa de datos entre un cliente y un servidor, así como de los diversos sistemas operativos y lenguajes de programación involucrados en la transmisión, generando una API (Application Programming Interface / Interfaz de Programación de Aplicaciones) que facilita la programación y manejo de aplicaciones distribuidas.  Según sea el problema a resolver y de las funciones de intercomunicación requeridas se programarán los servicios de middleware.

IQIA integra y adapta middleware que se comercializa como el de RedHat y se ha especializado en desarrollo propietario de middleware (independiente de los servicios de la red) para:

  • Intercomunicar ambientes de captura de datos desde distintos señalizadores y sensores e integrarlos a un procesamiento de información dentro de un sistema, de manera directa hacia base de datos o integrándoles en los WEB Services. Destacamos nuestra mayor especialidad en la integración de dispositivos de RFID y sensores (antenas y readers que operan generalmente en ambientes Linux, como dispositivos móviles HH que operan en Android, escáners laser, sensores que operan en ambientes Linux o sobre la base de PLCs, entre otros), a las aplicaciones, locales o de WEB, hasta que la información pre-procesada es visible para los ERP u otros sistemas que utilicen estos datos que se generalmente se integran a ellos vía los WEB Services.

En IQIA colaboramos bajo un esquema de organización dirigida a la integración de proyectos de TI.

Toda operación de servicio al cliente se establece como un conjunto de procesos, donde establecemos la mayor cantidad de vasos comunicantes entre sus diversas áreas que a su vez permiten una eficaz relación con diversos aliados estratégicos, tanto de bienes como de servicios.

Al surgir un proyecto bajo contrato, tenemos muy claro a quien asociarnos para el logro de buenos resultados.

Contáctanos

14 + 3 =

Ubicación

Esparta 38, Col. Alamos Alcaldia Benito Juarez CDMX

Horario de Oficina

De 9 am. a 6 pm. todos los días

Llámenos

(55) 5530 7824

(55) 55307939

Solicita Cotización