1200 wsrr & iib - advanced integration - final

53
© 2014 IBM Corporation IBM WebSphere Service Registry and Repository & IBM Integration Bus Advanced Integration Martin Smithson WSRR Architect

description

IBM WebSphere Service Registry and Repository & IBM Integration Bus Advanced Integration Session 1200 IMPACT 2014

Transcript of 1200 wsrr & iib - advanced integration - final

Page 1: 1200   wsrr & iib - advanced integration - final

© 2014 IBM Corporation

IBM WebSphere Service

Registry and Repository &

IBM Integration Bus

Advanced Integration

Martin Smithson – WSRR Architect

Page 2: 1200   wsrr & iib - advanced integration - final

Please Note

IBM’s statements regarding its plans, directions, and intent are subject to change

or withdrawal without notice at IBM’s sole discretion.

Information regarding potential future products is intended to outline our general

product direction and it should not be relied on in making a purchasing decision.

The information mentioned regarding potential future products is not a

commitment, promise, or legal obligation to deliver any material, code or

functionality. Information about potential future products may not be incorporated

into any contract. The development, release, and timing of any future features or

functionality described for our products remains at our sole discretion.

Performance is based on measurements and projections using standard IBM

benchmarks in a controlled environment. The actual throughput or performance

that any user will experience will vary depending upon many factors, including

considerations such as the amount of multiprogramming in the user’s job stream,

the I/O configuration, the storage configuration, and the workload processed.

Therefore, no assurance can be given that an individual user will achieve results

similar to those stated here.

Page 3: 1200   wsrr & iib - advanced integration - final

Introduction

Page 4: 1200   wsrr & iib - advanced integration - final

WebSphere Service Registry and Repository

3

Page 5: 1200   wsrr & iib - advanced integration - final

4

Google-style search

Collection filters

Email owner

Service catalog view

Download service definition

Page 6: 1200   wsrr & iib - advanced integration - final

Service lifecycle management

Managing consumers

Managing versions

Page 7: 1200   wsrr & iib - advanced integration - final

Email Consumers

Managing the

dashboard

Page 8: 1200   wsrr & iib - advanced integration - final
Page 9: 1200   wsrr & iib - advanced integration - final
Page 10: 1200   wsrr & iib - advanced integration - final

Controlling Access to Backend Services

It is generally accepted that service consumers should never be

allowed to access a backend service directly

9

!

Page 11: 1200   wsrr & iib - advanced integration - final

Controlling Access to Backend Services

It is generally accepted that service consumers should never be

allowed to access a backend service directly

Routing requests through an ESB provides an additional level of

indirection

• Loose coupling between providers and consumers

Overall approach is referred to as service virtualization

10

Page 12: 1200   wsrr & iib - advanced integration - final

Controlling Access to Backend Services

It is generally accepted that service consumers should never be

allowed to access a backend service directly

Routing requests through an ESB provides an additional level of

indirection

• Loose coupling between providers and consumers

Overall approach is referred to as service virtualization

Service virtualization patterns provide a controlled point of

access to the backend service

11

Page 13: 1200   wsrr & iib - advanced integration - final

Enhance the Connectivity of ESB using WSRR

Integrating WSRR with your ESB allows you to use the

metadata retrieved from WSRR when making decisions at

runtime

The behaviour of your flow can be modified simply by changing

the metadata in WSRR

Enables your ESB to be more dynamic, more flexible, more

adaptable!

12

WSRR

Page 14: 1200   wsrr & iib - advanced integration - final

WSRR & IIB Integration

Page 15: 1200   wsrr & iib - advanced integration - final

IBM Integration Bus

IBM Integration Bus is IBM’s strategic integration technology providing

• Universal Connectivity

– Simplifies application connectivity to provide a flexible and dynamic

infrastructure

• Routing and transformation of messages from anywhere, to

anywhere

– Supports a wide range of protocols

• MQ, JMS1, HTTP(S), Web Services, File, User Defined

– Supports a broad range of data formats

• Binary (C/COBOL), XML, Industry (SWIFT, EDI, HIPAA…), User Defined

– Interactions and Operations

