wtui15 - ibm integration bus services, apis, applications and libraries

75
IBM Integration Bus Services, APIs, Applications, & Libraries John Hosie, Product Architect for IBM Integration Bus

Upload: matt-lucas

Post on 07-Jul-2015

627 views

Category:

Technology


2 download

DESCRIPTION

IBM Integration Bus includes a number of features for grouping and sharing your integration resources that make it easier to develop and maintain integration solutions: applications provide a means of grouping resources for a specific integration problem; libraries group reusable integration components for easier sharing; integration services allow you to define the inputs, outputs and operations for an effective service oriented architecture; APIs provide convenient access to integration services from external systems. These concepts are integral to IBM Integration Bus and this session will describe them, give guidance on best practices for their use, and also describe the recent enhancements that makes working with them even easier.

TRANSCRIPT

Page 1: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

IBM Integration Bus Services, APIs,

Applications, & Libraries John Hosie, Product Architect for IBM Integration Bus

 

Page 2: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

©  2014  IBM  Corpora/on    

Please  Note  IBM’s  statements  regarding  its  plans,  direc/ons,  and  intent  are  subject  to  change  or  withdrawal  without  no/ce  at  IBM’s  sole  discre/on.  Informa/on  regarding  poten/al  future  products  is  intended  to  outline  our  general  product  direc/on  and  it  should  not  be  relied  on  in  making  a  purchasing  decision.    

The  informa/on  men/oned  regarding  poten/al  future  products  is  not  a  commitment,  promise,  or  legal  obliga/on  to  deliver  any  material,  code  or  func/onality.  Informa/on  about  poten/al  future  products  may  not  be  incorporated  into  any  contract.  The  development,  release,  and  /ming  of  any  future  features  or  func/onality  described  for  our  products  remains  at  our  sole  discre/on  

Performance  is  based  on  measurements  and  projec/ons  using  standard  IBM  benchmarks  in  a  controlled  environment.    The  actual  throughput  or  performance  that  any  user  will  experience  will  vary  depending  upon  many  factors,  including  considera/ons  such  as  the  amount  of  mul/programming  in  the  user’s  job  stream,  the  I/O  configura/on,  the  storage  configura/on,  and  the  workload  processed.    Therefore,  no  assurance  can  be  given  that  an  individual  user  will  achieve  results  similar  to  those  stated  here.  

2  

Page 3: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Applications and Libraries Integration Services Service Discovery

Javascript API

Page 4: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Applications and Libraries Integration Services Service Discovery

Javascript API

Page 5: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

5

Applications and Libraries  Applications and Libraries are a means of developing, deploying and managing your integration solutions:

Application •  means of encapsulating resources to solve a specific connectivity problem •  application can reference one or more libraries

Library •  a logical grouping of related routines and/or data •  libraries help with reuse and ease of resource management •  library can reference one or more libraries

§ These concepts span all aspects of the product, and are designed to make the development and management of IIB solutions easier.

Page 6: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

6

Features of Applications and Libraries

§  Libraries facilitate re-use and simplify resource management – Multiple applications can reference the same library – Shared libraries are deployed separately from application

– Same instance of the library can be referenced by multiple applications – Optionally, each application can contain a separate copy of the library

– Typically contain reusable helper routines and resources •  Subflows, ESQL, Java, Maps, Message models, Adapter files, etc.

– Use multiple libraries to group related resources (e.g. by type or function) – Library can reference other Libraries

§  Applications promote encapsulation and isolation –  Typically contain “main” message flows and dependent resources

•  ESQL, Java, Maps, Message models, subflows, Adapter files, etc. •  dependent resources could live in referenced libraries

–  Multiple applications can be packaged into a single BAR –  Multiple applications can be deployed to an Integration server –  Visibility of resource restricted to containing application

Page 7: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

7

Solution Lifecycle

 Applications and libraries span the Toolkit, BAR and Runtime.  Manifested as existing well-known container formats (ZIPs)  One can work without applications and libraries if preferred

•  No need to change existing project structure or deployment processes •  But these features will make your lives easier – consistent develop, deploy,

manage experience!

Toolkit

Prepare

Manage

BAR

Node

Page 8: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

8

Creating a new Application or Library

Page 9: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

9

Creating a new Application or Library

Page 10: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

10

Creating a new Application or Library

Page 11: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

11

Creating a new Application or Library

Page 12: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

12

Applications and Libraries in the Toolkit Navigator   Applications and libraries are shown in the Application Development view   Each application and/or library is an Eclipse project (with a special nature) that contains artefacts, such as: flows, XSDs, Maps, ESQL, etc.   Referenced libraries show up twice for ease of navigation:

