Middleware y herramientas escritas en Erlang
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 para aplicaciones de telecomunicaciones. [2] [3]
La distribución de OTP cuenta con el apoyo y el mantenimiento de la unidad de productos OTP de Ericsson , que lanzó Erlang/OTP como código abierto a fines de la década de 1990 para garantizar su independencia de un único proveedor y aumentar el conocimiento del lenguaje.
Contiene:
- un intérprete de Erlang (que se llama BEAM ); [4]
- un compilador de Erlang ;
- un protocolo para la 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 finales de 1995 como un sistema prototipo que tenía como objetivo seleccionar entre una gama de tecnologías de programación y componentes de sistema adecuados , incluyendo ordenadores, lenguajes , bases de datos y sistemas de gestión, para dar soporte a un sistema de acceso remoto que se estaba desarrollando en Ericsson. [5] En el mismo año, tras el colapso de otro gigantesco proyecto basado en C++ , se ordenó a Open System que proporcionara soporte cuando se reinició desde cero utilizando Erlang . [2] El resultado fue el exitoso sistema AXD301, un nuevo conmutador ATM , anunciado en 1998. Open System fue posteriormente llamado Open Telecom Platform (OTP) cuando se entregó el primer prototipo en mayo de 1996. OTP también se ha convertido en una unidad de producto específica dentro de Ericsson desde entonces, proporcionando gestión, soporte y mayor desarrollo.
Los primeros componentes del sistema OTP en 1998: [5]
- Gestión de aplicaciones distribuidas
- SASL: registro de errores, gestión de versiones
- Monitoreo de recursos del sistema operativo
- EVA - Manejo de alarmas y eventos 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 proporcionaban un marco para escribir aplicaciones. La primera versión de SASL proporcionaba: [5]
- Scripts 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 apagar el equipo
Los comportamientos proporcionan a los programadores abstracciones aún mayores para un diseño de programas eficiente. La versión anterior incluía: [5]
Componentes de OTP
Los componentes de OTP se pueden dividir en seis categorías: [6]
- Aplicaciones básicas: funcionalidad básica de Erlang/OTP.
- Compilador: un compilador para módulos Erlang.
- Kernel: Funcionalidad 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 gestor de eventos y alarmas con múltiples funciones.
- OS_Mon: un monitor que permite la inspección del sistema operativo subyacente.
- SNMP: soporte para SNMP que incluye un compilador MIB y herramientas para crear agentes SNMP.
- Interfaz y Comunicación - Interoperabilidad y soporte de protocolos.
- Asn1 - Soporte para ASN.1.
- Comet: una biblioteca que permite a Erlang/OTP llamar a objetos COM en Windows
- Cripto - 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.
- SSL - Secure Socket Layer (SSL), interfaz para sockets UNIX BSD
- Gestión de bases de datos.
- QLC - Soporte de lenguaje de consulta para Mnesia DBMS.
- Mnesia: una base de datos distribuida en tiempo real de alto rendimiento.
- ODBC - Interfaz de base de datos ODBC.
- Servicios CORBA y compilador IDL.
- cosEvent - Servicio de eventos Orber OMG.
- cosNotification - Servicio de notificación Orber OMG.
- cosTime - Servicios de temporizador y TimerEvent de Orber OMG.
- cosTransactions - Servicio de transacciones Orber OMG.
- IC - Compilador IDL
- Orber: un agente de solicitudes de objetos CORBA.
- Herramientas.
- Appmon: una utilidad utilizada para ver aplicaciones OTP.
- Depurador: para depurar y probar programas Erlang.
- Parsetools: un conjunto de herramientas de análisis léxico y sintáctico.
- Pman: un administrador de procesos utilizado 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 - Un 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 Erlang/OTP: [7]
- asn1
- prueba_común
- compilador
- cosEvent
- cosEventDominio
- cosTransferencia de archivos
- cosNotificación
- cosPropiedad
- cosTiempo
- cosTransacciones
- cripto
- depurador
- dializador
- diámetro
- documento educativo
- Eldap eldap
- erl_docgen
- Interfaz erl
- erres
- y
- unidad
- gs
- cadera
- yo
- Inets
Véase también
Referencias
- ^ "Versión 27.1.2". 17 de octubre de 2024. Consultado el 17 de octubre de 2024 .
- ^ ab "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 y concurrentes». Archivado desde el original el 20 de diciembre de 2021 – vía YouTube.
- ^ "Erlang - Compilación y carga de código". erlang.org . Consultado el 21 de diciembre de 2017 .
- ^ abcd 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 .