SlideShare uma empresa Scribd logo
1 de 47
Baixar para ler offline
© 2015 IBM Corporation
IBM Integration Bus
Effective Application Development
Andrew Coleman
IBM Integration Bus Development
Co-Chair, W3C XML Query Working Group
What should you consider when building connectivity solutions?
▪ What technology is provided to help you?
▪ What design techniques should you know about?
▪ What should you try to avoid?
Main points
▪ Design with IIB features
▪ Design for performance and scalability
▪ Design for administration
▪ Design with interfaces
▪ Design consistently
▪ Test
Effective Application Development
1. Design with IIB facilities
Tools of the Trade!
Create Your Connectivity Solution
Built-in nodes encapsulate transports, technologies and applications
• Our intent is always to make the common tasks easy, and the rest possible!
• Use the built-in nodes to reduce the amount of custom code required
• This makes best use of the built-in facilities like activity trace and resource statistics
Integration Bus can interact with a huge range of environments
Transports and protocols
• MQ / SOAP / HTTP / TCPIP / JMS
Data repositories
• File / Database / IMS
Applications
• SAP / Siebel / PeopleSoft / JDEdwards
• CICS / IMS
• .Net
APIs
• SCA
• CORBA
All input nodes can be configured to work with any message format.
Getting data in and out of IIB
Transformation Options
WMB and Integration Bus have several transformation options:
▪ Mapping
▪ XSLT
▪ ESQL
▪ Java
▪ .NET
Reflects the importance of transformation in connectivity solutions
▪ User-defined nodes supported for Java and C/C++
Every transformation option has strengths and weaknesses!
▪ Performance and scalability
▪ Backend integration
▪ Skill sets and learning curve
▪ Developer usability
▪ Portability and maintenance
Use a transformation technology appropriate to the problem at hand!
Subflows are simply message flows that are invoked from another
flow
• Input and output nodes in the subflow become terminals in the main flow
• Use subflows to break up large problems into smaller more manageable chunks
Subflows are directly deployable to the runtime
• Shared subflows deployed just once per execution group (or application)
• No need to redeploy message flows after changes to shared routines are made
• Redeployment of a subflow is automatically picked up by any consumers
Subflows
Message Modelling
Models are needed for parsing, validation and transformation
• Models avoid the need to write custom code to parse messages!
Graphical mapper requires models to display the message structure
• ESQL editor provides in line validation of code that navigates message trees
XML documents and messages are modelled using XML schemas
• XSDs and WSDLs are deployed directly to the runtime – no import required!
Non XML data (both text and binary) is defined using DFDL schemas
• Data Format Description Language standardised through the Open Grid Forum
• DFDL schemas replace message set projects and the MRM message domain
• Input nodes support DFDL alongside XMLNSC, JSON, MRM etc
New model based tooling to design and test DFDL schema models
• Test parsing, test data generation and parse-by-example all built into editor!
• As with XSDs, DFDL schemas are also deployed directly to the runtime
Message Modelling
2. Design for Performance
and Scalability
Design for Performance
There are several areas that incur a processing cost
• Parsing and serialization of messages as they enter and exit the flow
• Business logic such as transformations executed during message processing
• Transformation cost includes general complexity, tree navigation and tree copying
• External resources such as interactions with databases and queue managers
Message flow design is critical to achieve high performance and
scalability
• For example using global units of work to achieve transactionality across a flow
Performance is a large (and important) topic in its own right
• There is a wealth of information and guidance available online!
Design for Scalability
Large messages can consume large amounts of memory/CPU
There is an industry trend toward larger data sets
• Already apparent in IIB deployments
A flow with a large memory overhead can
• slow down other flows by causing swapping
• in the worst case, bring down the execution group
Recommendations
• Consider whether a message 10 times the current size would be able
to be handled without a problem
• Where appropriate, use large message handling techniques in your
flows ( see Large Messaging sample )
Design for Scalability
Loops in a message flow are exactly like a recursive function call
• So each iteration of the loop consumes some stack space
Avoid loops unless you are certain that the number of iterations
will not become large
• Stack overflows will bring down the execution group along with all
running flows!
• There is usually an alternative design that avoids looping
3. Design for Administration
Applications, Libraries and Services
Applications package end-to-end connectivity solutions
• The concept of an application is shared between the toolkit and runtime
• Applications are deployed and managed as a single unit of isolation
Libraries package resources for reuse (flows, scripts, models)
Resources in an application are not visible to anything else
• Use applications to manage your solutions inside an execution group
A Service is an Application with a well defined interface (WSDL)
Shared Libraries
New shared container for reusable artefacts
• Subflows, message models (XSD, DFDL)
• ESQL, maps
• NOT flows!
Saves memory
• Multiple applications can reference a single copy of a shared lib
Separately deployable from the application
Shared libraries have no running state
• Cannot be started or stopped
• No runtime threads assigned
v8/9 static libraries continue to work as before
18
V10
Static Libraries verses Shared Libraries
Static Libraries
19
Shared Libraries (v10)
App1
Lib1 Lib2
App2
Lib1 Lib2
App3
Lib1 Lib2
App1
App2ShLib1
ShLib2
App3
Configurable Services
Use configurable services to externalize deployment time properties
• Allows deployment information to be configured by a system administrator
• For example, credentials for the database nodes and FTP server and port
• Ideal for moving solutions through staging environments (test to production)
Monitoring
Monitoring tools available via Web UI and Integration Explorer
• Statistics monitor resource usage across execution groups
• Range of options to update and visualise the resource statistics
• Activity Logging to focus on resource usage
Monitoring
Monitoring also provided on individual message flows
• Quick and easy way to identify hot spots in your solutions!
4. Design with Interfaces
Database Services
DBMS represents system of record for key business entities
• Customers, accounts, partners, products all stored in databases
• Integration Bus tools discover and represent these key data
• Integration services extends access to end-user applications
New integration tools discover key database assets
1. Connect to DBMS (e.g. Oracle, DB2 )
2. Discover source artefacts (tables, views, etc.)
3. Map CRUD operations to service interface
4. Save in canonical WSDL document
– Custom bindings for SQL access
5. Re-use database WSDL in multiple scenarios
Many uses for database service definition
• WSDL contains both logical and physical database information
• Drag and drop WSDL to automatically create SQL access methods
• Create new integration service to exploit customized database access
– End-user application consumes as regular (e.g.) web service
Products PartnersCustomers Accounts
MQ Services
Service definitions allow you to make best use of available resources
• Facilitates sharing of service information between users and systems
• Allows users to understand interfaces (e.g. CustomerAddress.Update operation)
• Provides a connector with which to exchange technical configuration (e.g. hostname)
• Provides attachment points for associated policies (e.g. authorization)
New framework enables discovery, cataloguing and re-use of services
• Discovery connectors translate the service provider description to a common model
• Interrogate IT systems for definition of technical assets – objects, functions and interaction points
• User selects and refines definition of technical assets
• Service definitions created and associated with technical assets
• Discovered service definitions stored in embedded registry
• Use catalogued services to configure integration solutions
Initial implementation discovers and catalogs MQ service definitions
1. Discover queues from referenced queue manager endpoint
2. IB develops MQ service definition and stores in registry
3. Use service definitions to configure MQ nodes
New and existing nodes will be updated over time
• Completely aligned with runtime connector framework
– Simple protocol points appropriate for style of interaction
– Allows for simple development of custom connectors
REST APIs
New container type for implementing REST APIs
Generates framework based on Swagger definition
26
V10
5. Design consistently
Patterns for Simplified Development
Creates top-down, parameterized connectivity solutions
Reduces common problems in flow development
Establishes best practices for integration
Reduces time-to-value for solution development
Patterns are easily extended with regular IIB functionality
Pattern Generation
Pattern generation creates the production ready projects
• Generated projects reflect the configuration choices of the pattern user
• Configuration is saved so that the pattern can be re-generated if required
Built-In Patterns
Integration Bus provides a core set of built-in patterns
These implement a variety of common scenarios
• Web service front end to a MQ based application
• Processing data stored in a file and routing to one or more queues
• Adding a proxy in front of a web service provider
• Processing data from an SAP system and routing to MQ
• Shredding messages and routing to one or more queues
Patterns are selected based on client feedback and field experience
This core set of patterns continues to grow with each release
Pattern Authoring
Pattern becomes even more useful when you can create your own!
• Every organization has their own repeating connectivity patterns!
• Pattern authoring is the name we give to this technology in WMB and Integration Bus
We recommend you start with a working solution
• One or more projects
Pattern authoring is a design activity
• It may be long lived
• It is often not sequential
Using patterns is a top-down activity driven by a requirement, but:
• Authoring a working solution is (typically) a bottom-up activity
• So pattern authoring bridges these two different approaches
Patterns have their own development cycle
• Pattern Authoring editor supports this design activity
Create Your Working Solution
No change at all - design your solutions as you do today
• Pattern authoring does not change the tools you use to create solutions
• The key to a good pattern is to create a good working solution!
Design Your Pattern
Straightforward to create patterns using the Pattern Authoring editor!
• Design the user interface which is presented to your pattern users
• Easy to add branding - style sheets, images and other files as required
Packaging a Pattern
The Integration API is our Java application development API
• Packaged along with the administration API in ConfigManagerProxy.jar
• Provides a complete Java API to manipulate message flows (and subflows)
The Integration API can be used in standalone applications or in
patterns
• Wide variety of applications are now possible such as business data mashups
• Easy to implement mass creation of message flows during migration projects
Integration API
Pattern Communities
Pattern authoring creates patterns whose value multiplies as they
are shared and used by a community of developers
Public and private communities are equally interesting!
A community needs to offer more than just a repository of assets!
• Space for content such as patterns and subflow nodes
• Forums to host discussions and threaded conversations
• Categorisation is important as the community grows! (taxonomies)
• Essential administrative functions such as user management
• News articles and broadcasts keep the site fresh
There are literally dozens of content management systems available
On the commercial side we have tried Lotus Connections and
Rational Asset Manager
Open source projects such as Drupal and Joomla are compelling!
Creating a Community Space
6. Test!
Flow Exerciser
V10
Flow Exerciser
40
Click to start
recording
Flow Exerciser
41
Flow Exerciser
42
Now recording – the flow
is greyed out (read-only)
Flow Exerciser
43
44
Flow Exerciser
45
Flow Exerciser
46
Path through the
flow is highlighted
Click to see
message
content
Can re-send the recorded
messages (logical tree assembly)
Summary
• Use the features of WMB & IIB to their full extent!
• Message modelling, transformation options, applications and libraries
• Capabilities link in with activity trace, record edit replay, and more
• Libraries and subflows make for simpler designs
• Deployable subflows and libraries extend the benefits to the runtime
• Consider production and performance early on in your design
• In particular, applications and configurable services
• Your system administrator will thank you for this!
• Patterns address time-to-value for your solutions
• It takes just a few minutes to create a pattern!
• Why not create a patterns community in your organisation?
• Developer Edition
• Free edition of IB for use in evaluation, dev, test and production usage
• Fully functional: all nodes available and no time limitations
• Throughput rate limited to 1TPS per integration flow
52
Thank You
Your Feedback is
Important!
Access the InterConnect 2015
Conference CONNECT Attendee
Portal to complete your session
surveys from your smartphone,
laptop or conference kiosk.

