Palestra que apresentei no Just Java sobre por que, como, quais as vantagens e quais os problemas de se usar JRuby on Rails em um ambiente Java EE integrando com recursos do servidor.
1. Java EE + JRuby +
Rails
Interfaces rapidas para aplicações Java EE
http://sobrecodigo.com palestras@urubatan.com.br
2. Por que Java EE?
http://sobrecodigo.com palestras@urubatan.com.br
3. Meu ambiente na empresa
• Servidores de aplicação Java EE
o comprados e com contrato com o fornecedor
• Muita gente que conhece e gosta de Java
• Muitos projetos já prontos em Java
o E eu preciso interagir com estes projetos
• Dificil justificar fazer um projeto todo em
outra tecnologia
o Exceto se for uma tecnologia do fornecedor já
contratado que não me agradaria muito :D
http://sobrecodigo.com palestras@urubatan.com.br
4. Por que Ruby on Rails?
http://sobrecodigo.com palestras@urubatan.com.br
5. Produtividade!
• Últimos projetos
o Velocidade no desenvolvimento
• Quick Start
o Fácil de começar e de dar manutenção em qualquer
projeto
• Feito para web!
o Forma mais rapida hoje de desenvolver uma
interface web para um banco de dados.
• Eu gosto
o Feito para felicidade do programador (sério, esta
escrito no site do framework!)http://sobrecodigo.com palestras@urubatan.com.br
6. www.rubyonrails.org
Ruby on Rails is an open-source web framework that's
optimized for programmer happiness and sustainable
productivity. It lets you write beautiful code by favoring
convention over configuration.
http://sobrecodigo.com palestras@urubatan.com.br
7. Contexto!
Banco de dados
Message Driven Beans
Stateless Session Beans/
Web Services
http://sobrecodigo.com palestras@urubatan.com.br
8. O que foi necessário?
• Acessar o banco da aplicação Java EE
diretamente do Rails
• Chamar métodos de EJBs via JRuby
• Enviar mensagens para MDBs usando
JRuby
http://sobrecodigo.com palestras@urubatan.com.br
9. • Usando um banco já modelado em uma
aplicação Rails
o self.table_name = "..."
o def self.table_name...end
o self.primary_key = "..."
o def self.primary_key...end
o belongs_to/foreign_key
o has_many/foreign_key
Acesso a banco
http://sobrecodigo.com palestras@urubatan.com.br
10. Chamando métodos de
EJBs
require 'java'
include_class 'javax.naming.InitialContext'
ic = InitialContext.new
foo = ic.lookup("...")
result = foo.echo("This is foo!")
http://sobrecodigo.com palestras@urubatan.com.br
13. Exemplo
• Aplicação Java EE
o Dados persistidos usando JPA 2
o Session Beans com regras de negócio
o MDB para injestão de eventos
• Criar aplicação Rails
o Acesso a dados via ActiveRecord
o Chamar Session Beans para monitorar processo de
negocio
o Botão para inserção de novos eventos no queue
http://sobrecodigo.com palestras@urubatan.com.br
14. Deploy da aplicação
• glassfish_rails
• warbler
http://sobrecodigo.com palestras@urubatan.com.br
16. O que mais?
Livro de Rails?
http://www.novatec.com.br/livros/rubyonrails2
Curso online de BDD?
http://sobrecodigo.com
Mais livros sobre Java?
http://www.novatec.com.br
http://sobrecodigo.com palestras@urubatan.com.br