Título daApresentaçãoWeb Services eComputação emNuvem com PHPPalestrante: Flávio Gomes da Silva Lisboa   00/00/0000
PalestranteBacharel em Ciência da Computação com pós-graduação emAplicações Corporativas usando Orientação a Objetos e Tec...
Reflexão  Dr. Manhattan, created by Alan Moore and Dave Gibbons
ReflexãoA ideia de software como produto perde sentido em um mundoonde não é preciso instalar programas para utilizá-los. ...
ReflexãoA metáfora de escrever software não se aplica a um mundo ondevocê precisa construir aplicações a partir de sistema...
ReflexãoO modelo de lucro baseado em venda de licenças de software foisobrepujado pelo modelo de venda de serviços.
O que é um serviço?É uma função independente, sem estado (stateless) que aceitauma ou mais requisições e devolve uma ou ma...
O que é um serviço?Web service é uma solução utilizada na integração de sistemas ena comunicação entre aplicações diferent...
O que é um serviço?       Você fala XML?                              SIM!                  Ah, bom,                   ent...
O que é um serviço?          XML                      XML
O que é um serviço?  C               XML           XML         .NET PHP                                        Ruby       ...
ImplicaçãoNão é preciso ter uma aplicação escrita na mesma linguagem daquela cujos     serviços se deseja consumir
PHPMas na hora de escrever, pense nisto:                          Rasmus Lerdorf    Since 1995
PHP              PHP é uma linguagem●   De alta performance   ●   Multiparadigma●   Robusta               ●   Que permite●...
FatoMuitas Bibliotecas e Farta Documentação
FatoDomínios com PHP no mundo                                                    14/12/2010                 http://phpadve...
Fato  Quem usa PHP
PHPPHP 5 tem 13 extensões para XML.
PHP Existem várias classes para construir           webservices...269
PHP Mas qual usar?
PHP      Sugestão:
Uma infraestrutura completa para criar           aplicações PHP      Zend Framework é uma poderosa       biblioteca de cla...
E também uma biblioteca fracamente     acoplada de classes PHP
Que incluem classes para expor e consumir               webservicesBy Pixar                                            By ...
Zend_XmlRpcXML-RPC é descrito como uma "... chamada deprocedimento remoto usando HTTP como transporte eXML como codificaçã...
Zend_XmlRpc_Client  Chamada de método remoto$client = newZend_XmlRpc_Client(http://framework.zend.com/xmlrpc);echo $client...
Zend_XmlRpc_Client Chamada de método remoto com passagem de parâmetros$client = newZend_XmlRpc_Client(http://framework.zen...
Zend_XmlRpc_Client  Chamada de método remoto com o uso de um proxy$client = newZend_XmlRpc_Client(http://framework.zend.co...
Zend_XmlRpc_Client    Exceções●Zend_XmlRpc_Client_HttpException●Zend_XmlRpc_Client_FaultException
Zend_XmlRpc_ServerCriando um servidor XML-RPC$server = new Zend_XmlRpc_Server();$server->setClass(My_Service_Class);echo $...
Zend_XmlRpc_Server Namespaces$server->setClass(My_Service_Class, myservice);$server->addFunction(somefunc, funcs);
Zend_XmlRpcObservação: não exige descritor de serviços nem qualquerdocumentação do código PHP.                       By Fox
Zend_SoapSOAP, originado do acrônimo inglês Simple Object AccessProtocol, e em português Protocolo Simples de Acesso a Obj...
Zend_SoapSOAP # SOA (Service Oriented Architecture).                            juddi.apache.org
Zend_Soap    De que adianta ter    funcionalidades seninguém as conhece nem   sabe como usá-las?                         C...
Zend_Soap
Zend_Soap_Client Chamada de métodos remotos$client = new Zend_Soap_Client("MyService.wsdl");$result1 = $client->method1(10...
Zend_Soap_Server Criando um servidor SOAP$soap = newZend_Soap_Server("http://example.com/soap.php?wsdl");$soap->setClass(H...
Zend_Soap_Server Gerando o WSDL automaticamente$autodiscover = new Zend_Soap_AutoDiscover();$autodiscover->setClass(HelloW...
Zend_SoapObservação: exige as tags PHPDocumentor @param e @returnpara a geração do WSDL             /**              *    ...
Zend_RestREST (Representational State Transfer) é um estilo arquiteturalpara sistemas hipermídia distribuídos. Teve origem...
Zend_RestO termo REST (...) na atualidade se usa no sentido mais amplopara descrever qualquer interface web simples que ut...
Zend_Rest_Client  Chamada de métodos remotos$client = newZend_Rest_Client(http://framework.zend.com/rest);echo $client->sa...
Zend_Rest_Client Chamada de métodos remotos$client = newZend_Rest_Client(http://framework.zend.com/rest);$client->sayHello...
Zend_Rest_Client    Verificação de sucesso$result = $client->sayHello(Davey, Day)->get();if ($result->isSuccess()) {echo $...
Zend_Rest_ServerCriando um servidor REST$server = new Zend_Rest_Server();$server->setClass(My_Service_Class);$server->hand...
Zend_Rest_ServerExpondo funções$server = new Zend_Rest_Server();$server->addFunction(sayHello);$server->handle();
Zend_RestObservação: exige as tags PHPDocumentor @param e @return             /**              *              * @param unk...
Zend Framework também inclui classes  prontas para consumir webservices         Zend_Cloud     Zend_Feed      Zend_GData  ...
Zend_ServiceZend_Service é uma classe abstrata que serve como base paraimplementações de serviços Web, como SOAP ou REST.A...
Zend_Service_AkismetO serviço Akismet é usado para determinar se dados de entradaconstituem-se em um potencial spam.
Zend_Service_AmazonPermite utilizar os webservices da Amazon
Zend_Service_Amazon_Ec2Amazon Elastic Cloud Computing (EC2), um webservice quepermite lançar e gerenciar instâncias de ser...
Zend_Service_Amazon_S3Amazon Simple Storage Service (S3), webservices para armazenare recuperar qualquer quantidade de dad...
Zend_Service_Amazon_SqsAmazon Simple Queue Service (SQS) é um sistema de filas demensagens hospedadas.
Zend_Service_AudioscrobblerProvê acesso ao banco de dados de usuários, artistas, aĺbuns,faixas, tags, grupos e fóruns da A...
Zend_Service_Delicious
Zend_Service_DeveloperGardenDeveloperGarden é a comunidade de desenvolvedores daDeutsche Telekom, que oferece serviços de ...
Zend_Service_EbayOptimus Prime by Hasbro                   Bumblebee by Hasbro
Zend_Service_Flickr
Zend_Service_LiveDocxLiveDocx permite gerar documentos a partir de um template.Templates em DOCX, DOC, RTF e TXD podem ger...
Zend_Service_NirvanixProvê um Internet Media File System (IMFS), um serviço dearmazenamento de arquivos via Internet.     ...
Zend_Service_Recaptcha       X XXX
Zend_Service_ShortUrl
Zend_Service_Slideshare
Zend_Service_StrikeironProvê serviços de verificação de e-mail, verificação de endereços,verificação de número de telefone...
Zend_Service_TechnoratiTechnorati é um mecanismo de busca de blogs
Zend_Service_Twitter
Zend_Service_WindowsAzureWindowsAzure é o ambiente de gerenciamento, hospedagem edesenvolvimento de serviços em nuvem da M...
Zend_Service_Yahoo
Zend_FeedRSS (Really Simple Syndication) também é um serviço
Zend_GData
Computação em Nuvem
Computação em Nuvem       web services
Zend_GData
Zend_CloudServiço de Documentos                          Serviço de Filas                        Serviço de Armazenamento
Zend_CloudEscolha a nuvem!
Mais informações                             Zend Frameworkhttp://framework.zend.com/manual                    http://devz...
Literatura Zend Framework      Amazon.com: 70 resultados para Zend Framework
Contatoflavio.lisboa@serpro.gov.br            @fgsl
Webservices e Computação em Nuvem com PHP
Upcoming SlideShare
Loading in …5
×

Webservices e Computação em Nuvem com PHP

2,268 views

Published on

Palestra sobre a API do Zend Framework para construção e consumo de webservices e serviços de computação em nuvem, realizada no IV Congresso Internacional Software Livre e Governo Eletrônico

Published in: Technology

Webservices e Computação em Nuvem com PHP

  1. 1. Título daApresentaçãoWeb Services eComputação emNuvem com PHPPalestrante: Flávio Gomes da Silva Lisboa 00/00/0000
  2. 2. PalestranteBacharel em Ciência da Computação com pós-graduação emAplicações Corporativas usando Orientação a Objetos e TecnologiaJava pela Universidade Tecnológica Federal do Paraná. Já atuoucomo programador em empresas privadas de informática efuncionário de carreira do Banco do Brasil, onde chegou a analista nadiretoria internacional. Atualmente é consultor tecnológico daCoordenação Estratégica de Tecnologia do Serviço Federal deProcessamento de Dados (Serpro). Foi professor na pós-graduação daUNICID e é instrutor de cursos técnicos na Tempo Real Eventos. Foimembro do time oficial de tradução do Zend Framework e autor detrês livros sobre o tema. Tem experiência na área de Ciência daComputação, com ênfase em Software Livre, atuando principalmentenos seguintes temas: Java, PHP, padrões, frameworks, MVC eobjetos.
  3. 3. Reflexão Dr. Manhattan, created by Alan Moore and Dave Gibbons
  4. 4. ReflexãoA ideia de software como produto perde sentido em um mundoonde não é preciso instalar programas para utilizá-los. Fonte: http://silvacarvalho.net
  5. 5. ReflexãoA metáfora de escrever software não se aplica a um mundo ondevocê precisa construir aplicações a partir de sistemas que jáexistem.
  6. 6. ReflexãoO modelo de lucro baseado em venda de licenças de software foisobrepujado pelo modelo de venda de serviços.
  7. 7. O que é um serviço?É uma função independente, sem estado (stateless) que aceitauma ou mais requisições e devolve uma ou mais respostasatravés de uma interface padronizada e bem definida.Serviços podem também realizar partes discretas de um processotal como editar ou processar uma transação.Serviços não devem depender do estado de outras funções ouprocessos.A tecnologia utilizada para prover o serviço, tal como umalinguagem de programação, não pode fazer parte da definição doserviço.
  8. 8. O que é um serviço?Web service é uma solução utilizada na integração de sistemas ena comunicação entre aplicações diferentes. Com esta tecnologiaé possível que novas aplicações possam interagir com aquelasque já existem e que sistemas desenvolvidos em plataformasdiferentes sejam compatíveis.Os Web services são componentes que permitem às aplicaçõesenviar e receber dados em formato XML. Cada aplicação pode tera sua própria "linguagem", que é traduzida para uma linguagemuniversal, o formato XML.
  9. 9. O que é um serviço? Você fala XML? SIM! Ah, bom, então podemos conversar.
  10. 10. O que é um serviço? XML XML
  11. 11. O que é um serviço? C XML XML .NET PHP Ruby XML XML XMLPython Java
  12. 12. ImplicaçãoNão é preciso ter uma aplicação escrita na mesma linguagem daquela cujos serviços se deseja consumir
  13. 13. PHPMas na hora de escrever, pense nisto: Rasmus Lerdorf Since 1995
  14. 14. PHP PHP é uma linguagem● De alta performance ● Multiparadigma● Robusta ● Que permite● Com muitas separação em funcionalidades camadas● Com extensões em C ● Tem baixo custo de treinamento● Multiplataforma ● Não requer doutorado● Compilada para usar dinamicamente
  15. 15. FatoMuitas Bibliotecas e Farta Documentação
  16. 16. FatoDomínios com PHP no mundo 14/12/2010 http://phpadvent.org/2010/usage-statistics-by-ilia-alshanetsky
  17. 17. Fato Quem usa PHP
  18. 18. PHPPHP 5 tem 13 extensões para XML.
  19. 19. PHP Existem várias classes para construir webservices...269
  20. 20. PHP Mas qual usar?
  21. 21. PHP Sugestão:
  22. 22. Uma infraestrutura completa para criar aplicações PHP Zend Framework é uma poderosa biblioteca de classes para PHP
  23. 23. E também uma biblioteca fracamente acoplada de classes PHP
  24. 24. Que incluem classes para expor e consumir webservicesBy Pixar By Pixar By Pixar Zend_XmlRpc Zend_Soap Zend_Rest
  25. 25. Zend_XmlRpcXML-RPC é descrito como uma "... chamada deprocedimento remoto usando HTTP como transporte eXML como codificação. XML-RPC foi projetado para sero mais simples possível, permitindo que estruturascomplexas de dados sejam transmitidas, processadas edevolvidas. "
  26. 26. Zend_XmlRpc_Client Chamada de método remoto$client = newZend_XmlRpc_Client(http://framework.zend.com/xmlrpc);echo $client->call(test.sayHello);
  27. 27. Zend_XmlRpc_Client Chamada de método remoto com passagem de parâmetros$client = newZend_XmlRpc_Client(http://framework.zend.com/xmlrpc);$arg1 = 1.1;$arg2 = foo;$result = $client->call(test.sayHello, array($arg1,$arg2));
  28. 28. Zend_XmlRpc_Client Chamada de método remoto com o uso de um proxy$client = newZend_XmlRpc_Client(http://framework.zend.com/xmlrpc);$service = $client->getProxy();$hello = $service->test->sayHello(1, 2);
  29. 29. Zend_XmlRpc_Client Exceções●Zend_XmlRpc_Client_HttpException●Zend_XmlRpc_Client_FaultException
  30. 30. Zend_XmlRpc_ServerCriando um servidor XML-RPC$server = new Zend_XmlRpc_Server();$server->setClass(My_Service_Class);echo $server->handle();
  31. 31. Zend_XmlRpc_Server Namespaces$server->setClass(My_Service_Class, myservice);$server->addFunction(somefunc, funcs);
  32. 32. Zend_XmlRpcObservação: não exige descritor de serviços nem qualquerdocumentação do código PHP. By Fox
  33. 33. Zend_SoapSOAP, originado do acrônimo inglês Simple Object AccessProtocol, e em português Protocolo Simples de Acesso a Objetos,é um protocolo para troca de informações estruturadas em umaplataforma descentralizada e distribuída.Ele se baseia na Linguagem de Marcação Extensível (XML) paraseu formato de mensagem, e normalmente baseia-se em outrosprotocolos da Camada de aplicação, mais notavelmente emChamada de Procedimento Remoto (RPC) e Protocolo deTransferência de Hipertexto (HTTP), para negociação etransmissão de mensagens.
  34. 34. Zend_SoapSOAP # SOA (Service Oriented Architecture). juddi.apache.org
  35. 35. Zend_Soap De que adianta ter funcionalidades seninguém as conhece nem sabe como usá-las? Calvin, by Bill Watterson
  36. 36. Zend_Soap
  37. 37. Zend_Soap_Client Chamada de métodos remotos$client = new Zend_Soap_Client("MyService.wsdl");$result1 = $client->method1(10);$result2 = $client->method2(22, some string);
  38. 38. Zend_Soap_Server Criando um servidor SOAP$soap = newZend_Soap_Server("http://example.com/soap.php?wsdl");$soap->setClass(HelloWorldService);$soap->handle();
  39. 39. Zend_Soap_Server Gerando o WSDL automaticamente$autodiscover = new Zend_Soap_AutoDiscover();$autodiscover->setClass(HelloWorldService);$autodiscover->handle();
  40. 40. Zend_SoapObservação: exige as tags PHPDocumentor @param e @returnpara a geração do WSDL /** * * @param unknown_type $arg * @return unknown_type */
  41. 41. Zend_RestREST (Representational State Transfer) é um estilo arquiteturalpara sistemas hipermídia distribuídos. Teve origem na tese dedoutorado de Roy T. Fielding. A REST é pretendida como uma imagem do design da aplicação se comportará: uma rede de websites (um estado virtual), onde o usuário progride com uma aplicação selecionando as ligações (transições do estado), tendo como resultado a página seguinte (que representa o estado seguinte da aplicação) que está sendo transferida ao usuário e apresentada para seu uso. Roy Thomas Fielding
  42. 42. Zend_RestO termo REST (...) na atualidade se usa no sentido mais amplopara descrever qualquer interface web simples que utiliza XML eHTTP (ou YAML, JSON, ou texto puro), sem as abstraçõesadicionais dos protocolos baseados em padrões de trocas demensagem como o protocolo de serviços web SOAP. SOAP REST
  43. 43. Zend_Rest_Client Chamada de métodos remotos$client = newZend_Rest_Client(http://framework.zend.com/rest);echo $client->sayHello(Davey, Day)->get();// "Hello Davey, Good Day"
  44. 44. Zend_Rest_Client Chamada de métodos remotos$client = newZend_Rest_Client(http://framework.zend.com/rest);$client->sayHello(Davey, Day);echo $client->get();
  45. 45. Zend_Rest_Client Verificação de sucesso$result = $client->sayHello(Davey, Day)->get();if ($result->isSuccess()) {echo $result; // "Hello Davey, Good Day"}
  46. 46. Zend_Rest_ServerCriando um servidor REST$server = new Zend_Rest_Server();$server->setClass(My_Service_Class);$server->handle();
  47. 47. Zend_Rest_ServerExpondo funções$server = new Zend_Rest_Server();$server->addFunction(sayHello);$server->handle();
  48. 48. Zend_RestObservação: exige as tags PHPDocumentor @param e @return /** * * @param unknown_type $arg * @return unknown_type */
  49. 49. Zend Framework também inclui classes prontas para consumir webservices Zend_Cloud Zend_Feed Zend_GData Zend_Service
  50. 50. Zend_ServiceZend_Service é uma classe abstrata que serve como base paraimplementações de serviços Web, como SOAP ou REST.As implementações de Zend_Service que vem com ZendFramework provêem suporte para webservices populares.
  51. 51. Zend_Service_AkismetO serviço Akismet é usado para determinar se dados de entradaconstituem-se em um potencial spam.
  52. 52. Zend_Service_AmazonPermite utilizar os webservices da Amazon
  53. 53. Zend_Service_Amazon_Ec2Amazon Elastic Cloud Computing (EC2), um webservice quepermite lançar e gerenciar instâncias de servidores nos datacenters da Amazon. Green Lantern, by DC Comics
  54. 54. Zend_Service_Amazon_S3Amazon Simple Storage Service (S3), webservices para armazenare recuperar qualquer quantidade de dados, a qualquer hora, dequalquer lugar.
  55. 55. Zend_Service_Amazon_SqsAmazon Simple Queue Service (SQS) é um sistema de filas demensagens hospedadas.
  56. 56. Zend_Service_AudioscrobblerProvê acesso ao banco de dados de usuários, artistas, aĺbuns,faixas, tags, grupos e fóruns da Audioscrobbler.
  57. 57. Zend_Service_Delicious
  58. 58. Zend_Service_DeveloperGardenDeveloperGarden é a comunidade de desenvolvedores daDeutsche Telekom, que oferece serviços de chamada de voz eSMS via APIs abertas.
  59. 59. Zend_Service_EbayOptimus Prime by Hasbro Bumblebee by Hasbro
  60. 60. Zend_Service_Flickr
  61. 61. Zend_Service_LiveDocxLiveDocx permite gerar documentos a partir de um template.Templates em DOCX, DOC, RTF e TXD podem gerar saída emHTML, PDF e TXT. Imagens BMP, GIF, JPG, PNG e TIFF podem serintercambiadas para qualquer um desse formatos, incluindo WMF.
  62. 62. Zend_Service_NirvanixProvê um Internet Media File System (IMFS), um serviço dearmazenamento de arquivos via Internet. Asterix, Obelix, Ideiafix and Panoramix, by Goscinny and Uderzo
  63. 63. Zend_Service_Recaptcha X XXX
  64. 64. Zend_Service_ShortUrl
  65. 65. Zend_Service_Slideshare
  66. 66. Zend_Service_StrikeironProvê serviços de verificação de e-mail, verificação de endereços,verificação de número de telefones, cálculo de taxa de entrega,alertas e notificações SMS.Mas... Captain America and Alpha Weapon/Vindix/Guardian, by Marvel
  67. 67. Zend_Service_TechnoratiTechnorati é um mecanismo de busca de blogs
  68. 68. Zend_Service_Twitter
  69. 69. Zend_Service_WindowsAzureWindowsAzure é o ambiente de gerenciamento, hospedagem edesenvolvimento de serviços em nuvem da Microsoft.
  70. 70. Zend_Service_Yahoo
  71. 71. Zend_FeedRSS (Really Simple Syndication) também é um serviço
  72. 72. Zend_GData
  73. 73. Computação em Nuvem
  74. 74. Computação em Nuvem web services
  75. 75. Zend_GData
  76. 76. Zend_CloudServiço de Documentos Serviço de Filas Serviço de Armazenamento
  77. 77. Zend_CloudEscolha a nuvem!
  78. 78. Mais informações Zend Frameworkhttp://framework.zend.com/manual http://devzone.zend.com Computação em Nuvem com PHPhttp://www.ibm.com/developerworks/web/library/os-php-cloud1/index.htmlhttp://www.ibm.com/developerworks/opensource/library/os-cloud-realities1/index.html
  79. 79. Literatura Zend Framework Amazon.com: 70 resultados para Zend Framework
  80. 80. Contatoflavio.lisboa@serpro.gov.br @fgsl

×