1.  as children of the referencing application/library 2.  as top-level containers in the Navigator both entries refer to the same physical resources

  Libraries not referenced by any application, show up only as top- level containers in the Navigator   Application/library project can reference JCN and Java projects. Artefacts in referenced JCN/Java projects are rendered as part of application/library and deployed to the runtime as part of corresponding container.   Application and/or library can reference other libraries. Artefacts in referenced libraries are visible to the referencing application/library. Referenced libraries are deployed to the runtime as part of the referencing container.

Page 13: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

13

Applications and Libraries in the BAR Editor – Prepare

Page 14: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

14

Applications and Libraries in the BAR editor - Manage

Page 15: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

15

Applications and Libraries on the Node  Deployed applications are displayed directly below server in the Toolkit and IBX

 Each application is an independent container within execution group - it contains list of resource (e.g. flows).

 Referenced libraries are listed as children of the referencing application container

 Deployed library resources appear as children of that library

  If multiple applications reference the same library, each application gets its own copy of the library

 GUI, command line and CMP tools updated to expose operations that are applicable to libraries and applications

•  Starting and stopping applications –  Starting an application implicitly starts all containing

message flows •  Delete – deletes all containing resources (including

referenced libraries) and remove application container

Page 16: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Applications and Libraries Integration Services Service Discovery

Javascript API

Page 17: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Operation subflow

Operation subflow

Integration Service

WSDL WSDL Interface (WSDL)

SOAP / HTTP

Binding Style

Integration Services: Interfaces, Operations and Bindings

  An interface is described using a WSDL document   An interface consists of one or more operations and a binding style.   The binding style specifies the protocol and data format of the operation.   An operation is a description of an action implemented by the service.   Each operation in the interface defines the data that is passed between the Consumer and the Provider when the operation is invoked.   Each operation may have one or more faults to handle error conditions.

Integration Service

Client Web Service

Consumer Provider

Page 18: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Operation

Creating an Integration Service

Page 19: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Subflows

XML Schema

WSDL

Message Flow

Log file

Service Descriptor

Generated Resources

Page 20: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Editing an Integration Service

Page 21: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

One Way Operation

Request Response Operation

Request Response Operation

Integration Service Interface

Page 22: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Error Handler subflows are now implemented so no longer

showing warning markers

getApproval operation now implemented so no longer

“greyed out”

Default HTTP binding provided

Implemented Integration Service

Page 23: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Error Flows (subflows)

Request_Response subflow

Core properties

Service Descriptor

Page 24: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Integration Bus Explorer

Integration Bus Toolkit

Service Deployment and Administration

Page 25: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Exporting Web Server Plugin Configuration

•  The WebSphere Application Server plug-in can be used in complex scenarios to:

•  Implement load-balancing •  Implement clustering for failover •  Expose application server and web server services and files through a single front end •  Manage security for all URLs in a single place and in a consistent manner •  Set up a network dispatcher to multiple web service endpoints

Web Server (eg WAS Web Server,

IHS – Apache Web Server)

Plug-in

Clients HTTP HTTP IIB

IntegrationServer

Page 26: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Clients

Web Server

Application Server System B

WAS plug-in

HTTPS

HTTP

HTTP

Application Server System A

Clients

Web Server

IIB System B

WAS plug-in

HTTPS

HTTP

HTTP

IIB System A

Using an External Web Server

Page 27: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Exporting Web Server Configuration Data  Use IIB to help configure your existing topology, by generating appropriate configuration data:

•  Existing topology uses WebSphere Application Server - generate a configuration file that can be read by the WAS web server plug-in

•  Existing topology uses an Apache web server (e.g. IBM HTTP Server) - generate a configuration file that can be merged into your Apache mod_proxy configuration

•  Existing topology uses some other web server configuration – use the IIB API to generate a per-broker list of port and URL data in CSV format

Page 28: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Generated WAS Plugin.xml and Mod_Proxy.conf

Page 29: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Java API Example - getPortConfigAsCsv

Page 30: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Applications and Libraries Integration Services Service Discovery

Javascript API

Page 31: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

31

Service Discovery – IBM Confidential

Integration challenges: Service-Oriented view of the world

•  In a heterogeneous environment, each service provider or consumer has different syntax and format for describing their service.

•  A description of the interfaces and policy are needed to consume, provide, govern or simply to catalog the services.

I want to understand these services

I want to exchange data with these services

I want to control operational behaviour.

Page 32: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

32

Service Discovery – IBM Confidential

Service discovery

