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

  • 4,064 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,064
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
111
Comments
0
Likes
4

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Arquitetura Java em 2007 http://www.caelum.com.br http://blog.fragmental.com.br
  • 2. Quem? Phillip Calçado “Shoes” Paulo Silveira Arquiteto Arquiteto ● ● Membro IASA Fundador do GUJ ● ● Coordenador Consultor Caelum ● ● Globo.com Mestre em CC ● RioJUG Leader ● Coordenador GUJ ●
  • 3. Lembra?
  • 4. Distribuindo Objetos
  • 5. |Cluster?
  • 6. |Cluster?
  • 7. |Cluster?
  • 8. |Cluster?
  • 9. |Cache Replicado?
  • 10. |Cache Replicado?
  • 11. |Cache Replicado?
  • 12. |Cache Replicado?
  • 13. |Cache Replicado?
  • 14. |Cache Replicado?
  • 15. |Cache Replicado? (na verdade)
  • 16. |Cache Replicado? (na verdade)
  • 17. |Cache Replicado? (na verdade)
  • 18. |Cache Replicado? (na verdade)
  • 19. Distribuindo Objetos? 1a Lei de Fowler Sobre Objetos Distribuídos: NÃO DISTRIBUA SEUS OBJETOS!
  • 20. |Cache sem replicação
  • 21. Modelando Objetos
  • 22. |Arquitetura Orientada a... BO Business Object LO Layer Object VO Value Object
  • 23. Função Dados
  • 24. Função Dados usuario.h usuario.c
  • 25. Objeto Função Dados usuario.h usuario.c
  • 26. Objeto Usuario Usuario.java
  • 27. ContaBean ContaFacade public void setSaldo public void deposita (double valor) (int codigo, double valor){ public double getSaldo() //... }
  • 28. Entity Conta public void deposita (double valor) { this.saldo += valor; } SessionBean? DTO?
  • 29. |Domain-Driven Design 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(); }
  • 30. |Domain-Specific Languages 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)) }
  • 31. MDD = DDD & DSL & ...
  • 32. Arquitetura de Serviços
  • 33. |SOA SOAP + WSDL + UDDI
  • 34. |SOA ? SOAP + WSDL + UDDI
  • 35. |SOA Alternativo FTP ● ● Puro texto ● JSON ● XML (POX) ● SOAP ● Mashups ● CORBA, DCOM, CBD... Same Old Architecture
  • 36. |SOA Alternativo - Flickr <?xml version=quot;1.0quot; encoding=quot;utf-8quot; ?> <rsp stat=quot;okquot;> <photos page=quot;1quot; pages=quot;5quot; perpage=quot;100quot; total=quot;500quot;> <photo id=quot;1474037512quot; title=quot;Day 344quot; /> <photo id=quot;1471794015quot; title=quot;Just Surfingquot; /> <photo id=quot;1471516469quot; title=quot;New Banksy piece! /> </photos> </rsp> http://api.flickr.com/services/rest/?method=flickr.interestingness.getList
  • 37. Arquiteturas de Referência
  • 38. |Concluindo Não seja Dr. Robotnik
  • 39. |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!'
  • 40. Obrigado!