SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
Java EE + JRuby +
Rails
Interfaces rapidas para aplicações Java EE
http://sobrecodigo.com palestras@urubatan.com.br
Por que Java EE?
http://sobrecodigo.com palestras@urubatan.com.br
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
Por que Ruby on Rails?
http://sobrecodigo.com palestras@urubatan.com.br
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
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
Contexto!
Banco de dados
Message Driven Beans
Stateless Session Beans/
Web Services
http://sobrecodigo.com palestras@urubatan.com.br
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
•  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
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
Enviando mensagens
@context =
InitialContext.new(Hashtable.new(environment))
@connection_factory =
@context.lookup("ConnectionFactory")
destination = @context.lookup(destination_name)
connection = @connection_factory.create_connection()
session = connection.create_session(false,
Session::AUTO_ACKNOWLEDGE)
producer = session.create_producer(destination)
message = session.create_text_message
message.text = message_text
producer.send(message)
session.close
http://sobrecodigo.com palestras@urubatan.com.br
Hora de acordar!
http://sobrecodigo.com palestras@urubatan.com.br
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
Deploy da aplicação
•  glassfish_rails
•  warbler
http://sobrecodigo.com palestras@urubatan.com.br
Perguntas?
?
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
Obrigado!
http://sobrecodigo.com palestras@urubatan.com.br
Rails Script
• jruby -S rails new justjava2013 -d jdbcmysql
• cd justjava2013/
• [config/database.yml, config/initializers/
connection_cleanup.rb]
• jruby -S rake db:create:all
• jruby -S rails g scaffold_controller person
name:string birth:date
• jruby -S rails g scaffold_controller invoice
value:number person:references dueDate:date
• jruby -S warble

Mais conteúdo relacionado

Destaque

Introdução a informatica sist. numeracao
Introdução a informatica sist. numeracaoIntrodução a informatica sist. numeracao
Introdução a informatica sist. numeracaojotaulio
 
Introdução gestão-e-governança-de-ti
Introdução gestão-e-governança-de-tiIntrodução gestão-e-governança-de-ti
Introdução gestão-e-governança-de-tiJoão Góis
 
GOVERNANÇA DE TI E OS SEUS FRAMEWORKS – UMA VISÃO DE COMPLEMENTARIEDADE ITIL,...
GOVERNANÇA DE TI E OS SEUS FRAMEWORKS – UMA VISÃO DE COMPLEMENTARIEDADE ITIL,...GOVERNANÇA DE TI E OS SEUS FRAMEWORKS – UMA VISÃO DE COMPLEMENTARIEDADE ITIL,...
GOVERNANÇA DE TI E OS SEUS FRAMEWORKS – UMA VISÃO DE COMPLEMENTARIEDADE ITIL,...elliando dias
 
Apresentação servidores de aplicação
Apresentação   servidores de aplicaçãoApresentação   servidores de aplicação
Apresentação servidores de aplicaçãoHelen Picoli
 
A História da Segurança da Informação
A História da Segurança da InformaçãoA História da Segurança da Informação
A História da Segurança da InformaçãoAndré Santos
 
Hardware, Software, Como funciona o computador
Hardware, Software, Como funciona o computadorHardware, Software, Como funciona o computador
Hardware, Software, Como funciona o computadorArthur Emanuel
 
Organização de Computadores - Aula 02
Organização de Computadores - Aula 02Organização de Computadores - Aula 02
Organização de Computadores - Aula 02thomasdacosta
 
Segurança da Informação e Políticas de Segurança
Segurança da Informação e Políticas de SegurançaSegurança da Informação e Políticas de Segurança
Segurança da Informação e Políticas de SegurançaGilberto Sudre
 
Auditoria em tecnologia da informação
Auditoria em tecnologia da informaçãoAuditoria em tecnologia da informação
Auditoria em tecnologia da informaçãoFernando Palma
 
Ebook Gestão de segurança da informação e comunicações
Ebook Gestão de segurança da informação e comunicaçõesEbook Gestão de segurança da informação e comunicações
Ebook Gestão de segurança da informação e comunicaçõesFernando Palma
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareCamilo Almendra
 
Engenharia de Software 100% Agil (SCRUM, FDD e XP)
Engenharia de Software 100% Agil (SCRUM, FDD e XP)Engenharia de Software 100% Agil (SCRUM, FDD e XP)
Engenharia de Software 100% Agil (SCRUM, FDD e XP)Rildo (@rildosan) Santos
 

Destaque (15)

Introdução a informatica sist. numeracao
Introdução a informatica sist. numeracaoIntrodução a informatica sist. numeracao
Introdução a informatica sist. numeracao
 
