Interfaces entre sistemas


Pesquisa feita por Thais

XML

É uma linguagem de codificação onde “dados” são delimitados por metadados, o que flexibiliza o armazenamento de informações, ou seja, linguagem utilizada para guardar informações de forma estruturada e facilmente legível para pessoas e sistemas.

Por muitos anos a maioria das aplicações utilizavam XML para transferência de dados entre sistemas web.

O principal objetivo era transferir e exibir dados e interpreta-los utilizando linguagens de programação as vezes idênticas e as vezes diferentes. O XML segue o padrão de tags. Como o próprio nome já diz (eXtensible Markup Language) é uma linguagem de marcação extensível, o qual os dados se organizam de formas hierárquicas definidos por tags e parâmetros.

https://medium.com/jaguaribetech/xml-ser%C3%A1-substitu%C3%ADdo-por-json-d0fb02a3fef8

Objetivo:

O seu objetivo principal é a facilidade de compartilhamento de informações através da Internet.

O XML traz uma sintaxe básica que pode ser utilizada para compartilhar informações entre diferentes computadores e aplicações. Quando combinado com outros padrões, torna possível definir o conteúdo de um documento separadamente de seu formato, tornando simples para reutilizar o código em outras aplicações para diferentes propósitos.

Portanto, uma das suas principais características é sua portabilidade, pois, por exemplo, um banco de dados pode escrever um arquivo XML para que outro banco consiga lê-lo.

A característica principal do XML é a extrema organização do conteúdo com a liberdade da definição de tags personalizadas.

Funcionamento:

Principais regras para para o funcionamento da XML:

  • 1. Cada informação deve estar dentro de um elemento

EX: <nome>Thais Fernanda</nome>

  • 2. Os dados precisão seguir uma hierarquia onde as informações correlacionadas fiquem de baixo de um elemento pai

EX: <telefones> <telefone>(34)95555-5555</telefone> <telefone>(34)98888-8888</telefone> </telefones>

Cada telefone são aninhados abaixo de um elemento pai chamado telefones. A regra deve ser aplicada para todos os elementos até que reste um elemento master por arquivo.

EX: <pessoas>

<pessoa>
<nome>Thais Fernanda</nome>
<telefones>
<telefone>(34)95555-5555</telefone>
<telefone>(34)98888-8888</telefone>
</telefones>
</pessoa>
<pessoa>
<nome>Pedro Canival</nome>
<telefones>
<telefone>(34)94444-4444</telefone>
<telefone>(34)97777-7777</telefone>
</telefones>
</pessoa>

</pessoas>

Pessoas: informações das múltiplas pessoas que existem dentro do arquivo XML.

ELEMENTO: ROOT -> o último elemento de um XML.

  • 3. O XML pode conter opcionalmente um cabeçalho com a linguagem XML utilizada e o tipo de caracter que existe dentro daquele arquivo.

Assim, estabeleceu-se o PADRÃO XML. onde podemos guardar as informações de 3 formas:

  • 1. ELEMENTOS: bem comum no mercado
  • 2. Atributos dentro de elementos:
               2 objetivos: 1- reduzir o tamanho do arquivo evitanto a abertura e fechamento das tags.
                                   2- separar os dados gerais como telefone e endereço, das informações de identificação única como o cpf de uma pessoa.
  • 3. Comentários: servem para facilitar a leitura.

Exemplo: 1. <?xml version="1.0"?>

<aviso>

<para>Janice data="01/04/2000"</para>
<de>Jefferson</de>
<cabecalho>Lembre-se</cabecalho>
<corpo>Amanha voce tem prova de matematica</corpo>

</aviso>

Aviso.xml

2. <?xml version="1.0" encoding="ISO-8859-1"?>

<receita nome="pão" tempo_de_preparo="5 minutos" tempo_de_cozimento="1 hora">

