integration your way (ibm interconnect 2015 - session 1492)

59
© 2015 IBM Corporation Integration your way John Hosie, Product architect for IBM Integration Bus

Upload: matt-lucas

Post on 14-Jul-2015

446 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2015 IBM Corporation

Integration your way

John Hosie, Product architect for IBM Integration Bus

Page 2: Integration Your Way (IBM InterConnect 2015 - Session 1492)

Agenda

• When integration needs customization • Overview of common languages

• Discussion on IBM’s support for each

• Summary

2

Page 3: Integration Your Way (IBM InterConnect 2015 - Session 1492)

3

Page 4: Integration Your Way (IBM InterConnect 2015 - Session 1492)

4© Jens Stolt | Dreamstime.com

Simple and productive

Page 5: Integration Your Way (IBM InterConnect 2015 - Session 1492)

Simple and productive

5

Page 6: Integration Your Way (IBM InterConnect 2015 - Session 1492)

Simple and productive

6

Page 7: Integration Your Way (IBM InterConnect 2015 - Session 1492)

Simple and productive

7

Page 8: Integration Your Way (IBM InterConnect 2015 - Session 1492)

Patterns

8

Patterns provide reusable design

with points of variability

Page 9: Integration Your Way (IBM InterConnect 2015 - Session 1492)

9

With integration development so simple, why am I standing up at #InterConnect2015 talking about programming languages?

With integration development so simple, why am I standing up at #ibminterconnect talking about programming languages?

Page 10: Integration Your Way (IBM InterConnect 2015 - Session 1492)

10

Sometimes, it needsjust a little tweak

© Kentannenbaum | Dreamstime.com

Page 11: Integration Your Way (IBM InterConnect 2015 - Session 1492)

When programming languages matter• Connecting to existing applications• Customize bus to address a unique

requirement

• Re-use of existing integration assets

• Custom admin tools

12

Page 12: Integration Your Way (IBM InterConnect 2015 - Session 1492)

13

Universal and IndependentGoes with anything but depends on nothing

Page 13: Integration Your Way (IBM InterConnect 2015 - Session 1492)

General purpose

Transformation / Query

Other domain specific languages

Business

COBOL.js

Java

PHP

BPMN BAL ABAP

(E)SQLXPATHXSLT

C/C++Ruby

RPG BPEL

R

XQUERY

.NET

Page 14: Integration Your Way (IBM InterConnect 2015 - Session 1492)

COBOL.js

Java

PHP

BPMN BAL ABAP

(E)SQLXPATHXSLT

C/C++Ruby

RPG BPEL

R

XQUERY

.NET

Page 15: Integration Your Way (IBM InterConnect 2015 - Session 1492)

COBOL.js

Java

PHP

BPMN BAL ABAP

(E)SQLXPATHXSLT

C/C++Ruby

RPG BPEL

R

XQUERY

.NET

Page 16: Integration Your Way (IBM InterConnect 2015 - Session 1492)

COBOL.js

PHP

BPMN BAL ABAP

(E)SQLXPATHXSLT

C/C++Ruby

RPG BPEL

R

XQUERY

.NETJava

Page 17: Integration Your Way (IBM InterConnect 2015 - Session 1492)

COBOL

PHP

BPMN BAL ABAP

(E)SQLXPATHXSLT

C/C++Ruby

RPG BPEL

R

XQUERY

.NETJava

.js

Page 18: Integration Your Way (IBM InterConnect 2015 - Session 1492)

COBOL.js

PHP

BPMN BAL ABAP

(E)SQLXPATHXSLT

Ruby

RPG BPEL

R

XQUERY

.NETJava

C/C++

Page 19: Integration Your Way (IBM InterConnect 2015 - Session 1492)

.js

Java

PHP

BPMN BAL ABAP

(E)SQLXPATHXSLT

C/C++Ruby

RPG BPEL

R

XQUERY

.NET

COBOL

Page 20: Integration Your Way (IBM InterConnect 2015 - Session 1492)

COBOL.js

Java

PHP

BPMN BAL ABAP

(E)SQLXPATHXSLT

C/C++

RPG BPEL

R

XQUERY

.NET

Ruby

Page 21: Integration Your Way (IBM InterConnect 2015 - Session 1492)

COBOL.js

Java

PHP

BPMN BAL ABAP

(E)SQL

C/C++Ruby

RPG BPEL

R

.NET

XPATHXSLTXQUERY

Page 22: Integration Your Way (IBM InterConnect 2015 - Session 1492)

COBOL.js

Java

PHP

BPMN BAL ABAP

XPATHXSLT

C/C++Ruby

RPG BPEL

R

XQUERY

.NET

(E)SQL

Page 23: Integration Your Way (IBM InterConnect 2015 - Session 1492)

COBOL.js

Java

PHP

(E)SQLXPATHXSLT

C/C++Ruby

R

XQUERY

.NET

BPMN BAL ABAPRPG BPEL

Page 24: Integration Your Way (IBM InterConnect 2015 - Session 1492)

COBOL.js

Java

PHP

BPMN BAL ABAP

