SlideShare ist ein Scribd-Unternehmen logo
1 von 65
Ant Phillips
 antphill@uk.ibm.com




WebSphere Message Broker
Advanced Pattern Authoring




                             © 2012 IBM Corporation
Round Tripping




                 © 2012 IBM Corporation
Customising Pattern Instances


 The message flow below shows a familiar pattern authoring approach:




 Subflows clarify where pattern users should add their customisations
     – Defines a design contract between the generated flows and the pattern user
     – This contract ensures the pattern user does not break the generated flows
     – Pattern users can extend their pattern instances in many different directions!
         • Message maps, PHP scripts, Java, XSLT, message definitions and much more

 However, everything is deleted when a pattern instance is re-generated!
     – Re-generation is a common task as a pattern user explores a pattern
    A clean separation is required between the generated artifacts and the pattern user’s customisations

3                                                                                              © 2012 IBM Corporation
Customising Pattern Instances

 Recommended approach is put the subflows in a separate project:
      – This project contains the subflows for the pattern user to modify
      – One or more projects which contain the pattern instance generated flows

 The project is marked as customisable in the Pattern Authoring editor:




     Customisation projects are never deleted nor
      overwritten when a pattern instance is re-generated

4                                                                                 © 2012 IBM Corporation
Pattern Refinement




                     © 2012 IBM Corporation
Refresh!


 Pattern authoring supports property changes out-of-the-box
    – Node, user-defined properties (UDPs) and promoted node properties

 Property variability is the most common type of variability that a pattern
  might need to express - there are many others:
    – Generate application text files such as ESQL scripts
    – Make structural changes to Message Flows
    – Create administration files such as MQSC scripts

 It is impossible to try and predict all the possible extensions that a pattern
  author might wish to implement
 In Message Broker we provide two ways to extend pattern authoring
    – Java code that is invoked when pattern instances are generated
    – PHP templates that generate text files in pattern instance projects




6                                                                           © 2012 IBM Corporation
Where Does Your PHP and Java Code Go?
 Pattern refinements are packaged in one or more separate plug-ins
    – Packaged and distributed with the generated pattern plug-ins
    – Clean separation between code written by the pattern author and the plug-ins generated
      by the Pattern Authoring editor
    – Makes it very easy to re-use Java and PHP between patterns
    – Straightforward to version, patch and upgrade the plug-ins
    – All the plug-ins can still be packaged in a single ZIP file for distribution

 New pattern authoring wizard make it a breeze to create plug-ins!




7                                                                                 © 2012 IBM Corporation
Pattern Instance Generation

 The following sequence of actions generates pattern instance projects:
    1.   The pattern authoring runtime creates the pattern instance projects
    2.   All non message flow files are copied into the pattern instance projects
    3.   The message flows are loaded into memory from the pattern plug-ins
    4.   All target properties are configured in the message flows
    5.   PHP and Java targets are invoked in top-to-bottom order
    6.   The message flows are saved into the pattern instance projects




8                                                                                   © 2012 IBM Corporation
Rolling Your Own Plug-in?


 It must be a plug-in not just a Java project!
 Your plug-in must export the Java classes that are to be invoked
 You will need a reference to com.ibm.broker.config.appdev
 There is a reference from the pattern plug-ins to your plug-in
    – The pattern authoring generator adds this to the plug-in manifest

 If it contains PHP templates then it must be a directory plug-in
    – PHP scripts can only be loaded direct from the file system and not from a JAR

 The plug-in must be installed before pattern instances can be created
    – So think about how you want to distribute your code!




9                                                                                 © 2012 IBM Corporation
Java and PHP code
 Easy to attach Java and PHP code to a pattern – the code is invoked in
  top down order as shown in the Pattern Authoring editor




10                                                                © 2012 IBM Corporation
Java Code

 Java classes implement GeneratePatternInstanceTransform
 The pattern authoring runtime invokes onGeneratePatternInstance
 The method is passed a reference to a PatternInstanceManager
     – Provides access to pattern parameters, pattern instance name and workspace location
     – Most important of all, the Java class can manipulate message flows!




11                                                                               © 2012 IBM Corporation
Java Example




12             © 2012 IBM Corporation
Manipulating Message Flows


 Retrieve a message flow using the patternInstanceManager
 Pass the (exemplar) project name and the relative path to the file
 The message flows are loaded into memory from the pattern plug-ins
     – The flows are automatically saved into the pattern instance projects at the end

 Your changes act on the message flow immediately




13                                                                                   © 2012 IBM Corporation
Message Flow API

 The MessageFlow API contains all the nodes, connections and artefacts
  present in the message flow




 The Message Flow API includes properties, nodes and connections
     – This is not an exhaustive list!

 User Defined Nodes are represented as GenericNode

14                                                             © 2012 IBM Corporation
Message Flow API

 Helper methods throughout the Message Flow API
     – For example, finding a node by its label using getNodeByName

 Node properties are strongly typed wherever possible
 Enumerations are provided for properties
     – Implemented as type-safe classes

 JavaDoc provided for properties (easily viewed in the Java editor)




15                                                                    © 2012 IBM Corporation
Creating Connections Between Nodes
 Nodes can be connected using terminals (in the Node class)




 Dynamic terminals and GenericNode terminals also supported




16                                                             © 2012 IBM Corporation
Complex Properties

 Complex properties are manipulated using objects (tables and rows)
 Property values on rows are strongly typed
 Rows can be added and removed from tables




17                                                              © 2012 IBM Corporation
Complex Properties Example




18                           © 2012 IBM Corporation
PHP


 PHP is a general purpose dynamic scripting language
 Easy to use with a gentle learning curve
 Efficient syntax and library have evolved in open source
   – Community driven to get more done in less time
   – Impressive results with little code
   – Extensive library support
   – Language well suited to rapid prototyping
 More than 3 million developers worldwide
 4th most populate language after Java, C and Visual Basic
 Message Broker PHP Compute Node since v6.1.0.4
     – Java implementation, fully compliant with PHP version 5.2




19                                                                 © 2012 IBM Corporation
PHP Templates


 Output from PHP template is written straight to a pattern instance file




20                                                                   © 2012 IBM Corporation
PHP Scripts


 The PHP script invokes other PHP templates to output files
     – Script acts as a controller and runs other templates as required

 Typically used when custom logic is required with pattern parameters
 Output from the controller script is sent to the Console view




21                                                                        © 2012 IBM Corporation
PHP Example (main.php)




22                       © 2012 IBM Corporation
PHP Example (example.esql.php)

                                   This uses the PHP echo function to write
                                  the text into the output file - the embedded
                                  PHP code is accessing pattern parameters
                                         through the _MB super global




                          This section of ESQL script is conditionally output
                            depending on the value of the errorAction
                          pattern parameter - the surrounding PHP uses a
                           HEREDOC to output the code as a literal string



23                                                                              © 2012 IBM Corporation
PHP Super Globals
 PHP provides a large number of predefined variables to any script which it
  runs – Message Broker has an additional super global called _MB
 _MB in pattern authoring is populated with the pattern parameters, the
  pattern instance name and the PatternInstanceManager:




24                                                                 © 2012 IBM Corporation
Standard PHP Functions




  The full list of supported PHP extensions and functions are listed here:
     http://publib.boulder.ibm.com/infocenter/wmbhelp/v7r0m0/topic/com.ibm.etools.mft.doc/ac69026_.htm

  Extensive help on PHP is available on http://php.net
     –Individual functions can be located directly, for example: http://php.net/phpinfo

  The language reference for PHP is here:
     –http://www.php.net/manual/en/langref.php

  There are a few language differences between the Message Broker PHP
   and the Open Source PHP implementation – they are listed here:
     –http://publib.boulder.ibm.com/infocenter/wmbhelp/v7r0m0/index.jsp




25                                                                                                       © 2012 IBM Corporation
Debug




        © 2012 IBM Corporation
Debugging Your Pattern Refinements
 Java pattern refinements can be debugged in the Java debugger
 The launch configuration is automatically created the first time you test a
  pattern from the Pattern Authoring editor:




 Any console output from your PHP or Java appears in the Console view:




27                                                                  © 2012 IBM Corporation
Editing PHP On-The-Fly

 You do not need to re-launch a workbench to test your PHP changes
 Simply save the file in the main workbench and click Generate again
 This edit and test efficiency is a major productivity boost
 If you change anything else in the pattern then you need to re-launch




28                                                                © 2012 IBM Corporation
Exception Handing
 Exceptions from PHP and Java code are caught and displayed




29                                                             © 2012 IBM Corporation
Java and PHP
  Interoperability




                     © 2012 IBM Corporation
PHP and Java Integration

 It is straightforward to invoke Java code from your PHP scripts:




 The Message Broker PHP runtime has a feature rich Java bridge
     http://www.projectzero.org/sMash/1.1.x/docs/zero.devguide.doc/zero.php/ZeroAdvancedPHPJavaBridge.html

 This PHP script is manipulating the message flow using the Java API!

                                   31




31                                                                                                     © 2012 IBM Corporation
So Which Language Should I Use?



 Because of the Java bridge in the PHP runtime, many pattern authoring
  tasks can be done in either language
 So here are some general recommendations – your mileage may vary!
 Use PHP for text files that need to be marked up with conditional logic
 Use Java to manipulate message flows as you get an excellent
  debugger and code completion in the Java editor
     – Unless you have PHP skills and prefer the productivity of scripting languages!

 If you have existing assets or libraries that you want to call, pick the
  language that best aligns with them




32                                                                                  © 2012 IBM Corporation
Table Parameters




                   © 2012 IBM Corporation
Table Parameters


 Tables support row oriented data entered by the pattern user
     – The data type of the rows in a table is restricted to strings at the moment
     – No field validation of data is possible either (for example between columns)

 No automatic mapping to complex properties is available
     – Process the rows of information using the Message Flow API

 Tables appear frequently in the built-in Message Broker patterns
     – For example, to control message routing in the file processing pattern




34                                   Pattern Building in WebSphere Message Broker     © 2012 IBM Corporation
Table Parameters
 Table editor added to the selection of editors available for parameters:




 Tables are defined by the pattern author in the table editor
     – Columns can be mandatory or optional, and may also have width specified
     – Help text for the columns in defined in HTML just like pattern parameters




35                                  Pattern Building in WebSphere Message Broker   © 2012 IBM Corporation
Accessing Table Parameters

 Two Java APIs isTableParameter and getParameterTable
  available in the PatternInstanceManager interface
 getParameterTable returns a PatternParameterTable instance
 PatternParameterTable provides access to the row count and the
  individual rows
 Rows are accessed through an instance of PatternParameterRow




36                       Pattern Building in WebSphere Message Broker   © 2012 IBM Corporation
Enumerated Types




                   © 2012 IBM Corporation
Enumerated Types

 Target properties are strongly typed
     – String, integer, boolean and enumerations and the most common types
     – An enumeration is a list of permissible values for a given property:




 The Pattern Authoring editor has full support for enumerations
     – An enumerated type is automatically created when a target property is added
     – The enumerated type includes the display names and property values
     – The list of values presented to the pattern user can be reduced if required



38                                                                                   © 2012 IBM Corporation
Advanced Field Editors




                         © 2012 IBM Corporation
Field Editors
 Advanced field editors provide richer user interface experience
     – Built in validation also ensures data is entered correctly by the pattern user

 Queue name and project name editors make common cases simple!




40                                    Pattern Building in WebSphere Message Broker      © 2012 IBM Corporation
File and Folder Selection

Two use cases stand out above all others for the file selection editor:
As a way to augment existing files to implement micro patterns
     – For example, to add error handling logic to existing Message Flows

To store metadata for mass migration and generation of message flows
     – The file might be XML data and used to programmatically generate message flows
     – Sometimes it is appropriate for pattern users to enter data in third party tools




41                                  Pattern Building in WebSphere Message Broker   © 2012 IBM Corporation
User-Defined Editors




                       © 2012 IBM Corporation
User-Defined Editors

 Pattern authoring provides an extensive set of pattern parameter editors
 Built-in editors support a range of data types such as strings and integers
 Validating editors also provided such as the message queue name editor




 Patterns are emerging which require a richer set of parameter editors
      Supports scenarios where your pattern user does extended exploration and discovery
43                                Pattern Building in WebSphere Message Broker   © 2012 IBM Corporation
User-Defined Editors

 Pattern authors can define their own editors to use in their patterns:




 User-defined editors are defined and implemented in Java code
      Java code is packaged just like existing code in a pattern authoring project

 User-defined editors collaborate with the Pattern Instance editor
      User-defined editors support watermarking, XPath enablement, mandatory
       configuration, validation, and change notifications to other editors!

44                                  Pattern Building in WebSphere Message Broker      © 2012 IBM Corporation
Creating User-Defined Editors




                            © 2012 IBM Corporation
Creating User-Defined Editors - Introduction

You create two Java classes that together implement a user-defined editor:
The first class implements the user interface using SWT controls
      This user interface class extends the SWT Composite class

The second class extends the BasePatternPropertyEditor class
      This class interfaces with the Pattern Instance editor

Wizards are provided that make it very easy to create these classes!




46                                   Pattern Building in WebSphere Message Broker   © 2012 IBM Corporation
Creating User-Defined Editors - Composite

 Recommended to install WindowBuilder into your Message Broker toolkit
 WindowBuilder is an open source user interface design tool for Eclipse
      Download WindowBuilder from http://code.google.com/javadevtools/wbpro/
      Very easy to install the plug-ins using Help -> Install New Software
      Message Broker is now based on Eclipse Helios so use the 3.6 update site




47                                  Pattern Building in WebSphere Message Broker   © 2012 IBM Corporation
Creating User-Defined Editors - Composite

Create an SWT Composite using the standard WindowBuilder wizard:




48                        Pattern Building in WebSphere Message Broker   © 2012 IBM Corporation
Creating User-Defined Editors – User Interface
 Design your SWT composite using the WindowBuilder editor
      The palette of SWT controls makes it easy to visually create your user interface
      Set up handlers (methods) to receive event notifications from your SWT controls




