DDD e Restful SOA

629 visualizações

Publicada em

Apresentação para Talk no DNAD 2013

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
629
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
10
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

DDD e Restful SOA

  1. 1. DDD e RESTful SOA Uma abordagem prática para combinar um design behavior-centric com um estilo arquitetural data-centric
  2. 2. Daniel Moreira Yokoyama Senior Software Architect @dmyoko moreira.yokoyama@gmail.com
  3. 3. Agenda • SOA Pitfalls • Modelagem Estratégica (DDD) • Bounded Contexts • Context Map • Anti-Corruption Layer • Open Host Service • Published Language • Conclusão
  4. 4. SOA Pitfalls
  5. 5. SOAService-oriented Architecture != Service-oriented Design SOD SOA Pitfalls
  6. 6. SOA Pitfalls Ask-Decision-Set Vs Tell-Don’t-Ask
  7. 7. SOA SOA Pitfalls overfocusing Anemic-Domain Model Pode conduzir a um
  8. 8. SOA Pitfalls Service concern and responsibilities overload • Services • Transactions • Security • Transformation • Representation • Domain Logic • Data Access • Translation • Integration
  9. 9. SOA Pitfalls Service concern and responsibilities overload • Services • Transactions • Security • Transformation • Representation • Domain Logic • Data Access • Translation • Integration
  10. 10. Modelagem Estratégica com DDD • Entidades • Objetos de Valor • Serviços de Domínio • Repositórios • Factories DDD#sóquenão
  11. 11. Modelagem Estratégica com DDD • Entidades • Objetos de Valor • Serviços de Domínio • Repositórios • Factories DDDBuilding blocks
  12. 12. Modelagem Estratégica com DDD Building blocks Óculos escuros Palito de Dente Arma Stallone nos anos 80
  13. 13. Modelagem Estratégica com DDD • DDD não é o uso dos building blocks (Entidades, Objeto de valor, etc) • A aplicação do DDD está mais focada na modelagem estratégica • DDD trata de modelagem do domínio do negócio em sua própria linguagem
  14. 14. Modelagem Estratégica com DDD • Bounded Contexts • Context Map • Anti-Corruption Layer • Open Host Service • Published Language
  15. 15. Loja Virtual
  16. 16. Loja Virtual
  17. 17. Bounded Contexts
  18. 18. Bounded Contexts
  19. 19. Context Map
  20. 20. Anti-Corruption Layer
  21. 21. Design Estratégico • Representation • Domain Logic • Data Access • Translation • Integration Bounded Contexts Anti-Corruption Layer Context Map
  22. 22. Open Host Service • Descreve um protocolo comum para acesso de uma aplicação. • Expõe uma interface para o uso deste protocolo, e acesso às funcionalidades da aplicação. • Falando em REST: HTTP e o WebHost da sua API
  23. 23. Published Language • Uma linguagem comum para ser usada para tradução entre dois bounded-contexts • Falando em REST: Mediatypes (xml, json, etc)
  24. 24. O Esquecido Building Block • Domain Event é o building block mais importante na integração entre bounded contexts • Falando em REST: RSS, Publish/Subscriber, Serviços de Infra-estrutura, etc...
  25. 25. Ainda haverão trade-offs • Design Estratégico ajuda a minimizar os problemas de modelagem de serviços REST • Mas não acaba com eles • Modele os serviços de acordo com os Casos de Uso
  26. 26. Conclusão • Design Estratégico do DDD guia a modelagem de como separar o domínio, e até mesmo modelar a distribuição. • Foco no modelo do domínio, os serviços orientam a arquitetura, não o modelo.
  27. 27. Referência • Domain-Driven Design (Evans) • RESTful SOA or Domain-Driven Design – A Compromise? (Vaughn Vernon) [http://www.infoq.com/presentations/RESTful -SOA-DDD] • Strategic Domain Driven Design with Context Mapping (Alberto Brandolini, Nov 2009)[http://www.infoq.com/articles/ddd- contextmapping]
  28. 28. Obrigado

×