<titulo>Pão simples</titulo>
<ingredientes>
<ingrediente quantidade="3" unidade="xícaras">Farinha</ingrediente>
<ingrediente quantidade="7" unidade="gramas">Fermento</ingrediente>
<ingrediente quantidade="1.5" unidade="xícaras" estado="morna">Água</ingrediente>
<ingrediente quantidade="1" unidade="colheres de chá">Sal</ingrediente>
</ingredientes>
<instrucoes>
<passo>Misture todos os ingredientes, e dissolva bem.</passo>
<passo>Cubra com um pano e deixe por uma hora em um local morno.</passo>
<passo>Misture novamente, coloque numa bandeja e asse num forno.</passo>
</instrucoes>

</receita>

XMLNotePad NotePad++

XML x HTML Ambos são markup language XML: Extensible markup language HTML: Hypertext markup language No entanto, o foco do XML é guardar dados e o foco do XML é demostrar dados

https://www.youtube.com/watch?v=9408HdOYhAA&t=318s

Vantagens: • A utilização de marcações remove algumas ambiguidades. • XML Schema como estrutura de validação. • XPath e XQuery para auxiliar na extração dos dados. • Suporta namespaces.

Desvantagens: • Uma resposta muito mais extensa que o JSON para representar os mesmos dados.


JSON

Json – JavaScript Object Notation também funciona como um padrão de transferência de dados, apesar de ter esse nome ele não é usado somente com o JavaScript, virou praticamente um padrão de formato de saída de Apis.

O JSON como já foi muito dito é bastante maleável e sua estrutura segue o padrão chave-valor, onde é definido seu tipo na chave e o no valor, o dado em si. No começo poucas linguagens davam suporte para esse tipo de dado, porém a medida que o tempo foi a passando ele foi se desenvolvendo não só as linguagens mais populares como a maioria das linguagens já dão suporte na manipulação de JSON.

Json é um formato leve de troca de dados. É fácil para humanos ler e escrever. É fácil para as máquinas analisar e gerar. É baseado em um subconjunto da linguagem de programação JavaScript, Padrão ECMA-262 3° Edição – Dezembro de 1999. JSON é um formato de texto que é completamente independente do idioma, mas usa convenções que são familiares aos programadores do C-família de línguas, incluindo C, C++,C#, Java, JavaScript, Perl, Python, e muitos outros. Essas propriedades tornam o JSON uma linguagem de intercâmbio de dados ideal.

http://json.org/

Curiosidade: Como é bem mais simples e prático manuseá-lo, o JSON vem substituindo, amplamente, o XML e, como a maioria dos sistemas webs não requerem uma transmissão de dados complexa, ele acaba por ser o mais adotado. Muitos o defendem dizendo que ele é muito mais rápido que o XML. De acordo com opost de Pragmateek, em “JSON vs. XML: Some hard numbers about verbosity”, realizando um benchmark para comprimir e medir arquivos, ele obteve que o XML é 84% maior que o JSON e seu tempo de compressão é 21% mais longo.

Objetivo: ser um padrão de transferência de dados mais leve e maleável e sua estrutura segue o padrão chave-valor, onde é definido seu tipo na chave e o no valor, o dado em si.

Funcionamento:

O JSON é construído em duas estruturas:

• Uma coleção de pares nome / valor. Em vários idiomas, isso é realizado como um objeto , registro, estrutura, dicionário, tabela de hash, lista de chaves ou matriz de associação.

• Uma lista ordenada de valores. Na maioria das linguagens, isso é realizado como uma matriz , vetor, lista ou sequência. Estas são estruturas de dados universais. Praticamente todas as modernas linguagens de programação as suportam de uma forma ou de outra. Faz sentido que um formato de dados que seja intercambiável com linguagens de programação também seja baseado nessas estruturas.

No JSON, eles assumem esses formulários:

Um objeto é um conjunto não ordenado de pares nome / valor. Um objeto começa com { (chave esquerda) e termina com } (chave direita) . Cada nome é seguido por : (cólon) e o nome / pares de valores estão separados por , (vírgula) .

Uma matriz é uma coleção ordenada de valores. Um array começa com [ (colchete esquerdo) e termina com ] (colchete direito) . Os valores são separados por , (vírgula) .