• Route, Filter, Transform, Enrich, Monitor, Distribute, Decompose,

Correlate…

• Simple programming

14

Page 16: 1200   wsrr & iib - advanced integration - final

Endpoint and Registry Lookup Nodes

The Endpoint Lookup node is used to retrieve

service endpoints for a WSDL defined web

service from WSRR

Enables dynamic routing of service requests

with little or no programming

15

The Registry Lookup node is a general purpose

node used to query and retrieve

• Service metadata from WSRR

• Any document, for example, WSDL, XML

schema, XSLT, policy documents

Enables dynamic routing of requests to any

type of service

Both nodes cache the results of the queries performed against WSRR

Page 17: 1200   wsrr & iib - advanced integration - final

Node Properties

16

Page 18: 1200   wsrr & iib - advanced integration - final

Controlling the number of results returned

The Match Policy controls the number of matching results

returned from WSRR

• One returns the first matching object

– When more than one match found, the result is arbitrary

• For example, not necessarily the latest version

• All returns all matching objects

17

Page 19: 1200   wsrr & iib - advanced integration - final

Controlling the depth of results – Registry Lookup

The objects in WSRR can be related to

other objects

The Depth Policy on the Registry

Lookup Node can be used to control

whether related objects are returned

There are three options:

• Return just the match object

• Return the matched object and the

immediate related objects

• Return the matched object and all

related objects

18

Page 20: 1200   wsrr & iib - advanced integration - final

Overriding the node properties at runtime

The LocalEnvironment can be used to override the properties of

the Endpoint and Registry Lookup nodes at runtime

19

LocalEnvironment.ServiceRegistryLookupProperties.Name LocalEnvironment.ServiceRegistryLookupProperties.NamespaceLocalEnvironment.ServiceRegistryLookupProperties.VersionLocalEnvironment.ServiceRegistryLookupProperties.UserProperties.<Property Name>LocalEnvironment.ServiceRegistryLookupProperties.Classification.<Classification name>LocalEnvironment.ServiceRegistryLookupProperties.MatchPolicyLocalEnvironment.ServiceRegistryLookupProperties.DepthPolicy

Page 21: 1200   wsrr & iib - advanced integration - final

Lookup Results

The results of the queries performed against WSRR are placed

into the LocalEnvironment

• Allows them to be accessed/processed by downstream nodes

Endpoint Lookup results are stored as one or more ITService

entries

• LocalEnvironment.ServiceRegistry.ITService

Registry Lookup results are stored as one or more Entity entries

• LocalEnvironment.ServiceRegistry.Entity

20

Page 22: 1200   wsrr & iib - advanced integration - final

HTTP Request Node

The HTTP Request node can be used to invoke the WSRR

REST API

Enables message flows to:

• Perform complex queries against WSRR

• Invoke WSRR Named Queries

• Update the metadata in WSRR using POST/PUT/DELETE

operations

• Retrieve document content

• Interact with the WSRR Policy Service

Results are not cached so message flows need to implement

their own caching policy

• IIB Global Cache

21

Page 23: 1200   wsrr & iib - advanced integration - final

JMS Input Node

WSRR publishes JMS messages to a set of pre-defined topics

in response to operations that are performed within the product

The JMS Input node can be used to receive these notifications

within a message flow

Enables message flows to respond to events that occur in

WSRR including:

• Create, delete and update of objects

• Lifecycle transitions

22

Page 24: 1200   wsrr & iib - advanced integration - final

Usage Patterns

23

Service Proxy Service Selection Alternate Service

Provider

Service

Transformation

Service Gateway SLA Checking

500

Messages

per second

WLM Policy

Enforcement

File Transfer

Integration

Page 25: 1200   wsrr & iib - advanced integration - final

Service Proxy

One of the fundamental ESB patterns

• Many ESB patterns extend/embellish this pattern

Provides:

• Loose coupling between providers and consumers

• Controlled point of access

Enables the introduction of:

• Logging

• Security configuration

• Performance measurement

• Alerting

• Traffic management

• Service charging

• Etc…

24

Page 26: 1200   wsrr & iib - advanced integration - final

Service Proxy (SOAP/HTTP)

