Java EE CDI: Como e quando utilizar Interceptors e Decorators

A Revista Java Magazine 156 traz um artigo meu sobre CDI. CDI é a especificação do Java EE para lidar com contextos (diferentes estados da aplicação e seus objetos relacionados) e injeção de dependências. Essa especificação se integra tão bem e de forma tão natural ao restante da plataforma Java que, muitas vezes, seus recursos…

Manifesto Reativo para Sistemas Reativos

Os requisitos não funcionais mudaram muito nos últimos anos. Até pouco tempo  atrás, aplicações rodavam em dezenas de servidores, o tempo de resposta era na casa de alguns segundos, algumas horas de tolerância offline e dados na casa dos gigabytes. Atualmente, em compasso com a evolução tecnológica, esses mesmos requisitos não funcionais desenvolveram-se para aplicações…

Microservices

A definição mais simplória de microservices seria a de uma abordagem para desenvolvimento de aplicações compostas por uma série de pequenos serviços. Ao pensar rapidamente sobre essa descrição, a arquitetura SOA ressurge na mente como uma arquitetura intimamente ligada a abordagem de microservices. De fato, microservices é uma evolução do pensamento orientado a serviço tradicional…

Modelagem ágil com AMDD

A revista Engenharia de Software magazine deste mês traz um artigo meu sobre agilidade na modelagem arquitetural. A AMDD pode desempenhar um papel fundamental para melhorar o cenário atual de produtividade no desenvolvimento e na manutenção do software. Esse artigo é útil, uma vez que a AMDD possibilita, durante a implementação do software, além de…

Conformação arquitetural: sincronizando o código e a arquitetura do projeto

A edição de abril de 2015 da Revista Java Magazine trás um artigo meu sobre Conformação Arquitetural. Ao longo do tempo a arquitetura planejada para um software tende a se distanciar do que foi inicialmente projetado. A representação do projeto por meio de diagramas UML em documentos de arquitetura de software perdem total conexão com o código fonte…

The Importance of SOA to Cloud Computing

A edição de novembro-dezembro de 2014 da Service Technology Magazine trás um artigo meu sobre a importância da arquitetura SOA para Cloud Computing, sendo uma visão abrangente dos benefícios de SOA para Cloud Computing e de comos essas duas abordagens tecnológicas se relacionam. The Importance of SOA to Cloud Computing Service Technology Magazine, Novembro/Dezembro de 2014, edição 87

Arquitetura de software com tempo de expiração e modularidade

Provavelmente você já deve ter ouvido muitas vezes que a solução para algum sistema, cuja manutenção tenha se tornado um grande problema, é jogar toda a base de código no lixo e reescrever tudo de novo, repensando e reformulando sua arquitetura. Martin Fowler escreveu recentemente sobre isso em seu blog, num post intitulado “Sacrificial Architecture”…

Replicação de sessão e balanceamento de carga em ambientes distribuídos (Tomcat, NGinx e Java)

A edição de outubro de 2014 da Revista easy Java Magazine trás um artigo meu sobre cluster e replicação de sessão com Tomcat, NGinx e Java, abordando diversos conceitos relacionados à computação distribuída e oferecendo uma introdução aos principais tópicos da disciplina como base para a aplicação prática de um cluster, implementado com o servidor HTTP NGinx como…

JAX-RS: Como customizar o status code em uma HTTP Response de uma aplicação REST

Os métodos HTTP mais comuns em uma aplicação REST são GET, POST, PUT e DELETE. O protocolo HTTP e a arquitetura REST especificam que cada método HTTP retorne um determinado código de status (status code) ao cliente sobre o resultado da sua requisição. A recomendação em uma aplicação REST é que ela retorne um status…

Technology Radar: tendências em desenvolvimento de software

A Thought Works publica ocasionalmente o relatório Technology Radar, um relatório contendo um posicionamento de tecnologias e práticas de desenvolvimento de software, comentários de práticas que estão emergindo e sugestões do que adotar, experimentar e evitar. Todos os relatórios são desenvolvidos com a contribuição de diversos especialistas, inclusive Martin Fowler, e discutem técnicas, plataformas, linguagens e…