SlideShare uma empresa Scribd logo
Considerações técnicas 
para atlas temáticos 
digitais e interfaces para 
dados abertos 
Conferência Web.br 
25 de setembro de 2014
Autores 
● Emerson Rocha Luiz 
– Full stack developer & coacher @ Alligo 
– @fititnt • emerson@alligo.com.br 
● Juliana Fernandes 
– UX Designer @ DUX Coworking 
– @julianafrost • juliana@vivendoporai.com.br 
● Tasso Evangelista 
– Desenvolvedor de sistemas de informação @ Alligo 
– @tassoevan • tasso@tassoevan.me
Agenda 
1. Arquitetura de Informação 
2. Interface 
3. Interação 
4. Semântica 
5. Acessibilidade 
6. Interoperabilidade 
7. Web service 
8. REST 
9. Linked Data 
10. JSON-LD
Motivação 
estudo de caso atlas.sies.org.br 
Atlas Digital da Economia Solidária 
Requisitos mínimos para atender a necessidade do governo 
(Solicitantes não trabalham como web, se baseiam por exemplos anteriores) 
1. Tem que ser na web 
2. Tem que permitir visualizar os dados e salvar como planilha 
3. Tem que ter mapas
Problemas em atlas existentes
Flash
Atlas Digitais e interfaces para dados abertos
Títulos h1, h2, h3... 
> document.querySelectorAll('h1, h2, h3, h4, h5, h6') 
[]
Atlas & Dados abertos 
● Atlas 
– Volume de ilustrações elucidativas de um texto ou de uma 
área do conhecimento (ex.: atlas de anatomia) 
● Dados abertos 
– São dados que podem ser livremente usados, reutilizados e 
redistribuídos por qualquer pessoa - sujeitos, no máximo, à 
exigência de atribuição da fonte e compartilhamento pelas 
mesmas regras
Atlas temático puro 
● Pode ser apenas livro impresso :( 
● Pode ser apenas link para um PDF ou 
imagem :( 
● Criadores devem escolher previamente o 
que e como mostrar :( 
● Pode ser visualmente lindo :) 
● Não requer interatividade :(
Dados abertos básico 
● Pode ser apenas link direto para uma 
planilha :( 
● Requer habilidade para extrair informações, 
até mesmo básicas :( 
● Requer ser parseável por máquinas :) 
● Não requer interatividade :(
Motivação 
Estudo de caso Atlas Digital SIES 
- “Podemos ir além do que esperam neste projeto?” 
- “Conseguem nos entregar ao menos o que esperamos?” 
- ”Sim.” 
- “Ok. Podem. Mas não precisam. O básico já está bom” 
Expectativa baixa, por falta de bons exemplos e do potencial da web
Web como solução!* 
* Leia-se: web com boas práticas 
Web Accessibility Initiative (WAI)
Atlas para 
humanos
1. Arquitetura de Informação 
Organização do caos da alta quantidade de dados
A.I. e Atlas Temáticos 
● Requer estudo específico da área temática 
● Requer estudo de Estatística e apresentação 
de dados numéricos 
● Wireframes são uma parte pequena do 
trabalho 
● Tentativa e erro é previsível
2. Interface 
Informação deve ser apresentada de forma coerente
Considerações técnicas 
● Cores devem levar em consideração 
daltonismo 
● Tamanhos devem levar em consideração 
visão baixa 
● Funcionalidades “aumento de fonte” e “alto 
contraste” não são justificativa para escolhas 
ruins por padrão
Além de layout padrão 
● Computador 
● Mobile 
● Impressão 
Acessibilidade requer cuidados 
especiais tanto na versão padrão 
como na para mobile
Atlas Digitais e interfaces para dados abertos
3. Interação 
Interações com dados melhoram experiência e compreensão
Interações com tecnologia web 
Aproveite potencial de Javascript e SVG para 
interações avançadas com dados sem 
depender de PDFs ou imagens geradas por 
servidor para gráficos e mapas
Atlas Digitais e interfaces para dados abertos
Atlas Digitais e interfaces para dados abertos
4. Semântica 
Implementação técnica precisa refletir o significado do conteúdo
Considerações gerais 
● Use títulos (h1, h2, h3...) de forma coerente 
– Aprenda o que é HTML outline 
– Cuidado ao usar tags HTML5 sem saber o que é outline 
– Erro mais comum de semântica em sites (mesmo famosos) 
● Use listas (ul, ol) apenas para o que é lista 
– Use sempre que coerente dl/dt/dd 
● Sempre tabelas para dados tabulares 
● Faça código como HTML5 Válido 
Gerador de outline 
https://gsnedders.html5.org
5. Acessibilidade 
O acesso ao conhecimento não deve ter barreiras 
Palestras recomendadas: 
http://pt.slideshare.net/ana_laura/w3c-acessibilidade 
http://pt.slideshare.net/julianafrost/acessibilidade-na-web-principais-problemas-e-solues
Ferramentas automáticas 
Leitores de tela mais usados 
● WAVE Web Accessibility Tool 
– http://wave.webaim.org 
● Cynthia Says™ 
– http://www.cynthiasays.com/ 
● Da Silva (alerta: falso positivos) 
– http://www.dasilva.org.br/ 
● Lista mais completa 
– http://www.w3.org/WAI/ER/tools/complete
Ferramentas automáticas 
falham 
Porém, geralmente, estão certas até que 
você prove o contrário 
Cheque manualmente erros e alertas 
acusados com documentação 
– http://www.governoeletronico.gov.br/acoes-e-projetos/e-MAG/ 
– http://www.w3.org/WAI/
Teste com leitores de tela 
Leitores de tela mais usados 
● Desktop 
– Windows: NVDA, JAWS 
– Linux: Orca 
– Mac: VoiceOver 
● Mobile 
– Android: TalkBack 
– Iphone/iPad/iPods: VoiceOver
Dispositivos mobile tem 
comportamento diferente 
● Geralmente não tem teclado 
– Certos padrões comuns no computador estão 
indisponíveis (navegação por tab, titulos, tabelas) 
● Mobile depende de eventos touchscreen 
– Sites não amigáveis a mobile podem ser inusáveis 
– Sites amigáveis a mobile também podem ser inusáveis 
– Leitores de tela podem tomar controle de comandos 
touchscreen
HTML mais acessível 
● Use ARIA landmarks sempre 
– Em 2014, ainda deve usar landmarks em elementos HTML5 
● Use demais tags ARIA quando pertinente 
– Exceto quando uma fonte segura disser que é redundante 
● Mesmo que pareça tecnicamente correto, 
teste com leitores de tela
Atlas para 
não-humanos
6. Interoperabilidade 
Integrabilidade entre sistemas através de padrões
O que é interoperabilidade? 
Poderes 
Empresas 
Sistema de 
Informação 
Sistema de 
Informação 
Prefeituras 
Terceiro 
Setor 
Outros 
governos 
Cidadãos 
Governos 
estaduais 
Sistema de 
Informação 
http://www.governoeletronico.gov.br/acoes-e-projetos/e-ping-padroes-de-interoperabilidade/o-que-e-interoperabilidade
7. Web service 
Interoperabilidade através da plataforma web
O que é web service? 
“[...] um sistema de software projetado para 
suportar interação interoperável entre 
máquinas sobre uma rede.” 
http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/#webservice
Arquitetura MVC genérica 
Modelo 
Controle 
Apresentação
Modelo mais detalhado 
Fonte de 
dados 
Mapeamento 
e persistência 
Domínio 
Controle 
Apresentação
Atlas sem web service 
Banco de 
dados 
ORM 
Regras de 
negócio 
Rotas/ações 
HTML e assets
Atlas com web service 
Web service 
Transporte e 
parsing 
Regras de 
negócio 
Rotas/ações 
HTML e assets
Ok, mas... Por que escrever 
um serviço que já existe?
Banco de dados 
● Drivers na camada da 
aplicação 
● SQL com vendor lock-in* 
● Segurança embutida 
● Mapeamento de objetos 
dependente do driver 
● Regras de negócio reduzem 
portabilidade 
http://en.wikipedia.org/wiki/SQL#Criticism
Web service 
● Façade sobre o banco de dados 
● Construído sobre web stardards 
● HTTP, SMTP, FTP etc. 
● Segurança como extensão do protocolo de transporte 
● Mapeamento de objetos definido pelo protocolo de 
mensagens 
● Domínio da aplicação compartilhado entre o web 
service e o front-end
Arquitetura do Atlas 
Banco de dados 
ORM 
Regras de negócio 
Recursos 
Objetos serializados 
Transporte e parsing 
Domínio mínimo 
Rotas/ações 
HTML e assets 
Banco de dados 
Front-end 
Web service
E a interoperabilidade? 
● Permitir que terceiros criem seus próprios 
aplicativos web alimentados pelo web service 
● Redução de complexidade via divisão de 
responsabilidades 
● Agilidade para refatorar e adicionar funcionalidades 
● Facilidade de fazer testes unitários 
● Simplifica escalabilidade 
● É uma recomendação ePing 
http://eping.governoeletronico.gov.br/#s10.3
8. REST 
Conceito popular em web APIs, porém incompreendido
Representational state transfer 
● É uma arquitetura 
● É protocol-agnostic 
● Serialização em vários formatos 
● RSDL é opcional, existem alternativas e 
geralmente o foco é para documentação 
● Controles de hipermídia
Resposta JSON 
http://example.com/localidades/43 
{ 
"codigo": 43, 
"tipo": "unidadefederativa", 
"nome": "Rio Grande do Sul", 
"sigla": "RS" 
}
Web API REST(ful?) 
● Cliente-Servidor 
● Stateless 
● Sistema em camadas 
● Código sob demanda (opcional) 
● Interface uniforme 
– URIs 
– HATEOAS
HATEOAS 
A Web como conhecemos 
– Documentos de hipertexto têm hiperlinks 
● Hiperlinks representam documentos relacionados 
As APIs RESTful 
– Formatos de hipermídia têm hiperlinks 
– Outros formatos são servidos com HTTP + Web Linking* 
● Hiperlinks representam documentos e ações relacionadas 
http://tools.ietf.org/html/rfc5988
O “mimimi” sobre HATEOAS 
● “HATEOAS é doloroso: muito difícil.” 
– Pense em RDF. 
● “HATEOAS é estúpido: não existem clientes 
inteligentes que interpretem os dados sem 
uma descrição.” 
– IDLs (e.g. RSDL, WSDL) são permitidas em REST 
– Uma API RESTful não faz sentido sem um cliente RESTful 
– O front-end pode não ser inteligente, mas clientes como 
crawlers são
9. Linked Data 
Semântica para maquinas
Web Semântica 
● Web dos Documentos
Web Semântica 
● Web dos Documentos 
● Web dos Dados 
– Acessíveis para humanos e para máquinas 
– Ligados através de uma semântica 
http://www.w3.org/standards/semanticweb/
Tecnologias envolvidas 
● URIs 
● HTTP 
● RDF 
● SPARQL 
● RDFa, RDF/XML, N3, Turtle, JSON-LD
10. JSON-LD 
Adição de semântica a web APIs com JSON
JSON + Linked Data
Resposta JSON-LD expandida 
http://example.com/localidades/43 
{ 
"@id": "http://example.com/localidades/43", 
"@type": "http://schema.org/State", 
"http://schema.org/name": "Rio Grande do Sul", 
"http://schema.org/alternateName": "RS", 
"http://schema.org/containedIn": { 
"@id": "http://example.com/localidades/4” 
} 
}
Resposta JSON-LD compacta 
http://example.com/localidades/43 
{ 
"@context": { 
"codigo": null, 
"tipo": null, 
"nome": "http://schema.org/name", 
"sigla": "http://schema.org/alternateName", 
"contidaEm": { 
"@id": "http://schema.org/containedIn", 
"@type": "http://schema.org/AdministrativeArea", 
"@value": "@id" 
} 
}, 
"@id": "http://example.com/localidades/43", 
"@type": "http://schema.org/State", 
"nome": "Rio Grande do Sul", 
"sigla": "RS", 
"contidaEm": "http://example.com/localidades/4” 
}
Resposta JSON-LD na prática
Atlas Digitais e interfaces para dados abertos
Obrigado! 
● Emerson Rocha Luiz 
– Full stack developer & coacher @ Alligo 
– @fititnt • emerson@alligo.com.br 
● Juliana Fernandes 
– UX Designer @ DUX Coworking 
– @julianafrost • juliana@vivendoporai.com.br 
● Tasso Evangelista 
– Desenvolvedor de sistemas de informação @ Alligo 
– @tassoevan • tasso@tassoevan.me

Mais conteúdo relacionado

PDF
UX of HTML5
PPTX
Zorgzame Journalistiek
PDF
Future of the Magento Ecosystem
PDF
5S+1
PDF
Brucke broshure sfsf 201 411.comp
PPTX
The loneliness of the sprint manager or 'where is my team?'
PDF
Fundamentos Pc2009 Ebook
PDF
Investment gaps and competitiveness - Thomas Barrett, European Investment Bank
UX of HTML5
Zorgzame Journalistiek
Future of the Magento Ecosystem
5S+1
Brucke broshure sfsf 201 411.comp
The loneliness of the sprint manager or 'where is my team?'
Fundamentos Pc2009 Ebook
Investment gaps and competitiveness - Thomas Barrett, European Investment Bank

Destaque (14)

DOC
Fiche d'inscription SME 2015
PPT
Nosql series-part-3-hypertable
PPTX
PDF
Master-Internacional-en-Coaching-11ed-AICP-EICP
PDF
Acuerdos JGL 30/10/2015
PDF
Twitter für Medienunternehmen als pdf
PPTX
Computing - Week 2 - Technology
PPT
GMU PTAP - Securty & Facility Clearances
DOCX
PDF
A globalização da comunixcação
PDF
Nbr 5410 -_2005_-_instalacoes_de_baixa_tensao
ODP
Prototipacao para Computacao Fisica
PDF
WEBHELP at VIVA TECHNOLOGY - DAY 1 #vivatech
PDF
The SCCIPA Story 24 jan12
Fiche d'inscription SME 2015
Nosql series-part-3-hypertable
Master-Internacional-en-Coaching-11ed-AICP-EICP
Acuerdos JGL 30/10/2015
Twitter für Medienunternehmen als pdf
Computing - Week 2 - Technology
GMU PTAP - Securty & Facility Clearances
A globalização da comunixcação
Nbr 5410 -_2005_-_instalacoes_de_baixa_tensao
Prototipacao para Computacao Fisica
WEBHELP at VIVA TECHNOLOGY - DAY 1 #vivatech
The SCCIPA Story 24 jan12
Anúncio

Semelhante a Atlas Digitais e interfaces para dados abertos (20)

ODP
Apresentação Minas - Desenvolvendo Sites
PDF
Drupal a escolha certa para o seus próximos projetos
PPTX
Montando sites com XHTML e CSS utilizando os padrões web
ODP
Oficina técnica da Infraestrutura Nacional de Dados Abertos - INDA
PDF
Desenvolvimento web com software livre
PDF
Desenvolvimento web com Software Livre
PDF
Palestra urutai-mobile
PPT
A Linguagem Php
PDF
Html5 - Notas de aula
PDF
Habilidades necessárias para integrar aplicativos e dados
ODP
Oficina Técnica da INDA em Belém no Consegi
PPTX
Do mapa mental para Serviços de Dados até APIs
PPTX
Lecture 7 :: Ferramentas Case
PPSX
Conhecendo o Django
PPTX
Projeto Web - Aula 1 - Fundamentos do Dev WEB.pptx
PDF
Seminário de Desenvolvimento Mobile - Etec Cafelândia
PDF
TDC2017 - Misturando dados com Pentaho para insights mais significativos
PPSX
Introdução aos Padrões Web e Tecnologias para o Ambiente Digital - Aula 02 - ...
PPT
Tesi Dados Final
PDF
Drupal a escolha certa para os seus projetos
Apresentação Minas - Desenvolvendo Sites
Drupal a escolha certa para o seus próximos projetos
Montando sites com XHTML e CSS utilizando os padrões web
Oficina técnica da Infraestrutura Nacional de Dados Abertos - INDA
Desenvolvimento web com software livre
Desenvolvimento web com Software Livre
Palestra urutai-mobile
A Linguagem Php
Html5 - Notas de aula
Habilidades necessárias para integrar aplicativos e dados
Oficina Técnica da INDA em Belém no Consegi
Do mapa mental para Serviços de Dados até APIs
Lecture 7 :: Ferramentas Case
Conhecendo o Django
Projeto Web - Aula 1 - Fundamentos do Dev WEB.pptx
Seminário de Desenvolvimento Mobile - Etec Cafelândia
TDC2017 - Misturando dados com Pentaho para insights mais significativos
Introdução aos Padrões Web e Tecnologias para o Ambiente Digital - Aula 02 - ...
Tesi Dados Final
Drupal a escolha certa para os seus projetos
Anúncio

Último (9)

PPTX
Perguntas e respostas.pptx Informática aplicada
DOC
COMO CRIAR DASHBOARD ATRAVES DE CODIFICAÇÃO PYTHON
PDF
Plano de gestão - template.pptx.pdf.pdf
PDF
Medidor de PH de bancada PH140 para uso em laboratório
PPT
AULA COACHING INICIAL *******************
PPTX
Apresentação Lagoa Mandaú Lagoa Mandaú Lagoa Mandaú
PDF
Bases de dados - basicos dos basicos. como identificar chaves
PPTX
Sermao a mensagem da Cruz.pptx gdfvdcdfdfdsfcdsfxdfdfdfvdgf
PDF
48585b89-ee4d-4f8d-b2c0-7db19cc44e44.pdf
Perguntas e respostas.pptx Informática aplicada
COMO CRIAR DASHBOARD ATRAVES DE CODIFICAÇÃO PYTHON
Plano de gestão - template.pptx.pdf.pdf
Medidor de PH de bancada PH140 para uso em laboratório
AULA COACHING INICIAL *******************
Apresentação Lagoa Mandaú Lagoa Mandaú Lagoa Mandaú
Bases de dados - basicos dos basicos. como identificar chaves
Sermao a mensagem da Cruz.pptx gdfvdcdfdfdsfcdsfxdfdfdfvdgf
48585b89-ee4d-4f8d-b2c0-7db19cc44e44.pdf

Atlas Digitais e interfaces para dados abertos

  • 1. Considerações técnicas para atlas temáticos digitais e interfaces para dados abertos Conferência Web.br 25 de setembro de 2014
  • 2. Autores ● Emerson Rocha Luiz – Full stack developer & coacher @ Alligo – @fititnt • emerson@alligo.com.br ● Juliana Fernandes – UX Designer @ DUX Coworking – @julianafrost • juliana@vivendoporai.com.br ● Tasso Evangelista – Desenvolvedor de sistemas de informação @ Alligo – @tassoevan • tasso@tassoevan.me
  • 3. Agenda 1. Arquitetura de Informação 2. Interface 3. Interação 4. Semântica 5. Acessibilidade 6. Interoperabilidade 7. Web service 8. REST 9. Linked Data 10. JSON-LD
  • 4. Motivação estudo de caso atlas.sies.org.br Atlas Digital da Economia Solidária Requisitos mínimos para atender a necessidade do governo (Solicitantes não trabalham como web, se baseiam por exemplos anteriores) 1. Tem que ser na web 2. Tem que permitir visualizar os dados e salvar como planilha 3. Tem que ter mapas
  • 5. Problemas em atlas existentes
  • 8. Títulos h1, h2, h3... > document.querySelectorAll('h1, h2, h3, h4, h5, h6') []
  • 9. Atlas & Dados abertos ● Atlas – Volume de ilustrações elucidativas de um texto ou de uma área do conhecimento (ex.: atlas de anatomia) ● Dados abertos – São dados que podem ser livremente usados, reutilizados e redistribuídos por qualquer pessoa - sujeitos, no máximo, à exigência de atribuição da fonte e compartilhamento pelas mesmas regras
  • 10. Atlas temático puro ● Pode ser apenas livro impresso :( ● Pode ser apenas link para um PDF ou imagem :( ● Criadores devem escolher previamente o que e como mostrar :( ● Pode ser visualmente lindo :) ● Não requer interatividade :(
  • 11. Dados abertos básico ● Pode ser apenas link direto para uma planilha :( ● Requer habilidade para extrair informações, até mesmo básicas :( ● Requer ser parseável por máquinas :) ● Não requer interatividade :(
  • 12. Motivação Estudo de caso Atlas Digital SIES - “Podemos ir além do que esperam neste projeto?” - “Conseguem nos entregar ao menos o que esperamos?” - ”Sim.” - “Ok. Podem. Mas não precisam. O básico já está bom” Expectativa baixa, por falta de bons exemplos e do potencial da web
  • 13. Web como solução!* * Leia-se: web com boas práticas Web Accessibility Initiative (WAI)
  • 15. 1. Arquitetura de Informação Organização do caos da alta quantidade de dados
  • 16. A.I. e Atlas Temáticos ● Requer estudo específico da área temática ● Requer estudo de Estatística e apresentação de dados numéricos ● Wireframes são uma parte pequena do trabalho ● Tentativa e erro é previsível
  • 17. 2. Interface Informação deve ser apresentada de forma coerente
  • 18. Considerações técnicas ● Cores devem levar em consideração daltonismo ● Tamanhos devem levar em consideração visão baixa ● Funcionalidades “aumento de fonte” e “alto contraste” não são justificativa para escolhas ruins por padrão
  • 19. Além de layout padrão ● Computador ● Mobile ● Impressão Acessibilidade requer cuidados especiais tanto na versão padrão como na para mobile
  • 21. 3. Interação Interações com dados melhoram experiência e compreensão
  • 22. Interações com tecnologia web Aproveite potencial de Javascript e SVG para interações avançadas com dados sem depender de PDFs ou imagens geradas por servidor para gráficos e mapas
  • 25. 4. Semântica Implementação técnica precisa refletir o significado do conteúdo
  • 26. Considerações gerais ● Use títulos (h1, h2, h3...) de forma coerente – Aprenda o que é HTML outline – Cuidado ao usar tags HTML5 sem saber o que é outline – Erro mais comum de semântica em sites (mesmo famosos) ● Use listas (ul, ol) apenas para o que é lista – Use sempre que coerente dl/dt/dd ● Sempre tabelas para dados tabulares ● Faça código como HTML5 Válido Gerador de outline https://gsnedders.html5.org
  • 27. 5. Acessibilidade O acesso ao conhecimento não deve ter barreiras Palestras recomendadas: http://pt.slideshare.net/ana_laura/w3c-acessibilidade http://pt.slideshare.net/julianafrost/acessibilidade-na-web-principais-problemas-e-solues
  • 28. Ferramentas automáticas Leitores de tela mais usados ● WAVE Web Accessibility Tool – http://wave.webaim.org ● Cynthia Says™ – http://www.cynthiasays.com/ ● Da Silva (alerta: falso positivos) – http://www.dasilva.org.br/ ● Lista mais completa – http://www.w3.org/WAI/ER/tools/complete
  • 29. Ferramentas automáticas falham Porém, geralmente, estão certas até que você prove o contrário Cheque manualmente erros e alertas acusados com documentação – http://www.governoeletronico.gov.br/acoes-e-projetos/e-MAG/ – http://www.w3.org/WAI/
  • 30. Teste com leitores de tela Leitores de tela mais usados ● Desktop – Windows: NVDA, JAWS – Linux: Orca – Mac: VoiceOver ● Mobile – Android: TalkBack – Iphone/iPad/iPods: VoiceOver
  • 31. Dispositivos mobile tem comportamento diferente ● Geralmente não tem teclado – Certos padrões comuns no computador estão indisponíveis (navegação por tab, titulos, tabelas) ● Mobile depende de eventos touchscreen – Sites não amigáveis a mobile podem ser inusáveis – Sites amigáveis a mobile também podem ser inusáveis – Leitores de tela podem tomar controle de comandos touchscreen
  • 32. HTML mais acessível ● Use ARIA landmarks sempre – Em 2014, ainda deve usar landmarks em elementos HTML5 ● Use demais tags ARIA quando pertinente – Exceto quando uma fonte segura disser que é redundante ● Mesmo que pareça tecnicamente correto, teste com leitores de tela
  • 34. 6. Interoperabilidade Integrabilidade entre sistemas através de padrões
  • 35. O que é interoperabilidade? Poderes Empresas Sistema de Informação Sistema de Informação Prefeituras Terceiro Setor Outros governos Cidadãos Governos estaduais Sistema de Informação http://www.governoeletronico.gov.br/acoes-e-projetos/e-ping-padroes-de-interoperabilidade/o-que-e-interoperabilidade
  • 36. 7. Web service Interoperabilidade através da plataforma web
  • 37. O que é web service? “[...] um sistema de software projetado para suportar interação interoperável entre máquinas sobre uma rede.” http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/#webservice
  • 38. Arquitetura MVC genérica Modelo Controle Apresentação
  • 39. Modelo mais detalhado Fonte de dados Mapeamento e persistência Domínio Controle Apresentação
  • 40. Atlas sem web service Banco de dados ORM Regras de negócio Rotas/ações HTML e assets
  • 41. Atlas com web service Web service Transporte e parsing Regras de negócio Rotas/ações HTML e assets
  • 42. Ok, mas... Por que escrever um serviço que já existe?
  • 43. Banco de dados ● Drivers na camada da aplicação ● SQL com vendor lock-in* ● Segurança embutida ● Mapeamento de objetos dependente do driver ● Regras de negócio reduzem portabilidade http://en.wikipedia.org/wiki/SQL#Criticism
  • 44. Web service ● Façade sobre o banco de dados ● Construído sobre web stardards ● HTTP, SMTP, FTP etc. ● Segurança como extensão do protocolo de transporte ● Mapeamento de objetos definido pelo protocolo de mensagens ● Domínio da aplicação compartilhado entre o web service e o front-end
  • 45. Arquitetura do Atlas Banco de dados ORM Regras de negócio Recursos Objetos serializados Transporte e parsing Domínio mínimo Rotas/ações HTML e assets Banco de dados Front-end Web service
  • 46. E a interoperabilidade? ● Permitir que terceiros criem seus próprios aplicativos web alimentados pelo web service ● Redução de complexidade via divisão de responsabilidades ● Agilidade para refatorar e adicionar funcionalidades ● Facilidade de fazer testes unitários ● Simplifica escalabilidade ● É uma recomendação ePing http://eping.governoeletronico.gov.br/#s10.3
  • 47. 8. REST Conceito popular em web APIs, porém incompreendido
  • 48. Representational state transfer ● É uma arquitetura ● É protocol-agnostic ● Serialização em vários formatos ● RSDL é opcional, existem alternativas e geralmente o foco é para documentação ● Controles de hipermídia
  • 49. Resposta JSON http://example.com/localidades/43 { "codigo": 43, "tipo": "unidadefederativa", "nome": "Rio Grande do Sul", "sigla": "RS" }
  • 50. Web API REST(ful?) ● Cliente-Servidor ● Stateless ● Sistema em camadas ● Código sob demanda (opcional) ● Interface uniforme – URIs – HATEOAS
  • 51. HATEOAS A Web como conhecemos – Documentos de hipertexto têm hiperlinks ● Hiperlinks representam documentos relacionados As APIs RESTful – Formatos de hipermídia têm hiperlinks – Outros formatos são servidos com HTTP + Web Linking* ● Hiperlinks representam documentos e ações relacionadas http://tools.ietf.org/html/rfc5988
  • 52. O “mimimi” sobre HATEOAS ● “HATEOAS é doloroso: muito difícil.” – Pense em RDF. ● “HATEOAS é estúpido: não existem clientes inteligentes que interpretem os dados sem uma descrição.” – IDLs (e.g. RSDL, WSDL) são permitidas em REST – Uma API RESTful não faz sentido sem um cliente RESTful – O front-end pode não ser inteligente, mas clientes como crawlers são
  • 53. 9. Linked Data Semântica para maquinas
  • 54. Web Semântica ● Web dos Documentos
  • 55. Web Semântica ● Web dos Documentos ● Web dos Dados – Acessíveis para humanos e para máquinas – Ligados através de uma semântica http://www.w3.org/standards/semanticweb/
  • 56. Tecnologias envolvidas ● URIs ● HTTP ● RDF ● SPARQL ● RDFa, RDF/XML, N3, Turtle, JSON-LD
  • 57. 10. JSON-LD Adição de semântica a web APIs com JSON
  • 59. Resposta JSON-LD expandida http://example.com/localidades/43 { "@id": "http://example.com/localidades/43", "@type": "http://schema.org/State", "http://schema.org/name": "Rio Grande do Sul", "http://schema.org/alternateName": "RS", "http://schema.org/containedIn": { "@id": "http://example.com/localidades/4” } }
  • 60. Resposta JSON-LD compacta http://example.com/localidades/43 { "@context": { "codigo": null, "tipo": null, "nome": "http://schema.org/name", "sigla": "http://schema.org/alternateName", "contidaEm": { "@id": "http://schema.org/containedIn", "@type": "http://schema.org/AdministrativeArea", "@value": "@id" } }, "@id": "http://example.com/localidades/43", "@type": "http://schema.org/State", "nome": "Rio Grande do Sul", "sigla": "RS", "contidaEm": "http://example.com/localidades/4” }
  • 63. Obrigado! ● Emerson Rocha Luiz – Full stack developer & coacher @ Alligo – @fititnt • emerson@alligo.com.br ● Juliana Fernandes – UX Designer @ DUX Coworking – @julianafrost • juliana@vivendoporai.com.br ● Tasso Evangelista – Desenvolvedor de sistemas de informação @ Alligo – @tassoevan • tasso@tassoevan.me