1) O documento apresenta uma palestra sobre construção de sistemas distribuídos usando arquitetura REST.
2) REST foi escolhido por permitir escalabilidade, performance alta, disponibilidade e evolução do sistema sem paradas. HTTP, caches e outros recursos da web foram fatores importantes.
3) A arquitetura REST implementada no sistema Alexandria da Abril usa recursos, representações e hipermídia para integrar domínios, serviços e dados de forma uniforme e escalável.
Apresentação realizada em 05/12/2012 no JavaOneBrasil, com o Felipe Firmo pela Sensedia.
O objetivo dessa palestra foi apresentar o trabalho em andamento sobre o tema REST para a publicação de APIs por clientes de grande porte.
Como um verdadeiro sistema REST funciona: arquitetura e performance na AbrilLuis Cipriani
A palestra irá compartilhar a experiência e lições aprendidas no desenvolvimento da plataforma de publicação da Abril, um sistema distribuído com vários nós independentes que se comunicam usando REST e hypermidia. Também introduziremos alguns conceitos avançados de HTTP que podem fazer com que sistemas REST executem com melhor performance, evitando os problemas comuns de se manter uma plataforma em larga escala, com uma grande diversidade de usuários.
REST – Desmistificando A Implementação De Web Services REST Em Java Visite o blog: http://carledwinj.wordpress.com/2013/07/10/criando-web-service-e-web-service-client-com-jax-ws-passo-a-passo/
Quais são os desafios e as oportunidades que essa tecnologia vai propiciar, qual é o impacto no desenvolvimento para internet e como a Adobe pode auxiliá-los a usufruir aos máximos dos benefícios do HTML 5 e suas linguagens parceiras (CSS e Java Script)
Modelagem e implementação de um sistema de arquivos distribuído baseado em DHTFábio Serra
Uma característica dos sistemas de arquivos para redes é que todas as operações de leitura e escrita são realizadas por um servidor, causando uma centralização de carga de processamento e armazenamento.
Uma alternativa para resolver este problema é a configuração de um sistema de arquivos distribuído, em que os dados permanecem espalhados de forma controlada, entre diversas máquinas constituintes de um agrupamento. Dessa forma a carga é dividida entre todos os computadores da rede. Exemplos desse modelo de sistema são o Andrew File System, CODA, SPRITE e Google File System.
Os objetivos desse projeto são a pesquisa, implementação e a elaboração da documentação técnica de um sistema de arquivos distribuído em nível de usuário. Possuindo requisitos como transparência, escalabilidade e replicação e fragmentação dos arquivos.
Para atender estes requisitos, o sistema foi montado sobre uma tabela hash distribuída (DHT) que cria uma rede de sobreposição fornecendo os métodos necessários para o gerenciamento dos dados do sistema. Desta maneira, as máquinas clientes obtém a localização dos arquivos através de consultas na DHT que possui o mapeamento de um determinado hash a uma máquina servidora responsável pelo arquivo.
Apresentação realizada em 05/12/2012 no JavaOneBrasil, com o Felipe Firmo pela Sensedia.
O objetivo dessa palestra foi apresentar o trabalho em andamento sobre o tema REST para a publicação de APIs por clientes de grande porte.
Como um verdadeiro sistema REST funciona: arquitetura e performance na AbrilLuis Cipriani
A palestra irá compartilhar a experiência e lições aprendidas no desenvolvimento da plataforma de publicação da Abril, um sistema distribuído com vários nós independentes que se comunicam usando REST e hypermidia. Também introduziremos alguns conceitos avançados de HTTP que podem fazer com que sistemas REST executem com melhor performance, evitando os problemas comuns de se manter uma plataforma em larga escala, com uma grande diversidade de usuários.
REST – Desmistificando A Implementação De Web Services REST Em Java Visite o blog: http://carledwinj.wordpress.com/2013/07/10/criando-web-service-e-web-service-client-com-jax-ws-passo-a-passo/
Quais são os desafios e as oportunidades que essa tecnologia vai propiciar, qual é o impacto no desenvolvimento para internet e como a Adobe pode auxiliá-los a usufruir aos máximos dos benefícios do HTML 5 e suas linguagens parceiras (CSS e Java Script)
Modelagem e implementação de um sistema de arquivos distribuído baseado em DHTFábio Serra
Uma característica dos sistemas de arquivos para redes é que todas as operações de leitura e escrita são realizadas por um servidor, causando uma centralização de carga de processamento e armazenamento.
Uma alternativa para resolver este problema é a configuração de um sistema de arquivos distribuído, em que os dados permanecem espalhados de forma controlada, entre diversas máquinas constituintes de um agrupamento. Dessa forma a carga é dividida entre todos os computadores da rede. Exemplos desse modelo de sistema são o Andrew File System, CODA, SPRITE e Google File System.
Os objetivos desse projeto são a pesquisa, implementação e a elaboração da documentação técnica de um sistema de arquivos distribuído em nível de usuário. Possuindo requisitos como transparência, escalabilidade e replicação e fragmentação dos arquivos.
Para atender estes requisitos, o sistema foi montado sobre uma tabela hash distribuída (DHT) que cria uma rede de sobreposição fornecendo os métodos necessários para o gerenciamento dos dados do sistema. Desta maneira, as máquinas clientes obtém a localização dos arquivos através de consultas na DHT que possui o mapeamento de um determinado hash a uma máquina servidora responsável pelo arquivo.
Material do minicurso de android da semana academica de eletronica. Material para ensinar a utilização de ListView com adapter personalizado e download e parse de JSON de webservice
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...Luis Cipriani
A palestra irá apresentar os desafios e as lições aprendidas em 3 anos de desenvolvimento de uma plataforma para gerência e publicação de conteúdo digital na Abril Mídia que aplica os conceitos de arquiteturas REST e APIs Hipermídia para conseguir entregar um grande volume de informação em diversos tipos de dispositivos. A plataforma é constituída de inúmeros domínios de informação, modulares e independentes, que se integram para permitir a criação de produtos digitais de forma mais ágil. Atualmente a plataforma suporta 14 sites e mais de 12 milhões de pageviews/mês e possui uma arquitetura poliglota, ou seja, com uma grande variedade de linguagens e tecnologias utilizadas.
O AngularJS tem atraído muita atenção dos desenvolvedores, e a maioria das aplicações utilizando esse framework open source necessitam se comunicar por meio de APIs web. A plataforma Java EE, com sua robustez e suporte avançado a REST, é uma das melhoras soluções atuais para suportar todos os requisitos de uma API REST de backend para aplicações baseadas em HTML5 e AngularJS.
Esta palestra abordará como construir uma aplicação em AngularJS utilizando tecnologias backend Java EE, incluindo JAX-RS, WebSockets, JSON-P e CDI. Ao final você vai entender os benefícios do uso destas tecnologias, bem como padrões e boas práticas aplicadas nesse modelo de desenvolvimento. Os tópicos abordados incluem JavaScript, HTML5, AngularJS e várias APIs do Java EE.
O AngularJS tem atraído muita atenção dos desenvolvedores, e a maioria das aplicações utilizando esse framework open source necessitam se comunicar por meio de APIs web. A plataforma Java EE, com sua robustez e suporte avançado a REST, é uma das melhoras soluções atuais para suportar todos os requisitos de uma API REST de backend para aplicações baseadas em HTML5 e AngularJS.
Esta palestra abordará como construir uma aplicação em AngularJS utilizando tecnologias backend Java EE, incluindo JAX-RS, WebSockets, JSON-P e CDI. Ao final você vai entender os benefícios do uso destas tecnologias, bem como padrões e boas práticas aplicadas nesse modelo de desenvolvimento. Os tópicos abordados incluem JavaScript, HTML5, AngularJS e várias APIs do Java EE.
AngularJS tem atraído muita atenção ultimamente e a maioria das aplicações utilizando Angular necessitam comunicar-se por meio de uma API REST. A plataforma Java EE com sua robustez e o seu avançado suporte a REST é uma das melhoras soluções atuais para suportar todos os requisitos de uma API REST backend para aplicações baseadas em HTML5 e AngularJS. Esta palestra abordará como construir uma aplicação em Angular utilizando tecnologias backend Java EE, como JAX-RS, WebSockets, JSON-P e CDI. Ao final desta sessão, você vai entender os benefícios no uso destas tecnologias, bem como padrões e boas práticas aplicadas neste modelo de desenvolvimento. Os tópicos abordados incluem: Javascript, HTML5, AngularJS, algumas API's Java EE (JAX-RS, WebSockets, JSON-P, CDI).
Material do minicurso de android da semana academica de eletronica. Material para ensinar a utilização de ListView com adapter personalizado e download e parse de JSON de webservice
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...Luis Cipriani
A palestra irá apresentar os desafios e as lições aprendidas em 3 anos de desenvolvimento de uma plataforma para gerência e publicação de conteúdo digital na Abril Mídia que aplica os conceitos de arquiteturas REST e APIs Hipermídia para conseguir entregar um grande volume de informação em diversos tipos de dispositivos. A plataforma é constituída de inúmeros domínios de informação, modulares e independentes, que se integram para permitir a criação de produtos digitais de forma mais ágil. Atualmente a plataforma suporta 14 sites e mais de 12 milhões de pageviews/mês e possui uma arquitetura poliglota, ou seja, com uma grande variedade de linguagens e tecnologias utilizadas.
O AngularJS tem atraído muita atenção dos desenvolvedores, e a maioria das aplicações utilizando esse framework open source necessitam se comunicar por meio de APIs web. A plataforma Java EE, com sua robustez e suporte avançado a REST, é uma das melhoras soluções atuais para suportar todos os requisitos de uma API REST de backend para aplicações baseadas em HTML5 e AngularJS.
Esta palestra abordará como construir uma aplicação em AngularJS utilizando tecnologias backend Java EE, incluindo JAX-RS, WebSockets, JSON-P e CDI. Ao final você vai entender os benefícios do uso destas tecnologias, bem como padrões e boas práticas aplicadas nesse modelo de desenvolvimento. Os tópicos abordados incluem JavaScript, HTML5, AngularJS e várias APIs do Java EE.
O AngularJS tem atraído muita atenção dos desenvolvedores, e a maioria das aplicações utilizando esse framework open source necessitam se comunicar por meio de APIs web. A plataforma Java EE, com sua robustez e suporte avançado a REST, é uma das melhoras soluções atuais para suportar todos os requisitos de uma API REST de backend para aplicações baseadas em HTML5 e AngularJS.
Esta palestra abordará como construir uma aplicação em AngularJS utilizando tecnologias backend Java EE, incluindo JAX-RS, WebSockets, JSON-P e CDI. Ao final você vai entender os benefícios do uso destas tecnologias, bem como padrões e boas práticas aplicadas nesse modelo de desenvolvimento. Os tópicos abordados incluem JavaScript, HTML5, AngularJS e várias APIs do Java EE.
AngularJS tem atraído muita atenção ultimamente e a maioria das aplicações utilizando Angular necessitam comunicar-se por meio de uma API REST. A plataforma Java EE com sua robustez e o seu avançado suporte a REST é uma das melhoras soluções atuais para suportar todos os requisitos de uma API REST backend para aplicações baseadas em HTML5 e AngularJS. Esta palestra abordará como construir uma aplicação em Angular utilizando tecnologias backend Java EE, como JAX-RS, WebSockets, JSON-P e CDI. Ao final desta sessão, você vai entender os benefícios no uso destas tecnologias, bem como padrões e boas práticas aplicadas neste modelo de desenvolvimento. Os tópicos abordados incluem: Javascript, HTML5, AngularJS, algumas API's Java EE (JAX-RS, WebSockets, JSON-P, CDI).
Palestra apresentada no II BootCamp OescLivre e Unoesc São Miguel com o tema: Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3, onde apresentamos uma alternativa de divisão de tarefas utilizadas na Camtwo com os frameworks citados.
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
Nesta sessão abordamos a performance de Sistemas de Informação desenvolvidos na plataforma ASP.NET com recurso a SQL Server com SGBD. Iremos explicar como surgem os problemas de performance em sistemas com alguns anos de existência e qual a abordagem a tomar, quando temos utilizadores insatisfeitos.
Abordaremos também alguns casos de sucesso no mercado a nível de sistemas de alta disponibilidade e como o mercado tem evoluído. De uma forma geral, pretendemos demonstrar técnicas de análise/tuning de performance em ASP.NET e sua evolução ao longo das várias versões, como também algumas técnicas de requisitos para obtenção e estruturação da informação.
Finalmente, o objetivo passa por divulgar procedimentos, técnicas e ferramentas que sirvam como uma referência que possam ser úteis caso surjam problemas de performance nos nossos sistemas de futuro, entre os quais : Do’s & Dont’s, Systematic Tuning, ASP.NET Trace, VS Profiling Tools, SQL Profiler entre outros.
A constante evolução de cada integrante das equipes reflete na manutenção de times de alta performance. abordando o impacto do crescimento acelerado sobre a cultura e o ambiente de trabalho, e as sutilezas envolvidas em combinar competitividade com cooperação e colaboração. São discutidas também as vantagens e desvantagens entre times especialistas e times autossuficientes, organização de sprints; sucessos e desafios no uso de Continuous Delivery, programação pareada e outras técnicas ágeis; e o foco em alta performance individual.
Apresentação dos conceitos de PWA e como isso impacta no desenvolvimento Web Mobile. Uma visão geral sobre desenvolvimento nativo usando React Native e o que muda com a oficialização de Kotlin como linguagem no Android.
A constante evolução de cada integrante das equipes reflete na manutenção de times de alta performance. abordando o impacto do crescimento acelerado sobre a cultura e o ambiente de trabalho, e as sutilezas envolvidas em combinar competitividade com cooperação e colaboração. São discutidas também as vantagens e desvantagens entre times especialistas e times autossuficientes, organização de sprints; sucessos e desafios no uso de Continuous Delivery, programação pareada e outras técnicas ágeis; e o foco em alta performance individual.
A compra de um produto personalizado exige uma constante troca de informações entre comprador e vendedor. Nesta palestra mostraremos a evolução da arquitetura dos sistemas. Incluir um chat em fluxo de checkout fez com que mudássemos completamente a maneira com que construimos nossos sistemas desencadeando uma série de mudanças.
Slides da palestra apresentada no TDC 2012 na trilha de Arquitetura - A robustez é a capacidade do sistema funcionar mesmo em condições anormais. Esta palestra prentende demonstrar algumas técnicas que podem ser usadas no desenvolvimento de software com intuito de auxiliar o desenvolvedor a produzir sistemas robustos.
7. “organizações que projetam sistemas
são restritas a produzir projetos que
são cópias das estruturas de
comunicação dessas organizações”
Lei de
Conway
http://www.melconway.com/Home/Conways_Law.html
31. domínio
● acesso e manipulação de recursos
● implementa regras de negócio
● servidor HTTP + base de dados
● infra “isolada”
● ~ 8 domínios
● ex: editorial (matérias, galerias, etc), anotações
(comentários), estabelecimentos, mídia, pessoas
32. serviço
● consumo e manipulação de recursos
● servidor HTTP + (opcional base de dados)
● infra “isolada”
● ~ 12 serviços
● ex: console, socialcore, search, Abril ID, abr.io, etc
44. Por que escolhemos REST?
● Protocolo de transferência amplamente
utilizado
● Escalabilidade
● Performance alta
● Alta disponibilidade
● Permitir evolução sem parar o sistema
● Permitir evolução sem quebrar os clientes
● Segurança
45. Por que escolhemos REST?
● HTTP
● Escalabilidade
● Performance alta
● Alta disponibilidade
● Permitir evolução sem parar o sistema
● Permitir evolução sem quebrar os clientes
● Segurança
46. Por que escolhemos REST?
● HTTP
● Web Cache
● Performance alta
● Alta disponibilidade
● Permitir evolução sem parar o sistema
● Permitir evolução sem quebrar os clientes
● Segurança
47. Por que escolhemos REST?
● HTTP
● Web Cache
● Web Proxy (localização geografica)
● Alta disponibilidade
● Permitir evolução sem parar o sistema
● Permitir evolução sem quebrar os clientes
● Segurança
48. Por que escolhemos REST?
● HTTP
● Web Cache
● Web Proxy (localização geografica)
● Load Balancers "comoditizados"
● Permitir evolução sem parar o sistema
● Permitir evolução sem quebrar os clientes
● Segurança
49. Por que escolhemos REST?
● HTTP
● Web Cache
● Web Proxy (localização geografica)
● Load Balancers "comoditizados"
● Load Balancers
● Permitir evolução sem quebrar os clientes
● Segurança
50. Por que escolhemos REST?
● HTTP
● Web Cache
● Web Proxy (localização geografica)
● Load Balancers "comoditizados"
● Load Balancers
● HTML, JSON, XML
● Segurança
51. Por que escolhemos REST?
● HTTP
● Web Cache
● Web Proxy (localização geografica)
● Load Balancers "comoditizados"
● Load Balancers
● HTML, JSON, XML
● HTTPS / TLS
76. pontos importantes em performance
client
origin server
● performance dos connectors
● non-blocking HTTP clients
● cache local
● middleware architecture
● libs padronizadas
● short stacks
● evented servers
● libs padronizadas
● good TTL strategy
● middleware architecture
● caches
● HTTP plumbing
77. ● Lei de Postel
"Seja conservador no que faz, seja liberal no que você
aceita dos outros"
●
78. ● Lei de Postel
"Seja conservador no que faz, seja liberal no que você
aceita dos outros"
● REST é uma arquitetura de longo prazo
●
79. ● Lei de Postel
"Seja conservador no que faz, seja liberal no que você
aceita dos outros"
● REST é uma arquitetura de longo prazo
● Defenda com todas as suas forças:
● seus metadados (recursos)
● sua interface
●
80. ● Lei de Postel
"Seja conservador no que faz, seja liberal no que você
aceita dos outros"
● REST é uma arquitetura de longo prazo
● Defenda com todas as suas forças:
● seus metadados (recursos)
● sua interface
● Documentação é essencial
●
81. ● Lei de Postel
"Seja conservador no que faz, seja liberal no que você
aceita dos outros"
● REST é uma arquitetura de longo prazo
● Defenda com todas as suas forças:
● seus metadados (recursos)
● sua interface
● Documentação é essencial
● Independência de desenvolvimento dos nós tem suas
desvantagens
●
82. ● Lei de Postel
"Seja conservador no que faz, seja liberal no que você
aceita dos outros"
● REST é uma arquitetura de longo prazo
● Defenda com todas as suas forças:
● seus metadados (recursos)
● sua interface
● Documentação é essencial
● Independência de desenvolvimento dos nós tem suas
desvantagens
● Medir/monitorar o desempenho é importantíssimo