49                                  Pattern Building in WebSphere Message Broker    © 2012 IBM Corporation
Creating User-Defined Editors – Main Class
 New wizard makes it easy to create a user-defined editor main class
 User-defined editors extend the BasePatternPropertyEditor class
      There are several methods (explained next) you override to complete your editor




 Your implementation class must be exported from your Java project
      Double click the MANIFEST.MF and check the exported packages on the Runtime tab!
50                                 Pattern Building in WebSphere Message Broker   © 2012 IBM Corporation
Creating User-Defined Editors – Main Class

 The configureEditor method is called first to set up your editor
      A PatternPropertySite is provided as your interface to the Pattern Instance editor
      The configuration values from the pattern authoring editor are also provided

 In your main editor class create an instance of your Composite class
      Do this when your createControls method is invoked by the Pattern Instance editor




51                                  Pattern Building in WebSphere Message Broker      © 2012 IBM Corporation
Creating User-Defined Editors – Main Class

Add extra methods to your main class to complete your implementation:
      isValid returns null or a string describing the validation error
      setValue is called early on to pass the initial value to your editor
      getValue is called when the editor is being saved into a configuration file
      setEnabled to enable and disable your user interface controls

Your editor is always saved before a pattern instance is generated
      Return your editor value as a string (or return null for no current value)

You must call valueChanged on your site when your value changes
      This ensures change notifications are sent to any editors listening to your editor!




52                                   Pattern Building in WebSphere Message Broker     © 2012 IBM Corporation
Creating User-Defined Editors – Debugging
 All exceptions thrown by user-defined editors are caught and displayed
      Provides fail fast feedback to the pattern author on where the code issue is
      Beware of setValue being called with a null value when your editor is instantiated!




53                                  Pattern Building in WebSphere Message Broker      © 2012 IBM Corporation
Packaging User-Defined Editors




                            © 2012 IBM Corporation
Creating a User-Defined Editor – Packaging

 Additional projects can now be packaged into patternzip archives
 Convenient way to add Java projects containing user-defined editors
      Also provides an easy way to package third party JAR files in your patterns!




55                                  Pattern Building in WebSphere Message Broker      © 2012 IBM Corporation
Using User-Defined Editors




                             © 2012 IBM Corporation
Using User-Defined Editors


 Select your user-defined editor when you configure a pattern parameter
      Provide a default value to pass an initial value to the user-defined editor




57                                   Pattern Building in WebSphere Message Broker    © 2012 IBM Corporation
Using User-Defined Editors

 Choose the project and class name that contains the user-defined editor
 Additional editor specific configuration values can be passed along
 Select the pattern parameters that will send you change notifications
 Allows chaining of dependent pattern parameters like message set, type and format




58                                 Pattern Building in WebSphere Message Broker   © 2012 IBM Corporation
User-Defined Editors - Summary


 User-defined editors support rich pattern user interface experiences
 Very simple - get a fully functional editor working in less than an hour!
      WindowBuilder provides an excellent design environment for your user interface




59                                 Pattern Building in WebSphere Message Broker   © 2012 IBM Corporation
Fine Grained Control




                       © 2012 IBM Corporation
Transformation
 The Pattern Authoring editor uses XPath as its expression language
     – XPath is a general purpose expression language!

 XPath expressions can transform pattern parameter values:
     – Pattern authors can configure an XPath expression for a pattern parameter
     – Expressions are evaluated when the pattern instance is generated




61                                                                                 © 2012 IBM Corporation
Enablement

 Enablement uses an XPath expression to control when a pattern
  parameter is enabled in the Pattern Instance editor




 The enablement expression is evaluated every time a pattern parameter
  referenced in the XPath expression changes value
 If the result of the evaluation is true then the editor is enabled

62                                                                     © 2012 IBM Corporation
Hiding Groups


 Groups can be conditionally hidden in the Pattern Instance editor
 Follows same design principle as enabling and disabling parameters
 Removes visual clutter from screen for more complex patterns




63                           Pattern Building in WebSphere Message Broker   © 2012 IBM Corporation
Project Enablement

 Projects can be enabled in the Pattern Authoring editor:




 The XPath expression is evaluated when a pattern instance is generated
 If the result of the evaluation is true then the project is created
     – Allows project creation to be linked to pattern parameters



64                                   Pattern Building in WebSphere Message Broker   © 2012 IBM Corporation
Project Naming


 Control available over generated project names




 The pattern instance name prefix is optional for each project
 Pattern parameters can also now be used to name generated projects
     – Hidden parameters can be used so that complex names can be specified in XPath


65                                 Pattern Building in WebSphere Message Broker   © 2012 IBM Corporation

Weitere ähnliche Inhalte

Was ist angesagt?

WebSphere Message Broker Application Development Training
WebSphere Message Broker Application Development TrainingWebSphere Message Broker Application Development Training
WebSphere Message Broker Application Development TrainingVijaya Raghava Vuligundam
 
201307 esb01 - iib v9 patterns
201307   esb01 - iib v9 patterns201307   esb01 - iib v9 patterns
201307 esb01 - iib v9 patternskondapallishashi
 
IBM How to Develop Responsive Applications
IBM How to Develop Responsive ApplicationsIBM How to Develop Responsive Applications
IBM How to Develop Responsive ApplicationsIBM Systems UKI
 
Using WebSphere MQ with WebSphere Application Server and the Liberty Profile
Using WebSphere MQ with WebSphere Application Server and the Liberty ProfileUsing WebSphere MQ with WebSphere Application Server and the Liberty Profile
Using WebSphere MQ with WebSphere Application Server and the Liberty Profilet_quigly
 
How to develop responsive applications with ibm web sphere mq light
How to develop responsive applications with ibm web sphere mq lightHow to develop responsive applications with ibm web sphere mq light
How to develop responsive applications with ibm web sphere mq lightmatthew1001
 
IBM WebSphere Portal References Education
IBM WebSphere Portal References EducationIBM WebSphere Portal References Education
IBM WebSphere Portal References EducationDvir Reznik
 
MQLight for WebSphere Integration user group June 2014
MQLight for WebSphere Integration user group June 2014MQLight for WebSphere Integration user group June 2014
MQLight for WebSphere Integration user group June 2014Mark Phillips
 
TechDoc - WMB - Administration - Logs
TechDoc - WMB - Administration - LogsTechDoc - WMB - Administration - Logs
TechDoc - WMB - Administration - LogsGlen Brumbaugh
 
Websphere Portal
Websphere PortalWebsphere Portal
Websphere Portaldominion
 
MQ Light in IBM MQ: IBM Interconnect 2015 session AME4182
MQ Light in IBM MQ:  IBM Interconnect 2015 session AME4182MQ Light in IBM MQ:  IBM Interconnect 2015 session AME4182
MQ Light in IBM MQ: IBM Interconnect 2015 session AME4182Robert Nicholson
 
Extreme Versioning: Delivering Customized Documentation Via XML
Extreme Versioning: Delivering Customized Documentation Via XMLExtreme Versioning: Delivering Customized Documentation Via XML
Extreme Versioning: Delivering Customized Documentation Via XMLScott Abel
 
