0

Gerando Web Services PHP com NuSoap

php_mini_logoGerando Web Services PHP com NuSoap

Este artigo aborda a geração de Web Services em PHP utilizado a biblioteca NuSoap. Esta biblioteca é uma alternativa ao módulo SOAP Extension, nativo do PHP e oferecer suporte à criação automática do WSDL.

Framework NuSoap disponível em: http://sourceforge.net/projects/nusoap/

Segue um exemplo de utilização do Framework.

Lado Servidor da Aplicação

  • Na linha 2 realizamos a importação da biblioteca do NuSoap;
  • Na linha 4 instanciamos uma objeto do tipo soap_server;
  • Na linha 6 configuramos a instância do documento WSDL de nossa aplicação servidora;
  • Na linha 8 definimos o Schema do documento WSDL;
  • Entre as linhas 10 a 36 registramos os métodos de nosso web service;
  • Na linha 38 definimo o uso do request para invocar o serviço;
  • Entre as linhas 40 a 54 implementamos os métodos de nosso web service.

Após a criação do objeto soap_server, geração do wsdl e registro e implementação dos métodos conseguimos gerar  web service.

serviço wsdl

Lado Cliente da Aplicação

  • Na linha 2 realizamos a importação da biblioteca do NuSoap;
  • Na linha 4 criamos um objeto Soap Client baseado no wsdl do Servidor;
  • Por fim realizamos a chamadas aos métodos e exibimos o possíveis resultados.

E com isso realizamos a publicação e consumo de um web service em PHP baseado na biblioteda NuSoap.

0

Enviando uma Requisição SOAP a um Serviço

managed-services-iconEnviando uma Requisição SOAP a um Serviço

Uma forma mais rústica de consumir um Web Service é enviar de sua aplicação uma mensagem no formato SOAP para um ou mais métodos daquele serviço, a pouco tempo tive de tratar um caso assim, e por isso segue uma postagem referente a esta forma de requisição. Para simplificar a implementação monto um exemplo baseado na postagem : Gerando WebServices com JAX-WS.

Para realizar a requisição a um método do Web Service utilizo a Classe UrlConnection para fazer a conexão, chamar o método e setar as propriedades de requisição.

O método a ser testado é o retornarString para isso enviaremos a seguinte mensagem SOAP.

Não indico consumir um serviço desta forma, a melhor forma sempre será gerar os stubs do lado cliente, porém podemos também consumir um serviço desta maneira,  realizo a implementação de forma simples passando a requisição dentro de uma String mas também podemos montar essa entrada dentro do próprio código com XStream nada nos impede de criar e implementar códigos de modo genérico para que atendam nossas necessidades.

Resposta do Serviço:

0

Web Services Description Language, WSDL

managed-services-iconWeb Services Description Language, WSDL

Esta postagem é uma breve definição de um documento WSDL, a mesma foi retirada do meu projeto de conclusão do bacharelado. Segue a definição usada em meu projeto para descrever os documentos WSDL.

O Web Services Description Language (WSDL) é uma linguagem baseada em XML que permite com que os Web Services disponibilizem acesso as suas informações de uma forma padronizada e organizada através de interfaces. Por sua vez as interfaces contêm as informações sobre todas as funcionalidades de um serviço, tais informações são todos os tipos de dados que fazem com o cliente possa utilizar um serviço e todas as suas funções. A principal função do WSDL é disponibilizar para o cliente um serviço e suas funções disponíveis independentemente de plataforma ou linguagem, fazendo assim com que uma aplicação Java se comunique com uma aplicação Perl ou com qualquer outra linguagem.

Os documentos em WSDL estabelecem contratos de serviços para web services baseados em SOAP, onde o mesmo se torna acessível através de um par formado pelo endpoint do serviço que define a URL do mesmo, e um namespace de serviço que define a URI do mesmo.

Elementos de um WSDL

O WSDL faz o uso de XML para descrever Web Services, especificando seis elementos principais:

  • <definitions>: É o elemento raiz de um documento WSDL.
  • <types>: Descreve todos os tipos de dados usados entre o cliente e o servidor
  • <message>: Descreve se a mensagem é uma requisição (request) ou uma resposta (response)
  • <portType>: Forma uma operação em um único sentido ou to tipo “request-response”.
  • <binding>: Definição de detalhes específicos de como o serviço será implementado.
  • <service>: Definição do endereço para invocar um serviço específico.