When Destination is a SOAP/HTTP Web Service

• Use Endpoint Lookup node to retrieve endpoint address from

WSRR

– Set “Match Policy” = “One”

• Use any Input Node (MQ, HTTP, JMS etc.)

• Wire Endpoint Lookup output directly to SOAP/HTTP Request

node

25

Page 27: 1200   wsrr & iib - advanced integration - final

Service Proxy (Non Web Service)

When Destination is NOT a SOAP/HTTP Web Service

• Use Registry Lookup node to retrieve an entity from WSRR

(this can include endpoint information!)

– Set “Match Policy” = “One”

• Use any transformation node to set the endpoint address and

add an appropriate transport header

26

Page 28: 1200   wsrr & iib - advanced integration - final

Service Selection

Extends the service proxy pattern

Introduces the ability to route service requests

Routing can be based on:

• Content of service request

• Status of service providers

• Timing of the request

• Etc…

27

Page 29: 1200   wsrr & iib - advanced integration - final

Service Selection

For example, choosing between premium and standard service

• Use Endpoint Lookup node to retrieve a set of endpoints

– Set “Match Policy” = “All”

• Use a transformation node to

– Select the required service

– Copy the endpoint information into the correct place for the SOAP

Request node

Alternatively, branch earlier in the message flow and use two

Endpoint Lookup nodes

28

Page 30: 1200   wsrr & iib - advanced integration - final

Alternate Service Provider

Extends the service selection pattern

Provides a level of fault tolerance in the ESB

• Detects failures when invoking selected service provider

• Selects an alternative service provider from the list of available

endpoints

• Can potentially try all of the available service providers

Service consumer is unaware of failures

29

Page 31: 1200   wsrr & iib - advanced integration - final

Alternate Service Provider

The Failure terminal is used to denote problems accessing services

with the SOAP Request node

• In this case, pass the message back to the “Endpoint Selector” node to

select the next available endpoint

Use Registry Lookup for non SOAP/HTTP services (as before)

30

Page 32: 1200   wsrr & iib - advanced integration - final

Alternate Service Provider

The Failure terminal is used to denote problems accessing services

with the SOAP Request node

• In this case, pass the message back to the “Endpoint Selector” node to

select the next available endpoint

Use Registry Lookup for non SOAP/HTTP services (as before)

Remember to cope with “all services failed” situation

31

Page 33: 1200   wsrr & iib - advanced integration - final

Service Transformation

Extends the service proxy pattern

Introduces transform(s) which allow the interface(s) presented by the ESB to

differ from that of the service provider

Various drivers:

• Not always desirable to expose the interface of a backend service as the

published interface of an enterprise service on the ESB

• Expose a standard interface to a number of semantically equivalent backend

services that have different interfaces

• Transform service requests/responses from one version of a service to another

32

Page 34: 1200   wsrr & iib - advanced integration - final

Service Transformation

Transform message using a stylesheet retrieved from WSRR

• Use Registry Lookup node to retrieve XSL stylesheet

– Set “Match Policy” = “One”

• Use a transformation node to copy the returned stylesheet into

the input message

• Use the XSL Transform node to transform the message using

the embedded stylesheet

• Use an Endpoint Lookup node to route the request to the target

service

Similar process is used to transform the response message

33

Page 35: 1200   wsrr & iib - advanced integration - final

Provides boundary functions which apply to all incoming requests

Boundary functions can include

• Request routing

• Authentication

• Authorisation

• Audit and logging

• Protocol conversion

Enables the ability to apply common processing to a number of backend

services without the need to develop individual message flows for each

service

Service Gateway

34

Page 36: 1200   wsrr & iib - advanced integration - final

Use service metadata in WSRR as the lookup table for the

gateway

• Use information extracted from the request message to identify

the target service, for example:

– Namespace of the request message

– Operation name

• Use Registry Lookup node to retrieve the matching Service

Operation from WSRR

• Use the metadata on the Service Operation to retrieve the

target endpoint from WSRR using an Endpoint Lookup node

Service Gateway

35

Page 37: 1200   wsrr & iib - advanced integration - final

SLA Checking

Service Level Agreements (SLAs) in WSRR represent consumption

