WebSphere Message Broker v6.x Overview - 2008-01-09

  • 1,989 views
Uploaded on

Internal presentation given at a Zystems event at the Gothenburg office in 2008.

Internal presentation given at a Zystems event at the Gothenburg office in 2008.

More in: Technology , Education
  • 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
1,989
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
1

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. WebSphere Message Broker v6.x Overview 2008-01-09 Zystems Gothenburg Mårten Gustafson Zystems
  • 2. WMBv6.x general overview compared to WBIMBv5.x
    • Configuration manager
      • No database pre-req
      • Supported on all platforms (only Windows in WBIMB)
    • Toolkit
      • Supported on Linux
    • New graphical mapping node
    • Java Compute Nodes
    • Enhanced JMS support
    • HTTPS support
  • 3. New in WMBv6.0
    • Configuration manager
      • No database pre-req
      • Supported on all platforms (only Windows in WBIMB)
    • Toolkit
      • Supported on Linux
    • New graphical mapping node
    • Java Compute Nodes
    • Enhanced JMS support
    • HTTPS support
  • 4. New in WMBv6.1
  • 5. New in WMBv6.1
    • Nodes
  • 6. New in WMBv6.1 Nodes – Not yet released
    • WebSphere Transformation Extender ( ”wettex” )
      • Native execution
        • Direct access to the broker tree
    • To be included by default:
      • Transport Header nodes
        • Creates, deletes and modifies:
          • MQMD
          • MQDLH
          • JMS
          • HttpInput, HttpResponse, HttpReply, HttpRequest
      • TCP/IP nodes
  • 7. New in WMBv6.1 Nodes - Considerations
    • The following nodes requires careful consideration before using in an active/active environment:
      • Collector
      • FileInput
      • SOAPInput
      • HTTPInput
      • Possibly the JCA adapter nodes
  • 8. New in WMBv6.1 Infrastructure
    • Java 1.5 on all supported platforms
    • Java JDBC supports globally coordinated TX
      • Only for distributed platforms (ie NOT on z/OS)
      • Only for type 4 drivers
    • XMLNSC domain uses new parser
      • Schema validation
      • Opaque parsing
      • Better performance, reduced memory use
    • XML domain deprecated, use XMLNSC instead
    • IDOC domain deprecated, use TDS insetad
    • Debugger does not use RAC anymore(!)
    • Test client introduced in 6.0 actually works, to some extent
    • Trace nodes can be switched on and off using configuration commands
  • 9. New in WMBv6.1 Security
    • Security Manager
      • Extracts and authenticate the identity in a message
        • Location of identity specified using XPath
        • Map an identity to an alternate identity
      • Security lookup using external system
        • LDAP
          • Username & password
        • Tivoli Federated Identity Manager
          • Username & password
          • X.509
          • Identity mapping
        • X.509 in LDAP requested and being considered
      • Configuration stored in security profiles
        • A profile applies on a given input node
  • 10. New in WMBv6.1 Extended use of XPath in node configuration
    • Collector node
    • DatabaseRoute node
    • DatabaseRetrieve node
    • EmailOutput node
    • FileOutput node
    • HTTPInput node
    • JMSInput node
    • MQInput node
    • Route node
    • SOAPEnvelope node
    • SOAPExtract node
    • SOAPInput node
    • SOAPReply node
    • SOAPRequest node
    • SOAPAsyncRequest node
    • SOAPAsyncResponse node
    • WebSphere Adapter Request nodes
    • WebSphere Service Registry and Repository EndpointLookup node
    • WebSphere Service Registry and Repository RegistryLookup node
  • 11. WMBv6.x Java Compute Node
  • 12. WMBv6.x - Java Compute Node Overview
    • At most 10% (YMMV) slower than ESQL
    • The possible use of third party libraries:
      • Extremly powerful
      • Extremly dangerous
    • Versioning of shared code needs careful consideration
  • 13. WMBv6.x - Java Compute Node Overview
  • 14. WMBv6.x - Java Compute Node Overview In
  • 15. WMBv6.x - Java Compute Node Overview Failure
  • 16. WMBv6.x - Java Compute Node Overview Out
  • 17. WMBv6.x - Java Compute Node Overview Alternate
  • 18. WMBv6.x - Java Compute Node Overview
    • A node points out one Java class
      • Java classes are kept in separate Java projects in the tooling
  • 19. WMBv6.x - Java Compute Node Possible uses
    • Transformation
    • Routing
    • Filtering
    • Database interaction
    • And anything else that Java can do
      • Be careful and bear in mind that WMB is NOT ment to serve as an Java application server
  • 20. WMBv6.x - Java Compute Node
    • Accessing the parse tree
  • 21. WMBv6.x - Java Compute Node Accessing the tree
    • <document>
    • <chapter title=&quot;Chapter One&quot;>
    • This is chapter one
    • </chapter>
    • </document>
  • 22. WMBv6.x - Java Compute Node Accessing the tree
    • <document>
    • <chapter title=&quot;Chapter One&quot;>
    • This is chapter one
    • </chapter>
    • </document>
    • (0x01000000):XMLNSC = (
    • (0x01000000):document = (
    • (0x03000000):chapter = 'This is chapter one'
    • (
    • (0x03000100):title = 'Chapter One'
    • )
    • )
    • )
  • 23. WMBv6.x - Java Compute Node Accessing the tree
    • Using the object API
  • 24. WMBv6.x - Java Compute Node Accessing the tree using object API (0x01000000):XMLNSC = ( (0x01000000):document = ( (0x03000000):chapter = 'This is chapter one' ( (0x03000100):title = 'Chapter One' ) ) )
  • 25. WMBv6.x - Java Compute Node Accessing the tree using object API assembly.getMessage();
  • 26. WMBv6.x - Java Compute Node Accessing the tree using object API MbElement xmlnsc = assembly.getMessage().getRootElement().getLastChild();
  • 27. WMBv6.x - Java Compute Node Accessing the tree using object API MbElement xmlnsc = assembly.getMessage().getRootElement().getLastChild(); MbElement chapter = xmlnsc.getFirstChild().getFirstChild();
  • 28. WMBv6.x - Java Compute Node Accessing the tree using object API public class SampleFlow_JavaCompute extends MbJavaComputeNode { public void evaluate(MbMessageAssembly assembly) throws MbException { MbElement xmlnsc = assembly.getMessage().getRootElement().getLastChild(); MbElement chapter = xmlnsc.getFirstChild().getFirstChild(); } }
  • 29. WMBv6.x - Java Compute Node MbElement object (0x01000000):XMLNSC = ( (0x01000000):document = ( (0x03000000):chapter = 'This is chapter one' ( (0x03000100):title = 'Chapter One' ) ) ) MbElement chapter = xmlnsc.getFirstChild().getFirstChild(); chapter.getName(); // Returnerar ”chapter” chapter.getValue(); // Returnerar ”This is chapter one” chapter.getType(); // Returnerar MbElement.TYPE_NAME_VALUE chapter.getSpecificType(); // Returnerar 0x3000000 (XMLNSC-typkoden för element) chapter.setName(”foo”); chapter.setValue(”bar”); …
  • 30. WMBv6.x - Java Compute Node ESQL equivalents getMessage().getRootElement() InputRoot getMessage().getRootElement() .getLastChild() InputBody getLocalEnvironment().getRootElement() InputLocalEnvironment getGlobalEnvironment().getRootElement() Environment getExceptionList().getRootElement() InputExceptionList
  • 31. WMBv6.x - Java Compute Node Accessing the tree
    • Using XPath
  • 32. WMBv6.x - Java Compute Node Accessing the tree with XPath / <document> <chapter title=”Chapter One”> This is chapter one </chapter> </document> (0x01000000): XMLNSC = ( (0x01000000):document = ( (0x03000000):chapter = 'This is chapter one' ( (0x03000100):title = 'Chapter One' ) ) )
  • 33. WMBv6.x - Java Compute Node Accessing the tree with XPath /document < document > <chapter title=”Chapter One”> This is chapter one </chapter> </ document > (0x01000000):XMLNSC = ( (0x01000000): document = ( (0x03000000):chapter = 'This is chapter one' ( (0x03000100):title = 'Chapter One' ) ) )
  • 34. WMBv6.x - Java Compute Node Accessing the tree with XPath /document/chapter <document> < chapter title=”Chapter One”> This is chapter one </ chapter > </document> (0x01000000):XMLNSC = ( (0x01000000):document = ( (0x03000000): chapter = 'This is chapter one' ( (0x03000100):title = 'Chapter One' ) ) )
  • 35. WMBv6.x - Java Compute Node Accessing the tree with XPath /document/chapter/@title <document> <chapter title=”Chapter One” > This is chapter one </chapter> </document> (0x01000000):XMLNSC = ( (0x01000000):document = ( (0x03000000):chapter = 'This is chapter one' ( (0x03000100): title = 'Chapter One' ) ) )
  • 36. WMBv6.x - Java Compute Node Accessing the tree with XPath /document/chapter[@title=’Chapter One’] <document> < chapter title=”Chapter One”> This is chapter one </ chapter > </document> (0x01000000):XMLNSC = ( (0x01000000):document = ( (0x03000000): chapter = 'This is chapter one' ( (0x03000100):title = 'Chapter One' ) ) )
  • 37. WMBv6.x - Java Compute Node Accessing the tree with XPath /document/chapter[@title=’Chapter One’]/.. < document > <chapter title=”Chapter One”> This is chapter one </chapter> </ document > (0x01000000):XMLNSC = ( (0x01000000): document = ( (0x03000000):chapter = 'This is chapter one' ( (0x03000100):title = 'Chapter One' ) ) )
  • 38. WMBv6.x - Java Compute Node Accessing the tree with XPath string(/document/chapter/@title) <document> <chapter title=” Chapter One ”> This is chapter one </chapter> </document> (0x01000000):XMLNSC = ( (0x01000000):document = ( (0x03000000):chapter = 'This is chapter one' ( (0x03000100):title = ' Chapter One ' ) ) )
  • 39. WMBv6.x - Java Compute Node
    • Modifying the tree using XPath
  • 40. WMBv6.x - Java Compute Node Modifying the tree with XPath Funktioner: set-value() set-local-name() set-namespace-uri()
  • 41. WMBv6.x - Java Compute Node Modifying the tree with XPath Broker specific XPath additions: ?myElement Selects myElement, created if not present ?$myElement Creates myElement as last child and selects it ?^myElement Creates myElement as first child and selects it ?>myElement Creates myElement as next sibling and selects it ?<myElement Creates myElement as previous sibling and selects it @ Used to select attributes, e.g; ?@myAttribute[set-value(’Attribute value’)]
  • 42. WMBv6.x - Java Compute Node Modifying the tree with XPath <document> <chapter title=”Chapter One”> This is chapter one </chapter> </document>
  • 43. WMBv6.x - Java Compute Node Modifying the tree with XPath <document> <chapter title=”Chapter One”> This is chapter one </chapter> </document> /document/?$chapter [set-value('This is chapter two')] [?@title[set-value('Chapter Two')]]
  • 44. WMBv6.x - Java Compute Node Modifying the tree with XPath <document> <chapter title=”Chapter One”> This is chapter one </chapter> </document> /document/?$chapter [set-value('This is chapter two')] [?@title[set-value('Chapter Two')]] <document> <chapter title=”Chapter One”> This is chapter one </chapter> <chapter title=”Chapter Two”> This is chapter two </chapter> </document>
  • 45. WMBv6.x - Java Compute Node
    • Classloading
  • 46. WMBv6.x - Java Compute Node Classloading
    • One JVM for each EG
  • 47. WMBv6.x - Java Compute Node Classloading
    • Shared libraries may be deployed either by
      • Adding the JAR file in the BAR file
      • Adding the JAR file in the shared-classes directory on the broker server
  • 48. WMBv6.x - Java Compute Node Classloading
    • The shared-classes directory is shared(!) by all EGs
  • 49. WMBv6.x - Java Compute Node Classloading
    • Classloading is performed in this order
      • The own EG is searched
      • The shared-classes directory is searched
  • 50. WMBv6.1 Recommended skill set
    • XPath – first and foremost
      • Used extensively in:
        • node configuration
        • Java API
    • If you’re about to use Java
      • Learn the broker XPath extensions
        • Enables you to write more robust code
      • Carefully plan and consider the usage of shared libraries