FISL12. Web Services e Computação em Nuvem com PHP

1,924 views

Published on

Palestra sobre webservices e computação em nuvem com PHP proferida no FISL 12.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,924
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
44
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

FISL12. Web Services e Computação em Nuvem com PHP

  1. 1. Título da Apresentação     Web Services e  Computação em Nuvem  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  em Aplicações  Corporativas  usando  Orientação  a  Objetos  e  Tecnologia Java  pela  Universidade  Tecnológica  Federal  do  Paraná.  Já  atuou como  programador  em  empresas  privadas  de  informática  e funcionário de carreira do Banco do Brasil, onde chegou a analista na diretoria  internacional.  Atualmente  é  consultor  tecnológico  da Coordenação  Estratégica  de  Tecnologia  do  Serviço  Federal  de Processamento de Dados (Serpro). Foi professor na pós­graduação da UNICID e é instrutor de cursos técnicos na Tempo Real Eventos. Foi membro  do  time  oficial  de  tradução  do  Zend  Framework  e  autor  de três  livros  sobre  o  tema.  Tem  experiência  na  área  de  Ciência  da Computação, com ênfase em Software Livre, atuando principalmente nos  seguintes  temas:  Java,  PHP,  padrões,  frameworks,  MVC  e objetos.
  3. 3. Introdução
  4. 4. Questão Espere aí, Web Services e Computação em Nuvem com PHP?
  5. 5. MitoMas PHP é coisa de sobrinho!
  6. 6. MitoRealmente, mas de sobrinho do  Tio Patinhas!
  7. 7. PHP O pensamento por trás do PHPA  web  está  mudando. É  mais  dinâmica  e  mais programável do que nunca. Essa novo web programável precisa  de  ferramentas  e  sistemas  rápidos,  seguros  e escaláveis que podem falar uns com os outros de uma maneira  que  é  tanto  útil  quanto  acessível. A  curva  de aprendizagem  tem  que  ser  rasa  e  os  resultados imediatos.Rasmus Lerdorf
  8. 8. PHPO pensamento por trás do PHP
  9. 9. PHPhttp://streaming.serpro.gov.br/cisl/php.html CISL
  10. 10. Fatos do 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
  11. 11. Fatos do PHPPHP tem várias extensões, para diversos propósitos● Manipulação de formatos de  ● Banco de dados áudio ● Sistema de arquivos● Serviços de autenticação ● Linguagem humana● Calendário e eventos ● Processamento e geração de  imagens● Linha de comando ● E­mail● Compressão de arquivos ● Matemática● Processamento de cartão de  crédito ● Controle de Processo● Criptografia ● Processamento de texto● Web services ● etc
  12. 12. Fatos do PHPMuitas Bibliotecas e Farta Documentação
  13. 13. Fatos do PHP Domínios com PHP no mundo 14/12/2010 http://phpadvent.org/2010/usage­statistics­by­ilia­alshanetsky
  14. 14. Fatos do PHP Quem usa PHP
  15. 15. Fato OK, JÁ ENTENDI!PODEMOS IR PARA OS WEB SERVICES?
  16. 16. ReflexãoA ideia de software como produto perde sentido em um mundo onde não é preciso instalar programas para utilizá­los. Fonte: http://silvacarvalho.net
  17. 17. ReflexãoA metáfora de escrever software não se aplica a um mundo onde você precisa construir aplicações a partir de sistemas que já existem.
  18. 18. ReflexãoO modelo de lucro baseado em venda de licenças de software foi sobrepujado pelo modelo de venda de serviços.
  19. 19. O que é um serviço?É  uma  função  independente,  sem  estado  (stateless)  que  aceita uma  ou  mais  requisições  e  devolve  uma  ou  mais  respostas através  de  uma  interface  padronizada  e  bem  definida. Serviços podem também realizar partes discretas de um processo tal  como  editar  ou  processar  uma  transação. Serviços  não  devem  depender  do  estado  de  outras  funções  ou processos.A  tecnologia  utilizada  para  prover  o  serviço,  tal  como  uma linguagem de programação, não pode fazer parte da definição do serviço.
  20. 20. O que é um serviço?Web service é uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes. Com esta tecnologia é  possível  que  novas  aplicações  possam  interagir  com  aquelas que  já  existem  e  que  sistemas  desenvolvidos  em  plataformas diferentes sejam compatíveis.                                                                         Os  Web  services  são  componentes  que  permitem  às  aplicações enviar e receber dados em formato XML. Cada aplicação pode ter a  sua  própria  "linguagem",  que  é  traduzida  para  uma  linguagem universal, o formato XML.
  21. 21. O que é um serviço? Você fala XML? SIM! Ah, bom,  então  podemos  conversar.
  22. 22. O que é um serviço? XML XML
  23. 23. O que é um serviço? C XML XML .NET PHP Ruby XML XML XMLPython Java
  24. 24. ImplicaçãoNão é preciso ter uma aplicação escrita  na mesma linguagem daquela cujos  serviços se deseja consumir
  25. 25. PHPPHP 5 tem 13 extensões para XML.
  26. 26. PHP Existem várias classes para construir  webservices...269
  27. 27. PHP Mas qual usar?
  28. 28. PHP Sugestão:
  29. 29. Uma infraestrutura completa para criar  aplicações PHP Zend Framework é uma poderosa  biblioteca de classes para PHP 
  30. 30. E também uma biblioteca de classes PHP  com baixo acoplamento
  31. 31. E também uma biblioteca de classes PHP  com baixo acoplamento Acoplamento das classes Zend Framework
  32. 32. Baixo acoplamento é importante!
  33. 33. Zend Framework possui classes para expor e consumir webservices em vários formatosBy Pixar By Pixar By Pixar Zend_XmlRpc Zend_Soap Zend_Rest Referência: Zend Framework versão 1.11
  34. 34. Zend_XmlRpcXML­RPC é descrito como uma "... chamada de procedimento remoto usando HTTP como transporte e XML como codificação. XML­RPC foi projetado para ser o mais simples possível, permitindo que estruturas complexas de dados sejam transmitidas, processadas e devolvidas. "
  35. 35. Zend_XmlRpc_Client Chamada de método remoto$client = newZend_XmlRpc_Client(http://framework.zend.com/xmlrpc);echo $client->call(test.sayHello);
  36. 36. 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));
  37. 37. 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);
  38. 38. Zend_XmlRpc_Client Exceções●Zend_XmlRpc_Client_HttpException●Zend_XmlRpc_Client_FaultException
  39. 39. Zend_XmlRpc_ServerCriando um servidor XML­RPC$server = new Zend_XmlRpc_Server();$server->setClass(My_Service_Class);echo $server->handle();
  40. 40. Zend_XmlRpc_Server Namespaces$server->setClass(My_Service_Class, myservice);$server->addFunction(somefunc, funcs);
  41. 41. Zend_XmlRpcObservação:  não  exige  descritor  de  serviços  nem  qualquer documentação do código PHP. By Fox
  42. 42. Zend_SoapSOAP, originado do acrônimo inglês Simple Object Access Protocol, e em português Protocolo Simples de Acesso a Objetos, é um protocolo para troca de informações estruturadas em uma plataforma descentralizada e distribuída. Ele se baseia na Linguagem de Marcação Extensível (XML) para seu formato de mensagem, e normalmente baseia­se em outros protocolos da Camada de aplicação, mais notavelmente em Chamada de Procedimento Remoto (RPC) e Protocolo de Transferência de Hipertexto (HTTP), para negociação e transmissão de mensagens. 
  43. 43. Zend_SoapSOAP # SOA (Service Oriented Architecture). juddi.apache.org
  44. 44. Zend_Soap De que adianta ter  funcionalidades se ninguém as conhece nem  sabe como usá­las? Calvin, by Bill Watterson
  45. 45. Zend_Soap
  46. 46. 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);
  47. 47. Zend_Soap_Server Criando um servidor SOAP$soap = newZend_Soap_Server("http://example.com/soap.php?wsdl");$soap->setClass(HelloWorldService);$soap->handle();
  48. 48. Zend_Soap_Server Gerando o WSDL automaticamente$autodiscover = new Zend_Soap_AutoDiscover();$autodiscover->setClass(HelloWorldService);$autodiscover->handle();
  49. 49. Zend_SoapObservação:  exige  as  tags  PHPDocumentor  @param  e  @return para a geração do WSDL /** * * @param unknown_type $arg * @return unknown_type */
  50. 50. Zend_RestREST  (Representational  State  Transfer)  é  um  estilo arquitetural  para  sistemas  hipermídia  distribuídos.  Teve origem na tese de doutorado 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
  51. 51. Zend_RestO  termo  REST  (...)  na  atualidade  se  usa  no  sentido  mais  amplo para  descrever  qualquer  interface  web  simples  que  utiliza  XML  e HTTP  (ou  YAML,  JSON,  ou  texto  puro),  sem  as  abstrações adicionais  dos  protocolos  baseados  em  padrões  de  trocas  de mensagem como o protocolo de serviços web SOAP. SOAP REST
  52. 52. 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"
  53. 53. Zend_Rest_Client Chamada de métodos remotos$client = newZend_Rest_Client(http://framework.zend.com/rest);$client->sayHello(Davey, Day);echo $client->get();
  54. 54. Zend_Rest_Client Verificação de sucesso$result = $client->sayHello(Davey, Day)->get();if ($result->isSuccess()) {echo $result; // "Hello Davey, Good Day"}
  55. 55. Zend_Rest_ServerCriando um servidor REST$server = new Zend_Rest_Server();$server->setClass(My_Service_Class);$server->handle();
  56. 56. Zend_Rest_ServerExpondo funções$server = new Zend_Rest_Server();$server->addFunction(sayHello);$server->handle();
  57. 57. Zend_Rest_ServerObservação: exige as tags PHPDocumentor @param e @return /** * * @param unknown_type $arg * @return unknown_type */
  58. 58. Zend_JsonQuase esquecemos do JSON!
  59. 59. Zend_Json_ServerCriando um servidor JSON$server = new Zend_Json_Server();$server->setClass(My_Service_Class);$server->handle();
  60. 60. Zend Framework também inclui classes  prontas para consumir webservices Zend_Cloud Zend_Feed Zend_GData Zend_Service
  61. 61. Zend_ServiceZend_Service  é  uma  classe  abstrata  que  serve  como  base  para implementações de serviços Web, como SOAP ou REST.As  implementações  de  Zend_Service  que  vem  com  Zend Framework provêem suporte para webservices populares.
  62. 62. Zend_Service_AkismetO  serviço  Akismet  é  usado  para  determinar  se  dados  de  entrada constituem­se em um potencial spam.
  63. 63. Zend_Service_AmazonPermite utilizar os webservices da Amazon
  64. 64. Zend_Service_Amazon_Ec2Amazon  Elastic  Cloud  Computing  (EC2),  um  webservice  que permite  lançar  e  gerenciar  instâncias  de  servidores  nos  data centers da Amazon. Green Lantern, by DC Comics
  65. 65. Zend_Service_Amazon_S3Amazon Simple Storage Service (S3), webservices para armazenar e  recuperar  qualquer  quantidade  de  dados,  a  qualquer  hora,  de qualquer lugar.
  66. 66. Zend_Service_Amazon_SqsAmazon  Simple  Queue  Service  (SQS)  é  um  sistema  de  filas  de mensagens hospedadas.
  67. 67. Zend_Service_AudioscrobblerProvê  acesso  ao  banco  de  dados  de  usuários,  artistas,  aĺbuns, faixas, tags, grupos e fóruns da Audioscrobbler.
  68. 68. Zend_Service_Delicious Registro de bookmarks
  69. 69. Zend_Service_DeveloperGardenDeveloperGarden  é  a  comunidade  de  desenvolvedores  da Deutsche  Telekom,  que  oferece  serviços  de  chamada  de  voz  e SMS via APIs abertas.
  70. 70. Zend_Service_EbayOptimus Prime by Hasbro Bumblebee by Hasbro
  71. 71. Zend_Service_Flickr
  72. 72. Zend_Service_LiveDocxLiveDocx  permite  gerar  documentos  a  partir  de  um  template. Templates  em  DOCX,  DOC,  RTF  e  TXD  podem  gerar  saída  em HTML, PDF e TXT. Imagens BMP, GIF, JPG, PNG e TIFF podem ser intercambiadas para qualquer um desse formatos, incluindo WMF.
  73. 73. Zend_Service_NirvanixProvê  um  Internet  Media  File  System  (IMFS),  um  serviço  de armazenamento de arquivos via Internet. Asterix, Obelix, Ideiafix and Panoramix, by Goscinny and Uderzo
  74. 74. Zend_Service_Recaptcha X XXX
  75. 75. Zend_Service_ShortUrl
  76. 76. Zend_Service_Slideshare
  77. 77. 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
  78. 78. Zend_Service_TechnoratiTechnorati é um mecanismo de busca de blogs
  79. 79. Zend_Service_Twitter
  80. 80. Zend_Service_WindowsAzureWindowsAzure  é  o  ambiente  de  gerenciamento,  hospedagem  e desenvolvimento de serviços em nuvem da Microsoft.
  81. 81. Zend_Service_Yahoo
  82. 82. Zend_FeedRSS (Really Simple Syndication) também é um serviço
  83. 83. Zend_GData
  84. 84. Computação em Nuvem
  85. 85. Computação em Nuvem web services
  86. 86. Zend_GData
  87. 87. Zend_CloudServiço de Documentos Serviço de Filas Serviço de Armazenamento
  88. 88. Zend_Cloud Serviço de Documentos Zend_Cloud_Adapter Serviço de FilasServiço de documentos Serviço de filas Serviço de armazenamento Serviço de Armazenamento
  89. 89. Zend_CloudEscolha a nuvem!
  90. 90. Dica: para brincar
  91. 91. 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
  92. 92. Literatura Zend Framework Amazon.com: 70 resultados para Zend Framework
  93. 93. ALGUMA  QuestõesPERGUNTA ?
  94. 94. Contato flavio.lisboa@serpro.gov.br @fgsl www.fgsl.eti.brhttp://romocavaleirodoespaco.blogspot.com

×