Designing SOA with JBoss tools Eric D. Schabell JBoss Solution Architect 08 June 2011
Overview <ul><li>Design Patterns and SOA
Logical Inventory Layer Patterns </li><ul><li>Utility service </li><ul><li>JBoss ESB tooling </li></ul><li>Entity serivce ...
JBoss BPEL tooling
JBoss jBPM tooling </li></ul></ul></ul>
Definition of Design Pattern <ul><li>A proven design solution for a common design problem
Formally documented in a consistent manner
Introduced by GOF 1994, used all over the software industry since then.
Example's of software development design patterns are: </li><ul><li>Singelton, Adaptor, Decorator Pattern, etc </li></ul><...
SOA Design Pattern <ul><li>A book written by Thomas Erl that quickly became popular within the SOA community
Defines a set of common design problems when implementing SOA
Some patterns can be solved by using a product like JBoss SOA Platform that implement patterns
Some patterns are design concepts and cannot be implement by a product, but may be assisted with tools
Some are “pure” design principles where tools and products won't help. </li></ul>
Scope of this session  <ul><li>For the scope of this session we will focus on Logical Inventory Layer Patterns: </li><ul><...
Overview <ul><li>Design Patterns and SOA
Logical Inventory Layer Patterns </li><ul><li>Utility service </li><ul><li>JBoss ESB tooling </li></ul><li>Entity serivce ...
JBoss BPEL tooling
JBoss jBPM tooling </li></ul></ul></ul>
Utility Abstraction - Definition* <ul><li>Problem : When non-business centric processing logic is packaged together with b...
Solution :  A service layer dedicated to utility processing is established, providing reusable utility services for the us...
Utility Abstraction – Definition by example <ul><li>Example:  Depending on country of delivery and product type different ...
Problem:  if all services returning a price should calculate taxes independently there are allot of redundant code and mul...
Solution : Create a utility service that depending on country of delivery and product type will return correct VAT.  </li>...
Utility Abstraction - Examples <ul><li>Examples of utility services may be: </li><ul><li>Notification Service
Logging Service
Audit Service
Tax calculation Service
Upcoming SlideShare
Loading in...5
×

Designing SOA with JBoss tools

2,657

Published on

Thomas Erl wrote the SOA Design Patterns book, and Eric D. Schabell will show how you can use JBoss tooling and products to implement them. In this session we will cover the following tools:

- Testable architectures with SAVARA
- BPEL with Riftsaw
- BPM with jBPM5
- JBoss Developer Studio