Chapter 10:Understanding Java Related Platforms and Integration Technologies
Chapter 10:Understanding Java Related Platforms and Integration TechnologiesChapter 10:Understanding Java Related Platforms and Integration Technologies
Chapter 10:Understanding Java Related Platforms and Integration TechnologiesIt Academy
 
IBM WebSphere Application Server (Clustering) Concept
IBM WebSphere Application Server (Clustering) ConceptIBM WebSphere Application Server (Clustering) Concept
IBM WebSphere Application Server (Clustering) Conceptejlp12
 
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...Carl Tyler
 
IBM Portal Web intro
IBM Portal Web introIBM Portal Web intro
IBM Portal Web introdanisman
 

Was ist angesagt? (18)

WebSphere Message Broker Application Development Training
WebSphere Message Broker Application Development TrainingWebSphere Message Broker Application Development Training
WebSphere Message Broker Application Development Training
 
201307 esb01 - iib v9 patterns
201307   esb01 - iib v9 patterns201307   esb01 - iib v9 patterns
201307 esb01 - iib v9 patterns
 
IBM How to Develop Responsive Applications
IBM How to Develop Responsive ApplicationsIBM How to Develop Responsive Applications
IBM How to Develop Responsive Applications
 
Using WebSphere MQ with WebSphere Application Server and the Liberty Profile
Using WebSphere MQ with WebSphere Application Server and the Liberty ProfileUsing WebSphere MQ with WebSphere Application Server and the Liberty Profile
Using WebSphere MQ with WebSphere Application Server and the Liberty Profile
 
How to develop responsive applications with ibm web sphere mq light
How to develop responsive applications with ibm web sphere mq lightHow to develop responsive applications with ibm web sphere mq light
How to develop responsive applications with ibm web sphere mq light
 
IBM WebSphere Portal References Education
IBM WebSphere Portal References EducationIBM WebSphere Portal References Education
IBM WebSphere Portal References Education
 
MQLight for WebSphere Integration user group June 2014
MQLight for WebSphere Integration user group June 2014MQLight for WebSphere Integration user group June 2014
MQLight for WebSphere Integration user group June 2014
 
TechDoc - WMB - Administration - Logs
TechDoc - WMB - Administration - LogsTechDoc - WMB - Administration - Logs
TechDoc - WMB - Administration - Logs
 
Websphere Portal
Websphere PortalWebsphere Portal
Websphere Portal
 
MQ Light in IBM MQ: IBM Interconnect 2015 session AME4182
MQ Light in IBM MQ:  IBM Interconnect 2015 session AME4182MQ Light in IBM MQ:  IBM Interconnect 2015 session AME4182
MQ Light in IBM MQ: IBM Interconnect 2015 session AME4182
 
MQ Light for WTU
 MQ Light for WTU MQ Light for WTU
MQ Light for WTU
 
Extreme Versioning: Delivering Customized Documentation Via XML
Extreme Versioning: Delivering Customized Documentation Via XMLExtreme Versioning: Delivering Customized Documentation Via XML
Extreme Versioning: Delivering Customized Documentation Via XML
 
Chapter 10:Understanding Java Related Platforms and Integration Technologies
Chapter 10:Understanding Java Related Platforms and Integration TechnologiesChapter 10:Understanding Java Related Platforms and Integration Technologies
Chapter 10:Understanding Java Related Platforms and Integration Technologies
 
IBM WebSphere Application Server (Clustering) Concept
IBM WebSphere Application Server (Clustering) ConceptIBM WebSphere Application Server (Clustering) Concept
IBM WebSphere Application Server (Clustering) Concept
 
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
 
IBM WebSphere Portal
IBM WebSphere PortalIBM WebSphere Portal
IBM WebSphere Portal
 
Yury Verameichyk-2015
Yury Verameichyk-2015Yury Verameichyk-2015
Yury Verameichyk-2015
 
IBM Portal Web intro
IBM Portal Web introIBM Portal Web intro
IBM Portal Web intro
 

Andere mochten auch

The art of wmb deployment automation
The art of wmb deployment automationThe art of wmb deployment automation
The art of wmb deployment automationMidVision
 
IBM MQ: Using Publish/Subscribe in an MQ Network
IBM MQ: Using Publish/Subscribe in an MQ NetworkIBM MQ: Using Publish/Subscribe in an MQ Network
IBM MQ: Using Publish/Subscribe in an MQ NetworkDavid Ware
 
Apache Kafka Reliability Guarantees StrataHadoop NYC 2015
Apache Kafka Reliability Guarantees StrataHadoop NYC 2015 Apache Kafka Reliability Guarantees StrataHadoop NYC 2015
Apache Kafka Reliability Guarantees StrataHadoop NYC 2015 Jeff Holoman
 
Kafka Reliability Guarantees ATL Kafka User Group
Kafka Reliability Guarantees ATL Kafka User GroupKafka Reliability Guarantees ATL Kafka User Group
Kafka Reliability Guarantees ATL Kafka User GroupJeff Holoman
 
WebSphere Message Broker Training | IBM WebSphere Message Broker Online Training
WebSphere Message Broker Training | IBM WebSphere Message Broker Online TrainingWebSphere Message Broker Training | IBM WebSphere Message Broker Online Training
WebSphere Message Broker Training | IBM WebSphere Message Broker Online Trainingecorptraining2
 
Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016
Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016
Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016Leif Davidsen
 
InterConnect 2016: What's new in IBM MQ
InterConnect 2016: What's new in IBM MQInterConnect 2016: What's new in IBM MQ
InterConnect 2016: What's new in IBM MQDavid Ware
 
InterConnect 2016: IBM MQ self-service and as-a-service
InterConnect 2016: IBM MQ self-service and as-a-serviceInterConnect 2016: IBM MQ self-service and as-a-service
InterConnect 2016: IBM MQ self-service and as-a-serviceDavid Ware
 
IBM MQ: Managing Workloads, Scaling and Availability with MQ Clusters
IBM MQ: Managing Workloads, Scaling and Availability with MQ ClustersIBM MQ: Managing Workloads, Scaling and Availability with MQ Clusters
IBM MQ: Managing Workloads, Scaling and Availability with MQ ClustersDavid Ware
 
IBM Messaging Security - Why securing your environment is important : IBM Int...
IBM Messaging Security - Why securing your environment is important : IBM Int...IBM Messaging Security - Why securing your environment is important : IBM Int...
IBM Messaging Security - Why securing your environment is important : IBM Int...Leif Davidsen
 
Docker Overview - Rise of the Containers
Docker Overview - Rise of the ContainersDocker Overview - Rise of the Containers
Docker Overview - Rise of the ContainersRyan Hodgin
 
Data Power Architectural Patterns - Jagadish Vemugunta
Data Power Architectural Patterns - Jagadish VemuguntaData Power Architectural Patterns - Jagadish Vemugunta
Data Power Architectural Patterns - Jagadish Vemuguntafloridawusergroup
 
IBM MQ Disaster Recovery
IBM MQ Disaster RecoveryIBM MQ Disaster Recovery
IBM MQ Disaster RecoveryMarkTaylorIBM
 
Netflix security monkey overview
Netflix security monkey overviewNetflix security monkey overview
Netflix security monkey overviewRyan Hodgin
 