agreements between service providers and service consumers

They can be enforced by the ESB at runtime to ensure that the service

consumer is authorized to invoke the target service

Must be able identify the service consumer, the SLA or both

• Input message could contain a “consumer id” and/or “context id”

• Could map from the security credentials of the client

• Target endpoint can also be used to identify relevant SLA

36

Page 38: 1200   wsrr & iib - advanced integration - final

SLA Checking (Registry Lookup Node)

Use Registry Lookup node to retrieve metadata for service consumer

• Specify a “User Property” with name “gep63_consumerIdentifier” and the

specified “consumer id” as the value

• Set “Depth Policy” = “Return matched plus all related entities”

Use a transformation node to:

• Check that only a single service version was returned

• Check that the service version has an active SLA with the specified “context id”

• Check that the target service has at least one online endpoint

• Forward the request to the target service if all of the above checks pass, or

return a SOAP fault

37

Page 39: 1200   wsrr & iib - advanced integration - final

SLA Checking (HTTP Request Node)

Use HTTP Request node to invoke WSRR REST API• Recommended to use a Named Query:

– Details of the WSRR query are stored in WSRR configuration

– Hides WSRR knowledge from the message flow

– Message flow only needs to know the name of the query and the parameters to pass

– No programmatic checking required… all of the checks are encapsulated in the query

performed against WSRR

• A number of named queries already available in WSRR, for example:

– SLACheck

– SLACheckWithConsumerID

– SLAEndpointLookup

• These named queries return list of agreed online endpoints for the target service

Message flow must implement its own caching policy

38

Page 40: 1200   wsrr & iib - advanced integration - final

Policy Enforcement

IIB v9.0 introduced the ability to control the rate of processing within a

message flow by attaching Workload Management (WLM) policies to the flow

• Policies can be attached to message flows dynamically at runtime

• No need to restart the execution group or the individual flows

WSRR can centrally manage/govern policies

• Ensures that policies are applied consistently across your SOA

WSRR v8.5 introduces the ability to author IIB WLM policies directly in the

Service Registry Dashboard user interface

• WLM policies can then be attached to, or detached from, services in WSRR

39

500

Messages

per second

Page 41: 1200   wsrr & iib - advanced integration - final

WLM Policy Enforcement – Policy Creation

Use JMS Input node to listen for messages published by WSRR

• Set “Subscription topic” = “jms/PolicyUpdateTopic”

• Specify a “Message Selector” of “action=‘CREATE’”

Use a transformation node to process the input message

• Extracts the id of the WLM policy

• Programmatically sets the local environment entries required by the HTTP

Request node

Use a HTTP Request node to query the WSRR Policy Service REST API

• Retrieves the actual content of the WLM policy from WSRR

Use a Java Compute node to create the policy in IIB

• Uses the BrokerProxy::createPolicy method

40

Page 42: 1200   wsrr & iib - advanced integration - final

WLM Policy Enforcement – Policy Attachment

Use JMS Input node to listen for messages published by WSRR

• Set “Subscription topic” = “jms/PolicyAttachmentTopic”

• Specify a “Message Selector” of “action=‘CREATE’”

Use a transformation node to process the input message

• Extracts the id of the target object in WSRR

• Programmatically sets the local environment entries required by the HTTP

Request node

Use a HTTP Request node to query the WSRR REST API

• Retrieves the name of the target service (flow) from WSRR

Use a Java Compute node to attach the policy in IIB

• Uses the MessageFlowProxy::setWlmPolicy method

41

Page 43: 1200   wsrr & iib - advanced integration - final

WLM Policy Enforcement in Action

The IIB web user interface can display message flow statistics

The chart shown here displays the message rate for a flow that

is also represented in WSRR

The dips in the chart correspond to:

• Attaching a WLM policy in WSRR limiting the maximum rate to

200 messages/sec

• Attaching a WLM policy in WSRR limiting the maximum rate to

50 messages/sec

42

Page 44: 1200   wsrr & iib - advanced integration - final

File Transfer Integration

The business models used by WSRR can be customized

• Allows you to tailor the product to meet your needs

• Enables you to represent more than just services

