Data Power Course
Data Power Course
cover
Front cover
Course Guide
Essentials of Service Development for
IBM DataPower Gateway V7.5
Course code WE751 / ZE751 ERC 1.1
August 2016 edition
Notices
This information was developed for products and services offered in the US.
IBM may not offer the products, services, or features discussed in this document in other countries. Consult your local IBM
representative for information on the products and services currently available in your area. Any reference to an IBM product, program,
or service is not intended to state or imply that only that IBM product, program, or service may be used. Any functionally equivalent
product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is the user's
responsibility to evaluate and verify the operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter described in this document. The furnishing of this
document does not grant you any license to these patents. You can send license inquiries, in writing, to:
IBM Director of Licensing
IBM Corporation
North Castle Drive, MD-NC119
Armonk, NY 10504-1785
United States of America
INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some jurisdictions do not allow disclaimer
of express or implied warranties in certain transactions, therefore, this statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein;
these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the product(s)
and/or the program(s) described in this publication at any time without notice.
Any references in this information to non-IBM websites are provided for convenience only and do not in any manner serve as an
endorsement of those websites. The materials at those websites are not part of the materials for this IBM product and use of those
websites is at your own risk.
IBM may use or distribute any of the information you provide in any way it believes appropriate without incurring any obligation to you.
Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other
publicly available sources. IBM has not tested those products and cannot confirm the accuracy of performance, compatibility or any other
claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those
products.
This information contains examples of data and reports used in daily business operations. To illustrate them as completely as possible,
the examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to
actual people or business enterprises is entirely coincidental.
Trademarks
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business Machines Corp., registered in many
jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM
trademarks is available on the web at “Copyright and trademark information” at www.ibm.com/legal/copytrade.shtml.
© Copyright International Business Machines Corporation 2016.
This document may not be reproduced in whole or in part without the prior written permission of IBM.
US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
V11.0
Contents
TOC
Contents
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x
Course description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Agenda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
TOC Transform action that uses XQuery (JSON and XML) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-32
Transform action for binary transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33
Filter action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-34
Filter action: Replay attack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-35
GatewayScript action (1 of 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-36
GatewayScript action (2 of 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-37
Content-based routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-38
Route action configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-39
Style sheet programming with dynamic routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-40
Results action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-41
Results asynchronous and multi-way results mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-42
Service settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-43
Service types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-44
URL rewriting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-45
XML Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-47
Default XML Manager configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-48
XML parser limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-49
JSON document limits within the XML manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-51
Exporting a service configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-53
Troubleshooting a service configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-54
Unit summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-55
Review questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-56
Review answers (1 of 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-57
Review answers (1 of 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-58
Exercise 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-59
Exercise objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-60
Exercise overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-61
TMK
Trademarks
The reader should recognize that the following terms, which appear in the content of this training
document, are official trademarks of IBM or other companies:
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business
Machines Corp., registered in many jurisdictions worldwide.
The following are trademarks of International Business Machines Corporation, registered in many
jurisdictions worldwide:
Approach® CICS® DataPower®
DB™ developerWorks® IMS™
Rational® Redbooks® Tivoli®
WebSphere® z/OS®
Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both.
Microsoft is a trademark of Microsoft Corporation in the United States, other countries, or both.
Java™ and all Java-based trademarks and logos are trademarks or registered trademarks of
Oracle and/or its affiliates.
UNIX is a registered trademark of The Open Group in the United States and other countries.
VMware and the VMware "boxes" logo and design, Virtual SMP and VMotion are registered
trademarks or trademarks (the "Marks") of VMware, Inc. in the United States and/or other
jurisdictions.
Social® is a trademark or registered trademark of TWC Product and Technology, LLC, an IBM
Company.
Other product and service names might be trademarks of IBM or other companies.
pref
Course description
Essentials of Service Development for IBM DataPower Gateway V7.5
Purpose
This course teaches you the essential skills that are required to configure, implement, and
troubleshoot services that are developed on the IBM DataPower Gateways (IDG) with firmware
version 7.5.0, regardless of use case.
The DataPower Gateways allow an enterprise to simplify, accelerate, and enhance the security
capabilities of its XML and web services deployments, and extend the capabilities of its
service-oriented architecture (SOA) infrastructure. The gateways also extend these capabilities into
the JSON, REST, and Mobile application areas.
Through a combination of instructor-led lectures and hands-on lab exercises, you learn how to
develop and debug services that are implemented on the DataPower gateways. These skills
include WebGUI and Blueprint Console navigation, service type selection, basic multi-protocol
gateway configuration, creating and using cryptographic objects, and configuring SSL connections.
You also learn how to use various problem determination tools such as logs, monitors, probes, and
techniques for testing DataPower services and handling errors.
Hands-on exercises give you experience working directly with a DataPower Gateway. The
exercises focus on skills such as creating multi-protocol gateways, working with cryptographic and
SSL objects, configuring service level monitoring, troubleshooting services, handling errors in a
service policy, and deploying a service from a pattern.
Audience
This course is designed for integration developers who configure service policies on IBM
DataPower Gateways.
Prerequisites
Before taking this course, you should successfully complete course VW750, Technical Introduction
to IBM DataPower Gateway Appliance V7.5.0. This free webcast is available at
https://youtu.be/yYk5Bzuie4g or https://mediacenter.ibm.com/media/t/1_fb2tsml1. You should also
be familiar with:
• Security-based concepts and protocols
• XML-related technologies such as XML schema, XPath, and XSLT
• JavaScript programming
• Web service and REST basics
pref
Objectives
• Describe how DataPower gateways are configured
• Create and configure cryptographic objects
• Configure Secure Sockets Layer (SSL) to and from DataPower gateways
• Configure a multi-protocol gateway (MPGW) to handle multiple protocols from a single service
• Configure a service level monitoring (SLM) policy to control message traffic
• Use logs and probes to troubleshoot services
• Use patterns to define and deploy new services
• Configure message transformation and routing by using style sheets (XSL) and GatewayScripts
• Handle errors in service policies
pref
Agenda
Note
The following unit and exercise durations are estimates, and might not reflect every class
experience.
Day 1
(00:15) Course introduction
(00:45) Unit 1. Quick introduction to developing on DataPower
(00:45) Exercise 1. First exposure to the DataPower developer environment
(00:30) Unit 2. Services overview
(01:30) Unit 3. Structure of a service
(00:45) Exercise 2. Creating a BookingService gateway
(01:00) Unit 4. Multi-protocol gateway service
Day 2
(00:30) Unit 5. Problem determination tools
(01:00) Exercise 3. Enhancing the BookingService gateway
(00:30) Unit 6. Handling errors in a service policy
(00:45) Exercise 4. Adding error handling to a service policy
(00:45) Unit 7. DataPower cryptographic tools and SSL setup
(01:00) Exercise 5. Creating cryptographic objects and configuring SSL
(00:30) Unit 8. Service level monitoring
Day 3
(00:30) Exercise 6. Implementing a service level monitor in a multi-protocol gateway
(00:30) Unit 9. Patterns for service configuration
(00:30) Exercise 7. Using a DataPower pattern to deploy a service
(00:15) Unit 10. Course summary
Uempty
Overview
This unit introduces the developer environment for a DataPower Gateway. It presents the WebGUI
and the Blueprint Console as the entry point for DataPower development, and provides a high-level
view of the common pages for service development.
References
IBM DataPower Gateway Knowledge Center:
http://www.ibm.com/support/knowledgecenter/SS9H2Y_7.5.0
Uempty
Instructions
Uempty
Unit objectives
• Log in to the WebGUI and Blueprint Console
• Navigate around the WebGUI and the Blueprint Console interfaces
• Identify the primary functions of the menus on the navigation bar
• Start the creation of a DataPower service
• Identify the typical areas of a service configuration page
• Save configuration definitions in memory and on the file system
• List the file directories that are commonly used for development
• Support any non-English languages that are enabled on the gateway
Uempty
Development/administrative interfaces (1 of 2)
Command line driven
• CLI
– Required for initial configuration of a gateway
– Used for administrative activities during operation, over an SSH session
Although the command-line interface (CLI), and the SOAP management (SOMA) and REST
management (ROMA) aspects of the XML management interface (XMI) can be used for
development, the primary way to develop resources on the gateway is the web interface.
Uempty
Development/administrative interfaces (2 of 2)
REST Management Interface
• Rest Management Interface (ROMA)
– Designed for gateway management
– Uses REST API to manage gateway
– Uses JSON for payloads
– Has a JSON schema
Uempty
“IDG” is “IBM DataPower Gateway”, the new gateway series that was announced for V7. It is also
referred to as the “9006” gateway.
Uempty
https://MyDataPowerAddress:9090
The WebGUI access to the gateway uses SSL, so the protocol is “https.” The default port that the
WebGUI is active on is 9090, although the gateway administrator can change it.
To log in to the gateway, you must use a predefined user name and password. In DataPower
administrative pages, the “user name” is the name of a “user account” object.
Although all defined domains are visible under “Domain,” the user can connect only to domains to
which the user is authorized.
Uempty
myDP.com:9090 domain
user
domain
domain
user
domain
domain
domain
domain
account group
A user group can have multiple sets of permissions, so multiple application domains can be
accessible.
Details on creating user accounts, user groups, and domains are covered in detail in the
Administration course.
Uempty
Navigation bar
Control Panel
Uempty
WebGUI banner
Gateway name
Save configuration
to file system
Uempty
Firmware level
Uempty
The Control Panel allows quick access to common development and administration functions.
The B2B section lists the common facilities that are used in B2B services. This section is displayed
only if you have the B2B feature.
The Services section shows the icons to create or modify the primary DataPower services.
The Monitoring and Troubleshooting section provides a view of the gateway system log,
troubleshooting functions, and status.
The Files and Administration section provides links to file management, system control, importing
and exporting, and cryptographic keys and certificates on the gateway.
Most of the links on the Control Panel are also available through the navigation bar.
Uempty
The main menus in the navigation bar enable many development functions. The most popular
development menus are Services, Status, and Objects.
Most of the objects that are created as part of a service, including the service itself, are also
individually available under Objects.
Uempty
Uempty
2
3
4 5
7 8
This slide shows areas that are common for the configuration of a service.
1. Navigation bar remains visible and available
2. Clicking the object type typically returns you to the catalog for that object type
3. Multiple tabs that are object-dependent
4. Apply, cancel, or delete the object
5. Object-specific links
6. Service policy configuration (programming-like configuration)
7. Information to connect to the back side application
8. Front side interface to access the service
More detailed presentation of the multi-protocol gateway configuration is covered in a later unit.
Uempty
The system log is defined as a log target. A log target receives log entries from objects to post.
Each domain always has a log target that is called default-log to represent the default system log.
More log targets can be defined and customized.
The most recent log entries are shown at the top of the system log.
The logs can be sorted by the categories that are listed at the top.
Logging is covered in more detail in a later unit.
Uempty
Clicking Apply commits configuration changes that are made in the current WebGUI page.
However, such changes are stored in temporary memory. You must click Save Configuration on
the upper-right corner of the WebGUI interface to commit changes to permanent storage (file
system). If you attempt to switch application domains without committing your changes, a warning
dialog box is shown that offers options to switch domains without saving any changes, or to save
the changes immediately.
Uempty
Configuration Checkpoints
• A Configuration Checkpoint contains configuration data for an
application domain at a specific point in time
ƒ Saves the current state of the application domain without persisting it
ƒ An alternative to Save Configuration
ƒ Can be used for continuing work between sessions
• Saving Configuration Checkpoints
ƒ Click Administration > Configuration > Configuration Checkpoints
ƒ Enter a name and click Save Checkpoint
Configuration checkpoints can also be used as a form of a rollback for a single domain.
Existing checkpoints can be removed, compared, or rolled back (that is, redefine the domain
configuration).
The checkpoint file goes into the chkpoints: directory.
Uempty
File management
3
2
File management
1. From the navigation bar Administration section, click Main > File Management.
2. Alternatively, you can open the File Management page through the icon of the same name in
the Control Panel.
3. The file stores are divided into different directories. Most directories are specific to one
application domain, others are shared across all domains, and a few are specific to the default
domain.
4. Actions against a directory are initiated from the Action column. Actions against selected files
are initiated from the buttons.
The physical appliance has no spinning media, such as a hard disk, in the gateway, except for the
auxiliary storage.
Some memory, like the kind available in most conventional PCs, is volatile. The data disappears
when you restart or shut down the system. Other memory is nonvolatile, like a flash memory MP3
player. This type of memory retains its data even after the machine is shut off. The flash file system
in DataPower is nonvolatile.
Uempty
config: Per application Stores configuration files for the current application
domain; not domain
shared
export: Per application Holds any exported configuration that is created with
domain; not the Export Configuration operation
shared
local: Per application Storage space for files that local services use,
domain; including XML style sheets, XML schemas, and WSDL
possibly visible documents
to other •Use the visible domains setting to view the local
domains file store of other application domains
store: System-wide; Sample and default style sheets that DataPower
shared services use
•A common practice is to copy these style sheets into
your local directory before you change them
temporary: Per application Temporary disk space that document processing rules
domain; not and actions use, and is cleared on a gateway restart
shared
Quick introduction to developing on DataPower © Copyright IBM Corporation 2016
Uempty
cert: Per application Location to store private keys and digital certificates
domain; not •System automatically encrypts all files in this store
shared
•After being added, files cannot be copied or
modified
•You can delete digital certificates and private keys
If you specify Disaster Recovery mode on the initialization or reinitialization of a gateway, there are
certain situations in which you can export the keys.
Uempty
Figure 1-21. File directories for IBM Security Access Manager (ISAM)
Uempty
When auxiliary storage is enabled, it is accessible as a subdirectory of the local: and the
logstore: directories.
Uempty
Uempty
Use the export configuration command to back up the current configuration or to duplicate services
and settings in other application domains. The export configuration command writes a series of
XML files that follow the DataPower XML Management schema. In the last step of the Export
Configuration page, you have an opportunity to download the .zip file that contains the XML
configuration files. Alternatively, you can retrieve the configuration files from the export: file store
that is associated with the current domain.
Private key files in the cert: directory are not exported. Although the Secure Backup does export
the cert directory, it is encrypted within the backup file, and is usable only in the Secure Restore.
Uempty
Import a configuration
• The Import Configuration feature updates the domain configuration
with a previously saved version
ƒ Useful for duplicating
configured services
from one application
domain to another
ƒ Administrators and
developers must
confirm changes
that overwrite
already configured
services and
interfaces
ƒ Can import a range
of resources, from
individual objects
to multiple services
The import configuration feature accepts only DataPower XML Management documents as an XML
file or as a .zip file.
A deployment policy allows an imported configuration to be preprocessed, and certain properties to
be modified.
Deployment policy variables allow the externalization of the substitution values within the
deployment policy.
Rewriting local service addresses updates the local service bindings to the equivalent interfaces in
the imported configuration.
Uempty
The System Control page in an application domain has only three functions. In the default domain,
an administrator can use many more functions.
System Control can be accessed by clicking Control Panel > Administration > Main > System
Control, or the System Control icon on the Control Panel.
You can change your own password.
Restart Domain restarts the domain from its last persisted configuration. This function is the
configuration that is saved when Save Configuration is clicked.
Reset Domain is destructive. It deletes all of the objects that were created within the domain,
including any services, and restarts the empty domain. The only resources that are retained are
files in the local: directory.
Uempty
Figure 1-27. Globalization: Displaying other languages in WebGUI and the log
The DataPower WebGUI and the system log and messages can be displayed in languages other
than English.
Uempty
Enabling languages
• For any language other than English, that language must be enabled
before it can be used
ƒ If incorrect settings are made, English is the default language
• Click Administration > Device > Language
ƒ Visible in default
domain only
ƒ Set by administrator
Uempty
• Example: German as
the primary language
in the browser
Uempty
Figure 1-30. Getting an alternative language for the log and messages
Uempty
Uempty
Banner
This arrangement of the page is the default view that you get when you open the Blueprint Console.
Uempty
Uempty
Uempty
Uempty
Click type Click the service Status | Type | Front side URL View log,
to see catalog to edit Delete
by type
Quick introduction to developing on DataPower © Copyright IBM Corporation 2016
Uempty
2 6
8
4
9
7
1
This slide shows areas that are common for the configuration of a service.
1. Navigation area remains visible and available
2. Name of service - if it is already defined - and service type
3. Field to enter the name of the new service, otherwise an uneditable field that contains the
service name
4. Text description of the service
5. Scrollable tabs for additional configuration options
6. Service status, other actions like “view log”, and Apply and Cancel buttons
7. List of one or more front side handlers
8. Service policy selection
9. Information on the back-side destination
More detailed presentation of the multi-protocol gateway configuration is covered in a later unit.
The “actions” in this drop-down list are: Export, View log, View status, Show probe, and Validate
conformance.
Uempty
For this service, the back-side destination is dynamically determined.
Uempty
Uempty
Uempty
Uempty
• The file categories are the same regardless of which development interface
is used
Uempty
Use the export configuration command to back up the current configuration or to duplicate services
and settings in other application domains. The export configuration command writes a series of
XML files that follow the DataPower XML Management schema. In the last step of the Export
Configuration page, you have an opportunity to download the .zip file that contains the XML
configuration files. Alternatively, you can retrieve the configuration files from the export: file store
that is associated with the current domain.
Uempty
Uempty
Uempty
Uempty
Unit summary
• Log in to the WebGUI and Blueprint Console
• Navigate around the WebGUI and the Blueprint Console interfaces
• Identify the primary functions of the menus on the navigation bar
• Start the creation of a DataPower service
• Identify the typical areas of a service configuration page
• Save configuration definitions in memory and on the file system
• List the file directories that are commonly used for development
• Support any non-English languages that are enabled on the gateway
Uempty
Review questions
1.True or False: One way to restrict access to an application
domain is to define a user group that restricts user account
access to a particular domain.
2.
3.
Uempty
Review answers (1 of 2)
1.True or False: One way to restrict access to an application
domain is to define a user group that restricts user account
access to a particular domain.
The answer is True.
Uempty
Review answers (2 of 2)
3. Which directories are important to a developer and specific to
an application domain?
A.cert:
B.export:
C.image:
D.local:
E.sharedcert:
F. store:
The answer is A, B, and D.
The sharedcert: and store: directories are shared.
The image: directory is in the default domain only.
Uempty
Exercise 1
Uempty
Exercise objectives
After completing this exercise, you should be able to:
• Log in to the WebGUI
• Use the navigation bar
• Use an object catalog
• Connect to the Blueprint Console
• Import a service
• Edit a multi-protocol gateway
• Review the actions in a policy editor
• Test a service from a browser and a cURL command
• Export a service
Uempty
Overview
This unit describes the service types that are supported on the DataPower gateway. You examine,
at a high level, what a service is and what it can communicate with. You also review the
characteristics of each service type, and examine the relationships between the XML-based
services.
References
IBM DataPower Gateway Knowledge Center:
http://www.ibm.com/support/knowledgecenter/SS9H2Y_7.5.0
Uempty
Unit objectives
• Define what a DataPower service is
• List the supported services on the DataPower gateway
• Describe the similarities and differences in the features that each
DataPower service supports
Uempty
MyService
Front side Service policy
Back side
•Authenticate
•Transform
Endpoint
Remote clients •Route
application
servers
Response
A service is composed of front side specifications, a service policy, and back-side specifications.
Uempty
Request
Remote and Endpoint
internal application
clients servers
Response
Service on same or Service on same or
different gateway different gateway
Call during
service policy
Uempty
Uempty
Uempty
Multi-protocol gateway
HTTP
IBM MQ
HTTPS
Uempty
Uempty
Trading Partners
Services overview © Copyright IBM Corporation 2016
Uempty
Uempty
Uempty
Other services
• Web token service
ƒ Loopback service to support OAuth token services
• Interoperability test service
ƒ Development tool that simplifies the testing of style sheets and schemas
• XSL proxy
ƒ Accelerates XML processing, such as schema validation and XSL
transformations
ƒ One of original DataPower service types (deprecated)
• XSL coprocessor service
ƒ Loopback service that accepts JAXP-based requests
ƒ One of original DataPower service types (deprecated)
• Four secondary services are available for handling message traffic without
executing a service policy
ƒ HTTP service: Serves documents from a gateway directory
ƒ TCP proxy service: Forwards TCP traffic to another address and port
ƒ SSL proxy service: Used by log targets to securely connect to remote log systems
ƒ Cloud Gateway Service: Creates a Cloud Gateway service, which can be used
with Bluemix Cloud Integration
Services overview © Copyright IBM Corporation 2016
Uempty
• If you are processing B2B messages with your trading partners, choose
the B2B gateway
Uempty
Unit summary
• Define what a DataPower service is
• List the supported services on the DataPower gateway
• Describe the similarities and differences in the features that each
DataPower service supports
Uempty
Review questions
1. True or False: The web service proxy is the only service that
requires a WSDL.
2. True or False: While executing a service policy, the service can invoke only
other services on the gateway.
3. Which service type is the best choice for this requirement? A service needs to
schema-validate and transform a message before it is placed on a IBM MQ
queue for mainframe processing. Input comes over HTTPS from external
clients, and over HTTP from internal clients.
A. XML firewall
B. Multi-protocol gateway
C. Web service proxy
4. Which service type is the best choice for this requirement? An enterprise has
operations within several existing web services that it wants to expose to
external clients as a single web service.
A. XML firewall
B. Multi-protocol gateway
C. Web service proxy
2.
3.
4.
Uempty
Review answers (1 of 2)
1. True or False: The web service proxy is the only service that
requires a WSDL.
The answer is True.
2. True or False: While executing a service policy, the service can invoke
only other services on the gateway.
The answer is False. While executing a service policy, the service can
invoke other application servers and other services on the gateway.
3. Which service type is the best choice for this requirement? A service
needs to schema-validate and transform a message before it is placed
on a IBM MQ queue for mainframe processing. Input comes over
HTTPS from external clients, and over HTTP from internal clients.
A. XML firewall
B. Multi-protocol gateway
C. Web service proxy
The answer is B. This service type can support both an HTTP and an HTTPS
front side handler, and can communicate with a IBM MQ queue on the back
side.
Uempty
Review answers (2 of 2)
4. Which service type is the best choice for this requirement?
An enterprise has operations within several existing web
services that it wants to expose to external clients as a
single web service.
A. XML firewall
B. Multi-protocol gateway
C. Web service proxy
The answer is C. This service type can present a single virtual web
service to the client that is composed of specific operations from
several web services.
Uempty
Overview
Enterprises purchase DataPower gateways to provide application-related solutions. The key
component that DataPower developers configure is a DataPower service. In this unit, you learn
about the components that comprise a DataPower service, and the relationships between them.
You learn about the front-side access, the back-side connection to the application server, and some
of the service-wide settings. You also learn how to construct the service policy that controls the
processing within the service.
References
IBM DataPower Gateway Knowledge Center:
http://www.ibm.com/support/knowledgecenter/SS9H2Y_7.5.0
Uempty
Unit objectives
• List the basic structural components of a service and describe their
relationships
• List the ways that a service configures its front-side access and back-
side connections
• Use the policy editor to configure a service policy
• Create a service policy with actions that process the client request or
server response
• List some of the processing actions and describe their functions
• Configure service-wide settings such as:
ƒ Service type: static back-end, dynamic back-end, and loopback proxy
ƒ XML Manager
ƒ URL rewriting
Uempty
Object-based configuration
• Configuration is object-based
ƒ A service (an object itself) is composed of many lower-level objects
ƒ These objects are “data” objects, not the traditional object-oriented entities
with custom-coded methods (behavior)
• In the navigation area, expand Status > Main > Object Status
ƒ List of lower-level objects that compose a service
Uempty
= File
Supporting Processing
Crypto-Profile
Protocol Objects Rules
Key/Certificate Processing
Match Rule
Objects Actions
Key/Certificate
AAA Policy XSL/XML Files
Files
This diagram shows some of the objects that are associated with a specific service. For example,
the service might be a multi-protocol gateway that you create for handling requests. The service
uses a front side handler object that identifies an IP address and port. It also includes an SSL Proxy
object that includes the necessary objects for SSL encryption. The service has a processing policy
(for the service processing phase), and that policy contains one or more processing rules, and each
rule contains one or more processing actions. Some of the objects are created for you as a
by-product of configuration wizards, and others are created by drag actions within the WebGUI or
Blueprint Console.
Uempty
Uempty
Domain
Domain ƒ URL to back-end servers
Rule
ƒ Other settings for the service
operation
Domain
Domain
Action
From the service level on down, the focus is on the XML and JSON-based services that are
covered in this course, specifically the multi-protocol gateway.
For a service, the configuration is divided between the front side access, connection to the back
side, general service settings, and the service policy.
Uempty
Uempty
When a service receives a message from a designated IP address and port, a sequence of events
is set into motion before the message is ultimately forwarded to its intended destination. The events
are separated into three distinct phases: client-side processing, service processing, and
server-side processing.
Response messages from the server then pass through these phases in reverse. Response
processing is the same as request processing except that the server must deal with errors from the
back-end service.
During client-side processing, the URL submitted by the client might be rewritten. The HTTP
headers are altered, and the format of the message is validated (SOAP, XML, JSON, or
unspecified).
During service policy processing, the message might be transformed in any number of ways, and
filtered, encrypted, decrypted, signed, verified, or duplicated, and sent to a third-party resource for
handling.
During server-side processing, the message might be routed, TCP and HTTP options set, or SSL
connections negotiated.
URI propagation refers the part of the URL after the host-port combination.
Uempty
A user agent can be configured with an SSL proxy profile to communicate securely to the back-end
service.
A load balancer object is used to provide redundancy for multiple back-end servers. The service
sends the message to the load balancer group instead of the back-end server. The load balancer
group chooses the back-end server.
Multi-step scope refers to the sequence of actions that are executed on the request and response.
Variables can be set to pass information between the actions.
Uempty
Request
Uempty
Uempty
Request
Uempty
z
z
z
Policy Map
Matching Processing
Action #1 z z z Action #N
Rule Rule
A rule direction of “both” indicates that the rule is executed for both the request and response
message.
A rule direction of “error” indicates that the rule is executed when an error occurs during rule
processing.
Uempty
Uempty
Request
Uempty
The back side connection can be dynamically determined, rather than hardcoded. In this case, the
connection specification is made from a style sheet or a GatewayScript within the service policy.
Uempty
• For a multi-protocol gateway and XML firewall, the policy editor opens
in its own window
ƒ You configure all rules within the service policy in this window
ƒ All of the rules are visible in the window
• For the web service proxy, the policy editor is displayed as a section on
the Policy tab
ƒ Only the rules that relate to the currently selected level of the WSDL (proxy,
wsdl, service, port, operation) are configured
ƒ In the web service proxy, the policy editor does not show all the rules that
apply to the whole service at the same time
Uempty
Policy editor
Policy area
Policy area: Name the service policy, save the policy, close the policy editor window.
Rule navigation area: Name the rule, specify the rule direction, add actions to the rule.
Configured rules area: View configured rules, reorder rules, delete rules.
In the web service proxy, the policy area is not displayed.
Uempty
This example defines a rule with a Match action and two actions (Validate and Results).
A rule can be configured to apply to:
• Server to client (server response)
• Both directions (client request and server response)
• Client to server (client request)
• Error (errors during message processing)
Uempty
The rule name in the Rule configuration area becomes the processing rule name.
The Match action references the appropriate matching rule.
Uempty
Processing rules
• Rules have the following directions: • Other capabilities
ƒ Server to client (response) ƒ Programmatic actions such as
ƒ Client to server (request) loops are available; otherwise,
actions are performed in
ƒ Both directions (request and response) sequential order
ƒ Error: Executes when errors occur ƒ The asynchronous option
during processing allows the next action to start
• Rules have priority and are ordered without waiting for the current
action to complete
ƒ Multiple rules
might match on
the same URL;
order is critical
to selection
ƒ Specific rules
must have
higher priority
than catch-all
rules
A specific matching rule can match on the URL “*/test”. A catch-all rule can match on all URLs by
using an asterisk “*.
Processing within rules occurs sequentially in the order that the actions appear. Actions that allow
for programmatic processing, such as looping and if-then-else statements, are available.
After a Match action is satisfied, further testing of the subsequent rules is stopped.
Uempty
Match action
• A Match action points to a matching
rule
Recall that a Match action exists only within the context of the policy editor.
A Match action is used to define criteria that are matched against the incoming traffic to determine
whether the processing rule is executed.
Each rule is configured with a Match action.
The error code is not an HTTP error code, but a DataPower internal error code value.
Uempty
Processing actions
• A rule consists of multiple processing actions with scope
– Actions such as Transform or Validate execute during the request or
response rule (if there are any)
– Contexts or defined variables within the scope are used to pass information
between actions
– Asynchronous options allow the following action to start before the current
action completes
– Programmatic actions allow for looping and if-then-else logic in rules
The contexts and variables that are set during the request processing are available
to the actions used in the response processing because of a shared scope
Structure of a service © Copyright IBM Corporation 2016
Variables can be set by using a Set Variable action (Advanced > Set Variable).
Contexts are temporary variables that contain XML data, JSON data, binary data, user, or system
variables.
The Log action is a good example of asynchronous processing. You might want to log
asynchronously so that subsequent processing can continue without delay while logging is being
completed. If you want to wait until later and continue after your previous asynchronous actions
complete, you can add an Event-sink action. In this action, you can list previous asynchronous
actions that you wait on.
The Conditional action implements if-then-else processing based on XPath expression values.
The For-each action implements a loop on designated actions that are based on XPath expression
values.
Uempty
Processing actions
Action Description
Transform Uses a specified style sheet to perform XSLT processing on XML or non-
XML documents
The Encrypt and Decrypt actions are used for XML and JSON encryption. The Sign and Verify
actions are used in XML and JWS signatures.
“AAA” is Authenticate/Authorize/Audit.
Uempty
Many actions have an asynchronous option. Event-sink is used in processing rules to wait for
certain asynchronous actions to complete before processing continues.
The Advanced actions are:
• Anti-Virus: This action scans a message for viruses by using an external ICAP server.
• Call Processing Rule: This action invokes a named rule; processing resumes on the next step.
• Conditional: This action selects an action for processing based on an XPath expression.
• Convert Query Params to XML: This action converts non-XML CGI-encoded input (an HTTP
POST of HTML form or URI parameters) into an equivalent XML message.
• Crypto-Binary: This action does a cryptographic operation (sign, verify, encrypt, decrypt) on
binary data.
• Event-sink: This action forces a wait for asynchronous actions before continuing.
• Extract Using XPath: This action applies an XPath expression to a context and stores the result
in another context or a variable.
• Fetch: This action retrieves an identified external resource and places the result in the specified
context.
Uempty
• For-each: This action defines looping based on a count or expression.
• Header Rewrite: This action rewrites HTTP headers or URLs.
• Log: This action sends the content of the specified input context as a log message to the
destination URL identified here.
• Method Rewrite: This action rewrites the HTTP method for the output message.
• MQ Header: This action manipulates IBM MQ headers.
• On Error: This action sets a named rule as the error handler; it is invoked if subsequent
processing encounters errors.
• Results Asynchronous: This action asynchronously sends a message in a specified context to a
URL or to the special output context.
• Route (by using Variable): This action routes the document according to the contents of a
variable.
• Set Variable: This action sets the value of a variable for use in subsequent processing.
• SLM: This action invokes a service level monitor (SLM) policy.
• SQL: This action sends SQL statements to a database.
• Strip Attachments: This action removes either all or specific MIME or DIME attachments.
• Transform binary: This action does a specified transform on a non-XML message, such as
binary or flat text.
• Transform with processing control file: This action transforms by using XQuery on an input
document (XML or JSON) with a processing control file.
• Transform (that uses processing instruction): This action transforms by using XSLT that is
specified by processing instructions within the XML document; the parameters might be
passed.
Uempty
tmp1 OUTPUT
Each action has an input and an output. The gateway can explicitly define or generate it.
The tmp1 context variables are temporary variables that are used to pass information between the
actions.
The gateway predefines the INPUT and OUTPUT context variables to represent the input and
output messages.
A multi-step processing rule refers to a rule with at least one processing action.
Uempty
It is not always necessary to specify a context within an action. The policy editor provides default
input and output contexts that can be used.
PIPE can improve processing efficiency and reduce latency by eliminating the need for temporary
storage of processed documents. This feature is used for streaming documents through the
gateway.
Uempty
The Validate action is used to validate the schema of XML or JSON documents. This slide presents
the XML version.
The schema URL can reference either a local or a remote file.
A schema exception map object uses an XPath expression to specify the encrypted and
unencrypted parts of an XML document. It allows for encrypted XML documents to be validated by
using XML schemas that do not support XML encryption.
The Fetch button can be used to download a style sheet from a URL and store it on the gateway.
The Validate Document via Attribute Rewrite Rule option searches for an xsi:schemaLocation
attribute and rewrites this attribute value by using a URL rewrite policy. The validation is then
performed against the rewritten schema reference.
Uempty
The Validate action is also used to validate the schema of JSON structures. The JSON schema
URL can reference either a local or remote file.
The expected file type for a JSON schema is JSV or JSON.
DataPower Version 7.5.0 supports draft 3 and draft 4 of the IETF JSON Schema specification.
Uempty
The Transform action is also used for supporting custom XSLT actions.
The style sheet can be either referenced from the gateway or uploaded from a remote site.
The URL Rewrite Policy rewrites external references that are contained within the input document.
Uempty
Figure 3-29. Transform action that uses XQuery (JSON and XML)
This option for the Transform action supports XQuery as the transformation language, rather than
XSLT.
XQuery is a language that is designed to query XML data, much as SQL is used to query relational
data. DataPower V6.0.0 included the JSONiq extension to XQuery. This extension adds support for
JSON to XQuery.
DataPower Version 6.0.0 and later support XQuery 1.0 and its related specifications. The JSONiq
extension support is for 0.4.42.
The Input Language indicates whether the input document is JSON or XML. The third option of
XSD indicates that the input document is XML, but it also displays another entry field that accepts
an XML schema file location. This schema is used to type the data (for example, integer, number,
text) for the XQuery processing, but it does not validate against the schema. For validation, you
must use a Validate action.
The Transform Language indicates the language of the transformation file. If “XQuery” is selected,
the Transform File field is displayed to select the XQuery file. If “None” is selected, no transform is
applied.
The URL Rewrite Policy rewrites external references that are contained within the input document.
Uempty
This version of the Transform action uses a WebSphere Transformation Extension mapping file to
control the transformation.
Uempty
Filter action
• A Filter action accepts or rejects an incoming message
ƒ Identifies an XSL style sheet that is used for message filtering
ƒ Does not perform an XSL transformation
• The XSL style sheet uses the <dp:reject> and <dp:accept>
tags to filter messages
• The Filter action can be used to prevent replay attacks
A standard filter employs the selected XSLT style sheet to either accept or reject the submitted
document.
Uempty
A replay attack protects against hackers that send a valid message multiple times. This attack
occurs when the intruder intercepts a valid message and sends that message on behalf of
someone else. To protect against replay attacks, messages pass unique values in each message.
The unique values that the replay filter supports are WS-Addressing messages that contain a
message ID, a WS-Security user name token with a nonce value, or a custom XPath. A nonce is a
bit string that is generated to produce a unique string. It is used in authentication and security
situations to create a unique ID.
The replay attack filter uses a standard style sheet, replay-filter.xsl, to check whether
messages are executing replay attacks.
The WS-Addressing message ID is a unique message identifier.
The WS-Security user name token can contain a password digest, which is a hashed value of the
password. Optionally, it can contain a nonce value, which is a unique base 64-bit encoded value.
Custom XPath uses content from the XML message to detect replay attacks.
Uempty
GatewayScript action (1 of 2)
• GatewayScript is a JavaScript-based run time for processing mobile,
web, and API workloads
• Focuses on the “developer” experience, with familiar and friendly
constructs and APIs
• Performance
ƒ Compiler technology and native execution
ƒ Built on intellectual capital and expertise from 10+ years of securing and
optimizing XSLT parsing and compiler technology
ƒ Ahead of time compilation with caching, not single threaded
• Supports ECMAScript 2015 (ES6) (JavaScript) programming language
that runs in "strict" mode and CommonJS 1.0
• Secure
ƒ Transaction isolation
ƒ Code injection protection
ƒ Short-lived execution
ƒ Small footprint
Uempty
GatewayScript action (2 of 2)
• Easily manipulate JSON and binary data to transform payloads or
create gateway functions
• Action points to GatewayScript file
• Support for a CLI debugger to step through the GatewayScript
Uempty
Content-based routing
• With content-based routing, the service can select a back-end service
at run time that is based on incoming message content
ƒ The service type must be dynamic back-end
• Example:
ƒ Route requests to different servers based on <state> value
DataPower configuration
<state>NC</state> EastAddressSearch
Request MPGW
Response AddressRouter EastAddressSearch
MPGW web service
Client
WestAddressSearch
MPGW
<state>CA</state>
WestAddressSearch
web service
The content-based routing example that is shown in this slide routes the message to separate web
services based on the value of the <state> field in the message. The AddressRouter multi-protocol
gateway uses an XPath expression to extract the state value. If the value is “NC” (North Carolina),
an eastern state in the United States, the message is forwarded to the EastAddressSearch
multi-protocol gateway, which sends the message to the EastAddressSearch web service. If the
value is “CA” (California), a western state in the United States, the message is forwarded to the
WestAddressSearch multi-protocol gateway, which forwards the message to the
WestAddressSearch web service.
Uempty
The XPath Routing Map is used to specify static destinations that are based on the evaluation of an
XPath expression.
The XSL style sheet that is used in a Route action can use the DataPower extension function
<dp:set-target> to set the endpoint.
Uempty
The equivalent usage of <dp:set-target>(...) can also be accomplished by using DataPower service
variables. For example, to set the back-end URI in a style sheet, use the following code:
<dp:set-variable name=" 'var://service/routing-url' "
value="http://1.2.3.1:2068"/>
<dp:set-variable name=" 'var://service/URI' "
value="/SomeBank/services/checking"/>
The sslProxyProfile parameter is the name of a DataPower SSL Proxy Profile object.
Uempty
Results action
• The Results action sends the document in the input context to:
ƒ Destination URL, can be a list
ƒ Output context, if no destination URL is specified
• If the Results action is the last action in a rule, it is usually writing to the
OUTPUT predefined context
• Use the Results action in the middle of the rule to send results
asynchronously
ƒ Enable Asynchronous to send results to destination and continue
processing in the rule
ƒ Can use a subsequent Event-sink action to wait on Results completion
The Results action is typically the last action in a rule because it is used to return a response at the
end of the service policy. Make sure that the input context contains the variable with the document
to return to the client.
An alternative is to have the last action itself write to the OUPUT context.
The default Results action copies the input context to the output context.
Uempty
A regular Results action can be set to asynchronous mode, which can be used with an Event-sink
action to wait for the remote server response.
A Results Asynchronous action cannot have an output context.
If a Results or a Results Asynchronous action needs to specify multiple locations as destinations,
you must use a variable or style sheet to represent the destinations. Search on the phrases
“Specification for the location of remote resources” and “Format of the <results> element” in the
DataPower Knowledge Center for guidance on these approaches.
• Attempt All sends the results in the input context to all destinations and succeeds even if all the
remote servers fail.
• First Available attempts each destination in order and stops with success after successfully
sending the input to at least one remote server.
• Require All sends the input context to all destinations and fails if any of the remote servers fail.
Uempty
Service settings
• Specifications on how the service operates
ƒ TCP connection parameters
ƒ HTTP versions
ƒ Connection timeout values
ƒ XML manager
ƒ Traffic monitors
ƒ XML/JSON threat protection
ƒ HTTP header injection and suppression
ƒ And more
• Varies by service type
Uempty
Service types
Remote clients Application servers
Static back-end
Dynamic back-end
Uempty
URL rewriting
• Create a URL rewrite policy to rewrite some or all of a client URL
The URL rewrite policy executes at the service level and before the service policy.
Rewriting the URL at the service level affects the matching rules of the service policy. If you rewrite
the URL, make sure that it still matches one of the matching rules.
A URL rewrite policy can also be executed within a service policy by adding a Header Rewrite
action to the policy header and referencing a URL rewrite policy.
PCRE refers to Perl-compatible regular expression. The match expression must be entered in this
syntax.
The four options available under URL Rewrite Type are:
• absolute-rewrite: Rewrites the entire body of the URL
• content-type: Rewrites the contents of the content-type header field
• header rewrite: Rewrites the contents of a specific HTTP header field
• post-body: Rewrites the data that is transmitted in the HTTP post body
The Stylesheet Replace Expression is used to specify a style sheet that transforms or filters a
document that is identified from a rewritten URL.
Uempty
The Input URL Unescape is used to specify whether URL-encoded characters (that is, %2F) are
rewritten to literal character equivalents.
The Stylesheet URL Unescape is used to specify whether the style sheet identified in Stylesheet
Replace Expression is subject to literal character replacement of URL-encoded characters.
The URL Normalization field is used to enable normalization of URL strings by converting '\' to '/'
and compressing '.' and '..'.
Optionally, if the URL Rewrite Type is header-rewrite, then a Header Name field is available to
specify a target HTTP header field.
A URL rewrite policy can also be specified at the action level for transform, validate, and header
rewrite actions.
Uempty
XML Manager
• The XML Manager obtains and manages XML documents, style sheets,
and other resources on behalf of one or more services
ƒ All services use the default XML Manager object
ƒ Accessed from the navigation area by clicking
Objects > XML Processing > XML Manager
Uempty
Each XML Manager maintains a cache of compiled style sheets to facilitate wire speed XML
processing.
A load balancer group, or server pool, provides redundancy among back-end resources.
A user agent uses URL mappings to specify many options: proxy policies, SSL proxies, FTP client
options, and other options.
Uempty
The XSL proxy service does not have an XML threat protection tab.
“DoS” is “denial of service.”
XML Parser limits are as follows:
• XML Bytes Scanned: The maximum number of bytes scanned in one message by the XML
parser. “0” indicates no restriction.
• XML Element Depth: The maximum depth of element nesting.
• XML Attribute Count: The maximum number of attributes that are allowed within an XML
element.
• XML Maximum Node Size: The maximum size of an individual XML node in bytes.
• XML Maximum Distinct Prefixes: Defines the maximum number of distinct XML namespace
prefixes in a document.
• XML Maximum Distinct Namespaces: Defines the maximum number of distinct XML
namespace URIs in a document.
• XML Maximum Distinct Local Names: Defines the maximum number of distinct XML local
names in a document.
Uempty
• XML External Reference Handling: To allow references in DTD to URLs outside the gateway.
Uempty
A JSON Settings object is selected to be attached to an XML manager. The JSON Settings choice
is on the Main tab of the XML manager page.
JSON Parser limits are as follows:
• Maximum label length: The maximum label length limits the number of characters in the label
portion of the JSON label-value pair. The length includes any white space that is contained
between quotation marks. Enter a value in the range 256 – 8192. The default value is 256.
• Maximum value length for strings: The maximum value length limits the number of
characters in the value portion of a label-value pair when the value is a string. The length
includes any white space that is contained between quotation marks. Enter a value in the range
8192 – 2097152. The default value is 8192.
• Maximum value length for numbers: The maximum number length limits the number of
characters in the value portion of a label-value pair when the value is a number. The number
must be a contiguous string of characters that contain no white space. The number can include
a minus sign and a positive or negative exponent. Enter a value in the range 128 – 256. The
default value is 128.
Uempty
• Maximum nesting depth: The maximum nesting depth provides threat protection by limiting
the number of nested label-value pairs that are allowed in the JSON message. Enter a value in
the range 64 – 256. The default value is 64.
• Maximum document size: The maximum document size provides threat protection by limiting
the number of bytes in the body of the JSON message. If the message is converted to JSONx,
the maximum document size specifies the size before conversion to JSONx. Notice that the
document size of the JSON message and the size of the JSONx equivalent might differ. Enter a
value in the range 4194304 – 134217728. The default value is 4194304.
If no JSON Settings object is associated with a service’s XML manager, the default values are in
effect.
Because the XML parser is used in addition to the JSON parser when parsing a JSON document,
the more restrictive parser limits (JSON or XML) apply.
Uempty
Click Export to download a .zip file of the service configuration. The .zip file contains only the
configuration data and files of the selected service.
Uempty
The system log displayed by the XML firewall is a filtered version of the main system log, and it
shows only the events that your XML firewall generates.
Uempty
Unit summary
• List the basic structural components of a service and describe their
relationships
• List the ways that a service configures its front-side access and back-
side connections
• Use the policy editor to configure a service policy
• Create a service policy with actions that process the client request or
server response
• List some of the processing actions and describe their functions
• Configure service-wide settings such as:
ƒ Service type: static back-end, dynamic back-end, and loopback proxy
ƒ XML Manager
ƒ URL rewriting
Uempty
Review questions
1. True or False: A service has a single policy with many rules,
and each rule has many actions.
2.
3.
4.
Uempty
Review answers (1 of 2)
1. True or False: A service has a single policy with many rules,
and each rule has many actions. The answer is True.
3. True or False: All services support the loopback proxy mode. The
answer is False. Of the primary services that are presented, only the
XML firewall supports the loopback proxy mode. The loopback can
be simulated in the multi-protocol gateway and the web service
proxy by using a DataPower variable within the service policy.
Uempty
Review answers (1 of 2)
4. What is the impact of using a URL rewrite policy on a service policy?
A. The URL rewrite policy rewrites the user’s cookies
B. The URL rewrite policy might rewrite the message URL, so the Match
actions in the service policy rules need to account for the rewrite
C. The URL rewrite policy might rewrite the service policy to another
service
The answer is B. The URL rewrite policy might rewrite the message URL,
so the Match actions in the service policy rules need to account for the
rewrite.
Uempty
Exercise 2
Uempty
Exercise objectives
After completing this exercise, you should be able to:
• Create a multi-protocol gateway
• Test the message flow by using the SoapUI graphical test tool
Uempty
Exercise overview
DataPower
SoapUI student_domain
Request
BookingServiceProxy
Multi-Protocol Gateway
Reply
Uses
FLY_domain
Uempty
Overview
This unit describes the features of the multi-protocol gateway in the DataPower Gateway. The
gateway allows a many-to-many service mapping: multiple transport protocols can access a list of
operations, and more than one back-end service can provide the implementation for these
operations.
References
IBM DataPower Gateway Knowledge Center:
http://www.ibm.com/support/knowledgecenter/SS9H2Y_7.5.0
Uempty
Unit objectives
• Configure a multi-protocol gateway to provide a service over a set of
different protocols
• Configure a connection to a static back-end service
• Configure a connection to a dynamic back-end by use of a processing
rule to select a back-end service at run time
Uempty
Uempty
ISAM
LDAP
MQ, JMS, EMS, IMS
HTTP, HTTPS
The Multi-Protocol Gateway service builds on the XML Firewall’s XML and security functions by
adding support for multiple protocols. In addition to HTTP and HTTPS, the Multi-Protocol Gateway
supports IBM MQ, WebSphere JMS, TIBCO EMS, FTP(S), SFTP, NFS, and IMS. All of these
protocols can be mixed and matched as necessary. For example, messages received over HTTPS
can easily be routed to IBM MQ or WebSphere JMS.
The calls from the MPGW to an external resource indicate that an MPGW, like other service types,
can call out to external resources to augment its internal processing. In this graphic, the service
might call an IBM Security Access Manager (ISAM) server, or an LDAP server.
Uempty
Uempty
Handlers Description
FTP poller Polls a remote FTP server for input
The FTP poller front side handler object polls inside the directory for files from an FTP server. The
FTP server URL is specified as: ftp://user:password@host:port/path .
A regular expression can be used to restrict the files within the directory that are polled.
The FTP server front side handler object acts as a virtual FTP server. The DataPower gateway has
a limited amount of storage; hence, you should be careful when you are using this object.
The NFS poller is configured in a way that is similar to an FTP poller, except that it polls an NFS
server for input.
The IMS Connect handler enables communication between the gateway and an IMS Connect
server.
Uempty
Handlers Description
AS1 poller Polls a mailbox on a mail server
The AS1 protocol passes files as attachments in an email message. It uses SMTP. Messages can
be signed and encrypted.
The AS2 protocol is similar to AS1, but it uses HTTP and HTTPS.
The ebMS2 protocol supports ebXML Message Service Protocol V2 (ebMS2).
The MEIG AS2 proxy protocol uses the AS2 protocol. IBM Multi-Enterprise Integration Gateway is
withdrawn from marketing. Its function is included as part of IBM Sterling B2B Integrator.
Uempty
Uempty
Multi-protocol gateway
HTTP
.
.
.
HTTP, HTTPS
MQ, and more
MQ
As the name suggests, a static back-end gateway maps exactly one back-end resource for all
requests that pass through the gateway. IBM MQ, WebSphere JMS, and TIBCO EMS resources
require more information to describe the back-end resource. The DataPower Appliance uses a
custom syntax for these resources.
Uempty
HTTP HTTP
HTTPS HTTPS
WebSphere
MQ
JMS
Stateless
FTP
raw XML
SFTP SFTP
Stateful Stateful
raw XML raw XML
IMS IMS
Connect Connect
Multi-protocol gateway service © Copyright IBM Corporation 2016
The front side and back-end protocols do not have to match, except for a stateful raw XML protocol
handler and an IMS Connect handler.
The Route action, the url-open within a style sheet, and a url-open within a GatewayScript can
specify dynamic back ends.
Uempty
The multi-protocol gateway inherits most of the features from the XML firewall object. In a sense,
the gateway provides multiple front side and back-end handlers to the XML firewall. The only
exception is the loopback proxy feature, which can be easily emulated.
Use the Advanced action to enforce a service level management (SLM) policy in a processing rule.
In the previous exercise, you used XML firewalls because they are easier to learn. If you had a
scenario with a more realistic environment, the services would be implemented as multi-protocol
gateways.
Uempty
2 6
4
7
The multi-protocol gateway inherits most of the XML firewall features. The following list explains
some new or modified settings that are specific to the multi-protocol gateway. For an explanation on
the remaining settings in the editor, see the XML firewall presentation.
1. Remember to click Apply to commit changes that are made in the editor.
2. Specify a name and a description for the multi-protocol gateway.
3. Specify whether the back-end service URL is defined at configuration time (static back end) or
defined at execution (dynamic back end). Keep in mind that the left side of the editor covers
Gateway to back-end settings, while the right side covers Client to gateway settings.
4. For a static back end, enter the endpoint address for the back-end service. Notice the helpers
for IBM MQ, WebSphere JMS, and IMS Connect.
5. The XML Manager handles style sheet and document processing options. This setting is the
same as a regular XML firewall. In fact, the gateway can reuse an XML Manager that was
created for an XML firewall.
6. The Multi-Protocol Gateway Policy defines the rules in a document processing policy. The
processing rule actions are the same as the ones that are available to the XML firewall, with the
addition of the SLM policy action.
Uempty
7. The Front Side Protocol section lists one or more front side handlers that are configured for
the gateway. You can either add an existing front side protocol handler or create a protocol
handler for the gateway.
If Propagate URI choice is set to on (lower on the configuration page), the URI of the back-end
(target) URL is rewritten to the URI that is in the client request. For TIBCO EMS, IBM MQ, and
WebSphere JMS, disable URI propagation. Any action in the processing policy can change the URI
that is sent to the target server. The rewritten URI can override the intended effect of this setting.
Uempty
Multi-protocol gateway
HTTP
HTTPS HTTP
In this scenario, the client can access the back-end service over a regular HTTP connection or a
secure HTTPS connection. The DataPower gateway sits on the edge of the network; that is, the
connection between the gateway and the back-end service exists in the intranet. The connection to
the back-end service is made by an unsecured HTTP connection. For this scenario, assume that
communication between the DataPower gateway and the back-end service is secure in a corporate
intranet.
Uempty
4
Multi-protocol gateway service © Copyright IBM Corporation 2016
The figure on this slide covers the left side of the main multi-protocol gateway configuration page.
Uempty
The Match action accepts calls with specific criteria, such as a particular URI path. If it does not
match any of the defined rules, the gateway by default rejects any request.
The Match action must be the first action on any processing rule. The Validate action appears
after the match rule.
The Results action directs the gateway to connect and send the message to the back-end service
or the original client.
After you define a processing rule in the policy, click Apply Policy to save the changes that are
made in the processing rule.
Uempty
1.Create a handler
• Use the new icon
1
2.Select the handler type 3
page opens
3. To select an existing
handler, use the drop-
down in the selection list
to select the existing
handler, and click Add
You can reuse front side protocol handlers that you created. However, you can associate the
handler with only one service (XML firewall, web service proxy, multi-protocol gateway, and other
services) at a time.
Usually, a new handler is automatically added to the protocol list after you configure the handler.
Uempty
The DataPower gateway includes multiple Ethernet interfaces. Services can be mapped to one or
all interfaces on the gateway. For a list of all available Ethernet interfaces, click Network >
Interface > Ethernet Interface in the default domain from the WebGUI or Blueprint Console.
A host alias is defined under Network in the default domain.
The SSL server type setting is unique to the HTTPS Front Side Handler configuration page. It
does not appear in the HTTP Front Side Handler configuration page. All other options appear in
both the HTTP and HTTPS front side handler.
Uempty
Uempty
Multi-protocol gateway
HTTP HTTP
HTTPS
HTTP
The dynamic back-end service allows one endpoint on the DataPower gateway to represent a
single service, which is composed of different operations from different back-end services.
The diamond in the middle of the multi-protocol gateway diagram represents a decision point. One
or more processing rules define the actual back-end service for each incoming request. The
decision itself to choose one endpoint over another occurs at execution.
Uempty
The following steps assume the multi-protocol gateway was created according to the first scenario.
A custom style sheet in a processing rule defines the actual back-end service.
Uempty
The dp:set-target extension element defines the IP address (or host name) and the port for a
particular back-end server. Other attributes are available to set up an SSL connection to the
back-end service. You can call this element multiple times, with the last one taking precedence.
The dp:set-target element overrides the value of the target server that is specified with the
var://service/routing-url variable. For a multi-protocol gateway or web service proxy, the
acceptance of the URI is based on the setting of the Propagate URI property or propagate-uri
command.
For an XML firewall service, the var://service/routing-url variable must use HTTP(S). The
URI is stripped. To specify the URI, use the routing URL variable var://service/URI and
serviceVars.Uri .
For variables, the slash notation (var://service/routing-url) is typically used in XSL, and the
dot notation (serviceVars.routingUrl) is used in GatewayScript.
Uempty
Multi-protocol gateway
HTTP
HTTPS MQ queue
manager
MQ
MQ queue
manager
Uempty
MQ queue
manager
Multi-protocol gateway
HTTP MQ client
WebSphere
Application Application Server
WebSphere Server Platform Messaging
HTTPS JMS client JMS API
IBM MQ and WebSphere Application Server are separate products that both support asynchronous
messaging.
The WebSphere Application Server platform messaging engine maintains a set of queues that
process asynchronous messages.
The DataPower gateway comes packaged with a client library for both IBM MQ and WebSphere
JMS. JMS is a standard API and is a required platform messaging engine for Java EE application
servers. IBM MQ also supports JMS, but can use the native MQ protocol for more flexible
messaging.
The support for TIBCO EMS is similar to the support for JMS.
Uempty
DataPower
Web services
WSP
interface
RESTful
MPGW
interface
Extensive details on REST and JSON support is not included in this course.
Uempty
Uempty
Uempty
DataPower
IMS V12
Request rule
REQUEST IMS
(one or more
Application
———
Response rule TPIPE ICAL
(one or more (synchronous)
RESPONSE actions)
Multi-Protocol Gateway
IMS Synchronous Callout support is a feature for allowing IMS to consume an external service
through DataPower. By defining an IMS Callout Front Side Handler to DataPower MPGW, an IMS
application can initiate synchronous calls to an external service through DataPower following the
IMS Call (ICAL) protocol. The ICAL protocol enables an application program that runs in an IMS
region to synchronously send outbound messages to request services or data, and receive
responses.
For synchronous callout requests, an IMS application program issues a DL/I ICAL call and waits in
the dependent region to process the response. DataPower retrieves the callout request, processes
it based on the rules and actions that are defined in the MPGW policy, and sends it out to the
back-end service. In a similar manner, the response is flown back and processed through the
MPGW. The figure here illustrates the callout inbound and outbound flow through DataPower.
Uempty
WebSocket Proxy (1 of 2)
• WebSocket is a bidirectional frame-based protocol for enabling real-
time communication over supporting HTTP or HTTPS infrastructure
ƒ Designed to enable real-time applications such as: Messaging over the
WEB, chat applications, video applications, notifications, and other
applications
• Use DataPower to secure, route, shape, and load-balance initial
WebSocket connection establishment
DataPower Appliance
WebSocket client WebSocket server
Uempty
WebSocket Proxy (2 of 2)
• Apply DataPower policy actions until and including WebSocket upgrade
request over HTTP or HTTPS
ƒ After upgrade request is accepted, DataPower proxies the client and server
communication
• Example: Chat applications that use WebSockets require client
authentication and connection throttling
ƒ Use DataPower AAA to authenticate and authorize client credentials and
SLM to enforce connection concurrency
Network HTTP
infrastructure upgrade:
WebSockets MPGW
HTTP
AAA, SLM, HTTP,
HTTP HTTPS
FSH and more HTTPS
HTTP WebSocket
WebSockets HTTPS proxy
DataPower Gateway (pass-thru)
FSH Appliance
WebSocket
Multi-protocol gateway service © Copyright IBM Corporation 2016
Uempty
Unit summary
• Configure a multi-protocol gateway to provide a service over a set of
different protocols
• Configure a connection to a static back-end service
• Configure a connection to a dynamic back-end by use of a processing
rule to select a back-end service at run time
Uempty
Review questions
1. True or False: With a dynamic back-end, the multi-protocol
gateway can use a custom style sheet action within a
processing rule to configure the back-end destination. It is
up to the developer to create the custom style sheet.
2.
3.
Uempty
Review answers
1. True or False: With a dynamic back-end, the multi-protocol
gateway can use a custom style sheet action within a
processing rule to configure the back-end destination. It is
up to the developer to create the custom style sheet.
The answer is True.
2. True or False: All front side handlers need to have an IP address or
host and listening port specified.
The answer is False. The MQ, WebSphere JMS, and TIBCO EMS
handlers specify queue managers.
3. Which extension element or variables allow you to manipulate the
path part of the URL:
A. dp:set-target
B. var://service/routing-url or serviceVars.routingUrl
C. var://service/URI or serviceVars.URI
The answer is B and C. You can set only the host and port for HTTP(S)
communications with dp:set-target. You can set the only the path part of the
URL with var://service/URI or serviceVars.URI. You can set the protocol,
host, port, and path for a URL with var://service/routing-url or
serviceVars.routingUrl.
Multi-protocol gateway service © Copyright IBM Corporation 2016
Uempty
Overview
This unit describes the troubleshooting tools that are available for debugging problems on the
DataPower gateway. Several tools are available for various problems, ranging from low-level
networking tools to probes that aid in debugging service policies. The logging utilities are available
for capturing information that the DataPower objects generate.
References
IBM DataPower Gateway Knowledge Center:
http://www.ibm.com/support/knowledgecenter/SS9H2Y_7.5.0
Uempty
Unit objectives
• Capture information by using system logs for messages that pass
through the DataPower gateway
• Configure a multi-step probe to examine detailed information about
actions within rules
• List the problem determination tools that are available on the
DataPower gateway
Uempty
Uempty
• CPU usage
ƒ Displays percentage of CPU usage
ƒ Status > System > CPU Usage
• System usage
ƒ Displays load and work queue status
ƒ Status > System > System Usage
Unless otherwise noted, these screen captures are from the WebGUI. The Blueprint Console
versions present the same information in a similar format.
It is a good practice to check the gateway file system memory for available space. The logging
system can fill up the available file storage space, which can prevent the system from writing log
entries. This situation prevents the system from processing messages.
Temporary Space is used for processing, logging, and debugging.
Internal Space is used for import, export, firmware upgrades, and debug data.
System Usage indicates the current load on the server and the length of the work queue. If the
server suddenly slows down or becomes unresponsive, the cause might be system usage. If the
system has a throttle in place, the high memory usage (load) might be causing the throttle to refuse
connections.
Uempty
Troubleshooting
The Troubleshooting page contains the following tools:
• Ping Remote
ƒ Pings a remote host address
• TCP Connection Test
ƒ Creates a TCP connection to remote endpoint
• Packet Capture (default domain only)
ƒ Captures network packets to and from the gateway
• View System Log and generate log messages
ƒ Specifies log level of messages to record
ƒ Generates log messages for testing log targets
• Error Report
ƒ Includes the running configuration and relevant system log entries for errors
ƒ Emails error report to an email address
• XML File Capture (default domain only)
ƒ Captures inbound XML files that are submitted to the gateway
• Probe
ƒ Enables or disables probes on services
Problem determination tools © Copyright IBM Corporation 2016
The best tool to use first when a problem occurs often depends on how the gateway is being used
at the time.
During the development phase, the default system log is often the best place to start, followed by
use of the multi-step probe.
During the testing phase, generating an error report (which contains the running configuration of
the gateway and the relevant log entries) is an excellent first step, followed by use of the multi-step
probe.
During the production phase, first check the system usage for load and work lists and then check
the object status for objects that are changed to the down state. Finally, check the default system
log.
If you contact DataPower Support for a problem, you might need to include a generated error
report.
Uempty
• Blueprint Console
ƒ Troubleshooting option from the Open icon
Uempty
Troubleshooting: Networking
• Use the Ping Remote tool to • Use the TCP Connection Test
test connectivity to a remote to test connectivity to a remote
host destination
ƒ Enter IP address or host ƒ Enter IP address or host name
name and click Ping Remote ƒ Enter the port number
ƒ Optionally, enter the IP ƒ Click TCP Connection Test
version to use
ƒ The default is IPv4
Ping Remote allows DataPower to ping a host system. Use ping to confirm network connectivity to
the host IP address that the DataPower gateway is attempting to reach. Intervening servers and
firewalls might block ping requests.
The TCP Connection Test confirms that DataPower can reach the IP address and the port. This
step is useful to confirm whether a service is running remotely or not. For example, you can use
TCP Connection Test with the IP address of WebSphere Application Server and port 9080 to
confirm that the server is up and running on the remote host.
Uempty
On the Troubleshooting web page, scroll down to the packet capture section. Click the Packet
Capture icon to begin the capture. A dialog box confirms the action. When the capture is complete,
a Download Packet Capture icon appears on the Troubleshooting page.
You can control the network interface to monitor the duration of monitoring and the number of KB
that can be captured.
DataPower support expects the pcap format when a PMR is opened.
Before installing a packet capture tool, such as Wireshark (formerly called Ethereal), make sure
that you have the necessary permission from your network staff.
Restarting the device automatically turns off packet capture.
Uempty
Troubleshooting: Logging
• Use Set Log Level to set the log level for the current domain
• Use Generate Log Event to verify that log targets are active and able
to capture events
Setting the log level to debug is helpful during development but it affects processing. Therefore,
debug mode should not be used in production.
Generate Log Event is usually used to test that a log target is configured properly.
Uempty
Uempty
The system log is defined as a log target. A log target receives log entries that DataPower objects
generate. Each domain always has a log target that is called default-log to represent the default
system log. More log targets can be defined and customized with the log entries from objects to
post.
The most recent log entries are shown at the top of the system log.
The logs can be sorted by the categories that are listed at the top.
Uempty
The Generate Log Event tool is used to test the configuration of a newly created log event and log
target.
Uempty
Troubleshooting: Reporting
• Generate Error Report
Error report is required when engaging with IBM DataPower support
Error report file is created in the temporary: directory
• Error Report contains:
Current configuration
Current contents of the system log
Contents of CLI log
• Send Error Report:
DataPower uses an external mail server (SMTP) to email the error report to a specific email
recipient
In the Blueprint Console, a Subject field replaces the Location field
Click Generate Error Report. A dialog box prompts for confirmation and indicates the location of
the resulting file.
If an error report is available, an icon appears that allows immediate access to the file.
Uempty
Troubleshooting: Advanced
• Use XML File Capture to allow the configuration of system-wide file-
capture mode
ƒ The file capture facilitates the visibility of erroneous XML and XSLT
content
• Use View Running Config to view the configuration of all the objects
that are currently in memory
Uempty
XML File Capture sets the configuration of system-wide file-capture mode. The file capture
facilitates the visibility of erroneous XML and XSLT content.
Uempty
Uempty
1 4
2 3
Probe Probe
disabled Probe enabled disabled
Time
In the diagram on the slide, four messages are sent to the probe. Only message 2 and message 3
are captured. The probe functions like a recorder. When the probe is enabled, it starts recording
messages that enter the gateway. When the probe is disabled, recording is stopped and the probe
stops capturing messages.
The multi-step probe can be used to view:
• Action execution trace
• Message content
• Header values
• Attachments
• Variable values (local, context, global, service)
Uempty
Uempty
The transaction list window opens with the probe disabled when you show the probe from the
service configuration page.
Rules that generate an error while executing are displayed in red text.
Clicking Flush clears the requests inside the transaction list.
Restarting the gateway disables all probes.
By clicking Export Capture in the transaction list window, you can download the service
configuration and files that are used in execution of the rule. Download the .zip file and send it to
support when you have problems with a service policy.
Uempty
1. The row of actions across the top show what executed in the rule. The magnifying glass to the
left of the action represents the input message. The magnifying glass to the right of the action is
the result of executing that action. When you click a particular magnifying glass, the contents of
the rest of the page changes to the state at that point in the processing. The square brackets
around the magnifying glass indicate which one is selected. You can also click Next and
Previous to view the message step-by-step as it is executed from the processing rule.
2. The default tab that is displayed is the Content tab. The tab renders the message contents if it
can.
3. Other tabs are available to show more state that is associated with the message processing at
the selected point in the rule.
The local, context, global, and service variables are DataPower variables that are generated from
the gateway.
Uempty
Debugging GatewayScript (1 of 4)
• To activate the GatewayScript debugging, two conditions must be met:
Debugging must be enabled in the GatewayScript action
The script that is invoked in the GatewayScript Action must contain a
“debugger;” statement
Debugger
statement
Enable or Disable
button
To activate the GatewayScript debugger, two conditions must be met. The first condition requires
the GatewayScript debugging to be enabled. GatewayScript debugging is enabled by clicking
Enable Debug in the configuration screen of the GatewayScript action. The enable or disable
button is highlighted in the image on the left side of this slide.
The Debug button does not persist during a domain or gateway reboot. Therefore, if the button was
enabled, and the gateway is rebooted, the button is in a disabled state after the reboot.
The second condition that must be met requires the syntax of the GatewayScript code to contain
the debugger statement. An example is represented in the image that is on the right side of the
screen.
Uempty
Debugging GatewayScript (2 of 4)
• The flow of a transaction is paused indefinitely
ƒ The GatewayScript processing breaks at the “debugger;” line
ƒ A maximum of 10 debug sessions are in progress at any time
ƒ Use “show debug-actions” (in config mode) to find available
sessions to debug
This screen capture image is an example of what you would see and how you would figure out how
to begin the debugger. When debugging is enabled, and a debugger statement exists in the
GatewayScript script, a “show debug-actions” message shows the debug requests.
The GatewayScript execution pauses at the debugger statement. You might have up to 10 debug
sessions in progress at one time. The scope of the maximum debug sessions is per gateway (not
per domain).
• The session ID is used to identify which debug session you want to work with.
• The transaction ID is the ID of the transaction.
• The service name is the name of the service.
• The file location is the actual location of the script file that is being paused.
• The remote address is the address of the client.
In Use represents whether someone else is debugging the session. Currently, joint debugging is
not allowed, so if In Use is set to Yes, you cannot debug this session.
If In Use is Yes, then the following fields contain data that represents the user currently debugging
the session:
• User: The user currently debugging the session
Uempty
• User location: IP address of the user
• Elapsed time: The amount of time that the transaction remains in the debugger
Uempty
Debugging GatewayScript (3 of 4)
• Enter the CLI debugger: GDB-like interface
ƒ Must be in config mode in the domain where the action executed
ƒ debug-action <session ID>: Enter the CLI debugger until the script
completes
The GatewayScript debugger is similar to the GNU Project debugger (GDB), which shows what is
going on inside another program while it is running.
The debug-action must be executed from within the domain that is being debugged, and from
within configuration mode (use the CLI co command).
The previous slide showed a debug session ID of 85. This image shows how you enter a debugging
session, by executing a debug-action and the session ID: debug-action 85
What you are going to see, as represented on the image, is that the debugger shows a listing of the
code around the debug statement. The debug listing includes line numbers and an arrow =>
pointing to the debug statement.
In the debugger, many commands can be executed, such as step-into, step-over, and other
commands. The debugger commands are listed on the next slide.
Uempty
Debugging GatewayScript (4 of 4)
Debugging commands:
• List source code
ƒ list(l) [number of lines]
• Breakpoints
ƒ break (b) <line | script.js:line | function()>
ƒ delete (d) <identifier | all>
ƒ info break (ib)
• Print variable values
ƒ print (p) <variable>
• Explore stack trace
ƒ backtrace (bt)
• Program execution control
ƒ continue (c)
ƒ next (n) [count]
ƒ step (n) [count]
ƒ out (o) [count]
ƒ quit (q)
Problem determination tools © Copyright IBM Corporation 2016
This slide includes a list of some of the GatewayScript debugging commands that the debugger
supports.
For more information, see the “GatewayScript debugger commands” section in the DataPower
Knowledge Center.
Uempty
The -v verbose flag produces much information in the output. It allows the user to see all of the
client and server interaction.
Uempty
Uempty
Logging basics
• Logging system is based on the publish/subscribe model
ƒ Objects publish events
ƒ Subscribers subscribe to events of interest
Uempty
Log targets
List of log levels for the system log:
• emergency: System is unusable
• alert: Take immediate action
• critical: Critical condition
• error: An error occurred
ƒ The error code is included
• warning: A warning condition
occurred
ƒ Nothing might be wrong, but
conditions indicate that a problem might occur soon if nothing changes
• notice: A normal but significant condition applies
• information: An informational message only
• debug: Debug-level messages
ƒ This level generates many messages
Uempty
Finance
Publish
log target Event3 AAA
Problem determination tools © Copyright IBM Corporation 2016
The diagram in the slide shows 2 log targets: HR and Finance log targets. These log targets
subscribe to certain types of events that are generated or published from objects on the DataPower
gateway.
Use the Generate Log Event tool in the Troubleshooting pane to test whether log targets capture
the log messages.
Uempty
Uempty
• Zulu: Milliseconds used as the timestamp format in Coordinated Universal Time (UTC) in log
messages yyyymmddThhmmss+oo:oo
Uempty
The log entries that are stored on a local or NFS file can be rotated, emailed, or uploaded to other
locations. The entire file can also be encrypted and signed.
SNMP is a network protocol that allows for the exchange of management information between
network devices. This protocol is included in the TCP/IP protocol suite.
Syslog is the format and protocol that is used to send messages over TCP or UDP to a Syslog
daemon (syslogd). It allows for log messages to be collected from many applications.
Syslog-ng (New Generation) is deprecated. Use syslog-tcp instead.
Other fields might appear on the page dependent on the type of target that is selected.
Uempty
You can subscribe the current log target to particular event code. Example event codes include out
of memory, failed to install on local port, and other codes.
These event codes are event conditions that are specific to DataPower.
Uempty
The object filter is more specific than the object class name. This filter collects log messages of an
instance of a class.
For example, a log target would collect messages from an MPGW that is named MyMPGW and not
all MPGW instances.
It is possible to create a log target that collects log messages from a particular class of objects only,
such as a AAA policy. It is important to recognize that by using this filtering framework, you can
design a sophisticated logging subsystem in which log targets are well-segregated to record
specific events of interest.
Uempty
Uempty
Uempty
Event categories is the same term that is used to describe an object class name.
At least one event category must be defined for a log target to capture messages.
Uempty
Log action
The Log action sends the
contents of the Input
context to a destination
URL
• Is used to log entire
message instead of
creating a log entry
• Configure:
ƒ Destination: Must be
a valid URL to either a
local file or a remote
destination
ƒ Log Level: Event
severity
ƒ Log Type: Logging
category
ƒ Method: HTTP
method of POST, PUT,
or DELETE
Problem determination tools © Copyright IBM Corporation 2016
If you want to capture the message payload (the data in the message), a Log action must be used.
Uempty
Unit summary
• Capture information by using system logs for messages that pass
through the DataPower gateway
• Configure a multi-step probe to examine detailed information about
actions within rules
• List the problem determination tools that are available on the
DataPower gateway
Uempty
Review questions
1. True or False: To test a Log Event, you would use the
Generate Log Event option on the troubleshooting page
to generate a log message, and verify that it is captured
in a log target.
2. True or False: The system log can be viewed in the default domain
only.
3. True or False: The multi-step probe pauses execution of the
processing rule as you step through the action execution.
4. Logs can be stored off-device by using (select five):
A. SMTP
B. SOAP
C. NFS
D. syslog-tcp
E. daemon
F. syslog
G. POP
2.
3.
4.
Uempty
Review answers (1 of 2)
1. True or False: To test a Log Event, you would use the
Generate Log Event option on the troubleshooting page
to generate a log message, and verify that it is captured
in a log target.
The answer is True.
2. True or False: The system log can be viewed in the default domain
only.
The answer is False. The system log is viewable in all domains.
However, the entries in the system log reflect only the messages that
were generated in the same domain.
Uempty
Review answers (2 of 2)
4. Logs can be stored off-device by using (select five):
A. SMTP
B. SOAP
C. NFS
D. syslog-tcp
E. daemon
F. syslog
G. POP
The answer is A, B, C, D, and F.
Uempty
Exercise 3
Uempty
Exercise objectives
After completing this exercise, you should be able to:
• Perform advanced configuration of an MPGW
• Configure a document processing policy with more actions
• Test the MPGW policy by using the graphical SoapUI tool
• Perform basic debugging by using the system log
Uempty
Exercise overview
DataPower
SoapUI student_domain
Request
BookingServiceProxy
Multi-Protocol Gateway
Reply
Uses
FLYServices domain
Uempty
Overview
Errors might occur when a service processes messages. The developers of services need to plan
for error handling within those services. In this unit, you learn how to use the On Error action, the
error rule, and the MPGW’s error policy to control error handling.
References
IBM DataPower Gateway Knowledge Center:
http://www.ibm.com/support/knowledgecenter/SS9H2Y_7.5.0
Uempty
Unit objectives
• Configure an error policy
• Configure an On Error action in a service policy
• Configure an error rule in a service policy
• Describe how On Error actions, error rules, and error policies are
selected during error handling
Uempty
Error handling constructs are used to handle errors that occur during execution of a service policy.
The On Error action is similar to Java exception handling that uses try-catch blocks. If an error
occurs and it is recoverable, then processing continues; otherwise, the rule is canceled.
Uempty
Multi-Protocol Gateway
Processing Policy
Policy Map
Matching Processing
On Error Action zzz Action #N
Rule Rule (req/resp)
zz
z
Policy Map
Matching Processing
Action #1 zzz Action #N
Rule Rule (error)
Error rules are executed only when an error occurs during processing.
Uempty
The Error Input field identifies the input context for the referenced rule. When it is not specified, the
referenced rule uses the input context of the failed action.
The Error Output field identifies where the output context from the referenced rule is placed. When
it is not specified, the referenced rule uses the output context of the failed action.
Uempty
The rule directionality (request or response) does not apply to an error rule; it can run on either the
request or the response rule.
Uempty
Use the
Transform action
to build custom
error messages in
an error rule
• Transforms error
messages that
the gateway
generates into
custom error
messages
It is common to use a style sheet to create a custom error message to return to the client.
Uempty
The example log message that is generated in the slide has a log priority of error with the class
name mpgw. The log message that is generated contains the contents of the variable errtest.
The style sheet must create the contents of errtest.
The variable that is listed in the slide can also be viewed when you are running the multi-step probe
by clicking the Service Variables tab.
A log target can gather messages that use the dp:type attribute in the <xsl:message> tag,
enabling user-defined debug messages to be captured in logs.
Uempty
This example style sheet includes some common DataPower extension functions that can be used
when building a custom error message.
The service variables that are shown are also visible in the multi-step probe.
This style sheet is only a template of an actual error style sheet. A custom error style sheet can
customize the amount of detail to include in an error message.
Uempty
Uempty
Error Policy
• The Error Policy is a fallback error handler that is used when an
unhandled error occurs in a multi-protocol gateway transaction
• The Error Policy is available as a configurable property in multi-protocol
gateway (MPGW) service
ƒ Matching rules must be defined
ƒ Error Actions must be defined to handle errors in an HTTP or HTTPS request
flow
• The Error Policy allows for:
ƒ Customization of the default error response for non-SOAP or non-XML web
applications while the MPGW used to return SOAP fault
ƒ Customization of a default error response (instead of the traditional default
SOAP fault) for replying to your non-SOAP or non-XML client applications in
a simpler manner
ƒ Fallback for an error that is not successfully handled with any precedent error
handlers (such as error rule)
The principal function of the MPGW error policy is being a fallback error handler. If an error occurs
in the MPGW transaction that any precedent error handler (On Error action, error rule) did not
successfully handle, the new Error Policy is executed to generate the final error response.
The reasons for the new feature are described as follows.
Before Release 6.0.0, the MPGW service tended to return a SOAP fault to the client as the default
error response. This setting is not an optimal default setting for non-SOAP or non-XML clients; for
example, for the MPGW as a web proxy, the client might expect an HTML page to highlight the
error cause and suggestions.
Regarding existing error handlers, today the primary error handler to customize the error response
is the error rule that is either designated by an On Error action or fired by a matching procedure.
Also, you can manipulate the generation of an error response by using service variables (for
example, var://service/error-message, subcode).
However, even the error rule might not complete, and when it fails, the client still receives the
default SOAP fault message. You can use the new Error Policy when no error handler (such as
error rule) exists or the precedent error handler fails. By using the new Error Policy, you can have a
fallback to generate the error response (such as an HTML, a plaintext, an XML, or whatever) to the
client based on the request’s content type.
Uempty
You can benefit from the new Error Policy in various situations:
• You are running a web business on the MPGW service and want to have a customizable default
error response that is based on the runtime request’s content type (rather than the SOAP fault
message).
• You are developing a new MPGW service and do not need a complex error handling logic
(including many actions that are involved in the multistep error rule) to generate the error
response. For example, in a circumstance when you need to respond with an HTTP URL
redirection without a complex error rule configuration, then the Error Policy is a convenient and
effective way for this purpose.
• You implemented error handling logic in an error rule, and if the error rule fails, you are now
able to use the new Error Policy as a fallback error handler.
Uempty
ƒ In a Multi-Protocol Gateway
service configuration, specify the
property Error Policy with the
Multi-Protocol Gateway Error
Policy
The next three slides explain the following concepts: the required configurations to enable the new
Error Policy, the preconditions when the Error Policy is started, and the expected output when the
Error Policy is used for generating the error response.
For configurations, you can see the new property “Error Policy” under the Advanced tab in a
Multi-Protocol Gateway configuration. To enable the Error Policy for generating the response for an
MPGW error, you need to specify it with an existing “Multi-Protocol Gateway Error Policy” object.
Uempty
Multi-protocol
gateway
Request flow
MyService
SOAP,
Front side
Back side
XML, Processing policy
handlers
handlers
protocol
protocol
Binary, (request, response,
HTTP, JSON, and and error rule)
HTTPS more
clients Back end
The required conditions for the new Error Policy to be run include:
• The MPGW transaction is initiated from an HTTP or HTTPS request that represents a web
gateway flow. The back-end system can be any type.
• An error occurs in one of the following areas:
▪ The front side (for example, header parsing failure in the front side)
▪ Request processing (for example, the Encrypt action in a request rule fails)
▪ Back-end server (for example, failure to establish a connection to the back-end server)
▪ Response processing (for example, the Filter action rejects the invalid response)
• The error rule, which might be designated by an On-Error action or a Policy Maps matching
procedure, is used for handling the error. But neither of them is completed successfully. Or, no
error rule exists to handle the original error.
When the previous conditions are true, any precedent error handler does not handle the error.
Under these conditions, the situation of “unhandled error” occurs, which requires a fallback.
For example, you have the error rule that the On-Error action invokes, and it fails. Then, the
processing rule matching selects the error rule to process, and the matched error rule also fails.
Then, it is time to start the Error Policy.
Uempty
Note: If no matching rule is satisfied or the Error Action fails during its
execution. For example, if a connection to the proxy URL cannot be
established, then the default SOAP fault is returned to the client.
In the following situations, the Error Policy is not used for generating the response:
• You actively create the transaction failure by using the dp:send-error extension function with
the specified response message.
• You enable the Padding Oracle Protection setting under the XML Threat Protection tab so
that the response message is obscured.
Uempty
An MPGW error policy contains an ordered list of Matching Rules with related Error actions. You
can define at which particular condition (the Matching Rule evaluates) to run which Error action for
generating the response.
Like the Processing Policy’s definition, the Policy Maps evaluate multiple Matching Rules in order.
Uempty
• Multi-protocol gateway
provides four modes:
Error Rule builds response
Proxy (Remote) retrieves
response from a URL
Redirect sends a “307
Redirect” and URL
Static (Local) retrieves
response from
local:/store: directory
• Decide which mode to use
and configure Response Code,
Reason Phrase, and Header
Injection to override the
current values to be returned
to the client
The Multi-Protocol Gateway Error Action provides four modes to produce the response message:
• The Error Rule mode indicates that the gateway runs the specified processing rule and returns
its output to the client. You can choose the processing rule only with rule direction “Error.” In this
“error rule”, you can define how the error is handled (such as logging and rewriting the service
variables). You can also add, modify, or delete a response header by using the header-related
extension functions in the processing rule.
• The Proxy (Remote) mode means that the gateway fetches the data from the specified remote
HTTP or HTTPS URL and returns the response message to the client.
• The Redirect mode indicates that the gateway sends an HTTP redirection to the client with
“307 Redirect,” and the “Location” header value is as specified in the remote HTTP or HTTPS
URL.
• The Static (Local) mode is the default mode. It indicates that the gateway fetches the data from
the local error page underneath the local:/// and store:/// directories and returns the
response message to the client.
For Proxy and Static modes, you can define properties such as Response Code, Reason
Phrase, and Header Injection to tweak the response. The values override the current values (or
default values) to be returned to the client.
Uempty
“Content-Type” considerations:
• Static mode: You need to statically set the value by using header injection
• Proxy mode: It copies the value that is returned from the Remote URL and you
can use header injection to override
• Rule mode: You can manipulate the Content-Type header and use header
injection to override
For the HTTP response code and phrase, the default value is “500 Internal Error.” Except for the
Redirect mode, which is with fixed value “307 Redirect,” you can use the configuration, including
either the response code, the reason phrase, or both, to override the default values.
For response headers, you can use the header injection configuration to override the response
headers. And in the Rule mode, you can manipulate the response headers by using the extension
functions.
“Content-Type” is the most important header to consider. For Static mode, you are usually required
to set the value by using the header injection. For proxy mode, the gateway copies the value that is
returned from the Remote URL, and you can use header injection to override the value. For Rule
mode, you can either set the Content-Type on the rule, use the header injection, or do both to
override at the end.
Uempty
If you are configuring the HTTPS URL for Proxy mode, you need to use the user agent to set up the
required SSL proxy profile. The user agent can also be used for setting the timeout value for the
connection to the remote URL.
The feature is available only for MPGW with HTTP or HTTPS traffic and has no effect on other
services and flows.
Before release 6.0.0, the web application firewall had a concept similar to the object “Error Policy.”
To eliminate the naming confusion against the new “Multi-Protocol Gateway Error Policy,” the
previously known “Error Policy” was renamed to “Web Application Firewall Error Policy.” The
change took effect only in the displayed name; the config file (.cfg) and exported material in the
6.0.0 firmware and pre-6.0.0 releases are fully compatible.
Uempty
Unit summary
• Configure an error policy
• Configure an On Error action in a service policy
• Configure an error rule in a service policy
• Describe how On Error actions, error rules, and error policies are
selected during error handling
Uempty
Review questions
1. True or False: When a rule with an On Error action
encounters an error, the rule is always terminated.
2.
3.
Uempty
Review answers
1. True or False: When a rule with an On Error action
encounters an error, the rule is always terminated.
The answer is False. Continuation of the current rule depends on the
setting of Error Mode.
2. True or False: An error rule is unidirectional.
The answer is False. An error rule is active for both request and
response rules.
3. A service policy has an error rule and a request rule with an On Error
action. How does the firmware select the error-handling option?
A. Follows the setting of the On Error radio button on the error setup page.
B. The error rule gets control first if it is higher in the configured rules list in the
policy editor.
C. If the On Error action is already encountered, error processing goes to the
On Error action. If the On Error action is not encountered, the error rule
gets control.
D. None of items A, B, and C.
E. All of items A, B, and C.
The answer is C.
Uempty
Exercise 4
Uempty
Exercise objectives
After completing this exercise, you should be able to:
• Configure an error policy at the MPGW service level
• Configure a service policy with an On Error action
• Configure a service policy with an Error rule
Uempty
Overview
This unit describes how to use the cryptographic tools to create keys and certificates, and how to
secure connections by using SSL to and from the DataPower gateway. You also learn how to set
the DataPower objects that are used to validate certificates and configure certificate monitoring to
ensure that only valid certificates exist on the gateway.
References
IBM DataPower Gateway Knowledge Center:
http://www.ibm.com/support/knowledgecenter/SS9H2Y_7.5.0
Uempty
Unit objectives
• Explain how to use the DataPower tools to generate cryptographic
keys
• Create a crypto identification credential object that contains a
matching public and private key
• Create a crypto validation credential to validate certificates
• Set up certificate monitoring to ensure that certificates are up-to-date
• Configure an SSL server profile that accepts an SSL connection
request from a client
• Configure an SSL client profile that initiates an SSL connection from a
DataPower service
• Configure an SSL SNI server profile that supports SNI requests
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Uempty
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Secure Socket Layer (SSL) is a cryptographic protocol to secure communications over the network.
Transport Layer Security (TLS) is it successor. The term “SSL” typically refers to both protocols.
Uempty
Upload
Generate
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Uempty
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
The files that are submitted to a certificate authority, including the CSR, are created by default.
The fields from Country Name (C) down to Common Name (CN) are part of the distinguished
name.
The file name for the private key, CSR, and self-signed certificate that is generated uses the File
Name field for its prefix. If the File Name field is left blank, the system uses the value from the
Object Name field.
Uempty
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Password Alias specifies the existing password alias map that defines the alias that maps to the
cleartext password. The password in the map encrypts the files, and the alias in the map decrypts
the password to access the file.
Select on for Generate Self-Signed Certificate to generate a self-signed certificate into the
temporary: directory and the store: directory.
If Export Self-Signed Certificate or Export Private Key is off, then the generated key or
certificate is placed in the cert: directory only, where it cannot be edited.
When you click Generate Key, you generate a private key file and object, and a certificate file and
object.
Uempty
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
The temporary: directory is cleared when the gateway shuts down or restarts.
Uempty
Crypto
identification credentials
Although the shared secret key is not used in SSL, it is used in OAuth and OpenID Connect, and
infrequently in encryption and signatures.
Uempty
Shared secret
key
File containing
symmetric key
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Uempty
Crypto key
File containing
private key
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
A crypto key represents the private key that is used for asymmetric key encryption.
The key file can be uploaded from this page.
The password alias points to an encrypted cleartext password that is required to access the file that
contains the private key.
Uempty
Crypto certificate
Define a certificate object that points to the certificate file
• Objects > Crypto Configuration > Crypto Certificate
• Can specify password alias
ƒ Forces users of certificate file to supply a password
Crypto
certificate
File containing
certificate
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Setting a Password Alias option means that the password that is needed to access the key is
stored in a secure password map.
If Ignore Expiration Dates is off, the certificate object is placed in a “down” state if it is out of its
validity date range. If it is on, the certificate object is in an “up” state, but it might be rejected during
processing because of an invalid date.
Uempty
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
In the Crypto Key field, select the crypto key object from the list. You can use the New or Edit
icons to create or edit a crypto key object.
In the Certificate field, select a certificate object from the list. You can use the New or Edit icons to
create or edit a certificate object.
Specify the intermediate certificate authority (CA) certificates, if available, by clicking Add. The
process establishes a trust chain that consists of one or more CA certificates.
You can also create a crypto identification credential by clicking Keys and Certs Management >
Identification Credentials from the Control Panel.
Uempty
Crypto
Crypto
Crypto
certificate
certificate
certificate
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
The certificate validation mode specifies how to validate the presented certificate.
Two options are available:
• Match exact certificates or immediate issuer: The certificate that is presented or the
immediate issuer of the certificate must be available on the gateway.
• Full certificate chain checking (PKIX): The certificate that is presented and any intermediate
certificates that are chained back to the root certificate must be trusted.
• Match exact certificate: The validation credentials contain the exact peer certificate to match.
The Use CRLs field is used to check whether certificates in the trust chain should be monitored for
revocation.
Uempty
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Uempty
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Uempty
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Uempty
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Polling interval specifies the frequency at which certificate expiration dates are checked.
Reminder time is the number of days before the certificate expiration that event is written to the log
file.
Uempty
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Uempty
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
A remote Hardware Security Module (HSM) resides on a machine outside of the DataPower
instance. This capability is useful for virtual gateways.
The remote HSM can store and deliver keys only. It is not possible to generate keys through the
DataPower GUI currently.
Uempty
External
resources
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
SSL is a point-to-point protocol. A new SSL connection is required for each point. For example,
three separate SSL connections are required for connections from remote client to gateway,
gateway to endpoint application server, and gateway to external resource.
Uempty
SSL profiles
The SSL profiles define the SSL properties of the different ends of the
SSL session
• Both SSL profiles specify:
ƒ Supported SSL/TLS protocols
ƒ Supported RSA and ECDSA cipher suites
ƒ SSL session caching
• Unique to SSL client profile:
ƒ Use SNI
ƒ Validation credential to validate the SSL server certificate
ƒ Identification credential to support client authentication
• Unique to SSL server profile
ƒ Identification credential to send server certificate
ƒ Validation credential to validate client certificate if mutual authentication
specified
ƒ Does not support SNI
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
You can control whether to enable Server Name Indication (SNI). When enabled, the client sends
an SNI extension in the ClientHello message to the server with the DNS name that the client
attempts to connect to. By default, SNI is enabled.
The SSL server profile object does not support SNI. For SNI server support, you must use the SSL
SNI server profile object.
Uempty
1 : 0 or 1 1 : 0 or 1
(required for server)
Crypto Crypto
validation credentials identification credentials
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
This graphic shows the relationships of the various objects and files that are involved in SSL and
other crypto work on the gateway. It also shows the multiplicity of the relationship. For example, an
SSL Server profile object must have one Crypto identification credentials object associated with it.
An SSL Client profile can omit this association or not.
The crypto key and crypto certificate are also used in encryption and digital signatures.
Uempty
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
As of version 7.5, DataPower uses new objects to implement SSL and TLS connections. The SSL
Server profile implements the server side of such a connection.
Uempty
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
The server can request authentication credentials from the client; this situation is known as “mutual
authentication.” The server then validates the certificate that is presented by the client by using a
validation credential object.
Uempty
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Figure 7-24. DataPower as the SSL client (from gateway to back-end server) (1 of 2)
An SSL Client can optionally send the SNI ‘clientHello’ TLS extension value to request connection
to a particular hostname. If a Custom SNI hostname is given, this value is used instead of the
hostname that was given in the target URL.
Uempty
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Figure 7-25. DataPower as the SSL client (from gateway to back-end server (2 of 2)
The client uses the Identification credentials to respond to requests for mutual authentication by the
SSL server.
Uempty
External
resource
SSL-encrypted server
request
Client profile
SSL-encrypted
reply
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
The gateway uses the SSL Client profile to connect to any external server that requires SSL, such
as an authentication server or database server.
Uempty
User agent
Request policy
External
resources
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
A user agent uses one or more policies to connect to an external server or back side service.
Uempty
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
The XML Manager in use by the service that requires a connection to a remote host using SSL
identifies a User Agent object to use to manage those connections.
Uempty
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
The user agent employs a URL map to select the SSL Client profile to use.
Uempty
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Uempty
EduServer.edu
clientHello: EduServer.edu
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Note that when no Default SSL server profile is configured, the SSL SNI server rejects connection
requests from clients that do not send an SNI ‘clientHello’ hostname in the connection request.
For the bottom client, if no default server profile is specified in the SSL SNI server profile, the
request fails. In the example, the default server profile points to the Mktplace.com site, so the client
is sent the certificate for that site.
Uempty
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
The SSL Host Name Mapping object examines the hostname sent by the client and attempts to
match it to an SSL server profile. At least one entry in this map is required.
Uempty
Reverse Forward
Endpoint
Client
application
servers
SSL server SSL client
crypto profile crypto profile
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
An SSL proxy profile uses a Crypto profile to implement the required security settings for SSL/TLS
connections. A single SSL proxy profile can act as a server, a client or both, depending on the
configuration of the Crypto profiles that are used.
The SSL proxy profile is deprecated. Support is offered for existing configurations.
Uempty
External
resources
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Figure 7-34. A crypto profile (deprecated) specifies details of the SSL connection
Uempty
Crypto profile
Connection
specifications
Crypto
identification credentials
Crypto
validation credentials
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
The Ciphers field specifies what cipher specifications are supported at the DataPower end of the
connection. It is composed of one or more cipher suites.
The default cipher string is “HIGH:MEDIUM:!aNULL:!eNULL:@STRENGTH”. The higher preferences are
listed first. The default specifies: AES or 3DES (HIGH), 128-bit RC2 or RC4 (MEDIUM), no
non-authentication algorithms (anonymous DH) (!aNULL), no non-encryption algorithms (!eNULL),
sort list by encryption algorithm key length (@STRENGTH).
Uempty
1 : 1 or 2
Crypto profile
1 : 0 or 1 1 : 0 or 1
Crypto Crypto
validation credentials identification credentials
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Numerous objects are involved in configuring legacy SSL support. This graphic provides an
opportunity to review them.
Uempty
Unit summary
• Explain how to use the DataPower tools to generate cryptographic
keys
• Create a crypto identification credential object that contains a
matching public and private key
• Create a crypto validation credential to validate certificates
• Set up certificate monitoring to ensure that certificates are up-to-date
• Configure an SSL server profile that accepts an SSL connection
request from a client
• Configure an SSL client profile that initiates an SSL connection from a
DataPower service
• Configure an SSL SNI server profile that supports SNI requests
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Uempty
Review questions (1 of 2)
1. True or False: The user agent primarily handles the details
for network-related outbound calls from a service policy.
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
2.
Uempty
Review questions (2 of 2)
3. True or False: Keys that are generated onboard cannot be
exported.
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
4.
5.
Uempty
Review answers (1 of 2)
1. True or False: The user agent primarily handles the details
for network-related outbound calls from a service policy.
The answer is True.
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Uempty
Review answers (2 of 2)
3. True or False: Keys that are generated onboard cannot be
exported.
The answer is False. Keys can be exported to the
temporary: directory if the Export Private Key is
selected when generating a key on the gateway.
Uempty
Exercise 5
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Uempty
Exercise objectives
After completing this exercise, you should be able to:
• Generate crypto keys by using the DataPower cryptographic
tools
• Create a crypto identification credential by using a crypto key
object and a crypto certificate object
• Validate certificates by using a validation credential object
• Create an SSL Server profile that accepts an SSL connection
request from a client
• Create an SSL Client profile that initiates an SSL connection
from a DataPower service
• Create an SSL SNI Server profile that supports the use of
more than one hostname
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Uempty
Exercise overview (1 of 2)
• Create the files and objects that are needed to configure the SSL
connections for the services SSL SNI Server profile
StudentSNIServer
SSL Client profile
StudentClient
SSL SNI Hostname Map
StudentSNIMap
Identification credential
StudentIdCred
Crypto certificate
StudentKeyObj
Crypto key
StudentKeyObj
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Uempty
Exercise overview (2 of 2)
1. Add an HTTPS front side handler that acts as the SSL server
2. Use the HTTPS protocol in the back-end URL to act as the SSL client
3. Test with cURL
cURL
SoapUI
HTTP
2
SSL client
<mpgw_booking_client> BookingServiceSSLProxy
HTTP FSH
HTTPS
HTTPS <mpgw_booking_ssl_port>
HTTPS FSH (SSL server)
1
BookingServiceProxy
<mpgw_booking_port>
HTTP FSH
HTTP
FLYservices
DataPower cryptographic tools and SSL setup © Copyright IBM Corporation 2016
Uempty
Overview
Service level management is the monitoring and management of message traffic that concerns
quality of service (QoS) indicators such as throughput, response time, and availability. Within
DataPower, service level monitoring (SLM) is a tool that helps support those activities. This unit
defines the DataPower version of SLM and describes various ways to configure SLM.
References
IBM DataPower Gateway Appliances Version 7.5 Knowledge Center:
www.ibm.com/support/knowledgecenter/SS9H2Y_7.5.0
Uempty
Unit objectives
• Identify the SLM functions that the DataPower gateway provides
• Create an SLM policy object by using the Blueprint Console
• Create an SLM Statement
• Create an SLM Resource Class object
Uempty
Multi-protocol gateway
operation1
Monitored
Monitor
traffic
operation2
operation3
criteria, admin action
operation4
Service level monitoring (SLM) within DataPower is a subset of service level management at the
enterprise level. Service level management means monitoring and managing the availability and
quality of the relevant services that are being provided. In this context, it generally implies the
availability and performance of the associated web services.
A service level agreement (SLA) might exist between the client and the service provider.
DataPower SLM is a tool to help deliver on the agreement. SLM is available for web service proxies
and multi-protocol gateways.
In the graphic, the SLM is purposely monitoring operations 1, 2, and 3, but ignoring operation 4.
Uempty
SLM policy
SLM statement
SLM statement
SLM statement
SLMs differ from message monitors (an older approach to monitoring in DataPower) in that they are
not directly associated with a service. Rather, the SLM is implemented by using an SLM policy,
which, in turn, is associated with the service.
Statements that measure execution durations are configured for messages that pass through the
gateway during a configured measurement window and that also match a set of selection criteria.
For example, an SLM statement might throttle traffic that is arriving faster than 200 messages per
second during the normal business hours, and another SLM statement might allow higher
transaction rates after hours.
A third SLM statement might generate a log message for all messages that arrive between 9 PM
and 6 AM that originate from an IP address 201.55.*.* and request the use of a resource Y.
These three SLM statements are specified as part of an SLM policy.
Uempty
The first two approaches have been supported for many years.
WS-MediationPolicy is an IBM proposed web service standard for quality of service (QoS)
specifications. WS-MediationPolicy statements can be a policy attachment for a WSDL, and they
can be stored in WebSphere Service Registry and Repository. WS-MediationPolicy statements
auto-generate SLM-related processing rules. These rules execute before the developer-specified
rules within the web service proxy. WS-MediationPolicy is not explained in any detail in this course.
DataPower V7.5.0 supports WS-MediationPolicy V1.6, 1.7, 1.8, and 1.9. For more information
about WS-MediationPolicy V1.9, see:
ftp://public.dhe.ibm.com/software/solutions/soa/pdfs/WSMediationPolicy1.9-20140530.pdf
Uempty
The SLM action screen capture is from a web service proxy policy editor. The policy editor layout is
visually the same for MPGWs and web service proxies, except for the location of the SLM action.
The SLM action in the policy editor is different than the SLM action object that is explained in a later
slide.
Uempty
1 2 3 4 5
Credential Resource
Schedule Action Threshold
class class
A threshold and an SLM statement are not separate objects. They are specifications. A threshold is
a specification within an SLM statement. An SLM statement is a specification within an SLM policy
object.
Depending on what criteria are needed for a specific SLM statement, only certain SLM objects are
needed. For example, if you are monitoring only the target resource, then the SLM credential and
SLM schedule objects are not needed.
Uempty
An SLM credential class is used to select messages for inclusion in the SLM policy statement. A
credential class obtains a credential (that is, a user identity) from a message.
The Credential Type determines the method that is used to obtain the identity. Examples are
Client IP, Mapped Credential, Extracted Identity, and IP from Header. It can also be a custom
style sheet. If the service is using the IBM MQ transport protocol, you can also use the name of the
IBM MQ application that is contained in the message. If Mapped Credential or Extracted Identity
is used, a previous AAA policy must exist to provide these values.
The Match Type setting determines the method that is used to match the credential that is
obtained. For a Match Type of Per Extracted Value, all configured SLM policies apply to each
extracted value. A list of all unique values of the specified type are extracted and reported. For a
Type of Exact, an SLM policy applies only to values that match. Another field appears that lists the
accepted values. For the Type of Regular Expression, an SLM policy applies only to values that
match. Instead of a list of specific values to match, a field appears that lists PCRE-style
expressions to determine whether a presented value matches.
The Credential Value setting determines specific values when it is an exact match or regular
expression type. If a match is made, the message is included in the set of messages that the SLM
policy affects.
Uempty
• A resource class
consists of:
ƒ Resource Type: Specifies a method that is used to identify the resource
ƒ Match Type: Specifies how a successful match is determined
í Exact, Per Extracted Value, Regular Expression
ƒ Other fields are
displayed dependent
on the credential type
and match type
selections
An SLM resource class is used to select messages for inclusion in the SLM policy statement. A
resource class obtains a resource identifier from a message.
The Resource Type determines the method that is used to obtain the resource:
• Concurrent Connections
• Concurrent Transactions
• Custom Style Sheet
• Destination URL
• Error Code
• Front URL
• IBM MQ Reply Queue
• IBM MQ Request Queue
• Mapped Resource
• Requests Only
• Responses Only
Uempty
• SOAP Faults
• UDDI Subscription (deprecated)
• WSDL
• WSDL Operation
• WSDL Port
• WSDL Service
• WSRR Saved Search Subscription
• WSRR Subscription
• XPath Expression
For more information, see the IBM Knowledge Center. If Mapped Resource is used, a previous
AAA policy must exist to provide these values.
The Match Type setting determines the method that is used to match the resource that is obtained,
which is the same as for the credential class.
If a match is made, the message is included in the set of messages that the SLM policy affects.
Uempty
• Schedule elements
ƒ Week Days
ƒ Start Time
ƒ Duration
ƒ Start Date
ƒ Stop Date
ƒ Time Zone
An SLM schedule object restricts the hours and days of operation of an SLM statement. Schedules
allow the application of different policies during the different clock hours of a 24-hour day. If no
schedule is specified, the policy statement is enforced regardless of the time or day.
The Name field is not visible in the screen capture so that the other fields can be visible.
Use the check boxes to specify the days of the week that are included in the SLM schedule.
The Start Time and Duration apply to all selected days.
The Start Date and Stop Date indicate which dates this schedule is in effect. The stop date is
non-inclusive.
The Time Zone offers the choice of all the worldwide time zones, or “appliance local time”. This
setting indicates what time zone the start time is applied to.
Uempty
An SLM action defines a behavior that is triggered when a threshold value is attained. It specifies
the administrative operations or sanctions that are taken when the configured threshold is
exceeded.
Default SLM Action objects:
• Log only: After the action is triggered, it writes a log entry and continues to process
subsequent transactions.
• Reject: After the action is triggered, it writes a log entry and rejects traffic until the monitored
entity is within conformance levels.
• Shape: After the action is triggered, it writes a log entry. The next 2500 transactions are queued
for later transmission when the monitored entity is within conformance levels. After 2500
transactions are queued, further transactions are rejected.
Do not confuse the SLM action object that is used within an SLM statement with the SLM
processing action that is used in a processing rule to enable SLM monitoring.
Uempty
SLM statement (1 of 2)
• An SLM statement can consist of:
ƒ Credential Class: Defines a possible
client group subject to this SLM
statement
ƒ Resource Class: Identifies a possible
resource group subject to this SLM
statement
ƒ Schedule: Time frame during which
this SLM statement is enforced
ƒ SLM Action: Administrative action
(sanction) to take if threshold violated
(required)
• SLM statements exist only within the
SLM policy object
ƒ Listed in the Statements section of
an SLM policy object
An SLM statement establishes criteria for selecting messages, sets a measurement interval, sets
thresholds, and determines the action to take when the threshold is exceeded for the selected
messages.
Messages are selected based on a credential class, a resource class, or both. If neither is
configured, all messages are selected.
The Identifier field gives this SLM statement a unique name within the SLM policy object that it is a
part of. It also is displayed in any log entries that are generated because this statement is in effect.
SLM statements are not objects that can be created, reviewed, or edited as stand-alone objects.
They are available only within the SLM policy object.
Uempty
SLM statement (2 of 2)
Thresholds
• Usage level that triggers an SLM action
Threshold fields
• Threshold Interval Length
• Threshold Interval Type
ƒ Fixed: A discrete block of time, for
example,
8 AM to 9 AM
ƒ Moving: A moving window, for example,
the last 60 minutes
ƒ Concurrent: Use concurrent number of
transactions
• Threshold Algorithm: Greater than, less than, token bucket, high-low threshold
• Threshold Type: Count all, count errors, back-end/internal/total latency,
request/response/total message payload
• Threshold Level: Value that triggers the threshold
Service level monitoring © Copyright IBM Corporation 2016
The threshold algorithm specifies how the threshold is evaluated within the current interval. Greater
Than and Less Than are simple relational operations. Token-bucket is based on a rate and allows
bursting. High and low thresholds trigger at the high threshold and continue to trigger until the low
threshold is achieved.
The high-low-thresholds algorithm allows the user to specify when to start the sanction and when to
stop in cases where those two values are not the same. The threshold level is the “high” starting
point. The High Low Release Level (not shown) configures the “low” stopping point.
Threshold Type specifies how the Threshold Level is applied to the count.
Reporting Aggregation Interval is the base aggregation level in minutes for the reporting
statistics. This property is independent of the thresholding interval.
Maximum Records Across Intervals is the total number of records for a reporting interval. A
single reporting aggregation interval can contain multiple records, one record per resource or
credential for example. With this property, you can define a maximum memory-consumption
threshold. The default is 5000.
Auto Generated by GUI is a read-only property that, when on, indicates that the Blueprint Console
or WebGUI created the statement as part of a default SLM configuration (SLM Policy tab in a web
service proxy).
Uempty
Maximum Credentials-Resource Combinations is the maximum number of records for the
combination of credentials and resources. This property limits the maximum number of
combinations and allows the setting of a maximum memory-consumption threshold. The default is
5000.
Token-bucket example: Within an interval, the number of handled requests that is less than the
threshold level are added to the bucket. The bucket can accumulate up to the burst limit. Hence,
the maximum number of requests that can be allowed in an interval is the burst limit. For example:
Consider a threshold level of 5, and a burst limit of 10. In an interval, only 3 requests are processed.
For the next interval, 2 tokens (5 threshold - 3 handled = 2 remaining) are added to the 5 tokens
(threshold level) that are supplied every at interval, for a total of 7 tokens in the bucket. For that
specific interval, a maximum of 7 requests can be handled. Assume that in the second interval, only
1 request is received. For the third interval, 6 tokens (7 - 1 = 6) are added to the 5 tokens in the new
interval. The total number of tokens would now be 11, but because the burst limit is 10, only a
maximum of 10 tokens are ever allowed in the bucket.
Uempty
The Evaluation Method field allows control over execution of the statements within the policy.
• Execute all statements: Causes the policy to execute all policy statements regardless of what
action those statements take
• Terminate at first action: Causes the policy to stop executing any statement after the first
statement that takes an action because a threshold is met
• Terminate at first reject (the default): Causes the policy to stop executing any statement after
the first statement that rejects a message because a threshold is met
An SLM policy can be enforced across a group of gateways that handle load-balanced traffic that is
destined for the same resources by using a Peer Group.
Peer groups establish a data sharing protocol among gateways so that each gateway includes the
traffic that passed through the other peers when calculating whether a threshold is reached. SLM
monitors are the only monitor types that do so.
Uempty
Figure 8-14. Web service proxy service and the SLM Policy tab
For the auto-generated SLM statements, you specify the measurement interval, the threshold
value, and the SLM action to take if the threshold is exceeded.
The Graph button is used to present a graphical representation of the traffic and any SLM
sanctions. This capability is for development and testing, not for production monitoring.
The screen capture shows a port-operation-level policy for the BookTravel operation of 5
transactions per 30 seconds, that if exceeded results in a throttle action.
Uempty
Unit summary
• Identify the SLM functions that the DataPower gateway provides
• Create an SLM policy object by using the Blueprint Console
• Create an SLM Statement
• Create an SLM Resource Class object
Uempty
Review questions
1. What are the five constructs that make up the SLM
Statement?
A. Credential class, resource class, schedule, threshold, and
action
B. Service policy, processing rules, actions, rules, and filter
C. Client class, resource class, schedule, threshold, and
sanction
2. Match the function to the Reject and Shape action types:
Description Definition
2.
1)
2)
3.
Uempty
Review answers
1. What are the five constructs that make up the SLM
Statement?
A. Credential class, resource class, schedule, threshold, and
action
B. Service policy, processing rules, actions, rules, and filter
C. Client class, resource class, schedule, threshold, and
sanction
The answer is A.
Uempty
Exercise 6
Uempty
Exercise objectives
After completing this exercise, you should be able to:
• Specify service level monitoring criteria for a multi-protocol
gateway
• Inspect and edit an SLM policy object
• Create an SLM Resource Class object
• Create a custom log target for SLM events
Uempty
Exercise overview
• Test the existing BookingServiceProxy by using the load test facility in
SoapUI
• Create a log target for SLM log messages
• Add SLM criteria to the multi-protocol gateway
• Test the SLM action by using the SoapUI load test
The SoapUI load test sends a message a specific number of times within a specific interval.
Uempty
Overview
This unit describes patterns as used by DataPower. It explains how a pattern is initially created and
made available for use, and how a new service can be created from an existing pattern.
References
IBM DataPower Gateway Appliances Version 7.5 Knowledge Center:
www.ibm.com/support/knowledgecenter/SS9H2Y_7.5.0
Uempty
Unit objectives
• Explain what a DataPower pattern is, and describe its purpose
• Describe how a pattern is created
• Generate a new service from a pattern
Uempty
What is a pattern?
• A pattern is an importable and exportable DataPower object that is a
template of an existing service configuration (the “source service”)
• It is used to generate new services that are based on the source
service, but differ by a limited set of variables or specifications
• The pattern presents only the limited set of variables and specifications
• The new service is generated as a set of new DataPower objects
• The generated service can be further modified as needed
• The generated service and the generating pattern have no backward or
forward connection between them
• A pattern creator creates a pattern; a pattern deployer generates a
new service from a pattern
• Patterns can be further edited, cloned, and deleted
• Several sample patterns are supplied with the firmware
Uempty
Back-end URL
box, the pattern creator
Handler
identifies the “source service” Service policy
Rules
ƒ An existing service that is the Actions
model for modified versions
• Up to three services can be
selected to be “chained”
together in the same pattern
• As the source service is
scanned, the “points of
variability” (POVs) are listed,
and the creator selects which
Pattern
ones are visible to the deployer
Metadata
ƒ A POV is some configuration
variable that the pattern
framework allows to be exposed
POV
POV
POV
POV
POV
POV
Patterns for service configuration © Copyright IBM Corporation 2016
There is a list of the configuration variables in a service and its related objects that a pattern can
expose. The pattern creation dialog box displays them.
The pattern creator decides to expose the variable in the pattern, or locks the value so the deployer
cannot change it.
Service chaining within a pattern is available in firmware V7.1 and later.
Uempty
Deploying a pattern
Pattern
Metadata
• The pattern deployer chooses
the appropriate pattern, and
POV
POV
POV
POV
POV
POV
selects “Deploy”
Back-end URL
set of new DataPower objects
Handler
Service policy
Rules
Actions
The deployer can use only the POVs that the pattern creator exposed in the pattern. The
non-exposed POVs are hidden from the deployer.
Uempty
Uempty
Clone
Edit
Import Delete
Uempty
2. Click Deploy
Uempty
Uempty
Uempty
Points of variability
• The pattern creation wizard exposes only a limited subset of the
configuration options for a multi-protocol gateway or a web service
proxy:
ƒ Front side handler specifics
ƒ WebSphere Service Registry and Repository subscription, WebSphere
Service Registry and Repository saved search subscription
ƒ Multi-protocol gateway back-end URL
ƒ Authentication with LTPA token, SSL certificate
ƒ Authorization and authentication with LDAP
ƒ Authorization and authentication with IBM Security Access Manager
ƒ Identity extraction from OAuth
• The pattern creator decides which POVs in the source service are
exposed to a pattern deployer
IBM Security Access Manager was previously called IBM Tivoli Access Manager.
Uempty
Unit summary
• Explain what a DataPower pattern is, and describe its purpose
• Describe how a pattern is created
• Generate a new service from a pattern
Uempty
Review questions
1. True or False: If a pattern is updated, all services that are
generated from that pattern are also updated.
2.
Uempty
Review answers
1. True or False: If a pattern is updated, all services that are
generated from that pattern are also updated.
The answer is False. As soon as a service is generated from
a pattern, no further connection exists between the pattern
and the service.
Uempty
Exercise 7
Uempty
Exercise objectives
After completing this exercise, you should be able to:
• Import a pattern
• Specify the values for the points of variability in the pattern
• Deploy the pattern into a generated service
Uempty
Exercise overview
Pattern
Metadata
POV
POV
POV
POV
POV
POV
application domain
Back-end URL
Handler
Service policy
Rules
Actions
Uempty
Overview
This unit summarizes the course and provides information for future study.
Uempty
Unit objectives
• Explain how the course met its learning objectives
• Access the IBM Training website
• Identify other IBM Training courses that are related to this topic
• Locate appropriate resources for further study
Uempty
Course objectives
• Describe how DataPower gateways are configured
• Create and configure cryptographic objects
• Configure Secure Sockets Layer (SSL) to and from DataPower
gateways
• Configure a multi-protocol gateway (MPGW) to handle multiple
protocols from a single service
• Configure a service level monitoring (SLM) policy to control message
traffic
• Use logs and probes to troubleshoot services
• Use patterns to define and deploy new services
• Configure message transformation and routing by using style sheets
(XSL) and GatewayScripts
• Handle errors in service policies
Uempty
Course review (1 of 2)
• The primary way to configure DataPower services is to use the web
interface. The Blueprint Console is replacing the traditional WebGUI.
• The capabilities of the DataPower gateway are available through the
creation of services. Services are configured within an application
domain on the gateway.
• A typical service is composed of a front side handler to receive
requests, a service policy to process the request and response, a back-
end URL to connect to the target server, and other configuration options
• A service policy contains one or more processing rules. Rules have a
direction. A rule is composed of one or more processing actions.
• The two main types of service are:
ƒ Multi-protocol gateway (MPGW)
ƒ Web service proxy (WS-Proxy)
• Clients can connect to the back-end service through the multi-protocol
gateway, over a number of different transport and application protocols
ƒ Protocol handlers are available for HTTP and HTTPS protocols, FTP, raw
XML messages, TIBCO EMS, and IBM MQ systems
Course summary © Copyright IBM Corporation 2016
Uempty
Course review (2 of 2)
• The primary debugging tools are the system log and the multi-step
probe. You can configure the log to report on different severity levels of
messages. When the probe is enabled, you can examine what
happened in the rule processing during a transaction.
• You can define a custom log target to capture specific messages.
• A service can proactively handle service policy errors by using error
rules and On Error actions. An MPGW can also define an error policy.
• The gateway can generate public/private key pairs.
• SSL/TLS communication is supported. The gateway can be an SSL
server or an SSL client. Numerous DataPower objects are used to
configure the SSL support.
• A service can implement service level monitoring to log, buffer, or reject
message traffic.
• DataPower Patterns streamline the creation of services
Uempty
<lab_files>/Solutions
• Remember to change
ƒ Port numbers
ƒ Back-end server (Network > Interface > DNS Settings > Static Hosts)
ƒ Front IP addresses (Network > Interface > Host Alias)
Uempty
Uempty
Uempty
Unit summary
• Explain how the course met its learning objectives
• Access the IBM Training website
• Identify other IBM Training courses that are related to this topic
• Locate appropriate resources for further study
Uempty
Course completion
You have completed this course:
Essentials of Service Development for IBM DataPower Gateway
V7.5
Any questions?
AP
B
B2B business-to-business
BPM business process management
C
CA certificate authority
CBA context-based access
CBE common base event
CBR content-based routing
CCS coded character set
CCSID coded character set ID
CGI Common Gateway Interface
cHTML Compact HTML
CLI command-line interface
CN common name
COBOL Common Business Oriented Language
CPU central processing unit
CR carriage return
CRL certificate revocation list
AP
CSR certificate signing request
CSS cascading style sheet
CSV comma-separated value
D
DAP Directory Access Protocol
DB database
DER Distinguished Encoding Rules
DES Data Encryption Standard
DH Diffie-Hellman
DHCP Dynamic Host Configuration Protocol
DIME Direct Internet Message Encapsulation
DIT directory information tree
DL/I Data Language/I
DMZ A firewall configuration for securing local area networks
DN distinguished name
DNS Dynamic Name Server
DOM Document Object Model
DOP data-oriented programming
DoS denial-of-service
DP DataPower
DPL distributed program link
DSS Digital Signature Standard
DTD document type definition
DVD digital versatile disc
E
EAR enterprise archive
ebMS ebXML Message Service
ECMA European Computer Manufacturers Association
EDI Electronic Data Interchange
EDIFACT Electronic Data Interchange for Administration, Commerce, and Transport
EDIINT Electronic Data Interchange-Internet Integration
EJB Enterprise JavaBeans
EMS Enterprise Messaging System
AP
EON Edge of Network
EP enforcement point
ESB enterprise service bus
ESR extended support release
EXCI external CICS interface
EXSLT Extensions to Extensible Stylesheet Language Transformation
F
FEPI Front End Programming Interface
FIFO first-in first-out
FIPS Federal Information Processing Standard
FIX Financial Information Exchange
FLWOR for, let, where, order by, return
FO formatting object
FSH front side handler
FTP File Transfer Protocol
FTPS FTP over SSL
G
GB gigabyte
GDB GNU Project Debugger
GNU GNU's Not UNIX
GSKit Global Security Kit
GSS Generic Security Services
GUI graphical user interface
H
HMAC hash message authentication code
HR human resources
HREF hypertext reference
HSM Hardware Security Module
HSRP Hot Standby Router Protocol
HTML Hypertext Markup Language
HTTP Hypertext Transfer Protocol
HTTPS HTTP over SSL
AP
I
ICAL IMS Call
ICAP Internet Content Adaptation Protocol
ICMP Internet Control Message Protocol
ICRX Extended Identity Context Reference
IDE integrated development environment
IDEA International Data Encryption Algorithm
IDG IBM DataPower Gateway appliance
IEEE Institute of Electrical and Electronics Engineers
IETF Internet Engineering Task Force
ILD Intelligent load distribution
IMDG in-memory data grid
IMS Information Management System
IP Internet Protocol
IPSec IP Security
ISAM IBM Security Access Manager
iSCSI Internet Small Computer Systems Interface
J
J2SE Java Platform, Standard Edition
JAXP Java API for XML Processing
JDBC Java Database Connectivity
JFAP JetStream Formats and Protocols
JKS Java Key Store
JMS Java Message Service
JNDI Java Naming and Directory Interface
JRE Java runtime environment
JSON JavaScript Object Notation
JVM Java virtual machine
K
KB kilobyte
L
LAN local area network
AP
LDAP Lightweight Directory Access Protocol
LDIF LDAP Data Interchange Format
LED light-emitting diode
LLM Low Latency Messaging
LTPA Lightweight Third Party Authentication
M
MAC message authentication code
Mb megabit
MB megabyte
MDB message-driven bean
MEIG Multi-Enterprise Integration Gateway
MFA message filter action
MIB Management Information Base
MIME Multipurpose Internet Mail Extensions
MM message monitor
MMXDoS multiple message XML denial-of-service
MP3 MPEG-1 or MPEG-2 Audio Layer III
MPGW multi-protocol gateway
MQ Message Queue
MQCSP MQ connection security parameter
MQFSH MQ front side handler
MQFTE MQ File Transfer Edition
MQMD message queuing message descriptor
MQOD message queuing object descriptor
MT message type
MTOM Message Transmission Optimization Mechanism
N
NAT network address translation
NFS Network File System
NG New Generation
NIC network interface card
npm node package manager
NSS Network Security Services
AP
NSTISSC National Security Telecommunications and Information Systems Security Committee
NTP Network Time Protocol
O
OASIS Organization for the Advancement of Structured Information Standards
OAuth Open standard for Authorization
OID Object ID
OSI Open Systems Interconnection
OTMA Open Transaction Management Access
OTP One-Time Password
P
PAM Pluggable Authentication Module
PC personal computer
PCF Processing Control File
PCRE Perl-compatible regular expressions
PDF Portable Document Format
PDP policy decision point
PED PIN Entry Device
PEM Privacy-Enhanced Mail
PEP policy enforcement point
PI processing instruction
PIN personal identification number
PKCS Public Key Cryptography Standard
PKI public key infrastructure
PKIX Public Key Infrastructure for X.509 Certificates (IETF)
PMR program maintenance request
POP Post Office Protocol
POV point of variability
POX plain old XML
Q
QoS quality of service
R
RADIUS Remote Authentication Dial-In User Service
AP
RAID Redundant Array of Independent Disks
RAM random access memory
RBM role-based management
RDBMS relational database management system
RDN relative distinguished name
RDO resource definition online
REL Rights Expression Language
REQ Request
REST Representational State Transfer
RFC Request for Comments
ROMA REST oriented management
RPC Remote Procedure Call
RPM RPM Package Manager, utility in Linux
RSA Public-key cryptosystem
RSA Rational Software Architect
RSS Really Simple Syndication
S
SAF System Authorization Facility
SAML Security Assertion Markup Language
SAS Serial Attached SCSI
SAX Simple API for XML
SCP Secure Copy Protocol
SCSI Small Computer System Interface
SDK software development kit
SFTP Secured File Transfer Protocol
SHA1 Secure Hash Algorithm, Version 1
SIBus service integration bus
SLA service level agreement
SLES SUSE Linux Enterprise Server
SLM service level management
SLM service level monitoring
SMS session management server
SMTP Simple Mail Transfer Protocol
AP
SNI Server Name Indication
SNMP Simple Network Management Protocol
SOA service-oriented architecture
SOAP Usage note: SOAP is not an acronym; it is a word in itself (formerly an acronym for
Simple Object Access Protocol)
SOMA SOAP management
SPNEGO Simple and Protected GSS-API Negotiation Mechanism
SPVC self-paced virtual classroom
SQL Structured Query Language
SSH Secure Shell
SSL Secure Sockets Layer
SSO single sign-on
STS Security Token Service
SUSE A Linux based operating system
SwA SOAP with Attachments
T
Tcl Tool Control Language (often pronounced as “tickle”)
TCO total cost of ownership
TCP Transmission Control Protocol
TCP/IP Transmission Control Protocol/Internet Protocol
TDES Triple Data Encryption Standard
TFIM Tivoli Federated Identity Manager
TIA Telecommunications Industry Association
TIBCO The Information Bus Company
TIM Tivoli Identity Manager
TLS Transport Layer Security
TTL Time to Live
U
UDDI Universal Description, Discovery, and Integration
UDP User Datagram Protocol
UNIX Uniplexed Information and Computing System
URI Uniform Resource Identifier
URL Uniform Resource Locator
AP
USB Universal Serial Bus
UTC Coordinated Universal Time
V
VIP virtual IP address
VM virtual machine
VLAN virtual local area network
VRRP Virtual Router Redundancy Protocol
W
W3C World Wide Web Consortium
WAFW web application firewall
WAMC WebSphere Appliance Management Center
WML Wireless Markup Language
WS web services
WSDL Web Services Description Language
WSDM Web Services Distributed Management
WSP web service proxy
WS-Proxy web service proxy
WSRR WebSphere Service Registry and Repository
WTX IBM WebSphere Transformation Extender
WWW World Wide Web
X
XA Extended Architecture
XACML Extensible Access Control Markup Language
XCF cross-system coupling facility
XDoS XML denial of service
XHTML Extensible Hypertext Markup Language
XMI XML Management Interface
XML Extensible Markup Language
XMLDS XML digital signature
XMLFW XML firewall
XML-PI XML processing instructions
XPath XML Path Language
AP
XSD XML Schema Definition
XSL Extensible Stylesheet Language
XSLT Extensible Stylesheet Language Transformation
Y
Z
z/OS zSeries operating system
EXempty
Training
• IBM Training website
▪ Bookmark the IBM Training website for easy access to the full listing of IBM training
curricula. The website also features training paths to help you select your next course and
available certifications.
▪ For more information, see: http://www.ibm.com/training.
• IBM Training News
▪ Review or subscribe to updates from IBM and its training partners.
▪ For more information, see: http://bit.ly/IBMTrainEN.
• IBM Certification
▪ You can demonstrate to your employer or clients your new WebSphere, CICS, or SOA
mastery through achieving IBM Professional Certification. WebSphere certifications are
available for developers, administrators, and business analysts.
▪ For more information, see: http://www.ibm.com/certify.
• Training paths
▪ Find your next course easily with IBM training paths. Training paths provide a visual
flow-chart style representation of training for many WebSphere products and roles,
including developers and administrators.
▪ For more information, see: http://www.ibm.com/services/learning/ites.wss/us/
en?pageType=page&c=a0003096.
EXempty
• Facebook:
▪ Become a fan of IBM Training on Facebook to keep in sync with the latest news and career
trends, and to post questions or comments.
▪ Find IBM Training at: facebook.com/ibmtraining.
• YouTube:
▪ Go to the IBM Training YouTube channel to learn about IBM training programs and courses.
▪ Find IBM Training at: youtube.com/IBMTraining.
Support
• WebSphere Support portal
▪ The WebSphere Support website provides access to a portfolio of support tools. From the
WebSphere Support website, you can access several downloads, including troubleshooting
utilities, product updates, drivers, and authorized program analysis reports (APARs). To
collaboratively solve issues, the support website is a clearing house of links to online
WebSphere communities and forums. The IBM support website is now customizable so you
can add and delete portlets to the information most important to the WebSphere products
you work with.
▪ For more information, see: http://www.ibm.com/software/websphere/support.
• IBM Support Assistant
▪ The IBM Support Assistant is a local serviceability workbench that makes it easier and
faster for you to resolve software product issues. It includes a desktop search component
that searches multiple IBM and non-IBM locations concurrently and returns the results in a
single window, all within IBM Support Assistant.
▪ IBM Support Assistant includes a built-in capability to submit service requests; it
automatically collects key problem information and transmits it directly to your IBM support
representative.
▪ For more information, see: http://www.ibm.com/software/support/isa.
• WebSphere Education Assistant
▪ IBM Education Assistant is a collection of multimedia modules that are designed to help you
gain a basic understanding of IBM software products and use them more effectively. The
presentations, demonstrations, and tutorials that are part of the IBM Education Assistant
are an ideal refresher for what you learned in your WebSphere Education course.
▪ For more information, see: http://www.ibm.com/software/info/education/assistant.
EXempty
▪ The IBM International Technical Support Organization develops and publishes IBM
Redbooks publications. IBM Redbooks are downloadable PDF files that describe
installation and implementation experiences, typical solution scenarios, and step-by-step
“how-to” guidelines for many WebSphere products. Often, Redbooks include sample code
and other support materials available as downloads from the site.
▪ For more information, see: http://www.ibm.com/redbooks.
• IBM documentation and libraries
▪ Information centers and product libraries provide an online interface for finding technical
information on a particular product, offering, or product solution. The information centers
and libraries include various types of documentation, including white papers, podcasts,
webcasts, release notes, evaluation guides, and other resources to help you plan, install,
configure, use, tune, monitor, troubleshoot, and maintain WebSphere products. The
WebSphere information center and library are located conveniently in the left navigation on
WebSphere product web pages.
• developerWorks
▪ IBM developerWorks is the web-based professional network and technical resource for
millions of developers, IT professionals, and students worldwide. IBM developerWorks
provides an extensive, easy-to-search technical library to help you get up to speed on the
most critical technologies that affect your profession. Among its many resources,
developerWorks includes how-to articles, tutorials, skill kits, trial code, demonstrations, and
podcasts. In addition to the WebSphere zone, developerWorks also includes content areas
for Java, SOA, web services, and XML.
▪ For more information, see: http://www.ibm.com/developerworks.
WebSphere Services
• IBM Software Services for WebSphere are a team of highly skilled consultants with broad
architectural knowledge, deep technical skills, expertise on suggested practices, and close ties
with IBM research and development labs. The WebSphere Services team offers skills transfer,
implementation, migration, architecture, and design services, plus customized workshops.
Through a worldwide network of services specialists, IBM Software Service for WebSphere
makes it easy for you to design, build, test, and deploy solutions, helping you to become an
on-demand business.
• For more information, see: http://www.ibm.com/developerworks/websphere/services.
backpg