Um valor pode ser uma string entre aspas duplas, ou um número , ou verdadeiro ou falso ou nulo , ou um objeto ou uma matriz . Essas estruturas podem ser aninhadas.

Uma string é uma seqüência de zero ou mais caracteres Unicode, agrupados em aspas duplas, usando escapes de barra invertida. Um caractere é representado como uma única cadeia de caracteres. Uma string é muito parecida com uma string C ou Java.

Um número é muito parecido com um número C ou Java, exceto que os formatos octal e hexadecimal não são usados.

O espaço em branco pode ser inserido entre qualquer par de tokens. Com exceção de alguns detalhes de codificação, isso descreve completamente o idioma.

Exemplo: 1. https://www.youtube.com/watch?v=H3Q63XyHk20

2. https://jsoneditoronline.org/

3. Principais empresa: google, facebook, amazon usam o Jason em suas Apis.


EXEMPLO TWITER https://developer.twitter.com/en/docs/direct-messages/custom-profiles/api-reference/new-profile



SOA

Arquitetura Orientada a Serviços (SOA) não é uma tecnologia, não é uma metodologia, não é um serviço, mas é um conceito de arquitetura corporativo que promove a integração entre o negócio e a TI por meio de conjunto de interfaces de serviços acoplados.

SOA é uma filosofia de TI que objetiva facilitar a integração entre sistemas, orientando a criação e a disponibilização de soluções modulares e fracamente acopladas baseadas no conceito de serviços.

Objetivo: O foco em SOA é a construção e disponibilização de serviços de negócio, evitar replicação de dados, reuso e facilidade de manutenção de sistemas, integração entre os sistemas, visão e controle do processo de negócio, agilidade nas mudanças.

Funcionalidade:

Nas corporações é muito comum os processos serem tratados por departamentos, cada área só visualiza as suas tarefas, as pessoas não visualizam que fazem parte de um processo que pode começar em uma área e terminar em outra. Essa arquitetura tem como objetivo integrar as aplicações, disponibilizar maior flexibilidade para mudanças, suportar serviços independentes de plataforma e protocolos.

Os serviços são módulos de negócio ou funcionalidades que possuem interfaces expostas que são invocadas via mensagens. Interfaces disponibilizam recursos sem que a implementação do serviço seja conhecida.

SOA trata os requisitos de baixo acoplamento, desenvolvimento baseado em padrões, computação distribuída independente de protocolo, integração de aplicações e sistemas legados.

Um dos componentes mais importante em SOA é o ESB (Barramento de Serviços Corporativos), ele não implementa a arquitetura, mas oferece as funcionalidades para implementá-la. O barramento provê uma camada de abstração acima de um sistema de mensageria que permite a integração entre os aplicativos.

A arquitetura de software procura construir uma relação entre os requisitos de negócio e os requisitos técnicos, entendo o funcionamento e então encontrando maneiras de implementar as funcionalidades do sistema. Uma arquitetura bem planejada reduz os riscos de negócio. Alguns benefícios são listados por MARZULLO (2009): • Facilidade na gerência da complexidade. • Padronização da linguagem e da comunicação entre desenvolvedores, clientes e gerentes. • Possibilidades de reuso e consequente evolução do sistema. • Fator determinante de uma boa análise (como consistência, atributos de qualidade, atendimento a estilos arquiteturais).

Os resultados que SOA traz são: agilidade para atender as novas demandas, flexibilidade nas mudanças, redução de custo e reuso de serviços. (SILVA, 2012). Vantagens da Arquitetura Orientada a Serviços

O reuso de serviços é grande vantagem dessa arquitetura, aumentando produtividade, alinhamento com negócio, melhorias para corporação e facilidade na gerencia da tecnologia da informação, focando em melhorias continuas e automatizando os processos, disponibilizando qualidade nas informações trafegadas na empresa (SOBRINHO, 2011).