Introdução gestão-e-governança-de-ti
Introdução gestão-e-governança-de-tiIntrodução gestão-e-governança-de-ti
Introdução gestão-e-governança-de-ti
 
GOVERNANÇA DE TI E OS SEUS FRAMEWORKS – UMA VISÃO DE COMPLEMENTARIEDADE ITIL,...
GOVERNANÇA DE TI E OS SEUS FRAMEWORKS – UMA VISÃO DE COMPLEMENTARIEDADE ITIL,...GOVERNANÇA DE TI E OS SEUS FRAMEWORKS – UMA VISÃO DE COMPLEMENTARIEDADE ITIL,...
GOVERNANÇA DE TI E OS SEUS FRAMEWORKS – UMA VISÃO DE COMPLEMENTARIEDADE ITIL,...
 
Heap - Python
Heap - PythonHeap - Python
Heap - Python
 
Apresentação servidores de aplicação
Apresentação   servidores de aplicaçãoApresentação   servidores de aplicação
Apresentação servidores de aplicação
 
A História da Segurança da Informação
A História da Segurança da InformaçãoA História da Segurança da Informação
A História da Segurança da Informação
 
Hardware, Software, Como funciona o computador
Hardware, Software, Como funciona o computadorHardware, Software, Como funciona o computador
Hardware, Software, Como funciona o computador
 
Organização de Computadores - Aula 02
Organização de Computadores - Aula 02Organização de Computadores - Aula 02
Organização de Computadores - Aula 02
 
Segurança da Informação e Políticas de Segurança
Segurança da Informação e Políticas de SegurançaSegurança da Informação e Políticas de Segurança
Segurança da Informação e Políticas de Segurança
 
Auditoria em tecnologia da informação
Auditoria em tecnologia da informaçãoAuditoria em tecnologia da informação
Auditoria em tecnologia da informação
 
Ebook Gestão de segurança da informação e comunicações
Ebook Gestão de segurança da informação e comunicaçõesEbook Gestão de segurança da informação e comunicações
Ebook Gestão de segurança da informação e comunicações
 
Redes de Computadores
Redes de ComputadoresRedes de Computadores
Redes de Computadores
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de Software
 
Engenharia de Software 100% Agil (SCRUM, FDD e XP)
Engenharia de Software 100% Agil (SCRUM, FDD e XP)Engenharia de Software 100% Agil (SCRUM, FDD e XP)
Engenharia de Software 100% Agil (SCRUM, FDD e XP)
 
Redes de Computadores - Modelo de Referência OSI/ISO
Redes de Computadores - Modelo de Referência OSI/ISORedes de Computadores - Modelo de Referência OSI/ISO
Redes de Computadores - Modelo de Referência OSI/ISO
 

Semelhante a Java EE + JRuby + Rails Interfaces

Projeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordProjeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordtchandy
 
Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Joao Lucas Santana
 
Introdução á linguagem Ruby com aplicativo em Rails
Introdução á linguagem Ruby com aplicativo em RailsIntrodução á linguagem Ruby com aplicativo em Rails
Introdução á linguagem Ruby com aplicativo em Railsoverduka
 
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRuby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRodrigo Recio
 
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperDesenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperCesar Romero
 
Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010Emerson Macedo
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorAllyson Barros
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)Carlos Santos
 
RubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJSRubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJSEmerson Macedo
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edtedbrunoaalves
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopDiego Sana
 
Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetMarcos Petry
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel PetryTchelinux
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationMario Sergio
 
Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Helder da Rocha
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terEmerson Macedo
 

Semelhante a Java EE + JRuby + Rails Interfaces (20)

Projeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordProjeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecord
 
Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)
 
Introdução á linguagem Ruby com aplicativo em Rails
Introdução á linguagem Ruby com aplicativo em RailsIntrodução á linguagem Ruby com aplicativo em Rails
Introdução á linguagem Ruby com aplicativo em Rails
 
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRuby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
 
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperDesenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack Developer
 
Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
 
Aula 1 - Seja um programador Java
Aula 1 - Seja um programador JavaAula 1 - Seja um programador Java
Aula 1 - Seja um programador Java
 
T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)T03_LM3: Javascript (2013-2014)
T03_LM3: Javascript (2013-2014)
 
RubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJSRubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJS
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day Workshop
 
Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internet
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Rails na pratica
Rails na praticaRails na pratica
Rails na pratica
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web Application
 
Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
 

Mais de Rodrigo Urubatan

Data science in ruby is it possible? is it fast? should we use it?
Data science in ruby is it possible? is it fast? should we use it?Data science in ruby is it possible? is it fast? should we use it?
Data science in ruby is it possible? is it fast? should we use it?Rodrigo Urubatan
 