For example, file transfers can be represented in WSRR using a custom model

• Enables you to manage the creation and lifecycle of the file transfer definition

• Enables you to control the file transfer at runtime

43

Page 45: 1200   wsrr & iib - advanced integration - final

File Transfer Integration

Message flow in IIB can be used to expose a service to initiate a file transfer

• “transferId” passed in service request

Use Registry Lookup node to retrieve file transfer definition with matching id

• Specify a “primaryType” user property so that only “File Transfer Definitions” are

matched

• Set “Match Policy” = “One”

• Set “Depth Policy” = “Return matched plus all related entities”

Use MQ Output node to put XML message on the source agent command

queue

44

Page 46: 1200   wsrr & iib - advanced integration - final

Gratuitous Advertisement

You can see the scenarios described here in action at IMPACT

(except for the File Transfer scenario – sorry!!!)

• 1201: IBM WebSphere Service Registry and Repository & IBM

Integration Bus: Advanced Integration Lab

– Thursday: 09:00 – 11:30 - Murano 3305

WSRR and IIB Integration series on IBM developerWorks

http://www.ibm.com/developerworks/views/websphere/libraryview.jsp

?search_by=Integrating+IBM+Integration+Bus+with+WebSphere+Service+Registry+and+Repository

45

Page 47: 1200   wsrr & iib - advanced integration - final

Questions?

Page 48: 1200   wsrr & iib - advanced integration - final

WSRR Sessions at Impact 2014

Client use case presentations2089: Lessons Learned Using a Service Registry for Service Governance

• Tuesday: 10:30 – 11:30 – Palazzo F; Steve Romanowski (State Farm), Dennis Miller (IBM)

3358: How PSCU Implemented Its Intelligent Platform Through a SOA COE

• Tuesday: 14:15 – 15:15 – Marcello 4402; Prithvi Srinivasan (Prolifics)

1501: API Lifecycle Management: Integrating IBM WebSphere Service Registry and Repository & API

Management

• Wednesday : 10:30 – 11:30 – Marcello 4402; John Falkl (Haddon Hill Group Associates)

2781: How CVS Caremark Implemented a Service Oriented Architecture Center of Excellence

• Wednesday : 10:30 – 11:30 – Marcello 4405; Prithvi Srinivasan (Prolifics), Ajay Behuria (CVS CareMark)

2740: Extending IBM WebSphere Service Registry and Repository to Legacy IBM WebSphere

Application Server

• Wednesday: 14:15 – 15:15 – Marcello 4405; Animesh Jain (Prolifics)

2699: SOA at Highmark - One Company's Journey

• Wednesday : 17:00 – 18:00 – Lando 4305; Rich Turney (Highmark Inc.), Ed Ober (Highmark Inc.)

3128: Implementing an ESB with IBM Integration Solutions at Danske Bank

• Wednesday : 17:00 – 18:00 – Marcello 4404; John Alex Jensen (Danske Bank)

1540: Reusable Policy Templates in IBM WebSphere Service Registry and Repository

• Thursday: 10:30 – 11:30 – Palazzo F; Yevgen Khibin (Kaiser Permanente)

2946: SOA Best Practices & Pitfalls

• Thursday : 15:45 – 16:45 – Lido 3005; Rich Turney (Highmark Inc.), Ed Ober (Highmark Inc.), Chris Hengst

(Highmark Inc.), Bryan Lichtenwalner (Highmark Inc.)

47

Page 49: 1200   wsrr & iib - advanced integration - final

WSRR Sessions at Impact 2014

Product presentations1159: IBM Integration & Governance: Featured Session

• Monday: 14:30 – 15:30 – Palazzo H; Nicola Hills (IBM)

1250: What’s New in IBM WebSphere Service Registry and Repository

• Tuesday : 10:30 – 11:30 – Marcello 4405; Robert Laird (IBM), Nick Butler (IBM)

• Wednesday: 15:45 – 16:45 – Marcello 4405; Robert Laird (IBM), Nick Butler (IBM)

1200: IBM WebSphere Service Registry and Repository & IBM Integration Bus: Advanced Integration

• Tuesday: 17:00 – 18:00 - Palazzo I; Martin Smithson (IBM)

