Interoperabilidade do sistema de software

imagem

Neste artigo, falarei sobre as relações entre programas. A relação entre programas ou, em outras palavras, a interação de programas entre si na grande maioria dos casos é receber dados de um programa de outro. Por exemplo, um programa de lances eletrônicos pode solicitar uma taxa de câmbio de outro programa. Ou, o editor de texto pode ser inserido pelo usuário, digitado pelo sistema operacional, usando o driver do teclado. Os programas podem fornecer um conjunto de funções para interação - API. Ou ainda ter mecanismos de interação inteiros chamados protocolos quando muitas chamadas de função consecutivas são usadas, por exemplo, para coordenação complexa de qualquer parâmetro. Um grande passo em frente é a criação de estruturas universais - XML ​​e Json. Os programas podem interagir com outros programas de maneira “indelicada” - sem protocolos e APIs abertas: acessar os dados da página no caso de grabbers, se apresentar em arquivos executáveis ​​como vírus ou, inversamente, matá-los no caso de antivírus.

Nas tecnologias da informação, como os ecossistemas vivos, existe uma forte influência mútua dos sistemas de software entre si e, de um modo geral, pode ser de dois tipos:

  1. Primeiro, o sistema pode usar a camada subjacente de acordo com o nível da hierarquia (enquanto, regra geral, as camadas localizadas acima não afetam as subjacentes).
  2. Em segundo lugar, um sistema pode interagir com outro sistema no mesmo nível hierárquico usando várias interfaces.

Você pode falar sobre a hierarquia separadamente, mas simplificando-a, queremos dizer camadas como a seguir: SO (por sua vez, com suas próprias camadas), plataforma, programa, complementos (plug-ins) etc.

Além disso, pela natureza dos programas em interação, a interação pode ser de dois tipos: partes diferentes interagem ou são iguais. As observações mostram que, no primeiro caso, seu número pode ser relativamente pequeno - por exemplo, com uma dúzia de órgãos no corpo ou vários componentes de um computador, e se os termos são os mesmos, geralmente há muitos: células no órgão, transistores no processador, pessoas na civilização, Os programas também consistem em milhões de instruções de máquina de várias dezenas de tipos. Além disso, cada comando de máquina, célula, cada transistor ou cada neurônio na rede neural desempenha uma função muito simples. Pode-se supor que, na própria base de qualquer coisa, de qualquer sistema, sejam precisamente componentes básicos tão simples.

A diferença da vida selvagem é que os sistemas em diferentes níveis são bastante independentes e podem continuar a funcionar quando a camada subjacente mudar para outra: por exemplo, o site continuará aberto se você mudar o cabo Ethernet de par trançado para Wifi.

Em geral, a interação dos sistemas de software pode ser de vários tipos:

  • Construído em "infraestrutura" (por exemplo, no sistema operacional ou em alguma plataforma - por exemplo, IBM Notes ou dentro de uma rede social).

  • Ele usa outros sistemas de software (por exemplo, um site pode usar um DBMS relacional, como MySQL, MS SQL Server ou Oracle).

  • Consiste em (várias bibliotecas e produtos individuais podem ser usados, por exemplo, sites usam tinyMCE ou componentes para exibir um calendário).

  • Ele se integra ao (por exemplo, nosso sistema CPM é integrado ao 1C, sistemas de telefonia IP, sistemas de aquisição. Os sites podem ser integrados aos sistemas de pagamento, às redes sociais etc.).

Como qualquer outro sistema, o programa consiste em componentes. Na programação, eles gostam de reutilizar componentes se já tiverem componentes que implementam funcionalidades semelhantes. Isso é mais rápido do que gravar seu componente, depurar e mantê-lo posteriormente. Enviar uma carta é um componente, escrever no log é outro componente, o gráfico é o terceiro, um editor de texto no site é o tineyMCE e a pesquisa é lucene. Portanto, muitos programas usam os mesmos componentes.

Geralmente, os programas permitem expandir sua funcionalidade: editores de texto e planilhas permitem criar macros, navegadores - adicionar extensões, todos os CMS - complementá-los com componentes e plug-ins de terceiros. Alguns programas vão além nesse caminho e são essencialmente plataformas para o lançamento de outros aplicativos: por exemplo, navegadores ou notas do ibm lotus.

O próprio sistema operacional é um programa cujo único objetivo é a existência de outros programas. Simplifica sua existência, isola do ferro, fornece a capacidade de usar uma interface gráfica e dá acesso à rede, seu objetivo é garantir o trabalho de outros programas.

Ao mesmo tempo, sistemas operacionais, plataformas e até CMS, instalados por causa de um único componente, são, em muitos casos, muito mais complicados do que o programa para o qual são usados, eles podem incluir muitas funções diferentes que fornecem trabalho: compartilhar recursos, fornecer um mecanismo de autorização , simplifique o acesso ao banco de dados. Isso se deve à sua versatilidade (por exemplo, o sistema operacional Windows contém vários subsistemas Win32, OS / 2) para garantir a operação de todos os programas possíveis.

A versatilidade sempre leva a uma complexidade extra. Isso também se aplica aos componentes que os programadores usam ao escrever um programa, eles são muito mais complexos e possuem um conjunto muito maior de funções, muitas das quais não são necessárias e não são usadas. Os programas geralmente são forçados a fornecer compatibilidade com versões anteriores - por exemplo, no Windows, era possível executar aplicativos DOS. Quando os sistemas interagem, vários efeitos interessantes podem ocorrer.

O primeiro é chamado sinergiae sua ideia é que o termo seja mais do que apenas a soma dos termos. Ou seja, se você adicionar outra a uma tecnologia, com a sinergia a tecnologia resultante ultrapassará a primeira e a segunda. E pode ser um produto qualitativamente diferente. Ou seja, se você adicionar um esqueleto de ferro ao computador com o programa, receberá um robô maior que o pedaço de ferro e o computador. A interação de um grande número de coisas simples pode levar a algum tipo de interação complexa. A soma de coisas simples dificulta - um conjunto de transistores cria um computador, um conjunto de átomos cria um objeto, as células do corpo criam órgãos. A soma de pessoas - civilização - não é apenas sete bilhões de pessoas, é algo mais.

O segundo pensamento foi expresso por Peter Norvig no relatório Everything is Miscellaneous. Pareceu-me surpreendente: se você olhar para um único chimpanzé e uma única pessoa, verá que há muito em comum entre eles. Bem, é claro que os chimpanzés são um pouco mais fortes, a pessoa é um pouco mais inteligente, mas, em geral, sua aparência é um pouco semelhante, suas capacidades físicas e até intelectuais são comparáveis. Mas agora, se você observar a cultura dos chimpanzés e a cultura da humanidade, verá uma enorme diferença. A civilização das pessoas nem mesmo pode ser comparada à civilização dos chimpanzés. Por alguma razão, isso me lembrou que 0,99 e 1,01 não parecem ser muito diferentes, mas, quando elevado a um alto grau, um número tende a zero e o outro vai ao infinito.

Para aqueles que simplesmente rolaram até o fim: a interação dos programas pode ser de vários tipos e seu resultado pode levar a um nível fundamentalmente novo do sistema de software. O todo nem sempre reflete o que está acontecendo em suas partes constituintes. Obrigado pela atenção!

Source: https://habr.com/ru/post/pt399489/


All Articles