(E)SQLXPATHXSLT

C/C++Ruby

RPG BPEL

XQUERY

.NET

R

Page 25: Integration Your Way (IBM InterConnect 2015 - Session 1492)

COBOL.js

Java

BPMN BAL ABAP

(E)SQLXPATHXSLT

C/C++Ruby

RPG BPEL

R

XQUERY

.NET

PHP

Page 26: Integration Your Way (IBM InterConnect 2015 - Session 1492)

IIB Support for each language

Page 27: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation29

.NET

Java Integrated debugger

Page 28: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation30

.NET

Java JAXB Interface

Page 29: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation31

.NET

Java JAXB Interface

Page 30: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation32

.NET

Java JAXB Interface

Page 31: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation33

.NET

Java JDBC Connection Management

Page 32: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation34

.NET

Java JDBC Connection Management

Page 33: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation35

.NET

Java Support for version control

Page 34: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation36

.NET

Java Conversion Tools

Page 35: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation37

.NET

Java Other java apis in IIB

CMP API for java based admin apps

AppDev for programmatic message flow creation or inspection

Pattern authoring for custom pattern generation

Eclipse extension points for custom UX on patterns and nodes

Page 36: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation43

.NET

.NET Develop in Visual Studio

Page 37: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation48

.NET

.NET Reuse existing code from ESQL

Page 38: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation49

.NET

.NET 3 click Mobile App

Page 39: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation50

.NET

.NET 3 click Mobile App

Page 40: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation51

.NET

.NET 3 click Mobile App

Page 41: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation52

.NET

.NET 3 click Mobile App

Page 42: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation53

.NET

ESQL Introduction

Excellent for database interaction

Syntactically similar to SQL

Invoke static Java methods and database stored procedures

Supports declarative and procedural programming styles

Powerful SELECT statement can be applied to messages as well as database tables (or a mix of the two at the same time – can even be nested!)

Access to all message domains

Can address all message headers and environment trees

Toolkit support with editor for syntax highlighting and context assist

ESQL debugger integrated with Flow Debugger

Page 43: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation54

.NET

ESQL SQL + Procedural Extensions

Typed user defined variables and constantsDECLARE var1 CHARACTER 'Hello World';DECLARE var1 CONSTANT CHAR 'Hello World';– If not initialized they are initialized to NULL for you

Data typesCHARACTER DECIMAL FLOAT INT BIT BLOB BOOLEAN

Data and timeDATE TIME TIMESTAMP INTERVAL GMTTIME GMTTIMESTAMP

Operators– For manipulation and comparison of variables, etcBETWEEN IN LIKE IS (NOT)

Conditional constructsIF, ELSEIF, ELSE, CASE, WHEN

Several looping constructsWHILE, REPEAT, LOOP, FOR

Functions– Over 80 built-in functionsSUBSTRING LENGTH UPPER CONTAINS STARTSWITH RAND ROUND CEILING FLOOR

Page 44: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation55

.NET

ESQL Functions and Procedures

Main() – the entry point for the Compute node

CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN ... SET OutputRoot.XMLNSC.Money.Amount = twice(myInt); CALL multiplyBy2(myInt);

... RETURN TRUE; --causes message propagation END;

User-defined functions CREATE FUNCTION twice(IN p INTEGER) RETURNS INTEGER BEGIN RETURN p * 2; END;

CREATE PROCEDURE multiplyBy2(INOUT p INTEGER) BEGIN SET p = p * 2; END;

Page 45: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation56

.NET

ESQL Working with Messages

Field References– Path syntax to address the tree elements– Starts with ‘correlation name’ to identify root of tree

SET OutputRoot = InputRoot; -- copies the whole message

SET OutputRoot.MQMD = NULL; -- removes the MQMD header

SET OutputRoot.XML.doc.title = -- will generate the output InputBody.session[4].title; -- tree if it doesn’t exist

SET OutputRoot.XML.Library.Publication[] = InputBody.library.books.book[] -- copies all elements (deep copy)

Page 46: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation57

.NET

ESQL Transformation using SELECT

The SELECT implicitly loops over the repeating ‘book’ element in the input message– A ‘Publication’ element is created in the output for each one

The children elements of ‘book’ are mapped– Element names are changed (‘title’ -> ‘BookTitle’, etc)– Values are copied (deep copy)– Arrays and structures are built (author[] -> Authors.Name[])– Note that nested repeating structures can be transformed with nested SELECTS

SET OutputRoot.XML.Library.Publication[] =

SELECT BOOK.title AS BookTitle,

BOOK.author[] AS Authors.Name[],

BOOK.isbn AS ISBN,

BOOK.price AS Price

FROM InputBody.library.books.book[] AS BOOK;

Page 47: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation58

.NET

ESQL Database Access

SELECT statement– Creates an entire message tree from a database querySET OutputRoot.XMLNSC.Response.Services.Service[] =(SELECT P.SVCCODE AS Code, P.SVCDESC AS Description FROM Database.SERVICES as P);