IBM Integration Bus High Availability Overview
IBM Integration Bus High Availability OverviewIBM Integration Bus High Availability Overview
IBM Integration Bus High Availability OverviewPeter Broadhurst
 
Apache Spark: What's under the hood
Apache Spark: What's under the hoodApache Spark: What's under the hood
Apache Spark: What's under the hoodAdarsh Pannu
 
Apache Kafka: A high-throughput distributed messaging system @ JCConf 2014
Apache Kafka: A high-throughput distributed messaging system @ JCConf 2014Apache Kafka: A high-throughput distributed messaging system @ JCConf 2014
Apache Kafka: A high-throughput distributed messaging system @ JCConf 2014Chen-en Lu
 
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...Serdar Basegmez
 

Andere mochten auch (20)

The art of wmb deployment automation
The art of wmb deployment automationThe art of wmb deployment automation
The art of wmb deployment automation
 
Java & J2EE Coding Conventions
Java & J2EE Coding ConventionsJava & J2EE Coding Conventions
Java & J2EE Coding Conventions
 
IBM MQ: Using Publish/Subscribe in an MQ Network
IBM MQ: Using Publish/Subscribe in an MQ NetworkIBM MQ: Using Publish/Subscribe in an MQ Network
IBM MQ: Using Publish/Subscribe in an MQ Network
 
Apache Kafka Reliability Guarantees StrataHadoop NYC 2015
Apache Kafka Reliability Guarantees StrataHadoop NYC 2015 Apache Kafka Reliability Guarantees StrataHadoop NYC 2015
Apache Kafka Reliability Guarantees StrataHadoop NYC 2015
 
Kafka Reliability Guarantees ATL Kafka User Group
Kafka Reliability Guarantees ATL Kafka User GroupKafka Reliability Guarantees ATL Kafka User Group
Kafka Reliability Guarantees ATL Kafka User Group
 
WebSphere Message Broker Training | IBM WebSphere Message Broker Online Training
WebSphere Message Broker Training | IBM WebSphere Message Broker Online TrainingWebSphere Message Broker Training | IBM WebSphere Message Broker Online Training
WebSphere Message Broker Training | IBM WebSphere Message Broker Online Training
 
Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016
Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016
Expanding your options with the IBM MQ Appliance - IBM InterConnect 2016
 
InterConnect 2016: What's new in IBM MQ
InterConnect 2016: What's new in IBM MQInterConnect 2016: What's new in IBM MQ
InterConnect 2016: What's new in IBM MQ
 
InterConnect 2016: IBM MQ self-service and as-a-service
InterConnect 2016: IBM MQ self-service and as-a-serviceInterConnect 2016: IBM MQ self-service and as-a-service
InterConnect 2016: IBM MQ self-service and as-a-service
 
IBM MQ: Managing Workloads, Scaling and Availability with MQ Clusters
IBM MQ: Managing Workloads, Scaling and Availability with MQ ClustersIBM MQ: Managing Workloads, Scaling and Availability with MQ Clusters
IBM MQ: Managing Workloads, Scaling and Availability with MQ Clusters
 
IBM Messaging Security - Why securing your environment is important : IBM Int...
IBM Messaging Security - Why securing your environment is important : IBM Int...IBM Messaging Security - Why securing your environment is important : IBM Int...
IBM Messaging Security - Why securing your environment is important : IBM Int...
 
Docker Overview - Rise of the Containers
Docker Overview - Rise of the ContainersDocker Overview - Rise of the Containers
Docker Overview - Rise of the Containers
 
Data Power Architectural Patterns - Jagadish Vemugunta
Data Power Architectural Patterns - Jagadish VemuguntaData Power Architectural Patterns - Jagadish Vemugunta
Data Power Architectural Patterns - Jagadish Vemugunta
 
IBM MQ Disaster Recovery
IBM MQ Disaster RecoveryIBM MQ Disaster Recovery
IBM MQ Disaster Recovery
 
Netflix security monkey overview
Netflix security monkey overviewNetflix security monkey overview
Netflix security monkey overview
 
IBM Integration Bus High Availability Overview
IBM Integration Bus High Availability OverviewIBM Integration Bus High Availability Overview
IBM Integration Bus High Availability Overview
 
Mini-Training: Netflix Simian Army
Mini-Training: Netflix Simian ArmyMini-Training: Netflix Simian Army
Mini-Training: Netflix Simian Army
 
Apache Spark: What's under the hood
Apache Spark: What's under the hoodApache Spark: What's under the hood
Apache Spark: What's under the hood
 
Apache Kafka: A high-throughput distributed messaging system @ JCConf 2014
Apache Kafka: A high-throughput distributed messaging system @ JCConf 2014Apache Kafka: A high-throughput distributed messaging system @ JCConf 2014
Apache Kafka: A high-throughput distributed messaging system @ JCConf 2014
 
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
 

Ähnlich wie Advanced Pattern Authoring with WebSphere Message Broker

Ähnlich wie Advanced Pattern Authoring with WebSphere Message Broker (20)

Php Framework
Php FrameworkPhp Framework
Php Framework
 
Php framework
Php frameworkPhp framework
Php framework
 
Ide
IdeIde
Ide
 
Spring Architecture | Advanced Java
Spring Architecture | Advanced JavaSpring Architecture | Advanced Java
Spring Architecture | Advanced Java
 
Lamp Zend Security
Lamp Zend SecurityLamp Zend Security
Lamp Zend Security
 
Review Paper on Online Java Compiler
Review Paper on Online Java CompilerReview Paper on Online Java Compiler
Review Paper on Online Java Compiler
 
Introducing symfony
Introducing symfonyIntroducing symfony
Introducing symfony
 
green
greengreen
green
 
Spring notes
Spring notesSpring notes
Spring notes
 
MVC 3.0 KU Day 1 v 1.1
MVC 3.0 KU Day 1 v 1.1MVC 3.0 KU Day 1 v 1.1
MVC 3.0 KU Day 1 v 1.1
 
Php Frameworks
Php FrameworksPhp Frameworks
Php Frameworks
 
Everything PHP Developers Need To Be Productive
Everything PHP Developers Need To Be ProductiveEverything PHP Developers Need To Be Productive
Everything PHP Developers Need To Be Productive
 
dotNET frameworks
dotNET frameworksdotNET frameworks
dotNET frameworks
 
PHP Frameworks
PHP FrameworksPHP Frameworks
PHP Frameworks
 
Zero to Portlet in 20 minutes or less
Zero to Portlet in 20 minutes or lessZero to Portlet in 20 minutes or less
Zero to Portlet in 20 minutes or less
 
6
66
6
 
IRJET- Lightweight MVC Framework in PHP
IRJET- Lightweight MVC Framework in PHPIRJET- Lightweight MVC Framework in PHP
IRJET- Lightweight MVC Framework in PHP
 
PHP Basics
PHP BasicsPHP Basics
PHP Basics
 
Php&yii2
Php&yii2Php&yii2
Php&yii2
 
Java Spring Framework
Java Spring FrameworkJava Spring Framework
Java Spring Framework
 

Mehr von Ant Phillips

