53
Arquitetura Java em 2007 http://www.caelum.com.br http://blog.fragmental.com.br

Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

Embed Size (px)

Citation preview

Page 1: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

Arquitetura Java em 2007

http://www.caelum.com.br

http://blog.fragmental.com.br

Page 2: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

Quem?

Phillip Calçado “Shoes”● Arquiteto● Membro IASA● Coordenador

Globo.com● RioJUG Leader● Coordenador GUJ

Paulo Silveira● Arquiteto● Fundador do GUJ● Consultor Caelum● Mestre em CC

Page 3: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

Lembra?

Page 4: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado
Page 5: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado
Page 6: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado
Page 7: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado
Page 8: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado
Page 9: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado
Page 10: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado
Page 11: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado
Page 12: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado
Page 13: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado
Page 14: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado
Page 15: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

Distribuindo Objetos

Page 16: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

|Cluster?

Page 17: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

|Cluster?

Page 18: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

|Cluster?

Page 19: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

|Cluster?

Page 20: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

|Cache Replicado?

Page 21: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

|Cache Replicado?

Page 22: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

|Cache Replicado?

Page 23: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

|Cache Replicado?

Page 24: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

|Cache Replicado?

Page 25: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

|Cache Replicado?

Page 26: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

|Cache Replicado? (na verdade)

Page 27: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

|Cache Replicado? (na verdade)

Page 28: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

|Cache Replicado? (na verdade)

Page 29: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

|Cache Replicado? (na verdade)

Page 30: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

Distribuindo Objetos?

1a Lei de Fowler Sobre Objetos Distribuídos:

NÃO DISTRIBUASEUS OBJETOS!

Page 31: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

|Cache sem replicação

Page 32: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

Modelando Objetos

Page 33: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

BO

LO

VO

Business Object

Layer Object

Value Object

|Arquitetura Orientada a...

Page 34: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

Dados Função

Page 35: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

Dados Função

usuario.h usuario.c

Page 36: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

Dados Função

usuario.h usuario.c

Objeto

Page 37: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

Usuario.java

ObjetoUsuario

Page 38: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

ContaBean ContaFacade

public void deposita(int codigo, double valor){

//...}

public void setSaldo(double valor)

public double getSaldo()

Page 39: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

EntityConta

public void deposita(double valor) {

this.saldo += valor;}

SessionBean?DTO?

Page 40: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

Fornecedor f = ...;List<Conta> contas = dao.listaContasDoFornecedor(fornecedor, 1999);for(Conta conta : contas) {

PrintStream stream = new PrintStream(conta.getNome());stream.println(conta.getValor());

}

Fornecedor f = ...;for(Conta conta : fornecedor.getContasDesde(1999)) {

conta.geraRelatorio();}

|Domain-Driven Design

Page 41: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

Set<Strategy> strategies = new HashSet<Strategy>();Indicator<Double> close = new ClosePriceIndicator(timeSeries);for (int i = 1; i <= 50; i++) { Indicator<Double> tracker = new EMAIndicator(close, i); Strategy strategy = new IndicatorCrossedIndicatorStrategy(close, tracker); strategies.add(strategy);}

JRuby:(1..50).paraCada{|x|

cruza(fechamento, media(x))}

|Domain-Specific Languages

Page 42: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

MDD = DDD & DSL & ...

Page 43: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

Arquitetura de

Serviços

Page 44: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

SOAP +

WSDL +

UDDI

|SOA

Page 45: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

SOAP +

WSDL +

UDDI?

|SOA

Page 46: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

● FTP● Puro texto● JSON● XML (POX)● SOAP● Mashups● CORBA, DCOM, CBD...

Same Old Architecture

|SOA Alternativo

Page 47: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado
Page 48: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

<?xml version="1.0" encoding="utf-8" ?><rsp stat="ok">

<photos page="1" pages="5" perpage="100" total="500"><photo id="1474037512" title="Day 344" /><photo id="1471794015" title="Just Surfing" /><photo id="1471516469" title="New Banksy piece! />

</photos></rsp>

http://api.flickr.com/services/rest/?method=flickr.interestingness.getList

|SOA Alternativo - Flickr

Page 49: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

ArquiteturasdeReferência

Page 50: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado
Page 51: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

Não seja

Dr. Robotnik

|Concluindo

Page 52: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

|Referências● GUJ: http://www.guj.com.br/

● Memcached: http://www.danga.com/memcached/

● RESTful Web Services: http://java.sun.com/developer/technicalArticles/WebServices/restful/

● Domain-Driven Design: http://domaindrivendesign.org/

● Domain-Specific Languages in Java: http://www.nealford.com/mypastconferences.htm

● Domain-Specific Languages Lab: http://fragmental.tw

● Anos 80: http://www.viva80.blogspot.com/

● JSR223: Scripting for the JavaTM Platform: http://jcp.org/en/jsr/detail?id=223

Palestra do Jeveaux sobre JavaScripting 14:30 HOJE!'

Page 53: Justjava 2007 Arquitetura Java EE Paulo Silveira, Phillip Calçado

Obrigado!