Além dos seis principais tipos o WSDL descreve mais dois elementos como utilitários:

  • <documentation>: É um elemento opcional que serve como um local para criar uma documentação compreensível ao homem, podendo aparecer dentro de qualquer elemento do WSDL.
  • <import>: Utilizado para importar outros documentos WSLD ou XML Schema.

Estrutura de um Documento WSDL

A estrutura de especificação do WSDL nada mais é do que um documento XML com um elemento raiz <definitions> que define um conjunto de serviços web. Essa estrutura segue a sintaxe a seguir:

Artigo_clip_image002

Não poderia deixar de citar o nome dos meus amigos que contribuíram para o crescimento de nossos estudos.

Grupo do Projeto Final: 
Fabiano Costa
Paulo Ricardo
Renan Santos

0

Consumindo WebServices gerados com JAX-WS

Java (2)Consumindo WebServices gerados com JAX-WS

Há algumas postagens mostrei como gerar webservices com jaxws, nesta mostrarei como consumir o Webservice gerando na postagem “Gerando WebServices com JAX-WS“. Para consumir um webservice o mesmo deve estar publicado no nosso caso publicamos o mesmo nesta url http://localhost:8080/WsServidor/service, além de estar publicado devemos gerar os stubs do client na raiz do nosso projeto.

Para consumir o serviço devemos executar os comandos a seguir via prompt de comando apontado pro diretório do projeto, no meu caso criei um projeto no eclipse com o nome “prjWebServiceJaxClient“. Seguem os comandos:

      • Apontar pro diretório do projeto

      •  Gerar os Stubs do Client

 A Ferramenta WSIMPORT

A ferramenta de linha de comandos wsimport processa um arquivo WSDL (Web Services Description Language) existente e gera os artefatos portáteis necessários para desenvolver os aplicativos de serviço da Web JAX-WS (Java API for XML-Based Web Services).(Definição da IBM)

A ferramenta de linha de comandos wsimport suporta a abordagem completa para o desenvolvimento dos serviços da Web JAX-WS. Quando você iniciar com um arquivo WSDL existente, utilize a ferramenta de linha de comandos wsimport para gerar os artefatos portáteis do JAX-WS necessários. (Definição da IBM)

Consumindo o WebService

Após gerar os artefatos de nosso cliente podemos utilizarmos livremente em nosso projeto/aplicação, segue uma abordagem de utilização na classe “ConsumirServico. No pacote “servico” estão os stubs gerados a partir do wsimport.

clientejaxws

Para consumir o serviço segue a implementação da classe ConsumirServico.

Após implementado podemos testar os serviço acessíveis pela interface do nosso cliente.

resultado

 

 

0

Gerando WebServices com JAX-WS

Java (2)Gerando WebServices com JAX-WS

A Java XML API for Web Services (JAX-WS) é uma biblioteca de Web Services para Java, que permite implementar serviços baseados nas normas XSD, WSDL e SOAP. A JAX-WS define o mapeamento de WSDL para Java e vice-versa. Com a JAX-WS é possível implementar Web Services partindo de um contrato WSDL ou partindo de código Java. Com a JAX-WS é também possível criar código cliente de invocação de Web Services.

Testando na Prática

Crie um projeto no eclipse com a seguinte estrutura:

prjws

Crie a classe WsServidor no pacote service e o SourceFolder wsdl.

Implementação do Serviço

Para implementação da classe de serviço utilizaremos as anotações @WebService e @WebMethod do pacote javax.

@WebService : representa uma interface ou classe de serviço.

@WebMethod: representa os métodos de uma interface de serviço.

@WebParam: representa os parâmetros de um método.

Gerando os artefatos do Serviço

Para gerar os artefatos do Serviço utilizaremos a ferramenta wsgen. Execute os comandos do wsgen apontado pro diretório raiz do projeto.

Para gerar com o WSDL, ServicePort e ServiceName use o comando a seguir, digite tudo em uma única linha:

Depois de gerados os artefatos com o wsgen o projeto deverá ficar com seguinte estrutura:

prjws2 Gerando o EndPoint do Serviço

Para publicar o Serviço, criaremos uma classe com o publicador do endpoint.

