WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries
-
Upload
matt-lucas -
Category
Technology
-
view
627 -
download
2
description
Transcript of WTUI15 - IBM Integration Bus Services, APIs, Applications and Libraries
IBM Integration Bus Services, APIs,
Applications, & Libraries John Hosie, Product Architect for IBM Integration Bus
© 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
Applications and Libraries Integration Services Service Discovery
Javascript API
Applications and Libraries Integration Services Service Discovery
Javascript API
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.
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
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
8
Creating a new Application or Library
9
Creating a new Application or Library
10
Creating a new Application or Library
11
Creating a new Application or Library
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.
13
Applications and Libraries in the BAR Editor – Prepare
14
Applications and Libraries in the BAR editor - Manage
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
Applications and Libraries Integration Services Service Discovery
Javascript API
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
Operation
Creating an Integration Service
Subflows
XML Schema
WSDL
Message Flow
Log file
Service Descriptor
Generated Resources
Editing an Integration Service
One Way Operation
Request Response Operation
Request Response Operation
Integration Service Interface
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
Error Flows (subflows)
Request_Response subflow
Core properties
Service Descriptor
Integration Bus Explorer
Integration Bus Toolkit
Service Deployment and Administration
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
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
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
Generated WAS Plugin.xml and Mod_Proxy.conf
Java API Example - getPortConfigAsCsv
Applications and Libraries Integration Services Service Discovery
Javascript API
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.
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
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
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
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 ...
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
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
Integration Service Database Service
MQ Service
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.
Start by Discovering a Service …
Database Service Editor – 1. Description
Database view of the world Service view of the world
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
Database Service Editor – 3. Select Resources
Database Service Editor – 4. Service Operations
Database Service Editor – 4. Service Operations
Database Service Editor – 5. Service Interface
Database Service Editor – 6. Summary
Drag and Drop to generate code
Generated code
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
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
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
MQ Service Editor – Select Resources
MQ Configure – Configure headers
MQ Service Editor – Service Interface
MQ Service Editor – Service Interface
MQ Service Editor – Service Interface
MQ Service Editor – Summary Page
MQ Service Operation: WSDL & XSD file
MQ Service Discovery
Publishing service to the integration registry
Publishing service to the integration registry
Publishing service to the integration registry
Import service from integration registry
Import service from integration registry
Import service from integration registry
3
Applications and Libraries Integration Services Service Discovery
Javascript API
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
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
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
IBM Integration Bus:
‘Shared’ 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
Thank You
© 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