1251: Service Visibility & Management with IBM WebSphere Service Registry and Repository

• Wednesday : 13:00 – 14:00 – Marcello 4405; Robert Laird (IBM), Nick Butler (IBM)

3237: Meet the Experts: IBM WebSphere Service Registry and Repository

• Thursday: 13:00 – 14:00 – San Polo 3503; Nick Butler (IBM), Martin Smithson (IBM)

Roundtable Feedback Sessions1244: Roundtable: IBM WebSphere Service Registry and Repository

• Monday: 17:15 – 18:15 – Zeno 4708; Robert Laird (IBM), Gary Thornton (IBM)

• Tuesday: 17:00 – 18:00 – Zeno 4708; Robert Laird (IBM), Gary Thornton (IBM)

48

Page 50: 1200   wsrr & iib - advanced integration - final

WSRR Sessions at Impact 2014

Hands on labs1223: Enable Role-based Service Views & Change Notification to Effectively Govern Services

• Wednesday: 15:45 – 18:00 - Murano 3305; Martin Smithson (IBM), Dennis Miller (IBM)

1201: IBM WebSphere Service Registry and Repository & IBM Integration Bus: Advanced Integration Lab

• Thursday: 09:00 – 11:30 - Murano 3305; Martin Smithson (IBM), Dennis Miller (IBM)

49

Page 51: 1200   wsrr & iib - advanced integration - final

We Value Your Feedback

Don’t forget to submit your Impact session and speaker

feedback! Your feedback is very important to us – we use it to

continually improve the conference.

Use the Conference Mobile App or the online Agenda Builder to

quickly submit your survey

• Navigate to “Surveys” to see a view of surveys for sessions

you’ve attended

50

Page 52: 1200   wsrr & iib - advanced integration - final

Thank You

Page 53: 1200   wsrr & iib - advanced integration - final

Legal Disclaimer

• © IBM Corporation 2014. All Rights Reserved.

• The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained

in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are

subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing

contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and

conditions of the applicable license agreement governing the use of IBM software.

• References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or

capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to

future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by

you will result in any specific sales, revenue growth or other results.

• If the text contains performance statistics or references to benchmarks, insert the following language; otherwise delete:

Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will

experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage

configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.

• If the text includes any customer examples, please confirm we have prior written approval from such customer and insert the following language; otherwise delete:

All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs

and performance characteristics may vary by customer.

• Please review text for proper trademark attribution of IBM products. At first use, each product name must be the full name and include appropriate trademark symbols (e.g., IBM

Lotus® Sametime® Unyte™). Subsequent references can drop “IBM” but should include the proper branding (e.g., Lotus Sametime Gateway, or WebSphere Application Server).

Please refer to http://www.ibm.com/legal/copytrade.shtml for guidance on which trademarks require the ® or ™ symbol. Do not use abbreviations for IBM product names in your

presentation. All product names must be used as adjectives rather than nouns. Please list all of the trademarks that you use in your presentation as follows; delete any not included in

your presentation. IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of International

Business Machines Corporation in the United States, other countries, or both. Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both.

• If you reference Adobe® in the text, please mark the first use and include the following; otherwise delete:

Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries.

• If you reference Java™ in the text, please mark the first use and include the following; otherwise delete:

Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.

• If you reference Microsoft® and/or Windows® in the text, please mark the first use and include the following, as applicable; otherwise delete:

Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both.

• If you reference Intel® and/or any of the following Intel products in the text, please mark the first use and include those that you use as follows; otherwise delete:

Intel, Intel Centrino, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and

other countries.

• If you reference UNIX® in the text, please mark the first use and include the following; otherwise delete:

UNIX is a registered trademark of The Open Group in the United States and other countries.

• If you reference Linux® in your presentation, please mark the first use and include the following; otherwise delete:

Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of

others.

• If the text/graphics include screenshots, no actual IBM employee names may be used (even your own), if your screenshots include fictitious company names (e.g., Renovations, Zeta

Bank, Acme) please update and insert the following; otherwise delete: All references to [insert fictitious company name] refer to a fictitious company and are used for illustration

purposes only.