Mais conteúdo relacionado

Mais procurados

Hhm 3474 mq messaging technologies and support for high availability and acti...
Hhm 3474 mq messaging technologies and support for high availability and acti...Hhm 3474 mq messaging technologies and support for high availability and acti...
Hhm 3474 mq messaging technologies and support for high availability and acti...Pete Siddall
 
VTU 6th Sem Elective CSE - Module 3 cloud computing
VTU 6th Sem Elective CSE - Module 3 cloud computingVTU 6th Sem Elective CSE - Module 3 cloud computing
VTU 6th Sem Elective CSE - Module 3 cloud computingSachin Gowda
 
Whats new in IIB v9 + Open Beta v10 GSE
Whats new in IIB v9 + Open Beta v10 GSEWhats new in IIB v9 + Open Beta v10 GSE
Whats new in IIB v9 + Open Beta v10 GSEDominic Storey
 
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
 
Informix IWA: Architectural options
Informix IWA: Architectural optionsInformix IWA: Architectural options
Informix IWA: Architectural optionsKeshav Murthy
 
IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)MarkTaylorIBM
 
HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
 HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen... HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...Matt Leming
 
What's new in IBM Informix 12.1?
What's new in IBM Informix 12.1?What's new in IBM Informix 12.1?
What's new in IBM Informix 12.1?Keshav Murthy
 
