Inicio Instrumentación Hace falta una comunidad

Hace falta una comunidad

¿Por qué necesita una plataforma de software impulsada por un ecosistema robusto?

“Hace falta una comunidad”. Aunque este proverbio africano normalmente hace referencia a la necesidad de una infraestructura influyente más allá de la familia inmediata para el desarrollo saludable de un niño, le sorprendería saber que este mismo concepto puede aplicarse al mundo de la ingeniería. El ritmo y la promesa de un mundo conectado han aumentado rápidamente la demanda del diseño y de la prueba de sistemas de ingeniería y, ahora más que nunca, hace falta una comunidad, una comunidad de software. El software de ingeniería actual normalmente ha evolucionado en dos vías divergentes. Por un lado, encontrará especialización: software diseñado para una tarea o tipo de hardware específicos. Por otro lado, encontrará la abstracción: una interfaz simplificada para un concepto antes complejo que facilita cumplir la tarea de forma más rápida, pero al precio de eliminar el control de bajo nivel. Cualquier proveedor que asegure que resolverá estas dificultades con un solo software está confundido o es ingenuo. No sé lo que es peor, pero sepa que independientemente de la vía elegida, debe demandar interoperabilidad o riesgo asumiendo usted la carga de la integración.

La historia enseña lecciones, ¡si está dispuesto a escuchar!

Como nos viene repitiendo la historia, combinar software dispar de la competencia es engorroso, caro y especialmente difícil para garantizar la interoperabilidad. La interoperabilidad se consigue mejor creando varios softwares de una sola plataforma y después construyendo un ecosistema dinámico sobre esa plataforma para conseguir funcionalidad e IP especializadas. Este concepto se ilustra mejor con el sistema operativo. Hace unas décadas, Microsoft Windows mostró las ventajas de una plataforma unificada definiendo protocolos de comunicación estándar sobre una infraestructura común, el PC. El resultado fue una interfaz común que se ampliaba fácilmente, de modo que la plataforma de hardware del PC era muy eficaz. Con el tiempo se han propuesto soluciones, como cajas registradoras, sustituidas por el PC general con software personalizado. Se podría decir que el Apple iOS llevó el concepto de plataforma al siguiente nivel. En el caso del iOS, su ecosistema robusto creado sobre la infraestructura estándar fue lo que lo catapultó. Para ofrecer más interoperabilidad y maximizar los diseños sobre los que están trabajando los ingenieros, los proveedores deben crear software del modo adecuado. Como empresa, la filosofía de NI está adoptando las ventajas que el sistema operativo de escritorio aportó al mercado del PC y está aplicándolo al software de ingeniería.

El valor de un SO de ingeniería

Aunque los dos ejemplos anteriores son SO de consumidor, la analogía puede extenderse al diseño y la prueba de sistemas de ingeniería. Considere el concepto de un ‘SO de ingeniería’: una plataforma de soft ware diseñada para estandarizar y simplificar la interacción entre un humano y el sistema de ingeniería que está diseñando, como un SO tradicional simplifica la interacción entre un humano y un PC. Un verdadero SO de ingeniería es un conjunto de componentes tecnológicos o bloques de construcción fundamentales que pueden utilizarse para crear varios productos de software que solucionen problemas. Estos bloques de construcción fundamentales son comunes en casi cualquier software de ingeniería: elementos de la IU para visualizar datos, IP de procesamiento de señales, arquitecturas de compilador para optimizar el código para varias arquitecturas de procesador, creaciones de lenguajes profesionales, API de controlador y arquitecturas de despliegue. Sin embargo, unir estos componentes en el mismo paquete es lo que al final fomenta la productividad y crea eficacia al cumplir tareas. Por ejemplo, la combinación de estos elementos en un software diseñado para gestionar una arquitectura de secuenciación de prueba de alto nivel no parecerá diferente, pero tendrá distintos flujos de trabajo, personalización, IP y un diseño interactivo de un software diseñado para una configuración de hardware interactiva y experiencia en adquisición de datos. La colección holística de estas herramientas de software ofrece el valor de un SO de ingeniería. En esta plataforma singular se crean productos muy especializados como controladores de hardware, gestión de despliegue y gestión de sistemas distribuidos. En esta plataforma singular se crean productos basados en configuración de alto nivel, como un gestor de secuencias de pruebas, una interfaz analítica basada en la nube y un software preconfigurado de gestión de control de condiciones en línea. Esta plataforma singular dispone de entornos de desarrollo muy personalizados que contienen un lenguaje de desarrollo gráfico muy productivo o un lenguaje de desarrollo basado en ANSI-C. En esta plataforma singular, se crea cada uno de los componentes necesarios para resolver su aplicación y se accede a ellos de modo que promueva y simplifique la integración entre ellos. Además, como los componentes tecnológicos de un SO de ingeniería se crean a partir de la misma plataforma, existen ventajas directas e indirectas que observará como usuario.

Curva de aprendizaje simplificada

Existe una tendencia directa pero no sencilla en el software actual: la demanda de software más potente y capaz con puntos de inicio de mayor nivel y con más facilidad de uso. Una de las ventajas de la técnica basada en plataforma, cuando se hace bien, es que el producto final presente una curva de aprendizaje común y simplificada. Las capacidades comunes se abordan con bloques de construcción estructurales, que ofrecen dos ventajas únicas. En primer lugar, el aspecto común de estos bloques de construcción estructurales implica que los usuarios no necesitan volver a aprender estos elementos principales al combinar varios softwares en un sistema, ya que el paradigma de interacción se comparte en toda la plataforma. En segundo lugar, el equipo de desarrollo puede envolver estos elementos estructurales en el flujo de diseño apropiado de extremo a extremo que requiera la tarea en cuestión, ofreciéndole una experiencia a medida.

