Plataforma Open Telecom - Open Telecom Platform

Erlang
Erlang logo.png
Desenvolvedor (s) Ericsson
lançamento inicial 1998
Versão estável
24.0.2  Edite isso no Wikidata / 1 de junho de 2021 ; 32 dias atrás ( 1 de junho de 2021 )
Repositório Edite isso no Wikidata
Escrito em Erlang
Sistema operacional Plataforma cruzada
Plataforma Plataforma cruzada
Modelo Estrutura de programação (middleware, bibliotecas, ferramentas, banco de dados)
Licença Licença Apache 2.0 (desde OTP 18.0) Erlang Public License 1.1 (versões anteriores)
Local na rede Internet www .erlang .org Edite isso no Wikidata

OTP é uma coleção de middleware , bibliotecas e ferramentas úteis escritos na linguagem de programação Erlang . É parte integrante da distribuição de código aberto do Erlang. O nome OTP era originalmente um acrônimo para Open Telecom Platform , que era uma tentativa de marca antes de a Ericsson lançar Erlang / OTP como código aberto. No entanto, nem Erlang nem OTP são específicos para aplicações de telecomunicações.

A distribuição OTP é suportada e mantida pela unidade de produtos OTP da Ericsson , que lançou o Erlang / OTP como código aberto no final dos anos 90, para garantir sua independência de um único fornecedor e aumentar o conhecimento do idioma.

Contém:

  • um intérprete Erlang (chamado BEAM );
  • um compilador Erlang ;
  • um protocolo de comunicação entre servidores (nós);
  • um CORBA Object Request Broker ;
  • uma ferramenta de análise estática chamada Dialyzer;
  • um servidor de banco de dados distribuído ( Mnesia ); e
  • muitas outras bibliotecas.

História

Primeiros dias

Originalmente denominado Open System, foi iniciado pela Ericsson no final de 1995 como um sistema protótipo que visava selecionar uma variedade de tecnologias de programação e componentes de sistema apropriados , incluindo computadores, linguagens , bancos de dados e sistemas de gerenciamento, para suportar um sistema de acesso remoto em desenvolvimento na Ericsson. No mesmo ano, após o colapso de outro projeto gigantesco baseado em C ++ , o Open System foi solicitado a fornecer suporte quando reiniciado do zero usando Erlang . O resultado foi o sistema AXD301 de grande sucesso , um novo switch ATM , anunciado em 1998. O sistema Open System foi posteriormente denominado Open Telecom Platform (OTP) quando o primeiro protótipo foi entregue em maio de 1996. OTP também se tornou uma unidade de produto específico dentro da Ericsson desde então, fornecendo gerenciamento, suporte e desenvolvimento.

Os primeiros componentes do sistema OTP em 1998:

  • Gerenciamento distribuído de aplicativos
  • SASL - registro de erros, tratamento de liberação
  • Monitoramento de recursos do sistema operacional
  • EVA - tratamento de eventos / alarmes independente de protocolo
  • Mnesia - replicação de dados ativa em tempo real
  • SNMP - interface de operações e manutenção
  • INETS - suporte HTTP simples

Um subsistema chave no OTP são as Bibliotecas de Suporte à Arquitetura do Sistema (SASL), que forneceram uma estrutura para escrever aplicativos. A primeira versão do SASL fornecia:

  • Scripts de inicialização
  • Um conceito de aplicação
  • Comportamentos (padrões de design)
  • Manipulação de erros
  • Depurando
  • Atualização de software de alto nível em tempo de execução sem desligamento

Os comportamentos fornecem aos programadores abstrações ainda mais altas para um design de programa eficiente. A primeira versão incluía:

Componentes OTP

Os componentes OTP podem ser divididos em seis categorias:

  • Aplicativos básicos - Funcionalidade Erlang / OTP básica.
    • Compilador Um compilador para módulos Erlang.
    • Funcionalidade do kernel necessária para executar o próprio Erlang / OTP.
    • SASL (Bibliotecas de Suporte à Arquitetura do Sistema) Um conjunto de ferramentas para substituição de código e tratamento de alarmes, etc.
    • Stdlib A biblioteca padrão.
  • Operações e Manutenção - OAM tanto do sistema desenvolvido pelo usuário quanto da própria Erlang / OTP.
    • EVA Um manipulador de alarmes e eventos com vários recursos.
    • OS_Mon Um monitor que permite a inspeção do sistema operacional subjacente.
    • SNMP SNMP support incluindo um compilador MIB e ferramentas para a criação de agentes SNMP.
  • Interface e comunicação - Suporte a interoperabilidade e protocolos.
    • Suporte Asn1 para ASN.1.
    • Cometa Uma biblioteca que permite que Erlang / OTP chame objetos COM no Windows
    • Suporte criptográfico
    • Erl_Interface Interface de baixo nível para C.
    • GS Um sistema gráfico usado para escrever interfaces de usuário independentes de plataforma.
    • Inets Um conjunto de serviços, como um servidor web e um cliente FTP.
    • Jinterface Interface de baixo nível para Java.
    • SSL Secure Socket Layer (SSL), interface para sockets UNIX BSD
  • Gerenciamento de banco de dados.
    • Suporte à linguagem QLC Query para DBMS Mnesia.
    • Mnesia Um banco de dados distribuído em tempo real de serviço pesado.
    • Interface de banco de dados ODBC ODBC.
  • Serviços CORBA e compilador IDL.
    • cosEvent Orber OMG Event Service.
    • cosNotification Orber Serviço de notificação OMG.
    • cosTime Orber OMG Timer e serviços TimerEvent.
    • cosTransactions Orber OMG Transaction Service.
    • Compilador IC IDL
    • Orber Um intermediário de solicitação de objeto CORBA.
  • Ferramentas.
    • Appmon Um utilitário usado para visualizar aplicativos OTP.
    • Depurador Para depurar e testar programas Erlang.
    • Parsetools Um conjunto de ferramentas de análise e análise lexical.
    • Pman Um gerenciador de processos usado para inspecionar o estado de um sistema Erlang / OTP.
    • Runtime_Tools Ferramentas para incluir em um sistema de produção.
    • Barra de ferramentas Uma barra de ferramentas que simplifica o acesso às ferramentas Erlang / OTP.
    • Ferramentas Um conjunto de ferramentas de programação, incluindo um analisador de cobertura, etc.
    • TV Um visualizador gráfico de tabelas ETS e Mnesia.

Aplicativos em OTP

A partir do OTP 18.2, os seguintes aplicativos estão incluídos na distribuição Erlang / OTP:

  • asn1
  • common_test
  • compilador
  • cosEvent
  • cosEventDomain
  • cosFileTransfer
  • cosNotification
  • cosProperty
  • cosTime
  • cosTransactions
  • cripto
  • depurador
  • dialisador
  • diâmetro
  • edoc
  • velho
  • erl_docgen
  • erl_interface
  • erts
  • et
  • eunidade
  • gs
  • Hipe
  • ic
  • inets

Veja também

Referências