FAQ on developing and deploying applications on MACH11 (Informix Dynamic Serv...
FAQ on developing and deploying applications on MACH11 (Informix Dynamic Serv...FAQ on developing and deploying applications on MACH11 (Informix Dynamic Serv...
FAQ on developing and deploying applications on MACH11 (Informix Dynamic Serv...Keshav Murthy
 
IBM MQ - High Availability and Disaster Recovery
IBM MQ - High Availability and Disaster RecoveryIBM MQ - High Availability and Disaster Recovery
IBM MQ - High Availability and Disaster RecoveryMarkTaylorIBM
 
Informix 1210 feature overview
Informix 1210 feature overviewInformix 1210 feature overview
Informix 1210 feature overviewJohn Miller
 
IBM MQ Disaster Recovery
IBM MQ Disaster RecoveryIBM MQ Disaster Recovery
IBM MQ Disaster RecoveryMarkTaylorIBM
 
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
 
What's new in IBM MQ, March 2018
What's new in IBM MQ, March 2018What's new in IBM MQ, March 2018
What's new in IBM MQ, March 2018David Ware
 
Ame 2269 ibm mq high availability
Ame 2269 ibm mq high availabilityAme 2269 ibm mq high availability
Ame 2269 ibm mq high availabilityAndrew Schofield
 
Informix NoSQL & Hybrid SQL detailed deep dive
Informix NoSQL & Hybrid SQL detailed deep diveInformix NoSQL & Hybrid SQL detailed deep dive
Informix NoSQL & Hybrid SQL detailed deep diveKeshav Murthy
 
Hhm 3479 mq clustering and shared queues for high availability
Hhm 3479 mq clustering and shared queues for high availabilityHhm 3479 mq clustering and shared queues for high availability
Hhm 3479 mq clustering and shared queues for high availabilityPete Siddall
 
IMS09 ims v14 higlights
IMS09   ims v14 higlightsIMS09   ims v14 higlights
IMS09 ims v14 higlightsRobert Hain
 

Mais procurados (19)

Hhm 3474 mq messaging technologies and support for high availability and acti...
Hhm 3474 mq messaging technologies and support for high availability and acti...Hhm 3474 mq messaging technologies and support for high availability and acti...
Hhm 3474 mq messaging technologies and support for high availability and acti...
 
VTU 6th Sem Elective CSE - Module 3 cloud computing
VTU 6th Sem Elective CSE - Module 3 cloud computingVTU 6th Sem Elective CSE - Module 3 cloud computing
VTU 6th Sem Elective CSE - Module 3 cloud computing
 
Whats new in IIB v9 + Open Beta v10 GSE
Whats new in IIB v9 + Open Beta v10 GSEWhats new in IIB v9 + Open Beta v10 GSE
Whats new in IIB v9 + Open Beta v10 GSE
 
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
 
Informix IWA: Architectural options
Informix IWA: Architectural optionsInformix IWA: Architectural options
Informix IWA: Architectural options
 
IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)
 
Migrating from ibm to hpe
Migrating from ibm to hpeMigrating from ibm to hpe
Migrating from ibm to hpe
 
HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
 HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen... HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
 
What's new in IBM Informix 12.1?
What's new in IBM Informix 12.1?What's new in IBM Informix 12.1?
What's new in IBM Informix 12.1?
 
FAQ on developing and deploying applications on MACH11 (Informix Dynamic Serv...
FAQ on developing and deploying applications on MACH11 (Informix Dynamic Serv...FAQ on developing and deploying applications on MACH11 (Informix Dynamic Serv...
FAQ on developing and deploying applications on MACH11 (Informix Dynamic Serv...
 
IBM MQ - High Availability and Disaster Recovery
IBM MQ - High Availability and Disaster RecoveryIBM MQ - High Availability and Disaster Recovery
IBM MQ - High Availability and Disaster Recovery
 
Informix 1210 feature overview
Informix 1210 feature overviewInformix 1210 feature overview
Informix 1210 feature overview
 
IBM MQ Disaster Recovery
IBM MQ Disaster RecoveryIBM MQ Disaster Recovery
IBM MQ Disaster Recovery
 
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
 
What's new in IBM MQ, March 2018
What's new in IBM MQ, March 2018What's new in IBM MQ, March 2018
What's new in IBM MQ, March 2018
 
Ame 2269 ibm mq high availability
Ame 2269 ibm mq high availabilityAme 2269 ibm mq high availability
Ame 2269 ibm mq high availability
 
Informix NoSQL & Hybrid SQL detailed deep dive
Informix NoSQL & Hybrid SQL detailed deep diveInformix NoSQL & Hybrid SQL detailed deep dive
Informix NoSQL & Hybrid SQL detailed deep dive
 
Hhm 3479 mq clustering and shared queues for high availability
Hhm 3479 mq clustering and shared queues for high availabilityHhm 3479 mq clustering and shared queues for high availability
Hhm 3479 mq clustering and shared queues for high availability
 
IMS09 ims v14 higlights
IMS09   ims v14 higlightsIMS09   ims v14 higlights
IMS09 ims v14 higlights
 

Semelhante a IBM InterConnect 2015 - IIB Effective Application Development

Tech presentation (part 1)
Tech presentation (part 1)Tech presentation (part 1)
Tech presentation (part 1)Abhijit Roy
 
SpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud ComputingSpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud ComputingSpringPeople
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Richard Langlois P. Eng.
 
Monolithic to Microservices Architecture
Monolithic to Microservices ArchitectureMonolithic to Microservices Architecture
Monolithic to Microservices ArchitectureVin Dahake
 
Domain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsDomain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsMark Windholtz
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing MicroservicesDavid Chou
 
Agile MDD
Agile MDDAgile MDD
Agile MDDfntnhd
 
Developing Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to MicroserviceDeveloping Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to MicroserviceJack-Junjie Cai
 
Containers as Infrastructure for New Gen Apps
Containers as Infrastructure for New Gen AppsContainers as Infrastructure for New Gen Apps
Containers as Infrastructure for New Gen AppsKhalid Ahmed
 
Developing Enterprise Applications for the Cloud, from Monolith to Microservices
Developing Enterprise Applications for the Cloud,from Monolith to MicroservicesDeveloping Enterprise Applications for the Cloud,from Monolith to Microservices
Developing Enterprise Applications for the Cloud, from Monolith to MicroservicesDavid Currie
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesMahmoudZidan41
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Serverless microservices
Serverless microservicesServerless microservices
Serverless microservicesLalit Kale
 
.net Based Component Technologies
.net Based Component Technologies.net Based Component Technologies
.net Based Component Technologiesprakashk453625
 
Application of Library Management Software: NewGenLib
Application of Library Management Software: NewGenLibApplication of Library Management Software: NewGenLib
Application of Library Management Software: NewGenLibDavid Nzoputa Ofili
 

Semelhante a IBM InterConnect 2015 - IIB Effective Application Development (20)

Tech presentation (part 1)
Tech presentation (part 1)Tech presentation (part 1)
Tech presentation (part 1)
 
SpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud ComputingSpringPeople - Introduction to Cloud Computing
SpringPeople - Introduction to Cloud Computing
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.
 
Monolithic to Microservices Architecture
Monolithic to Microservices ArchitectureMonolithic to Microservices Architecture
Monolithic to Microservices Architecture
 
Domain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsDomain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic Patterns
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing Microservices
 
Agile MDD
Agile MDDAgile MDD
Agile MDD
 
DBMS CONCEPT
DBMS CONCEPTDBMS CONCEPT
DBMS CONCEPT
 
14 db system
14 db system14 db system
14 db system
 
Developing Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to MicroserviceDeveloping Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to Microservice
 
Containers as Infrastructure for New Gen Apps
Containers as Infrastructure for New Gen AppsContainers as Infrastructure for New Gen Apps
Containers as Infrastructure for New Gen Apps
 
Developing Enterprise Applications for the Cloud, from Monolith to Microservices
Developing Enterprise Applications for the Cloud,from Monolith to MicroservicesDeveloping Enterprise Applications for the Cloud,from Monolith to Microservices
Developing Enterprise Applications for the Cloud, from Monolith to Microservices
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
DotNetNuke
DotNetNukeDotNetNuke
DotNetNuke
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Mcroservices with docker kubernetes, goang and grpc, overview
Mcroservices with docker kubernetes, goang and grpc, overviewMcroservices with docker kubernetes, goang and grpc, overview
Mcroservices with docker kubernetes, goang and grpc, overview
 
An overview of BizTalk
An overview of BizTalkAn overview of BizTalk
An overview of BizTalk
 
Serverless microservices
Serverless microservicesServerless microservices
Serverless microservices
 
.net Based Component Technologies
.net Based Component Technologies.net Based Component Technologies
.net Based Component Technologies
 
Application of Library Management Software: NewGenLib
Application of Library Management Software: NewGenLibApplication of Library Management Software: NewGenLib
Application of Library Management Software: NewGenLib
 

Último

%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 

Último (20)

%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 

IBM InterConnect 2015 - IIB Effective Application Development

  • 1. © 2015 IBM Corporation IBM Integration Bus Effective Application Development Andrew Coleman IBM Integration Bus Development Co-Chair, W3C XML Query Working Group
  • 2. What should you consider when building connectivity solutions? ▪ What technology is provided to help you? ▪ What design techniques should you know about? ▪ What should you try to avoid? Main points ▪ Design with IIB features ▪ Design for performance and scalability ▪ Design for administration ▪ Design with interfaces ▪ Design consistently ▪ Test Effective Application Development
  • 3. 1. Design with IIB facilities
  • 4. Tools of the Trade!
  • 5. Create Your Connectivity Solution Built-in nodes encapsulate transports, technologies and applications • Our intent is always to make the common tasks easy, and the rest possible! • Use the built-in nodes to reduce the amount of custom code required • This makes best use of the built-in facilities like activity trace and resource statistics
  • 6. Integration Bus can interact with a huge range of environments Transports and protocols • MQ / SOAP / HTTP / TCPIP / JMS Data repositories • File / Database / IMS Applications • SAP / Siebel / PeopleSoft / JDEdwards • CICS / IMS • .Net APIs • SCA • CORBA All input nodes can be configured to work with any message format. Getting data in and out of IIB
  • 7. Transformation Options WMB and Integration Bus have several transformation options: ▪ Mapping ▪ XSLT ▪ ESQL ▪ Java ▪ .NET Reflects the importance of transformation in connectivity solutions ▪ User-defined nodes supported for Java and C/C++ Every transformation option has strengths and weaknesses! ▪ Performance and scalability ▪ Backend integration ▪ Skill sets and learning curve ▪ Developer usability ▪ Portability and maintenance Use a transformation technology appropriate to the problem at hand!
  • 8. Subflows are simply message flows that are invoked from another flow • Input and output nodes in the subflow become terminals in the main flow • Use subflows to break up large problems into smaller more manageable chunks Subflows are directly deployable to the runtime • Shared subflows deployed just once per execution group (or application) • No need to redeploy message flows after changes to shared routines are made • Redeployment of a subflow is automatically picked up by any consumers Subflows
  • 9. Message Modelling Models are needed for parsing, validation and transformation • Models avoid the need to write custom code to parse messages! Graphical mapper requires models to display the message structure • ESQL editor provides in line validation of code that navigates message trees
  • 10. XML documents and messages are modelled using XML schemas • XSDs and WSDLs are deployed directly to the runtime – no import required! Non XML data (both text and binary) is defined using DFDL schemas • Data Format Description Language standardised through the Open Grid Forum • DFDL schemas replace message set projects and the MRM message domain • Input nodes support DFDL alongside XMLNSC, JSON, MRM etc New model based tooling to design and test DFDL schema models • Test parsing, test data generation and parse-by-example all built into editor! • As with XSDs, DFDL schemas are also deployed directly to the runtime Message Modelling
  • 11.
  • 12. 2. Design for Performance and Scalability
  • 13. Design for Performance There are several areas that incur a processing cost • Parsing and serialization of messages as they enter and exit the flow • Business logic such as transformations executed during message processing • Transformation cost includes general complexity, tree navigation and tree copying • External resources such as interactions with databases and queue managers Message flow design is critical to achieve high performance and scalability • For example using global units of work to achieve transactionality across a flow Performance is a large (and important) topic in its own right • There is a wealth of information and guidance available online!
  • 14. Design for Scalability Large messages can consume large amounts of memory/CPU There is an industry trend toward larger data sets • Already apparent in IIB deployments A flow with a large memory overhead can • slow down other flows by causing swapping • in the worst case, bring down the execution group Recommendations • Consider whether a message 10 times the current size would be able to be handled without a problem • Where appropriate, use large message handling techniques in your flows ( see Large Messaging sample )
  • 15. Design for Scalability Loops in a message flow are exactly like a recursive function call • So each iteration of the loop consumes some stack space Avoid loops unless you are certain that the number of iterations will not become large • Stack overflows will bring down the execution group along with all running flows! • There is usually an alternative design that avoids looping
  • 16. 3. Design for Administration
  • 17. Applications, Libraries and Services Applications package end-to-end connectivity solutions • The concept of an application is shared between the toolkit and runtime • Applications are deployed and managed as a single unit of isolation Libraries package resources for reuse (flows, scripts, models) Resources in an application are not visible to anything else • Use applications to manage your solutions inside an execution group A Service is an Application with a well defined interface (WSDL)
  • 18. Shared Libraries New shared container for reusable artefacts • Subflows, message models (XSD, DFDL) • ESQL, maps • NOT flows! Saves memory • Multiple applications can reference a single copy of a shared lib Separately deployable from the application Shared libraries have no running state • Cannot be started or stopped • No runtime threads assigned v8/9 static libraries continue to work as before 18 V10
  • 19. Static Libraries verses Shared Libraries Static Libraries 19 Shared Libraries (v10) App1 Lib1 Lib2 App2 Lib1 Lib2 App3 Lib1 Lib2 App1 App2ShLib1 ShLib2 App3
  • 20. Configurable Services Use configurable services to externalize deployment time properties • Allows deployment information to be configured by a system administrator • For example, credentials for the database nodes and FTP server and port • Ideal for moving solutions through staging environments (test to production)
  • 21. Monitoring Monitoring tools available via Web UI and Integration Explorer • Statistics monitor resource usage across execution groups • Range of options to update and visualise the resource statistics • Activity Logging to focus on resource usage
  • 22. Monitoring Monitoring also provided on individual message flows • Quick and easy way to identify hot spots in your solutions!
  • 23. 4. Design with Interfaces
  • 24. Database Services DBMS represents system of record for key business entities • Customers, accounts, partners, products all stored in databases • Integration Bus tools discover and represent these key data • Integration services extends access to end-user applications New integration tools discover key database assets 1. Connect to DBMS (e.g. Oracle, DB2 ) 2. Discover source artefacts (tables, views, etc.) 3. Map CRUD operations to service interface 4. Save in canonical WSDL document – Custom bindings for SQL access 5. Re-use database WSDL in multiple scenarios Many uses for database service definition • WSDL contains both logical and physical database information • Drag and drop WSDL to automatically create SQL access methods • Create new integration service to exploit customized database access – End-user application consumes as regular (e.g.) web service Products PartnersCustomers Accounts
  • 25. MQ Services Service definitions allow you to make best use of available resources • Facilitates sharing of service information between users and systems • Allows users to understand interfaces (e.g. CustomerAddress.Update operation) • Provides a connector with which to exchange technical configuration (e.g. hostname) • Provides attachment points for associated policies (e.g. authorization) New framework enables discovery, cataloguing and re-use of services • Discovery connectors translate the service provider description to a common model • Interrogate IT systems for definition of technical assets – objects, functions and interaction points • User selects and refines definition of technical assets • Service definitions created and associated with technical assets • Discovered service definitions stored in embedded registry • Use catalogued services to configure integration solutions Initial implementation discovers and catalogs MQ service definitions 1. Discover queues from referenced queue manager endpoint 2. IB develops MQ service definition and stores in registry 3. Use service definitions to configure MQ nodes New and existing nodes will be updated over time • Completely aligned with runtime connector framework – Simple protocol points appropriate for style of interaction – Allows for simple development of custom connectors
  • 26. REST APIs New container type for implementing REST APIs Generates framework based on Swagger definition 26 V10
  • 28. Patterns for Simplified Development Creates top-down, parameterized connectivity solutions Reduces common problems in flow development Establishes best practices for integration Reduces time-to-value for solution development Patterns are easily extended with regular IIB functionality
  • 29. Pattern Generation Pattern generation creates the production ready projects • Generated projects reflect the configuration choices of the pattern user • Configuration is saved so that the pattern can be re-generated if required
  • 30. Built-In Patterns Integration Bus provides a core set of built-in patterns These implement a variety of common scenarios • Web service front end to a MQ based application • Processing data stored in a file and routing to one or more queues • Adding a proxy in front of a web service provider • Processing data from an SAP system and routing to MQ • Shredding messages and routing to one or more queues Patterns are selected based on client feedback and field experience This core set of patterns continues to grow with each release
  • 31. Pattern Authoring Pattern becomes even more useful when you can create your own! • Every organization has their own repeating connectivity patterns! • Pattern authoring is the name we give to this technology in WMB and Integration Bus We recommend you start with a working solution • One or more projects Pattern authoring is a design activity • It may be long lived • It is often not sequential Using patterns is a top-down activity driven by a requirement, but: • Authoring a working solution is (typically) a bottom-up activity • So pattern authoring bridges these two different approaches Patterns have their own development cycle • Pattern Authoring editor supports this design activity
  • 32. Create Your Working Solution No change at all - design your solutions as you do today • Pattern authoring does not change the tools you use to create solutions • The key to a good pattern is to create a good working solution!
  • 33. Design Your Pattern Straightforward to create patterns using the Pattern Authoring editor! • Design the user interface which is presented to your pattern users • Easy to add branding - style sheets, images and other files as required
  • 35. The Integration API is our Java application development API • Packaged along with the administration API in ConfigManagerProxy.jar • Provides a complete Java API to manipulate message flows (and subflows) The Integration API can be used in standalone applications or in patterns • Wide variety of applications are now possible such as business data mashups • Easy to implement mass creation of message flows during migration projects Integration API
  • 36. Pattern Communities Pattern authoring creates patterns whose value multiplies as they are shared and used by a community of developers Public and private communities are equally interesting! A community needs to offer more than just a repository of assets! • Space for content such as patterns and subflow nodes • Forums to host discussions and threaded conversations • Categorisation is important as the community grows! (taxonomies) • Essential administrative functions such as user management • News articles and broadcasts keep the site fresh There are literally dozens of content management systems available On the commercial side we have tried Lotus Connections and Rational Asset Manager Open source projects such as Drupal and Joomla are compelling!
  • 39. Flow Exerciser 40 Click to start recording
  • 41. Flow Exerciser 42 Now recording – the flow is greyed out (read-only)
  • 43. 44
  • 45. Flow Exerciser 46 Path through the flow is highlighted Click to see message content Can re-send the recorded messages (logical tree assembly)
  • 46. Summary • Use the features of WMB & IIB to their full extent! • Message modelling, transformation options, applications and libraries • Capabilities link in with activity trace, record edit replay, and more • Libraries and subflows make for simpler designs • Deployable subflows and libraries extend the benefits to the runtime • Consider production and performance early on in your design • In particular, applications and configurable services • Your system administrator will thank you for this! • Patterns address time-to-value for your solutions • It takes just a few minutes to create a pattern! • Why not create a patterns community in your organisation? • Developer Edition • Free edition of IB for use in evaluation, dev, test and production usage • Fully functional: all nodes available and no time limitations • Throughput rate limited to 1TPS per integration flow 52
  • 47. Thank You Your Feedback is Important! Access the InterConnect 2015 Conference CONNECT Attendee Portal to complete your session surveys from your smartphone, laptop or conference kiosk.