JMS + Web Services w/ JAX and Spring<br />Jeffrey West, Pyounguk Cho, Dave Cabelus<br />WebLogic Product Management<br />
<Insert Picture Here><br />Program Agenda<br />Web Services<br />WebLogic Web Services Overview<br />Spring WS Build (Code...
WebLogicWeb Service Overview<br />WLS WS<br /><ul><li>World-class implementations
 JAX-*
 WS-*
Value-added extensions
Reliability
 Scalability
 Performance</li></ul>Standards<br />Extensions<br />Interoperability<br /><ul><li>Interoperability assurance
Oracle FMW products
 3rd-party stacks</li></li></ul><li>Standards<br /><ul><li>JAX-*
SOAP1.* & WS-Policy
WS-SecurityPolicy
WS-ReliableMessaging
WS-Addressing
WS-SecureConversation
MTOM
WS-AT
REST
JAXB/SDO databinding
WS-I BP/BSP/RSP
Upcoming SlideShare
Loading in...5
×

WebLogic Developer Webcast 3 : Spring and JAX Message Driven and Web Services

1,795

Published on

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
1,795
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
31
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Architectural flexibilityBreak the architectural tight couplingAdd “message generators” at willAdd “message receivers”/integrated systems at willScale the messaging infrastructure to adapt to growing traffic needsEvent-driven SOAPublish events, subscribers listen for eventsSend/publish side has no knowledge or dependency on the receive/subscribe sideFire and forgetNew policy to turn off message forwardingMessages load balanced, not duplicatedMDB subscribes to the Distributed Topic, not the individual member Improved performance and scalabilityAligned with Distributed QueuesAlign MDB and Topic clustered deployment
  • Parallelism for performance and scalabilityArchitectural flexibilityAdaptability, no dependency on architectureSimplified configuration
  • WebLogic Developer Webcast 3 : Spring and JAX Message Driven and Web Services

    1. 1.
    2. 2. JMS + Web Services w/ JAX and Spring<br />Jeffrey West, Pyounguk Cho, Dave Cabelus<br />WebLogic Product Management<br />
    3. 3. <Insert Picture Here><br />Program Agenda<br />Web Services<br />WebLogic Web Services Overview<br />Spring WS Build (Code walkthrough, Demo)<br />Spring WS Limitations<br />JAX-WS Build (Code walkthrough, Demo)<br />JAX-WS Benefits<br />JMS<br />WebLogic JMS Overview and New Features<br />Spring MDP Build (Code Walkthrough, demo)<br />Spring MDP Limitations vs. MDB Benefits<br />Java MDB Build (Code Walkthrough)<br />
    4. 4. WebLogicWeb Service Overview<br />WLS WS<br /><ul><li>World-class implementations
    5. 5. JAX-*
    6. 6. WS-*
    7. 7. Value-added extensions
    8. 8. Reliability
    9. 9. Scalability
    10. 10. Performance</li></ul>Standards<br />Extensions<br />Interoperability<br /><ul><li>Interoperability assurance
    11. 11. Oracle FMW products
    12. 12. 3rd-party stacks</li></li></ul><li>Standards<br /><ul><li>JAX-*
    13. 13. SOAP1.* & WS-Policy
    14. 14. WS-SecurityPolicy
    15. 15. WS-ReliableMessaging
    16. 16. WS-Addressing
    17. 17. WS-SecureConversation
    18. 18. MTOM
    19. 19. WS-AT
    20. 20. REST
    21. 21. JAXB/SDO databinding
    22. 22. WS-I BP/BSP/RSP
    23. 23. SCA Spring C&I</li></ul>Features Overview<br />Value-added<br />Management<br /><ul><li>Web service management
    24. 24. Web service security configuration
    25. 25. Policy attachment
    26. 26. Policy management
    27. 27. WLST-based web service management
    28. 28. Test page
    29. 29. Performance monitoring
    30. 30. RASP
    31. 31. Database web service
    32. 32. JMS transport
    33. 33. Pluggable databinding
    34. 34. Asynchronous web service
    35. 35. Stateful web service with C*Web
    36. 36. Conversational web service
    37. 37. Custom policies
    38. 38. Interoperability</li></li></ul><li>Enterprise Web Services Infrastructure<br />Enterprise Web Service Design Patterns<br />Binary payload<br />Content-based<br />Routing<br />Data Protection<br />Composition<br />Access Control<br />Guaranteed<br />Delivery<br />Long running<br />Services<br />Service <br />Virtualization<br />Asynchronous<br />Messaging<br />Conversational<br />Services<br />Declarative QoS (WS-Policy)<br />WS-<br />Security<br />WS-Addressing<br />WS-<br />ReliableMessaging<br />MTOM<br />Logging<br />Auditing<br />WS-AT<br />Web Services Java Programming Model – Java EE<br />SCA<br />JAX-WS<br />JAXB<br />Data Binding<br />Asynch<br />Service<br />Stateful<br />Service<br />SDO<br />Oracle Web Service<br />
    39. 39. Interoperability Assurance<br /><ul><li>Heterogeneous Web Service Platforms common in Oracle customers’ environments
    40. 40. Interoperability assurance efforts
    41. 41. WS-I Profile support : BP/BSP/RSP
    42. 42. WSTF
    43. 43. Vendor-sponsored interop-events
    44. 44. Service invocation testing tools
    45. 45. Runtime relaxation options
    46. 46. Hosted Interoperability testing environment(WSIP)
    47. 47. Click-&-Test for services and clients
    48. 48. Major 3rd-party SOAP stacks
    49. 49. WS-* compositions</li></li></ul><li>JAX-WS Programming Model<br />Stub<br />Tie<br />JAX-WS API<br />JAX-WS API<br />Server Side<br />Runtime System<br />Client side<br />Runtime System<br />Protocol (SOAP/REST)<br />Transport<br />WSDL<br />Service Client<br />Service Endpoint<br />Container<br />WSDL<->Java Mapping<br />Dispatch<br />
    50. 50. JAX-WS Development Tools<br /><ul><li>WLS web service Ant commands
    51. 51. JAX-WS
    52. 52. JDeveloper
    53. 53. JAX-WS & SOA
    54. 54. Iterative development
    55. 55. WSDL editor
    56. 56. HTTP Analyzer
    57. 57. HTTPS
    58. 58. WS-*
    59. 59. DBWS
    60. 60. JAX-RS
    61. 61. WLS SCA
    62. 62. OEPE
    63. 63. JAX-WS
    64. 64. WSDL editor
    65. 65. JAX-WS/JAXB custom binding file editor
    66. 66. WLS SCA</li></li></ul><li>Spring Web Services<br /><ul><li>Philosophy
    67. 67. Document-driven
    68. 68. Contract-first
    69. 69. Fragility
    70. 70. Performance
    71. 71. Reusability
    72. 72. Versioning
    73. 73. Loose coupling between contract and implementation
    74. 74. Less rigid schema conformance (Xpath)
    75. 75. Built on Spring framework
    76. 76. Inherit key Spring concepts
    77. 77. POJO-centric
    78. 78. Dependency injection (IoC)
    79. 79. Application context
    80. 80. Bean Factory
    81. 81. Architecture similar to Spring MVC
    82. 82. Configuration using Spring Application Context</li></li></ul><li>Key Features<br /><ul><li>Powerful mappings
    83. 83. XML API support
    84. 84. JAXP(DOM/SAX/StAX), JDOM, XOM
    85. 85. Xpath(to bypass databinding)
    86. 86. Flexible XML marshalling
    87. 87. JAXB 1.0/2.0, Castor, XMLBeans, JiBX, XStream
    88. 88. Multiple transports
    89. 89. WS-Security
    90. 90. Acegi security for authn/authz
    91. 91. Message logging & tracing
    92. 92. Integration points with other web service frameworks such as JAX-WS</li></li></ul><li>Key Features(Service)<br /><ul><li>Endpoint
    93. 93. Two programming models
    94. 94. Inheritance(xxxEndpoint)
    95. 95. Annotations(@Endpoint, @PayloadRoot, @XPathParam…)
    96. 96. Marshalling types
    97. 97. XML-centric
    98. 98. POJO-based
    99. 99. EndpointMapping
    100. 100. Message routing rules
    101. 101. URL
    102. 102. SOAPAction
    103. 103. Method
    104. 104. EndpointIntercepter
    105. 105. Logging
    106. 106. Validation
    107. 107. Transformation
    108. 108. Security</li></li></ul><li>Key Features(Client)<br /><ul><li>WebServiceTemplate
    109. 109. Analogous to Spring JdbcTemplate
    110. 110. XML-centric invocation
    111. 111. POJO-based invocation
    112. 112. WebServiceMessageCallback : client side JAX-RPC/WS handlers
    113. 113. When using (un)marshalling
    114. 114. To set SOAP headers
    115. 115. To set transport-level properties
    116. 116. Multiple transports
    117. 117. HTTP, JMS, SMTP
    118. 118. QoS for HTTP
    119. 119. When using jakarta Commons HttpClient
    120. 120. HTTP basic auth
    121. 121. HTTP connection pooling</li></li></ul><li>WebLogic JMS Overview<br />Full-featured, high-performance, production-grade messaging engine built-in:<br />Nothing else to install or manage<br />Shared tools, security<br />Performance benefits – no need for network hops, serialization/deserialization<br />Full set of HA capabilities, unique ordering features<br />OEPE has a JMS module editor to make configuration easy<br />
    122. 122. JMS Event-Driven SOA EnhancementsWebLogic 10.3.4 – Partitioned Distributed Topics, Shared Subscriptions, APIs, MDB Enhancements<br />Messages published to Distributed Topic load-balanced among members<br />3<br />2<br />1<br />Enables architectural flexibility<br />Scale the messaging infrastructure to adapt to growing traffic needs<br />Send/pub side has no knowledge/dependency on the receive/subscribe side<br />Messages load balanced, not duplicated<br />MDB enhancements to handle subscriptions<br />Subscribe to the Distributed Topic, not the individual member <br />Improved performance and scalability<br />Aligned MDB and Topic clustered deployment <br />Cluster<br />Server 1<br />Server 2<br />Server 3<br />Distributed Topic<br />DT Member 1<br />DT Member 2<br />DT Member 3<br />Subscription<br />Subscription<br />Subscription<br />MDB <br />MDB <br />MDB <br />
    123. 123. JMS Event-Driven SOA EnhancementsWebLogic 10.3.4 – Partitioned Distributed TopicsRemote Cluster Case<br />Publish<br />Cluster 1<br />Distributed Topic<br />Parallelism for performance and scalability<br />Architectural flexibility<br />Adaptability<br />No dependency on architecture from either publish or subscribe side<br />Simplified configuration<br />DT Member 1<br />DT Member 2<br />DT Member 3<br />1<br />2<br />3<br />5<br />4<br />7<br />1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />9<br />6<br />8<br />Shared Sub<br />Shared Sub<br />Shared Sub<br />Cluster 2<br />Server 1<br />Server 2<br />Server 3<br />MDB <br />MDB <br />MDB <br />
    124. 124. Limitations of MDPs<br />Primary concern – MDPs are not cluster-aware<br />No support for automatic subscription handling<br />No support for HA/migration<br />No real automatic handling of cluster topology changes, esp remote<br />Other limitations:<br />Security model differences<br />Foreign TX management limitations<br />No automatic resource pooling<br />Distributed topic subscription work-around: <br />Use foreign JMS to map a common local JNDI name to the DT member name<br />Additional benefits: automatic resource pooling<br />
    125. 125. MDB Benefits<br />Easier to write – use annotations instead of descriptors and resource wiring through beans in applicationContext.xml<br />Container handles the details:<br />MDB manager created wherever destination resides<br />Simplified subscription handling – container creates necessary subscriptions<br />Adapts to cluster topology changes<br />Shared security model, common transaction manager, automatic resource pooling<br />
    126. 126. @MessageDriven(<br />messageListenerInterface = javax.jms.MessageListener.class,<br /> name = "UpdateParcelStatusMDB",<br />mappedName = Constants.EVENT_TOPIC_JNDI,<br />activationConfig = {<br /> @ActivationConfigProperty(<br />propertyName = "connectionFactoryJndiName",<br />propertyValue = Constants.CONNECTION_FACTORY_JNDI),<br /> @ActivationConfigProperty(<br />propertyName = "destinationType",<br />propertyValue = "javax.jms.Topic"),<br /> @ActivationConfigProperty(<br />propertyName = "subscriptionDurability",<br />propertyValue = "Durable"),<br /> @ActivationConfigProperty(<br />propertyName = "topicMessagesDistributionMode",<br />propertyValue = "One-Copy-Per-Application"),<br /> @ActivationConfigProperty(<br />propertyName = "distributedDestinationConnection",<br />propertyValue = "LocalOnly")<br /> })<br />
    127. 127. JMS + Web Services w/ JAX and Spring<br />Jeffrey West, Pyounguk Cho, Dave Cabelus<br />WebLogic Product Management<br />
    128. 128.
    129. 129. Section Divider<br />
    1. A particular slide catching your eye?

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

    ×