The session will show how different SOA Design Patterns can be implemented using the these tools.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,657
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
107
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Designing SOA with JBoss tools

  1. 1. Designing SOA with JBoss tools Eric D. Schabell JBoss Solution Architect 08 June 2011
  2. 2. Overview <ul><li>Design Patterns and SOA
  3. 3. Logical Inventory Layer Patterns </li><ul><li>Utility service </li><ul><li>JBoss ESB tooling </li></ul><li>Entity serivce </li><ul><li>JBoss Teiid tooling </li></ul><li>Task service </li><ul><li>JBoss Savara tooling
  4. 4. JBoss BPEL tooling
  5. 5. JBoss jBPM tooling </li></ul></ul></ul>
  6. 6. Definition of Design Pattern <ul><li>A proven design solution for a common design problem
  7. 7. Formally documented in a consistent manner
  8. 8. Introduced by GOF 1994, used all over the software industry since then.
  9. 9. Example's of software development design patterns are: </li><ul><li>Singelton, Adaptor, Decorator Pattern, etc </li></ul></ul>
  10. 10. SOA Design Pattern <ul><li>A book written by Thomas Erl that quickly became popular within the SOA community
  11. 11. Defines a set of common design problems when implementing SOA
  12. 12. Some patterns can be solved by using a product like JBoss SOA Platform that implement patterns
  13. 13. Some patterns are design concepts and cannot be implement by a product, but may be assisted with tools
  14. 14. Some are “pure” design principles where tools and products won't help. </li></ul>
  15. 15. Scope of this session <ul><li>For the scope of this session we will focus on Logical Inventory Layer Patterns: </li><ul><li>Are a set of patterns to identify and abstract task, utility and entity services. </li></ul></ul>Pattern JBoss Tools Utility Service Java, Bean Shell, EJB, Rules, etc Entity Service Hibernate, Data Services Task Service Riftsaw (BPEL)
  16. 16. Overview <ul><li>Design Patterns and SOA
  17. 17. Logical Inventory Layer Patterns </li><ul><li>Utility service </li><ul><li>JBoss ESB tooling </li></ul><li>Entity serivce </li><ul><li>JBoss Teiid tooling </li></ul><li>Task service </li><ul><li>JBoss Savara tooling
  18. 18. JBoss BPEL tooling
  19. 19. JBoss jBPM tooling </li></ul></ul></ul>
  20. 20. Utility Abstraction - Definition* <ul><li>Problem : When non-business centric processing logic is packaged together with business specific logic, it results in the redundant implementation of common utility functions across different services
  21. 21. Solution : A service layer dedicated to utility processing is established, providing reusable utility services for the use by other services in the inventory. </li></ul>* = according to the SOA Design Pattern Book
  22. 22. Utility Abstraction – Definition by example <ul><li>Example: Depending on country of delivery and product type different VAT must be used
  23. 23. Problem: if all services returning a price should calculate taxes independently there are allot of redundant code and multiple locations to maintain this code.
  24. 24. Solution : Create a utility service that depending on country of delivery and product type will return correct VAT. </li></ul>Tip of the day: Using JBoss SOA-P the VAT utility service can be implemented as a business rule, which is easy to maintain and can be adopted to changes quickly.
  25. 25. Utility Abstraction - Examples <ul><li>Examples of utility services may be: </li><ul><li>Notification Service
  26. 26. Logging Service
  27. 27. Audit Service
  28. 28. Tax calculation Service
  29. 29. etc </li></ul></ul>
  30. 30. Utility Abstraction - Implementation <ul><li>Can be implemented using various technologies like: </li><ul><li>Native Java
  31. 31. Business Rules
  32. 32. EJB's
  33. 33. etc </li></ul></ul>
  34. 34. Screen shot of ESB Tooling
  35. 35. Demo ESB orchestration
  36. 36. Overview <ul><li>Design Patterns and SOA
  37. 37. Logical Inventory Layer Patterns </li><ul><li>Utility service </li><ul><li>JBoss ESB tooling </li></ul><li>Entity serivce </li><ul><li>JBoss Teiid tooling </li></ul><li>Task service </li><ul><li>JBoss Savara tooling
  38. 38. JBoss BPEL tooling
  39. 39. JBoss jBPM tooling </li></ul></ul></ul>
  40. 40. Entity Abstraction - Definition* <ul><li>Problem : Bundling both process-agnostic and process -specific business logic into the same service eventually results in the creation of redundant agnostic business logic across multiple services
  41. 41. Solution : An agnostic business service layer can be established, dedicated to services that base their functional context on existing business entities. </li></ul>* = according to the SOA Design Pattern Book
  42. 42. Entity Abstraction - Definition by example <ul><li>Example : Products are stored in a database with base prices, depending of customer discount and VAT the final product price must be calculated.
  43. 43. Problem: A service responsible for getting the prices for products in a quote returns products with the final prices. Another service which are used internally for financial reporting returns the products base price.
  44. 44. Solution : Using entity abstraction a service for returning products with base price are created and then a utility services can be used to calculate TAX etc. </li></ul>
  45. 45. Entity Abstraction - Examples <ul><li>Business entity are typically good candidates for Entity services, like </li><ul><li>Product
  46. 46. Employee
  47. 47. Order
  48. 48. Invoice
  49. 49. etc </li></ul></ul>
  50. 50. Entity Abstraction - Implementation <ul><li>Simple cases Hibernate together with JAX-WS
  51. 51. Data virtualization products like JBoss Enterprise Data Services that can combine data from several sources and expose them as Web Services </li></ul>
  52. 52. Screen shot of Teiid designer
  53. 53. Overview <ul><li>Design Patterns and SOA
  54. 54. Logical Inventory Layer Patterns </li><ul><li>Utility service </li><ul><li>JBoss ESB tooling </li></ul><li>Entity serivce </li><ul><li>JBoss Teiid tooling </li></ul><li>Task service </li><ul><li>JBoss Savara tooling
  55. 55. JBoss BPEL tooling
  56. 56. JBoss jBPM tooling </li></ul></ul></ul>
  57. 57. Process Abstraction - Definition <ul><li>Problem: Grouping task-centric logic together with task-agnostic logic hinders the governance of the task-specific logic and the reuse of the agnostic logic
  58. 58. Solution: A dedicated parent business process service layer is established to support governance independence and the positioning of task service as potential enterprise resources. </li></ul>
  59. 59. Process Abstraction – Definition by example <ul><li>Example: A Policy Quote Service, which notifies sales about all outgoing quotes. (a task specific service)
  60. 60. Problem: If we don't divide entity and utility we won't achieve service reputability, but dividing them causes allot of complex dependency.
  61. 61. Solution: Using a orchestration solution to implement our task service we can visualize and monitor the interaction between services making it solution less complicated and loosely coupled. </li></ul>
  62. 62. Process Abstraction - Implementation <ul><li>WS-CDL (using BPEL or BPMN)
  63. 63. jBPM </li></ul>
  64. 64. Screen shot or demo of SAVARA
  65. 65. Screen shot of BPEL Designer
  66. 66. SOA-P Development Workshop (5d) Ask for it at your local Red Hat Partner Manager!
  67. 67. Demo jBPM5
  68. 68. Review <ul><li>Design Patterns and SOA
  69. 69. Logical Inventory Layer Patterns </li><ul><li>Utility service </li><ul><li>JBoss ESB tooling </li></ul><li>Entity serivce </li><ul><li>JBoss Teiid tooling </li></ul><li>Task service </li><ul><li>JBoss Savara tooling
  70. 70. JBoss BPEL tooling
  71. 71. JBoss jBPM tooling </li></ul></ul></ul>
  72. 72. Questions?
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×