Este documento discute Web 2.0 e Software como Serviço (SaaS). Discute aplicações Web 2.0, a evolução da Web 2.0, a diferença entre Web 1.0 e Web 2.0, e o desenvolvimento de software como serviço. Também aborda tópicos como web services, a história e componentes básicos de web services.
1. Web 2.0
Software como um Serviço (SaaS)
IUL/ISCTE/DCTI Carlos Serrão
Instituto Universitário de LIsboa
carlos.serrao@iscte.pt
Instituto Superior do Trabalho e da Empresa
Departamento de Ciências e Tecnologias de Informação
carlos.j.serrao@gmail.com
Instituto Politécnico de Setúbal http://www.carlosserrao.net
Escola Superior de Ciências Empresariais http://blog.carlosserrao.net
Novembro 2008 http://www.linkedin.com/in/carlosserrao
4. Aplicações Web 2.0
Aplicações de Rede que aproveitam os Efeitos de Rede
através de uma Arquitectura de Participação reforçada
por uma Arquitectura Social.
4 Web 2.0 e SAAS November 2008
9. Web 2.0
O termo “Web 2.0” pode referir diversas coisas:
A transição de sites de web de silos de informação para fontes de
conteúdo e de funcionalidade, tornando-se assim plataformas de
computação servindo aplicações web para os utilizadores finais
O fenómeno social que usa uma nova forma de gerar e distribuir conteúdo
Web, caracterizado por comunicação aberta, descentralizada de autoridade,
liberdade de partilha e de re-utilização e de conversação
Melhoria na organização e categorização de conteúdo, com ênfase numa
forte interligação entre o mesmo
O aparecimento do valor económico de Web, que ultrapassa o impacto das
dot-com do final dos 1990s
9 Web 2.0 e SAAS November 2008
10. Web 1.0 vs Web 2.0
Web 1.0 Web 2.0
(1993-2003) (2003- beyond)
Principalmente páginas HTML Páginas Web e outro conteúdo partilhado através
da rede, com maior interactividade. Actuam mais
visualizadas através de um browser como uma aplicação do que uma “página”
“Leitura” Modo “Escrita” &
Contribuição
“Página” Unidade principal “Post / registo”
de conteúdo
“estático” Estado “dinâmico”
Web browser Visto através de… Browsers, RSS Readers,
outro
“Client/Server” Arquitectura “Web Services”
Web Coders Conteúdo criado Todos
por…
“geeks” Domínio de… “amadores”
10 Web 2.0 e SAAS November 2008
12. Ondas de SAAS e Curvas de Valor
2005
Final 1990’s a 2010
a 2004
Início a Meados
-1990’s
Modelo de SaaS –
impulsionado por clientes
Modelo ASP – impulsionado que procuram contornar
por companhias que desejam atrasos de TI, controlo de TI,
Cliente/Servidor – potenciar fontes de TI, com
orientado pelas pesadelos na actualização e
custos controlados e sub- evitar compromissos
necessidades de negócio alugando a infra-estrutura de
em termos de inflexiveis e onerosos a
TI longo-prazo.
descentralização,
flexibilidade e plataformas ENFOQUE alterou-se
económicas. para os valores do
comprador
Fonte: AMR Research SaaS Study 2005
… os objectivos de negócio e as espectativas de utilizadores mudaram de
pretenderem aplicações abrangentes e SAAS aplicações especializadas e verticais
12 Web 2.0 para November 2008
13. Necessidade de Mudança
Web Skeptical, Thick Client, Thin Pipes Browser-based Applications,
Thin Client, Thick Pipes
IT is Aligned with
IT is Aligned with Vendors LOB Leaders
Business Processes Business Processes
Far Different from Rivals Very Similar to Rivals
Huge Investment, Major Risk, Short-Term,
Long-Term ROI Immediate Savings
Major upfront costs Pay as you go, fees per use
Unpredictable maintenance Predictable monthly expense
Efficiency, Speed and
Multiple code bases Simplicity
1990’s Today
Suite Solution Vertical Specific
On Premises SaaS
13 Web 2.0 e SAAS November 2008
14. Desenvolver Software como um Service
(SaaS)
Mudança do Modelo de Negócios:
Deixar de ser um fornecedor de software – passar a ser um
fornecedor de serviços de software
Missão – ajudar os parceiros de negócio:
A criarem serviços funcionais e aplicações, que automatizem/
melhorem os processos de negócio actuais – fornecer essas mesmas
aplicações como serviços para baixar o custo com base em acordos
de desempenho de serviços
14 Web 2.0 e SAAS November 2008
16. Web Services
Definições
Gartner Group (http://www.gartner.com)
“[…] componentes de software espalhados que interagem dinamicamente
uns com os outros através de tecnologias Internet standard […]
Forrester Research (http://www.forrester.com)
“[...] ligações automáticas entre pessoas, sistemas e aplicações que expoem
elementos de funcionalidade de negócio como um serviço de software e
criam um novo valor de negócio […]quot;
16 Web 2.0 e SAAS November 2008
17. Web Services segundo o W3C
Um Web Service é
uma aplicação de software
identificada por uma URI (Uniform Resource Identifier) *,
cujos os interfaces e ligações são capazes de serem claramente definidas, descritas e
encontradas através de artefactos XML
suportando interacções directas com outras aplicações de software
utilizando mensagens baseadas em XML
através da utilização de protocolos baseados em Internet.
*A Uniform Resource Identifier (URI), is a compact string of characters used to identify or name a resource.
http://www.w3.org
17 Web 2.0 e SAAS November 2008
18. Web Services
XML é a língua franca dos Web-Services
18 Web 2.0 e SAAS November 2008
19. Historial dos Web Services
Raiz: Componentes: inventados nos anos 80, desenvolvidos a pensar nos interfaces de utilizador:
COM
Distribuição: arquitecturas de componentes distribuídas: component middleware. Principais
arquitecturas:
OMG CORBA: Object Management Group Comon Request Broker Architecture
Microsoft DCOM: Distributed Component Object Model
Sun RMI: Remote Method Invocation
Limitação dos componentes distribuídos: só podem ser usados através de uma rede bem gerida
e controlada – Intranet
Web Services são uma forma de distribuição de componentes numa rede pública
19 Web 2.0 e SAAS November 2008
20. Historial dos Web Services
Resumindo…
Os Web Services são o resultado de desenvolvimentos
na indústria de TI dos últimos 20 anos
20 Web 2.0 e SAAS November 2008
22. Evolução da Arquitectura dos Web-Services
B2B Market,
Global Enterprise Typical access via:
Ecosystems Web services
Services
Homogeneous
Application
Components
Program
Objects
Daryl Plummer, Gartner
22 Web 2.0 e SAAS November 2008
23. Web Services
Tendências da Indústria
Passou de interacções 1-para-1 para colaborações muitos-para-muitos
Passou de aplicações de software empacotadas para componentes modulares,
interoperáveis e auto-contidos
Passou de integração rígida de aplicações ponto-a-ponto para montagem e integração
de software de uma forma dinâmica
Passou do software como produto para software como serviço
23 Web 2.0 e SAAS November 2008
25. Porquê os Web Services?
Interoperabilidade
Permitem ligações em redes heterogéneas utilizando standards
ubíquos baseados na Web
Economia
Permite a reciclagem de componentes, não é preciso instalação
nem uma integração muito forte dos mesmos
Automatização
Não é necessária intervenção humana mesmo em transacções
muito complexas
25 Web 2.0 e SAAS November 2008
26. Porquê os Web Services?
Acessibilidade
Sistemas legados e aplicações internas são expostas e podem ser
acedidas na Web
Disponibilidade
Serviços em qualquer dispositivo, em qualquer lugar, a qualquer
hora
Escalabilidade
Não existem limites no âmbito das aplicações nem na quantidade
de aplicações heterogéneas
26 Web 2.0 e SAAS November 2008
27. Impacto dos WS no Software
Web Services
“(Des)Integração” de
Aplicações Serviço Serviço Serviço
Aplic. Aplic. Aplic.
Software
Monolítico
Aplicação
Serviço Serviço Serviço
Sistema de Software Sistema Sistema Sistema
Computador
A Rede
27 Web 2.0 e SAAS November 2008
29. Web Services
Web Services e a EAI
EAI – Enterprise Application Integration
Modelo Clássico, sem EAI
29 Web 2.0 e SAAS November 2008
30. Web Services
Web Services e a EAI
Modelo com EAI
30 Web 2.0 e SAAS November 2008
31. Web Services
Web Services e a EAI
Vantagens dos Web Services face às Soluções Tradicionais de EAI
Simplicidade
Standards Abertos
Flexibilidade
Menor Custo
Âmbito
Eficiência
Dinamismo
31 Web 2.0 e SAAS November 2008
33. Componentes arquitecturais dos WS
Invocação de Serviços (SOAP)
Descrição dos Serviços (WSDL)
Registo (Publicação) e Descoberta de Serviços (UDDI)
33 Web 2.0 e SAAS November 2008
34. Web Services
Por detrás da Tecnologia
Tudo o que se discute aqui está baseado totalmente ou parcialmente em XML
SOAP (Simple Object Access Protocol)
WSDL (Web Services Description Language)
UDDI (Universal Description, Discovery, and Integration)
34 Web 2.0 e SAAS November 2008
35. Arquitectura dos Web Services
Operações
Publicação e/ou Remoção
Os Fornecedores de Serviços publicitam (ou não) os seus serviços junto de
um Broker de Serviços
Encontrar
Os Solicitadores de Serviços solicitam ao Broker de Serviços um serviços
que corresponda a um determinado critério
Ligar
Os Solicitadores de Serviços ligam-se aos Fornecedores de Serviços e
efectuam transações entre si
35 Web 2.0 e SAAS November 2008
36. Web Services
Intermediário de
serviços
Publicação Encontrar
Remoção
E-Business
SOAP
Fornecedor de Ligar Cliente de
serviços serviços
36 Web 2.0 e SAAS November 2008
37. Stack de standards dos WS
Publicar e Encontrar Serviços: UDDI
Descrição de Serviços: WSDL
Formato de Transporte: SOAP
Formato de dados universal: XML
Comunicações ubíquas: Internet
Simples, Aberto e com suporte alargado por parte da Indústria
37 Web 2.0 e SAAS November 2008
39. SOAP
Simple Object Access Protocol
Desenvolvido originalmente por Microsoft, UserLand,
developMentor, ...
Versão 1.0 era considerada como demasiado dependente
do Windows
IBM juntou-se aos esforços de desenvolvimento por forma
a tornar o SOAP mais independente do vendedor e da
plataforma
Uma implementação da segunda geração de do SOAP
pode ser encontrada (p.e) em http://xml.apache.org (1.2)
39 Web 2.0 e SAAS November 2008
40. SOAP
O que define o SOAP?
Envelope das Mensagens
Regras de Codificação
Convenção RPC
Ligação com os Protocolos subjacentes (HTTP e SMTP)
40 Web 2.0 e SAAS November 2008
41. SOAP
O envelope SOAP
Informação de Codificação
Header
Opcional
Pode conter conhecimento acerca do contexto
Segurança
Transacção
Body
Métodos RPC e os parâmetros
Dados aplicacionais
41 Web 2.0 e SAAS November 2008
43. SOAP
SOAP Message A mensagem SOAP completa
Headers Informação sobre o protocolo de
transporte e a ligação entre ambos
<Envelope> contém o payload da
SOAP Envelope mensagem
SOAP Header <Header> contém os headers da
mensagem
Headers Cada um dos headers
SOAP Body <Body> contém o nome da
mensagem SOAP
Message name
& Data Mensagem SOAP e os dados
codificados em XML
43 Web 2.0 e SAAS November 2008
44. SOAP
O SOAP oferece:
Um mecanismo para definir a unidade de comunicação;
Um mecanismo para lidar com erros que pode identificar a causa e que
permite a troca de informação de erro entre os participantes na
interacção;
Um mecanismo de extensão que permite a sua própria evolução;
Um mecanismo flexível de representação dos dados que permite a troca
de dados num determinado formato (texto, XML, …);
Uma convenção para representar estruturas de dados abstractas tais
como tipo de dados em formato XML;
Uma convenção para representar RPCs e as suas respostas em como
mensagens SOAP;
Uma aproximação document-centric para reflectir trocas de documentos
nas interacções de negócios mais natural;
Um mecanismo de ligação entre as mensagens SOAP e o HTTP.
44 Web 2.0 e SAAS November 2008
45. SOAP
Concepção do SOAP
Simplicidade
Independente do vendedor
Independente da linguagem
Independente do modelo de objectos
Independente do transporte
45 Web 2.0 e SAAS November 2008
46. Pedido SOAP
<SOAP-ENV:Envelope xmlns:SOAP-ENV=quot;…quot; SOAP-
ENV:encodingStyle=quot;…quot;>
<SOAP-ENV:Header>
<!-- Optional context information -->
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<m:GetLastTradePrice xmlns:m=“some_URIquot;>
<tickerSymbol>SUNW</tickerSymbol>
</m:GetLastTradePrice>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
46 Web 2.0 e SAAS November 2008
47. Resposta SOAP
<SOAP-ENV:Envelope xmlns:SOAP-ENV=quot;…quot; SOAP-
ENV:encodingStyle=quot;…quot;>
<SOAP-ENV:Header>
<!-- Optional context information -->
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<m:GetLastTradePriceResponse xmlns:m=“some_URIquot;>
<price>30.5</price>
</m:GetLastTradePriceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
47 Web 2.0 e SAAS November 2008
48. SOAP
Especificações SOAP
SOAP 1.2
http://www.w3.org/TR/SOAP
Mensagens SOAP e Attachments
http://www.w3.org/TR/SOAP-attachments/
Extensões de Segurança ao SOAP: Assinaturas Digitais
http://www.w3.org/TR/SOAP-dsig/
48 Web 2.0 e SAAS November 2008
50. WSDL
Web Services Description Language
É uma forma de descrever os Web Services
A descrição é realizada aquando da sua publicação
É preciso descrever o que procurar quando se efectua uma pesquisa
Quando se encontram as interfaces precisam igualmente de ser descritas
50 Web 2.0 e SAAS November 2008
51. Porquê WSDL?
WSDL usa a linguagem XML para descrever os Web Services
Um Web Service é descrito como
Um conjunto de pontos de comunicação (endpoints, portos)
Cada ponto de comunicação é composto por duas partes
Definições abstractas das operações e das mensagens
Uma ligação concreta a um protocolo de comunicação (e o correspondente
endereço do ponto de comunicação) e o formato da mensagem
Porque existe esta separação?
Para melhorar a reutilização (tal como acontece com as referências UDDI para
documentos WSDL)
51 Web 2.0 e SAAS November 2008
52. Porquê WSDL?
Permite uma automação dos detalhes de comunicação entre
parceiros que o pretendam fazer
As máquinas podem ler WSDL
As máquinas podem invocar um serviços definido por um WSDL
Descoberta através do registo
Arbítrio
Uma 3ª parte pode verificar se a comunicação está de acordo com o WSDL
52 Web 2.0 e SAAS November 2008
53. WSDL
Interface Implementation
<definitions> <definitions>
<import> <import>
<types> <service>
<message> <port>
<portType>
<binding>
53 Web 2.0 e SAAS November 2008
54. WSDL
Interface
• <definitions> é o nó de raíz de um
documento WSDL
<definitions>
• <import> permite a inclusão de outras
<import> entidades externas
• <types> contêm a descrição dos dados –
<types> XSD
• <message> define os parâmetros das
<message> funções do web service
• <portType> define as operações de input e
<portType>
de output
<binding> • <binding> especifica como é que cada
mensagem é enviada através da rede
54 Web 2.0 e SAAS November 2008
55. WSDL
Implementation
• <service> especifica os detalhes da
implementação do serviço
<definitions>
• <port> contém o endereço do web-service
<import>
<service>
<port>
55 Web 2.0 e SAAS November 2008
61. UDDI
Universal Description, Discovery and Integration
Define standards para um registo distribuído de Web Services:
Páginas Brancas (informação geral)
Páginas Amarelas (categorias de serviços)
Páginas Verdes (regras de negócio)
61 Web 2.0 e SAAS November 2008
62. UDDI
Páginas
Brancas
• Empresas registam informação acerca
delas próprias
Páginas
Amarelas
• Organismos de standardização, Páginas
programadores e empresas registam
Verdes
informação acerca dos seus tipos de
serviços
Registo do
Tipo de Serviços
62 Web 2.0 e SAAS November 2008
63. UDDI
As empresas registam a informação pública àcerca dos
seus negócios e web-services na directoria UDDI
Páginas Brancas Páginas Amarelas Páginas Verdes
• Nome do negócio • Índice de Produtos e • Regras de Negócio
Serviços Electrónico
• Informação de contacto
• Códigos de Indústria • Descrição dos serviços
• Descrição em formato
legível • Índice geográfico • Invocação de
Aplicações
• Diversos identificadores
conhecidos • Ligação a dados
63 Web 2.0 e SAAS November 2008
64. UDDI
Registo do Tipo de Serviços
Apontador para o namespace em que o serviços se encontra descrito
O que os programadores devem ler para perceber como utilizar o serviço
Identificação de quem publicou o serviço
Identificação do tipo de registo do serviço
Designado por tModelKey
Usado como assinatura pelos sites de web que implementem estes serviços
64 Web 2.0 e SAAS November 2008
66. UDDI
Fabricantes UDDI Business Registry
Descrição dos Web Services
Descrição dos negócios e dos serviços
que suportam
Modelo de programação, esquema e
independência da plataforma
Lojas
Usa XML, HTTP, e SOAP
Livre na Internet
Marketplaces
66 Web 2.0 e SAAS November 2008
67. UDDI
4.
1. Empresas de SW, organismos de
standardização, e programadores
“alimentam” o registo com
descrições dos diversos tipos de
serviços
Aplicações de marketplaces,
motores de busca e
2. empresas, questionam o
registo à procura de
descobrir serviços noutras
UDDI Business Registry empresas
Registo de 5.
Registo de
tipos de
Empresas Empresas
serviços
“alimentam” o
registo com
descrições dos 3. UBR atribui um identificador único a cada serviço
As empresas utilizam
e empresa
serviços que estes dados para
suportam facilitar uma
integração mais fácil
entre elas na Web
67 Web 2.0 e SAAS November 2008
68. UDDI
<find_business generic=quot;1.0quot; xmlns=quot;urn:uddi-org:apiquot;>
<name>Microsoft</name>
</find_business>
<businessList generic=quot;1.0“ operator=quot;Microsoft Corporation“ truncated=quot;false“ xmlns=quot;urn:uddi-org:apiquot;>
<businessInfos>
<businessInfo businessKey=quot;0076B468-EB27-42E5-AC09-9955CFF462A3quot;>
<name>Microsoft Corporation</name>
<description xml:lang=quot;enquot;> Empowering people through great software - any time, any place and on any device is Microsoft's vision. As the
worldwide leader in software for personal and business computing, we strive to produce innovative products and services that meet our customer's</
description>
<serviceInfos>
<serviceInfo businessKey=quot;0076B468-EB27-42E5-AC09-9955CFF462A3“ serviceKey=quot;1FFE1F71-2AF3-45FB-B788-09AF7FF151A4quot;>
<name>Web services for smart searching</name>
</serviceInfo>
<serviceInfo businessKey=quot;0076B468-EB27-42E5-AC09-9955CFF462A3“ serviceKey=quot;8BF2F51F-8ED4-43FE-B665-38D8205D1333quot;>
<name>Electronic Business Integration Services</name>
</serviceInfo>
<serviceInfo businessKey=quot;0076B468-EB27-42E5-AC09-9955CFF462A3“ serviceKey=quot;611C5867-384E-4FFD-B49C-28F93A7B4F9Bquot;>
<name>Volume Licensing Select Program</name>
</serviceInfo>
<serviceInfo businessKey=quot;0076B468-EB27-42E5-AC09-9955CFF462A3“ serviceKey=quot;A8E4999A-21A3-47FA-802E-EE50A88B266Fquot;>
<name>UDDI Web Sites</name>
</serviceInfo>
</serviceInfos>
</businessInfo>
</businessInfos>
</businessList>
68 Web 2.0 e SAAS November 2008
70. Colaboração entre WS
Business Business Process Execution Language
Processes for Web Services (BPEL4WS)
Quality of Reliable
Security Transactions
Service Messaging
Description Web Services Description Language (WSDL)
Simple Object Access Protocol (SOAP)
Other Protocols
Messaging
Extensible Markup Protocol (XML)
Other Services
70 Web 2.0 e SAAS November 2008
71. Outros standards de WS
Especificações WS-*
A serem desenvolvidas em colaboração por várias entidades (IBM, Sun, Microsoft, BEA,
Tibco, Verisign, SAP, etc)
• WS-Routing • WS-SecuredConversation
• WS-Referral • WS-SecurityPolicy
• WS-Inspection • WS-Policy
• WS-Security • WS-PolicyAttachment
• WS-Attachments • WS-PolicyAssertions
• WS-Coordination • WS-Addressing
• WS-Transaction • WS-ReliableMessaging
71 Web 2.0 e SAAS November 2008