Web Services
 Prof. MSc. Edson Yanaga
 http://www.yanaga.com.br
Edson Yanaga

• Sócio-presidente da Ínsula TI
• Bacharel em Ciência da Computação - UEM
• Mestre em Engenharia Elétrica e Informática
  Industrial - UTFPR
• Arquiteto Java e consultor com 13 anos de
  experiência em Tecnologia Java
• Administrador de sistemas Unix (Solaris,
  HP-UX e Linux) com 10 anos de experiência
Edson Yanaga

• Certified ScrumMaster
• Sun Certified Enterprise Architect for the Java
  Platform, Enterprise Edition 5 (i)
• Sun Certified Developer for Java Web Services 5
• Sun Certified Specialist for NetBeans IDE
• Sun Certified Web Component Developer for J2EE
  1.4
• Sun Certified Programmer for Java 2 Platform 1.4
Web Services

• Permitem que você disponibilize a sua
  aplicação através da Web
• Aplicação Web = Aplicação com as
  restrições adicionais da Web
• Dois tipos de Web Services:
 ➡ SOAP

 ➡ REST
Cliente   Servidor
Cliente   Servidor
GET /index.html?param1=a&param2=b
      HTTP/1.0




Cliente                                   Servidor
GET /index.html?param1=a&param2=b
      HTTP/1.0




Cliente                                   Servidor
POST /postServlet
      HTTP/1.0
      User-Agent: Mozilla/1.0
      Content-Type: application/x-www-form-urlencoded
      Content-Length: 14

      param1=a
      param2=b



Cliente                                            Servidor
PUT /postServlet
      HTTP/1.0
      User-Agent: Mozilla/1.0
      Content-Type: application/x-www-form-urlencoded
      Content-Length: 14

      param1=a
      param2=b



Cliente                                            Servidor
DELETE /postServlet
      HTTP/1.0
      User-Agent: Mozilla/1.0
      Content-Type: application/x-www-form-urlencoded
      Content-Length: 14

      param1=a
      param2=b



Cliente                                            Servidor
Cliente   Servidor
Cliente   Servidor
Cliente   Servidor
Cliente   Servidor
Cliente   Servidor
HTTP/1.0 200 OK
  Date: Tue, 01 Dec 2001 23:59:59 GMT
  Content-Type: text/html
  Content-Length: 52

  <html>
  <body>
  <h1>Hello World!</h1>
  </body>
  </html>

Cliente                                 Servidor
Cliente   Servidor
Cliente   Servidor
Cliente   Servidor
SOAP

• Simple Object Access Protocol
• Evolução das chamadas de
  procedimentos remotas de sistemas
  distribuídos
• RPC, RMI, CORBA e SOAP
• É uma invocação de método remota
  utilizando XML e HTTP
WSDL

• Web Service Definition Language
• PortType ou Interface definem a
  interface e os métodos disponibilizados
  pelo Web Service
• Através de um Binding, você instancia
  um serviço concreto num Port ou
  Endpoint
JAX-WS
Java API for XML Web Services


            wsgen
          wsimport


No JavaEE 6: auto-configuração e
         Annotations
REST



• REpresentational State Transfer
• Definido por Roy Fielding em 2000
 ➡ Um dos autores do HTTP 1.0 e 1.1
Restrições do REST

• Cliente/Servidor
• Stateless
• Cacheable
• Arquitetura em camadas
• Código sob demanda
• Interface Uniforme (URIs)
Métodos HTTP e RESt

                                     GET        POST      PUT     DELETE


                                                         Altera o
                                               Cria uma           Remove
                                    Lista as            conjunto
 http:/www.yanaga.com.br/aluno/                  nova              todo o
                                     URIs                  das
                                               entidade           conjunto
                                                        entidades
                                     Obtém Cria uma
                                                      Altera a Remove a
http:/www.yanaga.com.br/aluno/123     uma      nova
                                                      entidade entidade
                                    entidade entidade
JAX-RS




Java API for RESTful Web Services

