edilberto@souzasys.com.br +1 55 85 98956 7230

Integrações

A integração de sistemas é o processo de conectar diferentes subsistemas, plataformas ou softwares de uma empresa para que eles funcionem de forma unificada, trocando informações e dados em tempo real ou de maneira automatizada. Esse processo visa melhorar a eficiência operacional, reduzir erros e proporcionar uma visão mais completa e centralizada dos dados corporativos.

Com o avanço das tecnologias e a crescente necessidade de digitalização das empresas, a integração de sistemas tornou-se essencial para otimizar processos e melhorar a competitividade no mercado. Um sistema integrado permite que persas áreas de uma organização — como vendas, finanças, logística e atendimento ao cliente — trabalhem de maneira coordenada, garantindo maior fluidez na execução de tarefas e na tomada de decisões estratégicas.

Esse processo envolve a utilização de diferentes tecnologias, como APIs (interfaces de programação de aplicações), middleware e plataformas de integração, que facilitam a comunicação entre os sistemas. A integração pode ser feita entre sistemas locais (on-premises) ou na nuvem, o que oferece flexibilidade e escalabilidade para atender às necessidades de negócios dinâmicos.

Em suma, a integração de sistemas é uma peça-chave para promover a transformação digital nas empresas, eliminando silos de informações, aumentando a produtividade e permitindo uma melhor adaptação às exigências do mercado moderno.

Desta forma, nas seções a seguir serão abordadas algumas tecnologias de integração de sistemas:

 Web Services

o SOAP

 XML

o RESTful

 JSON

 Sockets

 

Web Services

Web services são aplicações que aceitam solicitações de outros sistemas através da Internet. Quando aplicações são criadas com base neste paradigma, estas passam a interagir entre si e também com sistemas desenvolvidos em diferentes plataformas, tornando-os compatíveis. Na sua interface, o web service adota padrões de comunicação da Internet, podendo trabalhar com diversos protocolos como HTTP, SMTP, FTP ou ainda outros protocolos proprietários. Os dois principais padrões adotados em web services são RESTful e SOAP.

 

SOAP

O Simple Object Access Protocol (SOAP) é um padrão de comunicação em que a troca de mensagens ocorre no formato XML sobre o protocolo HTTP. Este padrão permite a comunicação entre sistemas protegidos por firewalls, sem precisar abrir portas adicionais e que possivelmente não seriam seguras. Utiliza na maioria dos servidores a porta 80. É um padrão consolidado e ainda largamente utilizado, principalmente em Service Oriented Arquitecture (SOA). Uma mensagem SOAP representa a informação necessária para invocar um serviço ou analisar o resultado de uma chamada e contém informações específicas da definição da interface do serviço. (MORO, DORNELES E REBONATTO, 2011 apud MARINI, FIGUEIREDO e ROSSETTO, 2013)

Uma das principais vantagens da utilização deste protocolo, é que ele geralmente está associado a um conjunto de tecnologias para serviços web, que permite aos clientes descobrir e utilizar tais serviços, como:

 A linguagem de descrição de serviço web, do inglês Web Service Description Language

(WSDL), que tem como objetivo facilitar a descoberta da forma correta de utilização dos

serviços por parte dos clientes, ou seja de quem deseja consumir os serviços.

 O serviço de diretório onde pode ser registrado e localizado os serviços web e que no

inglês é chamado Universal Description, Discovery and Integration (UDDI).

Um modelo simples da interação das tecnologias associadas ao SOAP pode ser visto na

figura 1 a seguir:

Figura 1 - The Web Services model (Fonte: Novell)

XML

A Extensible Markup Language (XML) é um formato de texto simples, muito flexível derivado

do SGML (ISO 8879). Originalmente concebido para enfrentar os desafios da publicação

eletrônica em grande escala.

O XML desempenha um papel importante na troca de uma ampla variedade de dados na

Web e em outros lugares, suas principais características são: Simplicidade

 Extensibilidade

 Interoperabilidade

 Abertura

 

RESTful

A Representational State Transfer, ou simplesmente REST, é um termo definido por Roy

Fielding para descrever um estilo arquitetural de sistemas de informação distribuídos.

(COULOURIS, DOLLIMORE e KINDBERG, 2007)

REST representa um modelo de como a Web deve funcionar. A existência deste modelo

permite identificar áreas onde os protocolos existentes falha, comparar soluções alternativas e

assegurar que novas extensões não violem os princípios nucleares que contribuíram para o

sucesso da Web. (NUNES e DAVID, 2005)

O REST não é uma norma nem uma especificação, mas sim um conjunto de restrições