INSERT statement– Allows you to add a row to a database tableINSERT INTO Database.Prices(ITEM, ITEMPRICE)VALUES (Body.Msg.Item, Body.Msg.ItemPrice);

UPDATE statement– Changes one or more existing rows in a database tableUPDATE Database.Prices AS PSET ITEMPRICE = Body.Msg.ItemPriceWHERE P.ITEM = Body.Msg.Item;

DELETE statement– Removes one or more existing rows in a database tableDELETE FROM Database.{DSN}.{Schema}.Prices AS PWHERE P.ITEM = Body.Msg.Item;

Page 48: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation59

.NET

.js SDK Generation

Page 49: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation60

.NET

.js SDK Generation

Page 50: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation61

.NET

.js SDK Generation

Page 51: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation62

.NET

.js Custom dashboards

this.mqttClient = new Messaging.Client( host, port, clientId);

this.mqttClient.subscribe("$SYS/Broker/MYNODE//Statistics/JSON/Resource/#/“…

JSON{ }

Page 52: Integration Your Way (IBM InterConnect 2015 - Session 1492)

© 2014 IBM Corporation63

.NET

R R Serve node

Score

Page 53: Integration Your Way (IBM InterConnect 2015 - Session 1492)

Highlights of other languages

• C• C header file importer for DFDL• C API for user defined nodes, parsers and user exits

• COBOL• Copybook importer for DFDL

• CICS Request and IMS Request node

• PHP • PHP node for transformation/routing/connectivity• PHP support in pattern authoring for template based generation

• Built in node for XSLT• Uses xalan XSL processor• Compiles and caches stylesheets

64

Page 54: Integration Your Way (IBM InterConnect 2015 - Session 1492)

Highlights for more other languages

• Ruby• Ruby based recipes for Chef scripts

• BPMN2• Import process definitions from IBM BPM • Publish Integration Services to process definitions

• BAL• Embedded rules execution engine• Rules can be authored in IIB and deployed with bar file• Author in Decision Center and deploy via Decision Server for

central BRMS control

• ABAP• Discover BAPI interface for ABAP callout to message flow

65

Page 55: Integration Your Way (IBM InterConnect 2015 - Session 1492)

66

Questions?

Page 56: Integration Your Way (IBM InterConnect 2015 - Session 1492)

Summary• Keep it simple, if possible

• When customization is justified, the choice is yours

• Watch this space for more in future

• Tell us if we are missing anything

67

Page 57: Integration Your Way (IBM InterConnect 2015 - Session 1492)

Notices and DisclaimersCopyright © 2015 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission from IBM.

U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM.

Information in these presentations (including information relating to products that have not yet been announced by IBM) has been reviewed for accuracy as of the date of initial publication and could include unintentional technical or typographical errors. IBM shall have no responsibility to update this information. THIS DOCUMENT IS DISTRIBUTED "AS IS" WITHOUT ANY WARRANTY, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL IBM BE LIABLE FOR ANY DAMAGE ARISING FROM THE USE OF THIS INFORMATION, INCLUDING BUT NOT LIMITED TO, LOSS OF DATA, BUSINESS INTERRUPTION, LOSS OF PROFIT OR LOSS OF OPPORTUNITY. IBM products and services are warranted according to the terms and conditions of the agreements under which they are provided.

Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without notice.

Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual performance, cost, savings or other results in other operating environments may vary.

References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in which IBM operates or does business.

Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not necessarily reflect the views of IBM. All materials and discussions are provided for informational purposes only, and are neither intended to, nor shall constitute legal or other guidance or advice to any individual participant or their specific situation.

It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal counsel as to the identification and interpretation of any relevant laws and regulatory requirements that may affect the customer’s business and any actions the customer may need to take to comply with such laws. IBM does not provide legal advice or represent or warrant that its services or products will ensure that the customer is in compliance with any law.

Page 58: Integration Your Way (IBM InterConnect 2015 - Session 1492)

Notices and Disclaimers (con’t)

Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products in connection with this publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. IBM does not warrant the quality of any third-party products, or the ability of any such third-party products to interoperate with IBM’s products. IBM EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

The provision of the information contained herein is not intended to, and does not, grant any right or license under any IBM patents, copyrights, trademarks or other intellectual property right.

•IBM, the IBM logo, ibm.com, Bluemix, Blueworks Live, CICS, Clearcase, DOORS®, Enterprise Document Management System™, Global Business Services ®, Global Technology Services ®, Information on Demand, ILOG, Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™, PureApplication®, pureCluster™, PureCoverage®, PureData®, PureExperience®, PureFlex®, pureQuery®, pureScale®, PureSystems®, QRadar®, Rational®, Rhapsody®, SoDA, SPSS, StoredIQ, Tivoli®, Trusteer®, urban{code}®, Watson, WebSphere®, Worklight®, X-Force® and System z® Z/OS, are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml.

Page 59: Integration Your Way (IBM InterConnect 2015 - Session 1492)

Thank YouYour Feedback is

Important!

Access the InterConnect 2015 Conference CONNECT Attendee Portal to complete your session surveys from your smartphone,

laptop or conference kiosk.