Web Services

  • 1.
    Web Services Prof.MSc. Edson Yanaga http://www.yanaga.com.br
  • 2.
    Edson Yanaga • Sócio-presidenteda Ínsula TI • Bacharel em Ciência da Computação - UEM • Mestre em Engenharia Elétrica e Informática Industrial - UTFPR • Arquiteto Java e consultor com 13 anos de experiência em Tecnologia Java • Administrador de sistemas Unix (Solaris, HP-UX e Linux) com 10 anos de experiência
  • 3.
    Edson Yanaga • CertifiedScrumMaster • Sun Certified Enterprise Architect for the Java Platform, Enterprise Edition 5 (i) • Sun Certified Developer for Java Web Services 5 • Sun Certified Specialist for NetBeans IDE • Sun Certified Web Component Developer for J2EE 1.4 • Sun Certified Programmer for Java 2 Platform 1.4
  • 4.
    Web Services • Permitemque você disponibilize a sua aplicação através da Web • Aplicação Web = Aplicação com as restrições adicionais da Web • Dois tipos de Web Services: ➡ SOAP ➡ REST
  • 5.
    Cliente Servidor
  • 6.
    Cliente Servidor
  • 7.
    GET /index.html?param1=a&param2=b HTTP/1.0 Cliente Servidor
  • 8.
    GET /index.html?param1=a&param2=b HTTP/1.0 Cliente Servidor
  • 9.
    POST /postServlet HTTP/1.0 User-Agent: Mozilla/1.0 Content-Type: application/x-www-form-urlencoded Content-Length: 14 param1=a param2=b Cliente Servidor
  • 10.
    PUT /postServlet HTTP/1.0 User-Agent: Mozilla/1.0 Content-Type: application/x-www-form-urlencoded Content-Length: 14 param1=a param2=b Cliente Servidor
  • 11.
    DELETE /postServlet HTTP/1.0 User-Agent: Mozilla/1.0 Content-Type: application/x-www-form-urlencoded Content-Length: 14 param1=a param2=b Cliente Servidor
  • 12.
    Cliente Servidor
  • 13.
    Cliente Servidor
  • 14.
    Cliente Servidor
  • 15.
    Cliente Servidor
  • 16.
    Cliente Servidor
  • 17.
    HTTP/1.0 200 OK Date: Tue, 01 Dec 2001 23:59:59 GMT Content-Type: text/html Content-Length: 52 <html> <body> <h1>Hello World!</h1> </body> </html> Cliente Servidor
  • 18.
    Cliente Servidor
  • 19.
    Cliente Servidor
  • 20.
    Cliente Servidor
  • 21.
    SOAP • Simple ObjectAccess Protocol • Evolução das chamadas de procedimentos remotas de sistemas distribuídos • RPC, RMI, CORBA e SOAP • É uma invocação de método remota utilizando XML e HTTP
  • 22.
    WSDL • Web ServiceDefinition Language • PortType ou Interface definem a interface e os métodos disponibilizados pelo Web Service • Através de um Binding, você instancia um serviço concreto num Port ou Endpoint
  • 23.
    JAX-WS Java API forXML Web Services wsgen wsimport No JavaEE 6: auto-configuração e Annotations
  • 24.
    REST • REpresentational StateTransfer • Definido por Roy Fielding em 2000 ➡ Um dos autores do HTTP 1.0 e 1.1
  • 25.
    Restrições do REST •Cliente/Servidor • Stateless • Cacheable • Arquitetura em camadas • Código sob demanda • Interface Uniforme (URIs)
  • 26.
    Métodos HTTP eRESt GET POST PUT DELETE Altera o Cria uma Remove Lista as conjunto http:/www.yanaga.com.br/aluno/ nova todo o URIs das entidade conjunto entidades Obtém Cria uma Altera a Remove a http:/www.yanaga.com.br/aluno/123 uma nova entidade entidade entidade entidade
  • 27.
    JAX-RS Java API forRESTful Web Services