integration your way (ibm interconnect 2015 - session 1492)

Post on 14-Jul-2015

446 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

© 2015 IBM Corporation

Integration your way

John Hosie, Product architect for IBM Integration Bus

Agenda

• When integration needs customization • Overview of common languages

• Discussion on IBM’s support for each

• Summary

2

3

4© Jens Stolt | Dreamstime.com

Simple and productive

Simple and productive

5

Simple and productive

6

Simple and productive

7

Patterns

8

Patterns provide reusable design

with points of variability

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?

10

Sometimes, it needsjust a little tweak

© Kentannenbaum | Dreamstime.com

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

13

Universal and IndependentGoes with anything but depends on nothing

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

COBOL.js

Java

PHP

BPMN BAL ABAP

(E)SQLXPATHXSLT

C/C++Ruby

RPG BPEL

R

XQUERY

.NET

COBOL.js

Java

PHP

BPMN BAL ABAP

(E)SQLXPATHXSLT

C/C++Ruby

RPG BPEL

R

XQUERY

.NET

COBOL.js

PHP

BPMN BAL ABAP

(E)SQLXPATHXSLT

C/C++Ruby

RPG BPEL

R

XQUERY

.NETJava

COBOL

PHP

BPMN BAL ABAP

(E)SQLXPATHXSLT

C/C++Ruby

RPG BPEL

R

XQUERY

.NETJava

.js

COBOL.js

PHP

BPMN BAL ABAP

(E)SQLXPATHXSLT

Ruby

RPG BPEL

R

XQUERY

.NETJava

C/C++

.js

Java

PHP

BPMN BAL ABAP

(E)SQLXPATHXSLT

C/C++Ruby

RPG BPEL

R

XQUERY

.NET

COBOL

COBOL.js

Java

PHP

BPMN BAL ABAP

(E)SQLXPATHXSLT

C/C++

RPG BPEL

R

XQUERY

.NET

Ruby

COBOL.js

Java

PHP

BPMN BAL ABAP

(E)SQL

C/C++Ruby

RPG BPEL

R

.NET

XPATHXSLTXQUERY

COBOL.js

Java

PHP

BPMN BAL ABAP

XPATHXSLT

C/C++Ruby

RPG BPEL

R

XQUERY

.NET

(E)SQL

COBOL.js

Java

PHP

(E)SQLXPATHXSLT

C/C++Ruby

R

XQUERY

.NET

BPMN BAL ABAPRPG BPEL

COBOL.js

Java

PHP

BPMN BAL ABAP

(E)SQLXPATHXSLT

C/C++Ruby

RPG BPEL

XQUERY

.NET

R

COBOL.js

Java

BPMN BAL ABAP

(E)SQLXPATHXSLT

C/C++Ruby

RPG BPEL

R

XQUERY

.NET

PHP

IIB Support for each language

© 2014 IBM Corporation29

.NET

Java Integrated debugger

© 2014 IBM Corporation30

.NET

Java JAXB Interface

© 2014 IBM Corporation31

.NET

Java JAXB Interface

© 2014 IBM Corporation32

.NET

Java JAXB Interface

© 2014 IBM Corporation33

.NET

Java JDBC Connection Management

© 2014 IBM Corporation34

.NET

Java JDBC Connection Management

© 2014 IBM Corporation35

.NET

Java Support for version control

© 2014 IBM Corporation36

.NET

Java Conversion Tools

© 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

© 2014 IBM Corporation43

.NET

.NET Develop in Visual Studio

© 2014 IBM Corporation48

.NET

.NET Reuse existing code from ESQL

© 2014 IBM Corporation49

.NET

.NET 3 click Mobile App

© 2014 IBM Corporation50

.NET

.NET 3 click Mobile App

© 2014 IBM Corporation51

.NET

.NET 3 click Mobile App

© 2014 IBM Corporation52

.NET

.NET 3 click Mobile App

© 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

© 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

© 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;

© 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)

© 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;

© 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;

© 2014 IBM Corporation59

.NET

.js SDK Generation

© 2014 IBM Corporation60

.NET

.js SDK Generation

© 2014 IBM Corporation61

.NET

.js SDK Generation

© 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{ }

© 2014 IBM Corporation63

.NET

R R Serve node

Score

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

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

66

Questions?

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

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.

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.

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.

top related