Service discovery provides a common experience for describing service interfaces. •  Interrogate IT systems for definitions that can be discovered

•  data definitions, function declarations and/or communication objects

•  User selects, elaborates and refines

•  Service is described in the common model

Page 33: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Service description

§  The service description can be shared with different tools and users. §  Allows users to:

–  Understand the interface: Logical description of available business objects and operations.

–  Connector to exchange: Technical configuration describes real systems’ connection details and physical exchange formats.

Understand logical interface

Exchange via physical interface

MQOPEN(CUSTOMER.UPDATE.REQUEST) MQPUT(0x4942524F434B53…)

IB9QMGR

Cus

tom

er A

ddre

ss update

read

create

Page 34: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Service description

§  The service description can be shared with different tools and users. §  Allows users to:

–  Understand the interface: Logical description of available business objects and operations.

–  Connector to exchange: Technical configuration describes real systems’ connection details and physical exchange formats.

–  Policy to control Policy can be attached to service for dynamic control.

Understand logical interface

MQOPEN(CUSTOMER.UPDATE.REQUEST) MQPUT(0x4942524F434B53…)

IB9QMGR

Cus

tom

er A

ddre

ss update

read

create

Policy for control

Exchange via physical interface

Page 35: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Integrating services…

•  Integration services are ready for the consumer. •  Logical interface can be understood by the consumer. •  Physical connector is appropriate for the consumer’s environment.

•  Role of integration is relative •  From a consumer’s perspective, the integration service is the service. •  From the back office system’s perspective, integration is a consumer of the service.

•  Integration tools have a description of every service. •  Common model for all types of service. •  Discovery translates from consumer or provider’s specific description

•  Providing an integration service requires •  Service description •  Implementation (flows, maps…)

•  Consuming a service from an integration requires •  Service description •  Access method ( node, procedure signature, service map…)

•  Not everything is a service

Integration service

MQPUT(foo>..</foo>))

SELECT ... FROM foo WHERE ...

Page 36: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

36 Service Discovery – IBM Confidential

Integration toolkit

Integration Registry •  Service descriptions (and WLM Policies) can be published to the Integration Registry

•  Facilitates collaboration and re-use. •  Integration Registry is hosted by the integration node.

  Populated by •  Publishing of discovered services (MQ Services) from Toolkit •  Publishing of WLM Policies

•  Integration Registry is available from the Integration Toolkit and Web UI

Integration Registry

Page 37: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Discovery workflow

•  User enters connection details •  Connector discovers technical assets

•  Scheduled or interactive •  White box or masked

–  user may configure the discovery step to omit irrelevant technical assets •  Technical assets discovered

•  Interaction points ( queues, programs etc…) •  Data Objects ( Tables, IDOCs etc..)

•  User selects technical assets for elaboration •  Selection task assisted by filtering, type ahead, browse, search etc… •  User elaborates definition of technical assets

•  Service definition created and stored in catalog •  Can be used to assist with message flow development •  Provides policy attachment points

Discover

Elaborate

Server Connections

Technical Assets

Service Definition

Page 38: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Integration Service Database Service

MQ Service

Page 39: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Database Services Discovery

 Create Service definition using discovery •  User connects to a database •  User creates a .dbm file containing all database artefacts (tables, views, stored

procedures etc).

  The user specifies the style of service to be created (Resource oriented or Operation) •  CRUD operations for one or more tables, views

 A WSDL definition is created for database operations •  The Port Type describes the interfaces of the Database operations (groups

operations) •  A Database Connector Binding contains meta-data for each operation for the

interaction with database.

Page 40: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries
Page 41: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Start by Discovering a Service …

Page 42: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Database Service Editor – 1. Description

Database view of the world Service view of the world

Page 43: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Database Service Editor – 2. Database Definition

 Database definition file provides re-use of existing artefacts.  ODBC data source name is required because although discovery is driven via a JDBC connection, at runtime IIB uses ODBC connectivity for certain node implementations

Page 44: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Database Service Editor – 3. Select Resources

Page 45: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Database Service Editor – 4. Service Operations

Page 46: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Database Service Editor – 4. Service Operations

Page 47: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Database Service Editor – 5. Service Interface

Page 48: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Database Service Editor – 6. Summary

Page 49: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Drag and Drop to generate code

Page 50: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Generated code

Page 51: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Integration Tookit

App

MQ

Integration Developer Runs a discovery tool in WMB toolkit

Enters MQ connection details Discovers queues from queue manager

Selects appropriate queue (s) from search result

Refine selection to create service definition

MQ Application Developer Provides data model (e.g. COBOL)