Data science in ruby, is it possible? is it fast? should we use it?
Data science in ruby, is it possible? is it fast? should we use it?Data science in ruby, is it possible? is it fast? should we use it?
Data science in ruby, is it possible? is it fast? should we use it?Rodrigo Urubatan
 
2018 the conf put git to work - increase the quality of your rails project...
2018 the conf   put git to work -  increase the quality of your rails project...2018 the conf   put git to work -  increase the quality of your rails project...
2018 the conf put git to work - increase the quality of your rails project...Rodrigo Urubatan
 
2018 RubyHACK: put git to work - increase the quality of your rails project...
2018 RubyHACK:  put git to work -  increase the quality of your rails project...2018 RubyHACK:  put git to work -  increase the quality of your rails project...
2018 RubyHACK: put git to work - increase the quality of your rails project...Rodrigo Urubatan
 
TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...
TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...
TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...Rodrigo Urubatan
 
Your first game with unity3d framework
Your first game with unity3d frameworkYour first game with unity3d framework
Your first game with unity3d frameworkRodrigo Urubatan
 
Tdc Floripa 2017 - 8 falácias da programação distribuída
Tdc Floripa 2017 -  8 falácias da programação distribuídaTdc Floripa 2017 -  8 falácias da programação distribuída
Tdc Floripa 2017 - 8 falácias da programação distribuídaRodrigo Urubatan
 
Rubyconf2016 - Solving communication problems in distributed teams with BDD
Rubyconf2016 - Solving communication problems in distributed teams with BDDRubyconf2016 - Solving communication problems in distributed teams with BDD
Rubyconf2016 - Solving communication problems in distributed teams with BDDRodrigo Urubatan
 
resolvendo problemas de comunicação em equipes distribuídas com bdd
resolvendo problemas de comunicação em equipes distribuídas com bddresolvendo problemas de comunicação em equipes distribuídas com bdd
resolvendo problemas de comunicação em equipes distribuídas com bddRodrigo Urubatan
 
vantagens e desvantagens de trabalhar remoto
vantagens e desvantagens de trabalhar remotovantagens e desvantagens de trabalhar remoto
vantagens e desvantagens de trabalhar remotoRodrigo Urubatan
 
Using BDD to Solve communication problems
Using BDD to Solve communication problemsUsing BDD to Solve communication problems
Using BDD to Solve communication problemsRodrigo Urubatan
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JSRodrigo Urubatan
 
Interfaces ricas com Rails e React.JS @ Rubyconf 2015
Interfaces ricas com Rails e React.JS @ Rubyconf 2015Interfaces ricas com Rails e React.JS @ Rubyconf 2015
Interfaces ricas com Rails e React.JS @ Rubyconf 2015Rodrigo Urubatan
 
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JS
TDC São Paulo 2015  - Interfaces Ricas com Rails e React.JSTDC São Paulo 2015  - Interfaces Ricas com Rails e React.JS
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JSRodrigo Urubatan
 
Full Text Search com Solr, MySQL Full text e PostgreSQL Full Text
Full Text Search com Solr, MySQL Full text e PostgreSQL Full TextFull Text Search com Solr, MySQL Full text e PostgreSQL Full Text
Full Text Search com Solr, MySQL Full text e PostgreSQL Full TextRodrigo Urubatan
 
Treinamento html5, css e java script apresentado na HP
Treinamento html5, css e java script apresentado na HPTreinamento html5, css e java script apresentado na HP
Treinamento html5, css e java script apresentado na HPRodrigo Urubatan
 
Ruby on rails impressione a você mesmo, seu chefe e seu cliente
Ruby on rails  impressione a você mesmo, seu chefe e seu clienteRuby on rails  impressione a você mesmo, seu chefe e seu cliente
Ruby on rails impressione a você mesmo, seu chefe e seu clienteRodrigo Urubatan
 
Aplicações Hibridas com Phonegap e HTML5
Aplicações Hibridas com Phonegap e HTML5Aplicações Hibridas com Phonegap e HTML5
Aplicações Hibridas com Phonegap e HTML5Rodrigo Urubatan
 

Mais de Rodrigo Urubatan (20)

Ruby code smells
Ruby code smellsRuby code smells
Ruby code smells
 
Data science in ruby is it possible? is it fast? should we use it?
Data science in ruby is it possible? is it fast? should we use it?Data science in ruby is it possible? is it fast? should we use it?
Data science in ruby is it possible? is it fast? should we use it?
 