Interoperabilidad

A medida que crece la complejidad en las soluciones actuales, cada vez impera más la necesidad de combinar varios lenguajes, entornos y técnicas de software. Sin embargo, el coste de integrar estas técnicas es considerable y sigue aumentando. La técnica basada en plataforma simplifica la interoperabilidad en varios frentes. En primer lugar, se comparten las API e IP integradas en los productos. Esto promueve la reutilización de código de alto nivel sin ninguna medida para refactorizar o rescribir. Esto puede reducir drásticamente el coste de la integración en toda una empresa, además de la integración para cada usuario. Esto también elimina la bifurcación entre la abstracción y la especialización. Desde una sola plataforma puede desarrollarse software muy especializado para cumplir una tarea concreta, como el registro de datos, el análisis y la correlación de datos fuera de línea, o incluso un gestor de secuencias de prueba. A continuación, ese software especializado puede ampliarse más con una herramienta de nivel superior o integrarse en ella. Con esta combinación única de capacidades, puede seleccionar finalmente la herramienta correcta para cada aspecto de su proyecto, y no soportar la carga de la costosa tarea de integrar estas herramientas juntas.

Ecosistema

Resulta verdad para el software correcto: sin el ecosistema, el software lucha por ser relevante. No hay una herramienta de software profesional buena que exista en un silo. El ecosistema ofrece valor incalculable para el soporte, creación de código de ejemplo, redes y referencias. Tal vez lo más importante es que el ecosistema puede ampliar la plataforma con IP muy especializada, más allá de la competencia principal o de las áreas de conocimiento del proveedor. Observemos la Apple App Store: los ingenieros de Apple no son expertos en control de fitness ni en interpretar un radar meteorológico, pero esas capacidades se diseñaron sobre su plataforma. La técnica de desarrollo basada en plataforma para software no solo promueve el concepto de ampliaciones de ecosistema, sino que realmente simplifica la interfaz que estos miembros críticos pueden utilizar para realizar la ampliación. El enfoque fundamental de la plataforma es que las capacidades individuales principales están diseñadas como entidades reutilizables que aparecen en varios productos y que después se pueden personalizar más según las necesidades de cada usuario. El único modo de hacer esto con eficacia es diseñar las capacidades principales alrededor de un conjunto ampliable de API que cada equipo de desarrollo del producto puede utilizar para ampliar y personalizar la funcionalidad. Estas mismas API permiten al ecosistema personalizar más la funcionalidad para su aplicación, su empresa, o para sus clientes si están creando un negocio sobre la plataforma.

Dando vida a un SO de ingeniería

En nuestra conferencia anual de NIWeek en agosto de 2016, recientemente anunciamos la primera NI Software Technology Preview de la empresa, para demostrar nuestro compromiso continuo de conseguir progreso que se basa en las últimas tres décadas de innovación en el mercado de prueba y medición. Esta Software Technology Preview incluye varias versiones de software que combinan y unen capacidades relacionadas. Entre otras cosas, estas capacidades están organizadas en torno a resolver retos importantes a los que se enfrenta como usuario final, p. ej.:

• Desarrollo personalizado de IU desde el escritorio a la web
• Gestión, visualización y documentación de sistemas
• Aprendizaje en el producto mediante la integración de medios interactivos
• Gestión y análisis de datos desde el escritorio al servidor
• Creación de una ruta para programar desde software basado en configuración Estas declaraciones de problemas abarcan varios sectores y distintos productos pueden resolverlos de formas únicas. Eso es lo bueno de utilizar una técnica basada en plataforma. Las capacidades mostradas en la Software Technology Preview están diseñadas de tal modo que puedan integrarse en varios productos de software desde la plataforma de NI.
Mientras que la Software Technology Preview se centra en futuros desarrollos y capacidades inéditos, existen soluciones en el mercado actual que están consiguiendo beneficios con la inversión en esta plataforma. VeriStand 2016, una interfaz de software de alto nivel diseñada para simplificar las aplicaciones de prueba en tiempo real, incluye una interfaz para diseñar interfaces gráficas de usuario que se puedan embeber y desplegar con facilidad. El software de diseño del sistema LabVIEW 2016, la edición del 30 aniversario de Lab- VIEW desde la 1.0 en el Macintosh Plus, incluye un nuevo protocolo de comunicación innovador que utiliza un solo cable para transferir datos entre segmentos paralelos de código de ejecución.

Plataformas a demanda: saque ventaja a la competencia

En pocas palabras, diseñar una plataforma de software eficaz no es sencillo. Sin embargo, solucionar este problema difícil es exactamente lo que necesitan ofrecer los proveedores de software de inversión para ayudarle a resolver los retos cada vez más complejos a los que se enfrentan usted y sus empresas. Si aún está utilizando soluciones específicas y gastando tiempo y energía valiosos en trabajar en la integración en lugar de abordar los retos que al final intenta resolver, es hora de que piense en una técnica basada en plataforma. Independientemente de si necesita resolver un problema de ingeniería ahora o debe prepararse para los cambios tecnológicos venideros, necesita una plataforma que ofrezca el punto de partida adecuado, utilice el software apropiado y funcione en un ecosistema robusto.