Healthcare Standards for Connecting Clinical Applications
Healthcare Standards for Connecting Clinical ApplicationsHealthcare Standards for Connecting Clinical Applications
Healthcare Standards for Connecting Clinical ApplicationsAnt Phillips
 
Connecting Clinical Applications with WebSphere Message Broker
Connecting Clinical Applications with WebSphere Message BrokerConnecting Clinical Applications with WebSphere Message Broker
Connecting Clinical Applications with WebSphere Message BrokerAnt Phillips
 
HL7 DFDL with WebSphere Message Broker
HL7 DFDL with WebSphere Message BrokerHL7 DFDL with WebSphere Message Broker
HL7 DFDL with WebSphere Message BrokerAnt Phillips
 
Healthcare Analytics with WebSphere Message Broker
Healthcare Analytics with WebSphere Message BrokerHealthcare Analytics with WebSphere Message Broker
Healthcare Analytics with WebSphere Message BrokerAnt Phillips
 
Medical Imaging (DICOM) with WebSphere Message Broker
Medical Imaging (DICOM) with WebSphere Message BrokerMedical Imaging (DICOM) with WebSphere Message Broker
Medical Imaging (DICOM) with WebSphere Message BrokerAnt Phillips
 
Healthcare Integration with WebSphere Message Broker
Healthcare Integration with WebSphere Message BrokerHealthcare Integration with WebSphere Message Broker
Healthcare Integration with WebSphere Message BrokerAnt Phillips
 
An Overview of the Message Broker Healthcare Connectivity Pack
An Overview of the Message Broker Healthcare Connectivity PackAn Overview of the Message Broker Healthcare Connectivity Pack
An Overview of the Message Broker Healthcare Connectivity PackAnt Phillips
 

Mehr von Ant Phillips (7)

Healthcare Standards for Connecting Clinical Applications
Healthcare Standards for Connecting Clinical ApplicationsHealthcare Standards for Connecting Clinical Applications
Healthcare Standards for Connecting Clinical Applications
 
Connecting Clinical Applications with WebSphere Message Broker
Connecting Clinical Applications with WebSphere Message BrokerConnecting Clinical Applications with WebSphere Message Broker
Connecting Clinical Applications with WebSphere Message Broker
 
HL7 DFDL with WebSphere Message Broker
HL7 DFDL with WebSphere Message BrokerHL7 DFDL with WebSphere Message Broker
HL7 DFDL with WebSphere Message Broker
 
Healthcare Analytics with WebSphere Message Broker
Healthcare Analytics with WebSphere Message BrokerHealthcare Analytics with WebSphere Message Broker
Healthcare Analytics with WebSphere Message Broker
 
Medical Imaging (DICOM) with WebSphere Message Broker
Medical Imaging (DICOM) with WebSphere Message BrokerMedical Imaging (DICOM) with WebSphere Message Broker
Medical Imaging (DICOM) with WebSphere Message Broker
 
Healthcare Integration with WebSphere Message Broker
Healthcare Integration with WebSphere Message BrokerHealthcare Integration with WebSphere Message Broker
Healthcare Integration with WebSphere Message Broker
 
An Overview of the Message Broker Healthcare Connectivity Pack
An Overview of the Message Broker Healthcare Connectivity PackAn Overview of the Message Broker Healthcare Connectivity Pack
An Overview of the Message Broker Healthcare Connectivity Pack
 

Kürzlich hochgeladen

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 