Data science in ruby, is it possible? is it fast? should we use it?
Data science in ruby, is it possible? is it fast? should we use it?Data science in ruby, is it possible? is it fast? should we use it?
Data science in ruby, is it possible? is it fast? should we use it?
 
2018 the conf put git to work - increase the quality of your rails project...
2018 the conf   put git to work -  increase the quality of your rails project...2018 the conf   put git to work -  increase the quality of your rails project...
2018 the conf put git to work - increase the quality of your rails project...
 
2018 RubyHACK: put git to work - increase the quality of your rails project...
2018 RubyHACK:  put git to work -  increase the quality of your rails project...2018 RubyHACK:  put git to work -  increase the quality of your rails project...
2018 RubyHACK: put git to work - increase the quality of your rails project...
 
TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...
TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...
TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...
 
Your first game with unity3d framework
Your first game with unity3d frameworkYour first game with unity3d framework
Your first game with unity3d framework
 
Tdc Floripa 2017 - 8 falácias da programação distribuída
Tdc Floripa 2017 -  8 falácias da programação distribuídaTdc Floripa 2017 -  8 falácias da programação distribuída
Tdc Floripa 2017 - 8 falácias da programação distribuída
 
Rubyconf2016 - Solving communication problems in distributed teams with BDD
Rubyconf2016 - Solving communication problems in distributed teams with BDDRubyconf2016 - Solving communication problems in distributed teams with BDD
Rubyconf2016 - Solving communication problems in distributed teams with BDD
 
resolvendo problemas de comunicação em equipes distribuídas com bdd
resolvendo problemas de comunicação em equipes distribuídas com bddresolvendo problemas de comunicação em equipes distribuídas com bdd
resolvendo problemas de comunicação em equipes distribuídas com bdd
 
vantagens e desvantagens de trabalhar remoto
vantagens e desvantagens de trabalhar remotovantagens e desvantagens de trabalhar remoto
vantagens e desvantagens de trabalhar remoto
 
Using BDD to Solve communication problems
Using BDD to Solve communication problemsUsing BDD to Solve communication problems
Using BDD to Solve communication problems
 
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
 
Interfaces ricas com Rails e React.JS @ Rubyconf 2015
Interfaces ricas com Rails e React.JS @ Rubyconf 2015Interfaces ricas com Rails e React.JS @ Rubyconf 2015
Interfaces ricas com Rails e React.JS @ Rubyconf 2015
 
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JS
TDC São Paulo 2015  - Interfaces Ricas com Rails e React.JSTDC São Paulo 2015  - Interfaces Ricas com Rails e React.JS
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JS
 
Full Text Search com Solr, MySQL Full text e PostgreSQL Full Text
Full Text Search com Solr, MySQL Full text e PostgreSQL Full TextFull Text Search com Solr, MySQL Full text e PostgreSQL Full Text
Full Text Search com Solr, MySQL Full text e PostgreSQL Full Text
 
Treinamento html5, css e java script apresentado na HP
Treinamento html5, css e java script apresentado na HPTreinamento html5, css e java script apresentado na HP
Treinamento html5, css e java script apresentado na HP
 
Ruby on rails impressione a você mesmo, seu chefe e seu cliente
Ruby on rails  impressione a você mesmo, seu chefe e seu clienteRuby on rails  impressione a você mesmo, seu chefe e seu cliente
Ruby on rails impressione a você mesmo, seu chefe e seu cliente
 
Mini curso rails 3
Mini curso rails 3Mini curso rails 3
Mini curso rails 3
 
Aplicações Hibridas com Phonegap e HTML5
Aplicações Hibridas com Phonegap e HTML5Aplicações Hibridas com Phonegap e HTML5
Aplicações Hibridas com Phonegap e HTML5
 

Java EE + JRuby + Rails Interfaces

  • 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
  • 11. Enviando mensagens @context = InitialContext.new(Hashtable.new(environment)) @connection_factory = @context.lookup("ConnectionFactory") destination = @context.lookup(destination_name) connection = @connection_factory.create_connection() session = connection.create_session(false, Session::AUTO_ACKNOWLEDGE) producer = session.create_producer(destination) message = session.create_text_message message.text = message_text producer.send(message) session.close http://sobrecodigo.com palestras@urubatan.com.br
  • 12. Hora de acordar! 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
  • 18. Rails Script • jruby -S rails new justjava2013 -d jdbcmysql • cd justjava2013/ • [config/database.yml, config/initializers/ connection_cleanup.rb] • jruby -S rake db:create:all • jruby -S rails g scaffold_controller person name:string birth:date • jruby -S rails g scaffold_controller invoice value:number person:references dueDate:date • jruby -S warble