WebLogic Developer Webcast 3 : Spring and JAX Message Driven and Web Services
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

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

on

  • 2,212 views

 

Statistics

Views

Total Views
2,212
Views on SlideShare
2,212
Embed Views
0

Actions

Likes
0
Downloads
28
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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 Presentation Transcript

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