Webservices e Computação em Nuvem com PHP

2.246 visualizações

Publicada em

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

Publicada em: Tecnologia
0 comentários
5 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.246
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
57
Comentários
0
Gostaram
5
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

×