Mudar o negócio e os sistemas das empresas não é uma tarefa fácil, particularmente em um contexto de mudanças constantes, a implantação de SOA não é diferente, sendo assim, porque deve ser utilizada essa arquitetura? Abaixo são listadas algumas vantagens que ela pode trazer para o negócio.

vantagens • Reutilização: O serviço pode ser reutilizado para outras aplicações. • Produtividade: Com o reuso, a equipe de desenvolvimento pode reutilizar serviços em outros projetos, diminuindo o tempo de desenvolvimento. • Flexibilidade: Isolando a estrutura de um serviço as mudanças são feitas com maior facilidade. • Manutenibilidade: Com baixo acoplamento, facilita a manutenção dos serviços. • Alinhamento com o negócio: A área de negócio visualiza os processos alinhados com a tecnologia. • Interoperabilidade: Disponibilizar serviços independentemente da plataforma e tecnologia. • Integração: A integração com outros serviços, aplicativos e sistemas legados. • Governança: Gerenciamento nos processamentos de negócio. • Padronizado: É baseado no uso de padrões. • Abstração: Serviço totalmente abstraído da sua implementação.

Desvantagens da Arquitetura Orientada a Serviços A principal preocupação em implementações dessa arquitetura é a questão da segurança. https://www.devmedia.com.br/vantagens-e-desvantagens-de-soa/27437

Exemplo:

https://www.youtube.com/watch?v=f9lOMGvTUVo&t=275s


WebServices

Webservice é o nome dado a tecnologia que permite a comunicação entre aplicações de uma maneira independente do sistema operacional e de linguagem de programação.

Objetivo: WebService é disponibilização de um serviço pela Internet que pode ser acessado em qualquer lugar. Os clientes enviam requisições com informações bem definidas e recebem respostas que podem ser síncronas ou assíncronas (MARZULLO, 2009).

Um Web service é utilizado para transferir dados através de protocolos de comunicação para diferentes plataformas, independentemente das linguagens de programação utilizadas nessas plataformas.

Os Web services funcionam com qualquer sistema operativo, plataforma de hardware ou linguagem de programação de suporte Web. Estes transmitem apenas informação, ou seja, não são aplicações Web que suportam páginas que podem ser acedidas por utilizadores através de navegadores Web.

Os Web services permitem reutilizar sistemas já existentes numa organização e acrescentar-lhes novas funcionalidades sem que seja necessário criar um sistema a partir do zero. Assim, é possível melhorar os sistemas já existentes, integrando mais informação e novas funcionalidades de forma simples e rápida.

Funcionalidade: Tendo em conta as operações disponíveis no Web service, a aplicação solicita uma dessas operações. O Web service efetua o processamento e envia os dados para a aplicação que requereu a operação.

A aplicação recebe os dados e faz a sua interpretação, convertendo-os para a sua linguagem própria.

É necessário uma linguagem intermédia que garanta a comunicação entre a linguagem do Web service e o sistema que faz o pedido ao Web service. Para tal, existem protocolos de comunicação como o SOAP (Simple Object Access Protocol) e o REST (Representational State Transfer).

O protocolo SOAP utiliza XML para enviar mensagens e, geralmente, serve-se do protocolo HTTP para transportar os dados. Associado ao protocolo SOAP está o documento WSDL (Web Service Definition Language) que descreve a localização do Web service e as operações que dispõe. Além disso, fornece a informação necessária para que a comunicação entre sistemas seja possível.

O REST é um protocolo de comunicação mais recente que surgiu com o objetivo de simplificar o acesso aos Web services. Este baseia-se no protocolo HTTP e permite utilizar vários formatos para representação de dados, como JSON (um dos mais utilizados), XML, RSS, entre outros.

https://www.opensoft.pt/web-service/

Web Service tem que ser visto por um conjunto de tecnologias, que são citadas por MARZULLO (2009). • Protocolo HTTP: Transmissão de dados pela Internet. • XML: Formato padrão para troca de informações, os dados são separados por tags. • SOAP: Fornece uma estrutura padrão de empacotamento para transporte de documentos XML pela internet. • WSDL: Tecnologia XML que descreve de forma padronizada a interface de um Web Service. • UDDI: Descreve um registro mundial de serviços e serve com integração, propaganda e descoberta de serviços.