Para visualizar execute main para publicar o Serviço e digite em seu navegandor: http://localhost:8080/WsServidor/service

0

Criação de Web Service com Spring e Apache CXF

Java (2)Criação de Web Services com Spring Framework e Apache CXF

Nesta postagem implemento a criação de um web service básico utilizando o framework spring e o Apache CXF. O projeto de exemplo foi criado com a seguinte estrutura:

estrutprojBibliotecas do Projeto

Criação da Interface do Serviço

Na Interface do Serviço definiremos os métodos a serem implementados no WebService.

Criação do Serviço

Na criação do serviço deveremos implementar interface do mesmo e realizar as anotações para definição do web service e de seus métodos(@WebService, @WebMethod).

Gerando o WebService

Para a criação do web service usando o Framework Spring e o Apache CXF devemos criar um arquivo xml com a configuração do serviço, informando a classe definida com a anotação web service e o endpoint do serviço. Para isso criaremos o arquivo webservice-definition-beans.xml no diretório WEB-INF do WebContent do projeto.

Codificação:

Por fim configuramos o web.xml com a seguinte implementação:

Em um próximo post criarei o Client do Serviço para consumir o WebService.

0

Protocolo SOAP

managed-services-icon

Protoloco SOAP

O protocolo SOAP é um padrão de troca de mensagens entre aplicações e Web Services, já que utiliza como base o XML e HTTP, definindo uma estrutura para a transmissão de mensagens entre sistemas distribuídos. De acordo com o W3Schools, a estrutura da mensagem SOAP é definida em um documento XML, que é formatado da seguinte forma que é mostrada na ilustração abaixo:

soapEvelope

Uma mensagem SOAP possui basicamente os seguintes elementos:

  • Envelope: é obrigatório em mensagens SOAP. O Envelope pode conter declarações de namespaces e também atributos adicionais como o que define o estilo de codificação (encoding style). Um “enconding style” define como os dados são representados no documento XML.
  • Header: é um item opcional, tendo como características, carregar informações adicionais do tipo se a mensagem dever ser processada por um determinado nó intermediário. Quando utilizado, o Header deve ser o primeiro elemento do Envelope.
  • Body: é um elemento obrigatório e contem o a informações propriamente dita que será transportada para o seu destino final. O body pode conter um elemento opcional Fault, usado para carregar mensagens de status erros pelos “nós” ao processarem mensagem.

O protocolo SOAP é importante para o desenvolvimento de aplicativos para permitir a comunicação via Internet entre os programas.

Estrutura de uma Mensagem SOAP

0

Web Services

managed-services-icon

Web Services

Os Web Services representam um padrão de transporte, interface e dados entre consumidores e provedores de serviço, podem ser definidos como programas modulares que visam garantir a interoperabilidade de um serviço. A tecnologia de Web Services é usada como uma forma de compartilhar aplicações usando módulos que são descritos, publicados e invocados através de uma rede de forma transparente. Os Web Services se baseiam no padrão arquitetural SOA (Service-Oriented Architecture).

Service-Oriented Architecture (SOA)

O padrão arquitetural SOA tem como princípio que as funcionalidades implementadas de por uma aplicação sejam disponibilizadas na forma  de serviços. O SOA faz a definição de uma infraestrutura para que aplicações troquem dados e participem de processo de negócio independente dos sistemas operacionais ou linguagens de programação utilizadas para suas implementações. No SOA há a interação de 3 elementos:

  • Service provider (provedor de serviço):  Entidade responsável por criar o serviço web, descreve o serviço em um formato padrão compreensível por qualquer cliente e publica os detalhes sobre o serviço em um registro central que esteja publicamente disponível para todos os interessados;
  • Service broker/registry (registro de serviço): é a localização central onde o provedor de serviço pode relacionar seu serviço Web e, no qual um cliente de Serviços Web pode realizar pesquisas sobre serviços;
  • Service requester/user (cliente do serviço): é o elemento que solicita o serviço a um service broker que, por sua vez, encontra um provedor de serviços disponível e repassa o pedido para esse provedor.

images

Protocolo SOAP

O protocolo SOAP(Simple Object Accesss Protocol) é o responsável pela troca de informação, dados e acesso a aplicações remotas, baseado em XML e mesnsagens de transporte HTTP, sendo assim realiza a troca de informações de forma independente de plataforma e/ou linguagens de programação.