que induzem determinadas propriedades nos sistemas.

O modelo REST utiliza um conjunto de interfaces genéricas para promover interações

sem estado (stateless) através da transferência de representações de recursos, em vez de operar

diretamente sobre esses recursos. O conceito de recurso é a principal abstração ao deste modelo.

Entre as restrições definidas pelo REST, destacam-se três e refere-se à aplicação no caso

concreto da Web: (NUNES e DAVID, 2005)

 Identificação global. Todos os recursos são identificados através do mesmo mecanismo

global. Independentemente do contexto de aplicação, tecnologia ou implementação

concreta, cada recurso disponível na Web é identificado utilizando uma URL.

 Interfaces uniformes. A interação entre os agentes é feita com recurso ao protocolo

HTTP, utilizando um conjunto de métodos pré-definidos: GET, POST, PUT e DELETE.

 Interações stateless. O estado concreto de uma aplicação Web é mantido com base no

estado de um conjunto de recursos. O servidor conhece o estado dos seus recursos, mas

não mantém informação sobre as sessões dos clientes.

O caso particular das interfaces uniformes pode ser comparado à abstração que se verifica

na linguagem SQL com as operações SELECT, INSERT, UPDATE e DELETE. O recurso a um

conjunto pré-definido de operações, permite que qualquer interveniente na comunicação entenda

a operação e aja de acordo. Existe uma semântica estabelecida ao nível da infraestrutura. No caso

da Web, intermediários como as caches e proxies, podem agir de acordo com a operação

executada e contribuir para a escalabilidade de toda a infraestrutura, sem afetar a definição da

respectiva operação abstrata. Por exemplo, o método GET, idempotente por definição, pode ser

servido por caches intermediarias sem intervenção do servidor responsável pelo recurso. Por

outro lado, os métodos POST, PUT e DELETE só podem ser processados pelo servidor uma vez

que alteram o estado do recurso. (NUNES e DAVID, 2005)

Assim, quando um agente do sistema encontra uma URL ou um método HTTP sabe o que

fazer para processar. O fato de existirem acordos públicos, partilhados por todos os

intervenientes, contribui de forma positiva para a escalabilidade e heterogeneidade do sistema

global.A Web é o maior sistema de informação distribuída em funcionamento. O REST procura

identificar e sistematizar as características arquiteturais que permitiram o crescimento

exponencial verificado na última década e uma das principais vantagens na adoção desta

arquitetura é a leveza e o reaproveitamento de funcionalidades conforme pode ser visto na figura

a seguir:

Figura 2 - Arquitetura web com REST

 

JSON

O Java Script Object Notation (JSON) é uma formatação leve de troca de dados, baseado em um

subconjunto da linguagem de programação JavaScript, Standard ECMA-262 3a Edição -

Dezembro - 1999.

JSON é formatado em texto e completamente independente de linguagem, pois usa

convenções que são familiares às linguagens C e derivadas, incluindo C++, C#, Java, JavaScript,

Perl, Python e muitas outras. Sendo constituído de duas estruturas:

 Uma coleção de pares nome/valor, que em muitas linguagens é caracterizada como

um object, record, struct, dicionário, hash table, keyed list, ou arrays associativas.

 Uma lista ordenada de valores, que na maioria das linguagens é caracterizada como

um array, vetor, lista ou sequência.

Estas estruturas de dados são universais. Praticamente todas as linguagens de

programação suportam ou dão apoio de alguma forma. Por isso, faz sentido o seu uso como um

formato ou estrutura de dados intercambiável (INTRODUCING JSON).

 

Socket

Kurose e Ross (2010) definem socket como sendo um mecanismo de comunicação inter

processos. Considerando o modelo de comunicação TCP/IP, este é o mecanismo que faz a

interface entre a camada de aplicação e a camada de transporte, levando os fluxos da

comunicação de um processo ao outro através da rede. (KUROSE E ROSS, 2010 apud MARINI,

FIGUEIREDO e ROSSETTO, 2013)Toda a comunicação entre os processos é feita através de mensagens por este “canal” de

comunicação, conforme representado na figura 2, a seguir:

Figura 3 - Comunicação por sockets

O socket também é conhecido por Application Program Interface (API), de programação

de rede. Ainda segundo Kurose e Ross (2010), esta definição existe porque o “socket é a

interface de programação pela qual as aplicações de rede são inseridas na Internet”. Esta

tecnologia de programação de redes é bastante antiga e conhecida, sendo frequentemente

utilizada em aplicações de rede de porte considerável. (KUROSE E ROSS, 2010 apud MARINI,

FIGUEIREDO e ROSSETTO, 2013)