OTP es una colección de middleware , bibliotecas y herramientas útiles escritas en el lenguaje de programación Erlang . Es una parte integral de la distribución de código abierto de Erlang. El nombre OTP era originalmente un acrónimo de Open Telecom Platform , que fue un intento de marca antes de que Ericsson lanzara Erlang / OTP como código abierto. Sin embargo, ni Erlang ni OTP son específicos de aplicaciones de telecomunicaciones. [2] [3]
Desarrollador (es) | Ericsson |
---|---|
Versión inicial | 1998 |
Lanzamiento estable | 24.0.2 [1] / 1 de junio de 2021 |
Repositorio | |
Escrito en | Erlang |
Sistema operativo | Multiplataforma |
Plataforma | Multiplataforma |
Tipo | Marco de programación (middleware, bibliotecas, herramientas, base de datos) |
Licencia | Apache License 2.0 (desde OTP 18.0) Erlang Public License 1.1 (versiones anteriores) |
Sitio web | www |
La distribución de OTP es respaldada y mantenida por la unidad de productos de OTP de Ericsson , que lanzó Erlang / OTP como código abierto a finales de los 90, para garantizar su independencia de un solo proveedor y aumentar el conocimiento del idioma.
Contiene:
- un intérprete de Erlang (que se llama BEAM ); [4]
- un compilador de Erlang ;
- un protocolo de comunicación entre servidores (nodos);
- un agente de solicitud de objetos CORBA ;
- una herramienta de análisis estático llamada Dialyzer;
- un servidor de base de datos distribuido ( Mnesia ); y
- muchas otras bibliotecas.
Historia
Primeros días
Originalmente llamado Open System, fue iniciado por Ericsson a fines de 1995 como un sistema prototipo que tenía como objetivo seleccionar entre una variedad de tecnologías de programación y componentes del sistema apropiados , incluidos computadoras, lenguajes , bases de datos y sistemas de administración, para respaldar un sistema de acceso remoto en desarrollo en Ericsson. [5] En el mismo año, luego del colapso de otro gigantesco proyecto basado en C ++ , se ordenó a Open System que brindara soporte cuando se reiniciara desde cero usando Erlang . [2] El resultado fue el exitoso sistema AXD301 , un nuevo conmutador ATM , anunciado en 1998. El sistema Open System se denominó posteriormente Open Telecom Platform (OTP) cuando se entregó el primer prototipo en mayo de 1996. OTP también se ha convertido en un producto específico unidad dentro de Ericsson desde entonces, proporcionando gestión, soporte y desarrollo adicional.
Los primeros componentes del sistema de OTP en 1998: [5]
- Gestión de aplicaciones distribuidas
- SASL: registro de errores, manejo de versiones
- Supervisión de recursos del sistema operativo
- EVA: manejo de eventos / alarmas independiente del protocolo
- Mnesia : replicación activa de datos en tiempo real
- SNMP: interfaz de operaciones y mantenimiento
- INETS: soporte HTTP simple
Un subsistema clave en OTP son las bibliotecas de soporte de arquitectura del sistema (SASL), que proporcionó un marco para escribir aplicaciones. La primera versión de SASL proporcionó: [5]
- Guiones de inicio
- Un concepto de aplicación
- Comportamientos (patrones de diseño)
- Manejo de errores
- Depuración
- Actualización de software de alto nivel en tiempo de ejecución sin apagado
Los comportamientos proporcionan a los programadores abstracciones aún más altas para un diseño de programas eficiente. La primera versión incluía: [5]
- Supervisión
- Servidores
- Manejo de eventos
- Máquinas de estados finitos
Componentes de OTP
Los componentes de la Fiscalía se pueden dividir en seis categorías: [6]
- Aplicaciones básicas: funcionalidad básica de Erlang / OTP.
- Compilador Un compilador para módulos Erlang.
- Funcionalidad del kernel necesaria para ejecutar Erlang / OTP.
- SASL (Bibliotecas de soporte de arquitectura del sistema) Un conjunto de herramientas para el reemplazo de código y el manejo de alarmas, etc.
- Stdlib La biblioteca estándar.
- Operaciones y Mantenimiento - OAM tanto del sistema desarrollado por el usuario como del propio Erlang / OTP.
- EVA Un manejador de eventos y alarmas con múltiples funciones.
- OS_Mon Un monitor que permite la inspección del sistema operativo subyacente.
- Soporte SNMP SNMP que incluye un compilador MIB y herramientas para crear agentes SNMP.
- Interfaz y comunicación: compatibilidad con protocolos e interoperabilidad.
- Asn1 Soporte para ASN.1.
- Comet Una biblioteca que permite a Erlang / OTP llamar a objetos COM en Windows
- Soporte criptográfico
- Erl_Interface Interfaz de bajo nivel para C.
- GS Un sistema de gráficos utilizado para escribir interfaces de usuario independientes de la plataforma.
- Inets Un conjunto de servicios como un servidor web y un cliente FTP.
- Jinterface Interfaz de bajo nivel para Java.
- Capa de sockets seguros SSL (SSL), interfaz a sockets UNIX BSD
- Gestión de base de datos.
- Soporte de lenguaje de consulta QLC para Mnesia DBMS.
- Mnesia Una base de datos distribuida en tiempo real de alta resistencia.
- Interfaz de base de datos ODBC ODBC.
- Servicios CORBA y compilador IDL.
- Servicio de eventos cosEvent Orber OMG.
- cosNotification Servicio de notificaciones Orber OMG.
- CosTime Orber OMG Timer y TimerEvent Services.
- Servicio de transacciones de cosTransactions Orber OMG.
- Compilador IC IDL
- Orber Un agente de solicitud de objetos de CORBA.
- Herramientas.
- Appmon Una utilidad que se utiliza para ver aplicaciones OTP.
- Depurador Para depurar y probar programas Erlang.
- Parsetools Un conjunto de herramientas de análisis sintáctico y léxico.
- Pman Un administrador de procesos que se usa para inspeccionar el estado de un sistema Erlang / OTP.
- Runtime_Tools Herramientas para incluir en un sistema de producción.
- Barra de herramientas Una barra de herramientas que simplifica el acceso a las herramientas Erlang / OTP.
- Herramientas Un conjunto de herramientas de programación que incluye un analizador de cobertura, etc.
- TV Visualizador gráfico de tablas de ETS y Mnesia.
Aplicaciones en OTP
A partir de OTP 18.2, las siguientes aplicaciones están incluidas en la distribución de Erlang / OTP: [7]
- asn1
- prueba_común
- compilador
- cosEvent
- cosEventDomain
- cosFileTransfer
- cosNotification
- cosProperty
- cosTime
- cosTransactions
- cripto
- depurador
- dializador
- diámetro
- edoc
- eldap
- erl_docgen
- erl_interface
- erts
- et
- eunidad
- gs
- hipe
- ic
- inets
Ver también
Referencias
- ^ "Versión 24.0.2" . 1 de junio de 2021 . Consultado el 20 de junio de 2021 .
- ^ a b "M. Logan, E. Merritt y R. Carlsson (2010) Erlang y OTP en acción" (PDF) .
- ^ Erlang Solutions (1 de marzo de 2013). "OTP, el middleware para arquitecturas escalables distribuidas concurrentes" , a través de YouTube.
- ^ "Erlang - Compilación y carga de código" . erlang.org . Consultado el 21 de diciembre de 2017 .
- ^ a b c d B. Däcker (2000) Programación funcional concurrente para telecomunicaciones: un estudio de caso de introducción a la tecnología
- ^ "Erlang - Introducción" . erlang.org .
- ^ "Lenguaje de programación Erlang" . www.erlang.org .