WSDL (Web Services Description Language)

O Web Services Description Language (WSDL) é uma linguagem baseada em XML que permite com que os Web Services disponibilizem acesso as suas informações de uma forma padronizada e organizada através de interfaces. A principal função do WSDL é disponibilizar para o cliente um serviço e suas funções disponíveis independentemente de plataforma ou linguagem, fazendo assim com que uma aplicação Java se comunique com uma aplicação Perl ou com qualquer outra linguagem.

0

Web Services Semânticos

WEB SERVICES SEMÂNTICOS

Você sabe o que é WEB 3.0? Já ouviu falar em Web Semântica, logo abaixo segue um resumo que eu fiz para apresentação do meu Projeto Final da Universidade Unigranrio. 

Web Services Semânticos
 
Possibilita que máquinas possam tomar decisões com base em requisições dos usuários e nos dados armazenados na web, estejam eles em banco de dados ou em arquivos XML. Permitindo a interação entre sistemas computacionais e humanos no gerenciamento e na utilização destes dados previamente armazenados.
 
Web Semântica
 
A Web como conhecemos hoje é definida como sintática onde computadores apresentam informações e quem interpreta são os humanos. É uma extensão da web atual que permitirá aos computadores e humanos trabalharem em cooperação.
 
A Web Semântica é um modelo que promete organizar as informações contidas na web. A web deixará de ter um status de apresentador de informações para um status de interpretadorA organização e utilização dos dados de forma inteligente passam a ser o grande diferencial da Web Semântica.
 
Permitir que pessoas explorem, associem e conectem informações para obter novos conhecimentos é a promessa da Web Semântica.
 
Interliga significados de palavras, tem como finalidade conseguir atribuir um significado (sentido), aos conteúdos publicados na web de modo que o mesmo seja perceptível tanto pelo homem como pela máquina.
 
Ontologias
 
Modelo de dados que representam um conjunto de conceitos dentro de um domínio e os relacionamento entre esses conceitos.
 
É utilizada para realizar inferências entre conceitos.
 
É utilizada em : Inteligência Artificial, Engenharia de Software, Arquitetura da Informação, Web Semântica.
 
Descrevem:  Indivíduos (Objetos Básicos), Classes (Conjuntos, Coleções ou Tipos de Objetos), Atributos (Propriedades, Características e Parâmetros que um Objeto pode compartilhar), Relacionamentos.
 
OWL ( Web Ontology Language )
 
Linguagem de Ontologias da Web.
 
Adiciona ao modelo RDF vocabulário para descrever classes, fatos sobre estas classes, relacionamentos entre classes e instâncias e características destas relações.
 
Adiciona semântica de modelagem de dados que são mais poderosas do que nos Banco de Dados convencionais. Modelos de Negócios são mantidos sintaticamente e semanticamente dentro de uma estrutura OWL.
 
Baseado em RDF.
 
RDF ( Resource Description Framework )
 
É uma especificação padrão de dados e modelagem utilizada para codificar metadados.
Linguagem de representação de informação na internet.
 
São modelos ou fontes de dados (metadata);
 
Tem como objetivo criar um modelo Simples de Dados, usar vocabulários URI-Based e uma sintaxe XML-Based e suportar o uso de XML.
 
Componentes Básicos: Recurso (URI), Propriedade, Valor.
 
Quem usa a Web Semântica hoje?

Páginas Web de Consumidores
 
Yahoo
Hakia (buscador)
BBC Online
DBPedia
FreeBase (por metaWeb)

Softwares de Negócios
 
Thomson Reuters Calais
Banco de Dados Oracle
IBM Registry
Down Jones Client Solutions
Microsoft
 É um resumo bem básico, porém dá pra ter uma noção do que esta tecnologia é capaz.
Para quem se interessou sobre o tema e gostaria de saber mais. Leiam a definição de Web Semântica no portal do Consorcio W3C.
 
Não poderia deixar de citar o nome dos meus amigos que contribuíram para o crescimento de nossos estudos.

Grupo do Projeto Final: 
Fabiano Costa
Paulo Ricardo
Renan Santos

Fonte de Pesquisa do Resumo:

Livro: Web Semântica para Leigos, 2010 por J. Pollock
Revista: SQL Magazine, Edição 98, Ano 8.