https://www.devmedia.com.br/vantagens-e-desvantagens-de-soa/27437

Exemplo:

https://www.youtube.com/watch?v=RlB5wcuFvcc

BENEFICIOS

– Integração de informação e sistemas: uma vez que o funcionamento do Web service necessita apenas de tecnologia XML/JSON e protocolos HTTP, a comunicação entre sistemas e aplicações é bastante simplificada. Com um Web service é possível trocar informação entre dois sistemas, sem necessidade de recolher informação detalhada sobre o funcionamento de cada sistema. Os Web services permitem ligar qualquer tipo de sistema, independentemente das plataformas (Windows, Linux, entre outras) e linguagens de programação (Java, Perl, Python, etc.) utilizadas.

– Reutilização de código: um Web service pode ser utilizado por várias plataformas com diferentes objetivos de negócio. O código do Web service é feito uma vez e pode ser utilizado vezes sem conta por diferentes aplicações.

– Redução do tempo de desenvolvimento: é mais rápido desenvolver com Web services, porque os sistemas não são totalmente construídos a partir do zero e facilmente são incluídas novas funcionalidades. O tempo de implementação de sistemas com a utilização de Web services é mais reduzido, sendo uma boa opção no desenvolvimento de software à medida.

– Maior segurança: o Web service evita que se comunique diretamente com a base de dados. Assim, a segurança do sistema que fornece os dados está salvaguardada.

– Redução de custos: Com a utilização de Web services não é necessário criar aplicações à medida para a integração de dados, algo que pode ser bastante caro. Os web services tiram partido de protocolos e da infraestrutura Web já existente na organização, requerendo por isso pouco investimento.

https://www.opensoft.pt/web-service/


API

Já imaginou como é possível fazer login pela primeira vez em algum software, usando sua conta do Facebook ou Google? Ou então, como o Youtube sabe o ponto em que você parou de ver um vídeo no celular, e retoma exatamente desse ponto quando você volta a assistir no computador?

A sigla API corresponde às palavras em inglês “Application Programming Interface“. No português “Interface de Programação de Aplicações”. Elas são uma forma de integrar sistemas, possibilitando benefícios como a segurança dos dados, facilidade no intercâmbio entre informações com diferentes linguagens de programação e a monetização de acessos.

Objetivo: As APIs são um tipo de “ponte” que conectam aplicações, podendo ser utilizadas para os mais variados tipos de negócio, por empresas de diversos nichos de mercado ou tamanho, conforme veremos melhor ao longo de nosso post.

Funcionalidade: O Uber oferece, no momento de seu cadastro, a opção de se registrar com o telefone celular. Porém, muitas pessoas clicam no botão referente ao login com o Facebook, que já costuma estar logado no computador e nos smartphones de muitas pessoas.

A possibilidade de logar em aplicativos com um único login e senha tem como objetivo facilitar a experiência do usuário na plataforma. Funciona como uma chave única para que o usuário acesse diversos serviços oferecidos pela internet. Em troca, o Facebook obtém mais um dado referente ao seu público, colaborando com a lógica de negócios da rede social.

https://blog.vertigo.com.br/o-que-e-api-entenda-de-uma-maneira-simples/

Exemplo: Um exemplo bem visual de uma API é quando uma página qualquer permite que um usuário se registre utilizando seu login no Facebook. Apesar de não ser efetivamente parte do Facebook, a página utiliza a API do login da rede social como solução para agilizar o registro de usuários.

Existem inúmeras outras APIs disponíveis no mercado: Google Maps, DocuSign, Paypal, Mercado Livre e muito mais. Elas facilitam as mudanças que compõem a chamada transformação digital e ampliam o alcance de empresas inovadoras.


Cenário atual no desenvolvimento de sistemas




  • Funcionamento de uma empresa:
Erro ao criar miniatura: Arquivo não encontrado