O que são Web Services? Para que servem?

21 Comentários

Se acompanha a área da programação de serviços/aplicações certamente que já ouviu falar no termo “Web Services”. Na prática um Web Service é constituído por um ou mais métodos que podem ser acedidos ou invocados por outras aplicações (móveis, para desktop ou para a web), utilizando tecnologias e protocolos Web.

Os Web Services são muito úteis quando pretendemos desenvolver serviços e aplicações de grande escala/distribuídas… mas não só!

ws_01


Porquê criar Web Services?

Vamos considerar que tem como desafio a construção de um serviço que permita a um conjunto distinto de dispositivos aceder a uma determinada informação. Por exemplo, imagine que tem em casa um Raspberry que tem acoplado um sensor de temperatura que faz medições de 5 em 5 minutos.

O que se pretende é que, a partir de qualquer dispositivo, independentemente do sistema operativo, se consiga aceder a essa informação de uma forma transparente e sem complicações.

Para isso, no Raspberry construiu-se e disponibilizou-se um Web Service (não interessa em que linguagem de programação foi programado) que tem duas funções: a  primeira informa a temperatura actual e a segunda diz-nos a média da temperatura para o dia em causa. Tendo em consideração os dois métodos disponibilizados no Web Service, a aplicação cliente só tem de solicitar informação aos mesmo. Como aplicação cliente pode ser uma app para Android, para iOS, uma simples página web ou até uma aplicação para Desktop.

Depois do pedido,  o Web Service processa e envia os dados solicitados. Todas as comunicações têm como base o (vulgar) protocolo HTTP/HTTPS para proceder à transferência/transporte de informação. As tecnologias bases para a construção de um Web service são os padrões XML e SOAP que abordaremos num próximo artigo.

ws_00

 

Quais as vantagens dos Web Services?

A grande vantagem dos Web Services é que funcionam nos mais diversos sistemas operativos, nos mais diversos tipos de hardware e são bastante flexíveis. Cada aplicação pode ter a sua própria “linguagem”, que é traduzida para uma linguagem universal, um formato intermediário como XML, Json, CSV, etc.

No geral o uso de Web Services traz bastantes vantagens das quais se destacam:

  • Simplicidade na interoperabilidade de sistemas
  • Simples de implementar, com a vantagem de poderem ser construídos em várias linguagens de programação
  • Segurança, uma vez que não há uma acesso directo à informação (por exemplo a informação que está na base de dados).
  • Redução de custos, um Web Service pode servir vários tipos de aplicações/serviços (reutilização de código)

Actualmente são muitas as empresas que disponibilizam Web Services de forma a que os programadores possam aceder às mais diversas funções e informação.

Partilhar:
Tags:

Comentários

21

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de tb
    tb

    Boa! Aguardo o próximo post sobre o tema 🙂

  2. Avatar de tb
    tb

    Boa! Aguardo o próximo post sobre o tema 🙂

  3. Avatar de Ze
    Ze

    Vem uns anitos tarde este artigo, hoje em dia só se usam webservices para integrações de sistemas legacy, já está tudo na viragem para o REST.

    1. Avatar de João Machado
      João Machado

      Os webservices podem ser SOAP ou REST.
      Mas sim, hoje em dia há uma tendência maior para a utilização de webservices REST.

  4. Avatar de João Machado
    João Machado

    Já agora fica aqui um link a falar sobre o assunto.
    http://spf13.com/post/soap-vs-rest

  5. Avatar de Alexandre
    Alexandre

    Já lá vai o tempo em que eu criava aplicações web com páginas dinâmicas geradas no servidor.

    Hoje é Angular2 no cliente e RESTful web servies no servidor, a trocar JSON de trás para a frente.

    1. Avatar de Vitor Cardoso
      Vitor Cardoso

      +1 – O que faz todo o sentido, separar o front-end do back-end onde este é baseado em microserviços(REST). Um bom tema para o pplware 🙂

      1. Avatar de Dublin Lover
        Dublin Lover

        O problema é que aqui predomina o utilizador de fraco conhecimento e pouco humildes para poderem ter a capacidade de aprender em vez de virem ca mandar postas de pescada podre.

        1. Avatar de Vitor Correia
        2. Avatar de Alexandre
          Alexandre

          Trabalhas em Dublin?

      2. Avatar de Dublin Lover
        Dublin Lover

        Mas sim, seria uma excelente ideia, aprofundar esta matéria e discutir técnicas de implementação. Força PPlware, façam algo direcionado aos profissionais.

    2. Avatar de Pedro Pinto

      desafio para uns tutoriais? Manda-me um mail ppinto AT pplware.com

    3. Avatar de um gajo na net
      um gajo na net

      eu ando a aprendert Reactjs, isto nem é o futuro das web apps é mesmo o presente xD

      estou a construir uma pequena aplicação [tipo trelo ou jira] para aprofundar o meu conhecimento…

      PS: ainda comprei um curso de angular mas não me entendi com o curso, encontrei uns tutoriais na net de react e entendi facilmente, o facto de ter colegas frontenders que trabalham com react também ajudou xD

    4. Avatar de Filipe Teixeira
      Filipe Teixeira

      Olá, gostava de colocar uma questão, ultimamente decidi aprender duas tecnológias diferentes, uma delas referida por si, Angular2 e Ruby on Rails, como sou um total beginner, e não tenho verdadeira experiência com estas tecnologias, queria fazer um projecto mais complexo só para melhorar as minhas skills.
      A minha pergunta é, faz sentido usar Angular2 como frontend e RoR como backend? Ou é demasiado overkill, existem tecnologias mais apropriadas para se “juntar” à outra, em cada um dos casos?
      Obrigado.

      1. Avatar de um gajo na net
        um gajo na net

        isso esta ok, usas RoR como Backend(tambem quero fazer algo desse género, tenho que aprender Ruby ainda xD) e usas Angular ou React no frontend, é precisamente assim que deve de ser 🙂

        1. Avatar de Filipe Teixeira
          Filipe Teixeira

          Bem obrigado, vou então tentar aprender algumas coisas novas 🙂

  6. Avatar de Cesar Almeida
    Cesar Almeida

    Muito bom artigo.
    Claro, simples e conciso.
    Á espera do próximo

  7. Avatar de Vitor Correia
    Vitor Correia

    No universo Microsoft, uma plataforma SOA (Service-Oriented Architecture) pode ser implementada com :

    WebServices (legacy)
    WCF (Windows Comunication Fountadation)
    REST (AKA WebApi no mundo Microsoft)

    Seria interessante expor mais informação (diferenças vs vantagens) para informar o pessoal

  8. Avatar de Joao Ferreira
    Joao Ferreira

    Bora lá….