Kürzlich hochgeladen (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 

Advanced Pattern Authoring with WebSphere Message Broker

  • 1. Ant Phillips antphill@uk.ibm.com WebSphere Message Broker Advanced Pattern Authoring © 2012 IBM Corporation
  • 2. Round Tripping © 2012 IBM Corporation
  • 3. Customising Pattern Instances  The message flow below shows a familiar pattern authoring approach:  Subflows clarify where pattern users should add their customisations – Defines a design contract between the generated flows and the pattern user – This contract ensures the pattern user does not break the generated flows – Pattern users can extend their pattern instances in many different directions! • Message maps, PHP scripts, Java, XSLT, message definitions and much more  However, everything is deleted when a pattern instance is re-generated! – Re-generation is a common task as a pattern user explores a pattern A clean separation is required between the generated artifacts and the pattern user’s customisations 3 © 2012 IBM Corporation
  • 4. Customising Pattern Instances  Recommended approach is put the subflows in a separate project: – This project contains the subflows for the pattern user to modify – One or more projects which contain the pattern instance generated flows  The project is marked as customisable in the Pattern Authoring editor:  Customisation projects are never deleted nor overwritten when a pattern instance is re-generated 4 © 2012 IBM Corporation
  • 5. Pattern Refinement © 2012 IBM Corporation
  • 6. Refresh!  Pattern authoring supports property changes out-of-the-box – Node, user-defined properties (UDPs) and promoted node properties  Property variability is the most common type of variability that a pattern might need to express - there are many others: – Generate application text files such as ESQL scripts – Make structural changes to Message Flows – Create administration files such as MQSC scripts  It is impossible to try and predict all the possible extensions that a pattern author might wish to implement  In Message Broker we provide two ways to extend pattern authoring – Java code that is invoked when pattern instances are generated – PHP templates that generate text files in pattern instance projects 6 © 2012 IBM Corporation
  • 7. Where Does Your PHP and Java Code Go?  Pattern refinements are packaged in one or more separate plug-ins – Packaged and distributed with the generated pattern plug-ins – Clean separation between code written by the pattern author and the plug-ins generated by the Pattern Authoring editor – Makes it very easy to re-use Java and PHP between patterns – Straightforward to version, patch and upgrade the plug-ins – All the plug-ins can still be packaged in a single ZIP file for distribution  New pattern authoring wizard make it a breeze to create plug-ins! 7 © 2012 IBM Corporation
  • 8. Pattern Instance Generation  The following sequence of actions generates pattern instance projects: 1. The pattern authoring runtime creates the pattern instance projects 2. All non message flow files are copied into the pattern instance projects 3. The message flows are loaded into memory from the pattern plug-ins 4. All target properties are configured in the message flows 5. PHP and Java targets are invoked in top-to-bottom order 6. The message flows are saved into the pattern instance projects 8 © 2012 IBM Corporation
  • 9. Rolling Your Own Plug-in?  It must be a plug-in not just a Java project!  Your plug-in must export the Java classes that are to be invoked  You will need a reference to com.ibm.broker.config.appdev  There is a reference from the pattern plug-ins to your plug-in – The pattern authoring generator adds this to the plug-in manifest  If it contains PHP templates then it must be a directory plug-in – PHP scripts can only be loaded direct from the file system and not from a JAR  The plug-in must be installed before pattern instances can be created – So think about how you want to distribute your code! 9 © 2012 IBM Corporation
  • 10. Java and PHP code  Easy to attach Java and PHP code to a pattern – the code is invoked in top down order as shown in the Pattern Authoring editor 10 © 2012 IBM Corporation
  • 11. Java Code  Java classes implement GeneratePatternInstanceTransform  The pattern authoring runtime invokes onGeneratePatternInstance  The method is passed a reference to a PatternInstanceManager – Provides access to pattern parameters, pattern instance name and workspace location – Most important of all, the Java class can manipulate message flows! 11 © 2012 IBM Corporation
  • 12. Java Example 12 © 2012 IBM Corporation
  • 13. Manipulating Message Flows  Retrieve a message flow using the patternInstanceManager  Pass the (exemplar) project name and the relative path to the file  The message flows are loaded into memory from the pattern plug-ins – The flows are automatically saved into the pattern instance projects at the end  Your changes act on the message flow immediately 13 © 2012 IBM Corporation
  • 14. Message Flow API  The MessageFlow API contains all the nodes, connections and artefacts present in the message flow  The Message Flow API includes properties, nodes and connections – This is not an exhaustive list!  User Defined Nodes are represented as GenericNode 14 © 2012 IBM Corporation
  • 15. Message Flow API  Helper methods throughout the Message Flow API – For example, finding a node by its label using getNodeByName  Node properties are strongly typed wherever possible  Enumerations are provided for properties – Implemented as type-safe classes  JavaDoc provided for properties (easily viewed in the Java editor) 15 © 2012 IBM Corporation
  • 16. Creating Connections Between Nodes  Nodes can be connected using terminals (in the Node class)  Dynamic terminals and GenericNode terminals also supported 16 © 2012 IBM Corporation
  • 17. Complex Properties  Complex properties are manipulated using objects (tables and rows)  Property values on rows are strongly typed  Rows can be added and removed from tables 17 © 2012 IBM Corporation
  • 18. Complex Properties Example 18 © 2012 IBM Corporation
  • 19. PHP  PHP is a general purpose dynamic scripting language  Easy to use with a gentle learning curve  Efficient syntax and library have evolved in open source – Community driven to get more done in less time – Impressive results with little code – Extensive library support – Language well suited to rapid prototyping  More than 3 million developers worldwide  4th most populate language after Java, C and Visual Basic  Message Broker PHP Compute Node since v6.1.0.4 – Java implementation, fully compliant with PHP version 5.2 19 © 2012 IBM Corporation
  • 20. PHP Templates  Output from PHP template is written straight to a pattern instance file 20 © 2012 IBM Corporation
  • 21. PHP Scripts  The PHP script invokes other PHP templates to output files – Script acts as a controller and runs other templates as required  Typically used when custom logic is required with pattern parameters  Output from the controller script is sent to the Console view 21 © 2012 IBM Corporation
  • 22. PHP Example (main.php) 22 © 2012 IBM Corporation
  • 23. PHP Example (example.esql.php) This uses the PHP echo function to write the text into the output file - the embedded PHP code is accessing pattern parameters through the _MB super global This section of ESQL script is conditionally output depending on the value of the errorAction pattern parameter - the surrounding PHP uses a HEREDOC to output the code as a literal string 23 © 2012 IBM Corporation
  • 24. PHP Super Globals  PHP provides a large number of predefined variables to any script which it runs – Message Broker has an additional super global called _MB  _MB in pattern authoring is populated with the pattern parameters, the pattern instance name and the PatternInstanceManager: 24 © 2012 IBM Corporation
  • 25. Standard PHP Functions  The full list of supported PHP extensions and functions are listed here: http://publib.boulder.ibm.com/infocenter/wmbhelp/v7r0m0/topic/com.ibm.etools.mft.doc/ac69026_.htm  Extensive help on PHP is available on http://php.net –Individual functions can be located directly, for example: http://php.net/phpinfo  The language reference for PHP is here: –http://www.php.net/manual/en/langref.php  There are a few language differences between the Message Broker PHP and the Open Source PHP implementation – they are listed here: –http://publib.boulder.ibm.com/infocenter/wmbhelp/v7r0m0/index.jsp 25 © 2012 IBM Corporation
  • 26. Debug © 2012 IBM Corporation
  • 27. Debugging Your Pattern Refinements  Java pattern refinements can be debugged in the Java debugger  The launch configuration is automatically created the first time you test a pattern from the Pattern Authoring editor:  Any console output from your PHP or Java appears in the Console view: 27 © 2012 IBM Corporation
  • 28. Editing PHP On-The-Fly  You do not need to re-launch a workbench to test your PHP changes  Simply save the file in the main workbench and click Generate again  This edit and test efficiency is a major productivity boost  If you change anything else in the pattern then you need to re-launch 28 © 2012 IBM Corporation
  • 29. Exception Handing  Exceptions from PHP and Java code are caught and displayed 29 © 2012 IBM Corporation
  • 30. Java and PHP Interoperability © 2012 IBM Corporation
  • 31. PHP and Java Integration  It is straightforward to invoke Java code from your PHP scripts:  The Message Broker PHP runtime has a feature rich Java bridge http://www.projectzero.org/sMash/1.1.x/docs/zero.devguide.doc/zero.php/ZeroAdvancedPHPJavaBridge.html  This PHP script is manipulating the message flow using the Java API! 31 31 © 2012 IBM Corporation
  • 32. So Which Language Should I Use?  Because of the Java bridge in the PHP runtime, many pattern authoring tasks can be done in either language  So here are some general recommendations – your mileage may vary!  Use PHP for text files that need to be marked up with conditional logic  Use Java to manipulate message flows as you get an excellent debugger and code completion in the Java editor – Unless you have PHP skills and prefer the productivity of scripting languages!  If you have existing assets or libraries that you want to call, pick the language that best aligns with them 32 © 2012 IBM Corporation
  • 33. Table Parameters © 2012 IBM Corporation
  • 34. Table Parameters  Tables support row oriented data entered by the pattern user – The data type of the rows in a table is restricted to strings at the moment – No field validation of data is possible either (for example between columns)  No automatic mapping to complex properties is available – Process the rows of information using the Message Flow API  Tables appear frequently in the built-in Message Broker patterns – For example, to control message routing in the file processing pattern 34 Pattern Building in WebSphere Message Broker © 2012 IBM Corporation
  • 35. Table Parameters  Table editor added to the selection of editors available for parameters:  Tables are defined by the pattern author in the table editor – Columns can be mandatory or optional, and may also have width specified – Help text for the columns in defined in HTML just like pattern parameters 35 Pattern Building in WebSphere Message Broker © 2012 IBM Corporation
  • 36. Accessing Table Parameters  Two Java APIs isTableParameter and getParameterTable available in the PatternInstanceManager interface  getParameterTable returns a PatternParameterTable instance  PatternParameterTable provides access to the row count and the individual rows  Rows are accessed through an instance of PatternParameterRow 36 Pattern Building in WebSphere Message Broker © 2012 IBM Corporation
  • 37. Enumerated Types © 2012 IBM Corporation
  • 38. Enumerated Types  Target properties are strongly typed – String, integer, boolean and enumerations and the most common types – An enumeration is a list of permissible values for a given property:  The Pattern Authoring editor has full support for enumerations – An enumerated type is automatically created when a target property is added – The enumerated type includes the display names and property values – The list of values presented to the pattern user can be reduced if required 38 © 2012 IBM Corporation
  • 39. Advanced Field Editors © 2012 IBM Corporation
  • 40. Field Editors  Advanced field editors provide richer user interface experience – Built in validation also ensures data is entered correctly by the pattern user  Queue name and project name editors make common cases simple! 40 Pattern Building in WebSphere Message Broker © 2012 IBM Corporation
  • 41. File and Folder Selection Two use cases stand out above all others for the file selection editor: As a way to augment existing files to implement micro patterns – For example, to add error handling logic to existing Message Flows To store metadata for mass migration and generation of message flows – The file might be XML data and used to programmatically generate message flows – Sometimes it is appropriate for pattern users to enter data in third party tools 41 Pattern Building in WebSphere Message Broker © 2012 IBM Corporation
  • 42. User-Defined Editors © 2012 IBM Corporation
  • 43. User-Defined Editors  Pattern authoring provides an extensive set of pattern parameter editors  Built-in editors support a range of data types such as strings and integers  Validating editors also provided such as the message queue name editor  Patterns are emerging which require a richer set of parameter editors  Supports scenarios where your pattern user does extended exploration and discovery 43 Pattern Building in WebSphere Message Broker © 2012 IBM Corporation
  • 44. User-Defined Editors  Pattern authors can define their own editors to use in their patterns:  User-defined editors are defined and implemented in Java code  Java code is packaged just like existing code in a pattern authoring project  User-defined editors collaborate with the Pattern Instance editor  User-defined editors support watermarking, XPath enablement, mandatory configuration, validation, and change notifications to other editors! 44 Pattern Building in WebSphere Message Broker © 2012 IBM Corporation
  • 45. Creating User-Defined Editors © 2012 IBM Corporation
  • 46. Creating User-Defined Editors - Introduction You create two Java classes that together implement a user-defined editor: The first class implements the user interface using SWT controls  This user interface class extends the SWT Composite class The second class extends the BasePatternPropertyEditor class  This class interfaces with the Pattern Instance editor Wizards are provided that make it very easy to create these classes! 46 Pattern Building in WebSphere Message Broker © 2012 IBM Corporation
  • 47. Creating User-Defined Editors - Composite  Recommended to install WindowBuilder into your Message Broker toolkit  WindowBuilder is an open source user interface design tool for Eclipse  Download WindowBuilder from http://code.google.com/javadevtools/wbpro/  Very easy to install the plug-ins using Help -> Install New Software  Message Broker is now based on Eclipse Helios so use the 3.6 update site 47 Pattern Building in WebSphere Message Broker © 2012 IBM Corporation
  • 48. Creating User-Defined Editors - Composite Create an SWT Composite using the standard WindowBuilder wizard: 48 Pattern Building in WebSphere Message Broker © 2012 IBM Corporation
  • 49. Creating User-Defined Editors – User Interface  Design your SWT composite using the WindowBuilder editor  The palette of SWT controls makes it easy to visually create your user interface  Set up handlers (methods) to receive event notifications from your SWT controls 49 Pattern Building in WebSphere Message Broker © 2012 IBM Corporation
  • 50. Creating User-Defined Editors – Main Class  New wizard makes it easy to create a user-defined editor main class  User-defined editors extend the BasePatternPropertyEditor class  There are several methods (explained next) you override to complete your editor  Your implementation class must be exported from your Java project  Double click the MANIFEST.MF and check the exported packages on the Runtime tab! 50 Pattern Building in WebSphere Message Broker © 2012 IBM Corporation
  • 51. Creating User-Defined Editors – Main Class  The configureEditor method is called first to set up your editor  A PatternPropertySite is provided as your interface to the Pattern Instance editor  The configuration values from the pattern authoring editor are also provided  In your main editor class create an instance of your Composite class  Do this when your createControls method is invoked by the Pattern Instance editor 51 Pattern Building in WebSphere Message Broker © 2012 IBM Corporation
  • 52. Creating User-Defined Editors – Main Class Add extra methods to your main class to complete your implementation:  isValid returns null or a string describing the validation error  setValue is called early on to pass the initial value to your editor  getValue is called when the editor is being saved into a configuration file  setEnabled to enable and disable your user interface controls Your editor is always saved before a pattern instance is generated  Return your editor value as a string (or return null for no current value) You must call valueChanged on your site when your value changes  This ensures change notifications are sent to any editors listening to your editor! 52 Pattern Building in WebSphere Message Broker © 2012 IBM Corporation
  • 53. Creating User-Defined Editors – Debugging  All exceptions thrown by user-defined editors are caught and displayed  Provides fail fast feedback to the pattern author on where the code issue is  Beware of setValue being called with a null value when your editor is instantiated! 53 Pattern Building in WebSphere Message Broker © 2012 IBM Corporation
  • 54. Packaging User-Defined Editors © 2012 IBM Corporation
  • 55. Creating a User-Defined Editor – Packaging  Additional projects can now be packaged into patternzip archives  Convenient way to add Java projects containing user-defined editors  Also provides an easy way to package third party JAR files in your patterns! 55 Pattern Building in WebSphere Message Broker © 2012 IBM Corporation
  • 56. Using User-Defined Editors © 2012 IBM Corporation
  • 57. Using User-Defined Editors  Select your user-defined editor when you configure a pattern parameter  Provide a default value to pass an initial value to the user-defined editor 57 Pattern Building in WebSphere Message Broker © 2012 IBM Corporation
  • 58. Using User-Defined Editors  Choose the project and class name that contains the user-defined editor  Additional editor specific configuration values can be passed along  Select the pattern parameters that will send you change notifications  Allows chaining of dependent pattern parameters like message set, type and format 58 Pattern Building in WebSphere Message Broker © 2012 IBM Corporation
  • 59. User-Defined Editors - Summary  User-defined editors support rich pattern user interface experiences  Very simple - get a fully functional editor working in less than an hour!  WindowBuilder provides an excellent design environment for your user interface 59 Pattern Building in WebSphere Message Broker © 2012 IBM Corporation
  • 60. Fine Grained Control © 2012 IBM Corporation
  • 61. Transformation  The Pattern Authoring editor uses XPath as its expression language – XPath is a general purpose expression language!  XPath expressions can transform pattern parameter values: – Pattern authors can configure an XPath expression for a pattern parameter – Expressions are evaluated when the pattern instance is generated 61 © 2012 IBM Corporation
  • 62. Enablement  Enablement uses an XPath expression to control when a pattern parameter is enabled in the Pattern Instance editor  The enablement expression is evaluated every time a pattern parameter referenced in the XPath expression changes value  If the result of the evaluation is true then the editor is enabled 62 © 2012 IBM Corporation
  • 63. Hiding Groups  Groups can be conditionally hidden in the Pattern Instance editor  Follows same design principle as enabling and disabling parameters  Removes visual clutter from screen for more complex patterns 63 Pattern Building in WebSphere Message Broker © 2012 IBM Corporation
  • 64. Project Enablement  Projects can be enabled in the Pattern Authoring editor:  The XPath expression is evaluated when a pattern instance is generated  If the result of the evaluation is true then the project is created – Allows project creation to be linked to pattern parameters 64 Pattern Building in WebSphere Message Broker © 2012 IBM Corporation
  • 65. Project Naming  Control available over generated project names  The pattern instance name prefix is optional for each project  Pattern parameters can also now be used to name generated projects – Hidden parameters can be used so that complex names can be specified in XPath 65 Pattern Building in WebSphere Message Broker © 2012 IBM Corporation