MQ Service Discovery

Page 52: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Integration Tookit

App

MQ

Integration Developer Runs a discovery tool in Integration

toolkit Enters MQ connection details

Discovers queues from queue manager Selects appropriate queue (s) from

search result Refine selection to create service

definition

MQ Application Developer Provides data model (e.g. COBOL)

Integration Tookit

Other Integration Developer Retrieves service definitions from

catalogue Indexed by service name or queue name Uses service definition to configure MQ

Nodes

Discovery and Push into Catalog

Page 53: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

MQ Service Editor – Connect to Queue Manager

Connection Options Local Binding Connection •  Connect to local queue manager Remote Client Connection •  Using Client Channel Definition Table (CCDT) file •  Specify target queue manager using host name (IP), port

and channel

Discover queues on local or remote queue manger

Page 54: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

MQ Service Editor – Select Resources

Page 55: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

MQ Configure – Configure headers

Page 56: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

MQ Service Editor – Service Interface

Page 57: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

MQ Service Editor – Service Interface

Page 58: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

MQ Service Editor – Service Interface

Page 59: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

MQ Service Editor – Summary Page

Page 60: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

MQ Service Operation: WSDL & XSD file

Page 61: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

MQ Service Discovery

Page 62: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Publishing service to the integration registry

Page 63: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Publishing service to the integration registry

Page 64: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Publishing service to the integration registry

Page 65: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Import service from integration registry

Page 66: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Import service from integration registry

Page 67: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Import service from integration registry

3

Page 68: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Applications and Libraries Integration Services Service Discovery

Javascript API

Page 69: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Integration Bus JavaScript Web API  Web APIs are popular technology for simplified access to integration

•  Particular applicability in mobile, browsers, and Node.js program scenarios •  New feature allows Integration Bus service to be invoked via Web API •  Builds on existing IB mobile features and service definitions

 Start from new or existing service •  Design the IB service, creating API

is really simple –  JSON binding generated automatically –  JavaScript client, documentation likewise

 Access JavaScript and documentation from URL •  Point browser at IB node to retrieve assets! (HTTP GET) •  Can program from Browser •  Node.js

Page 70: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

  Web APIs are popular technology for simplified access to integration •  Particular applicability in mobile, browsers, and Node.js program scenarios •  New feature allows Integration Bus service to be invoked via Web API •  Builds on existing IB mobile features and service definitions

  Start from new or existing service •  Design the IB service, creating API

is really simple –  REST/JSON binding generated automatically –  JavaScript client, documentation likewise

  Access JavaScript and documentation from URL •  Point browser at IB node to retrieve assets! (HTTP GET) •  Can program from Browser •  Node.js

Integration Bus JavaScript Web API

Page 71: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

71

Architecture – Node.js client

IB Server IB Integration Service

Node.js

Generated JavaScript

API

JavaScript Client Code

H T T P

Download once

JSON Request Response

HTML Document

Page

Generated JavaScript

API

Operation1

OperationN

Operation1

OperationN

Page 72: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

IBM Integration Bus:

‘Shared’ Libraries

Page 73: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

  ‘Static’ Libraries introduced in V8 and V9 •  Enhanced to fulfil most popular user requests •  Libraries can now be shared across multiple applications for a broad range of assets •  Sub-flows are now independent artefacts, significant storage reduction, consistency

  Shared Libraries •  Libraries can now be referenced by one or more applications –  Libraries deployed independently of applications – “shared”! –  Applications will not get “own copy” –  Libraries can still reference other libraries

•  Artefact disambiguation features exist: {shlib} qualifier •  Shared Library is the default library type •  Assets in multiple libraries within application are shared –  Notably schemas, also Maps, ESQL, Java, PHP etc

  Shared Library Restrictions •  Most notable restriction is that schema imports cannot occur across shared libraries –  Same for PHP, XML, XSL and other cross library source imports

•  Subflows but not message flows are allowed in shared libraries, other minor subflow restrictions •  Minor restrictions for ESQL (e.g. empty schema)

Shared Libraries

Shlib2  Sch2.xsd  

Shlib1  Sch1.xsd  

App1  Sch3.xsd  

Page 74: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

Thank You

Page 75: WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries

©  2014  IBM  Corpora/on    

For Additional Information l  IBM Training

http://www.ibm.com/training l  IBM WebSphere

http://www-01.ibm.com/software/be/websphere/ l  IBM developerWorks

www.ibm.com/developerworks/websphere/websphere2.html l  WebSphere forums and community

www.ibm.com/developerworks/websphere/community/

75