• Success
    Manage your Success Plans and Engagements, gain key insights into your implementation journey, and collaborate with your CSMs
    Success
    Accelerate your Purchase to Value engaging with Informatica Architects for Customer Success
  • Communities
    A collaborative platform to connect and grow with like-minded Informaticans across the globe
    Communities
    Connect and collaborate with Informatica experts and champions
    Have a question? Start a Discussion and get immediate answers you are looking for
    Customer-organized groups that meet online and in-person. Join today to network, share ideas, and get tips on how to get the most out of Informatica
  • Knowledge Center
    Troubleshooting documents, product guides, how to videos, best practices, and more
    Knowledge Center
    One-stop self-service portal for solutions, FAQs, Whitepapers, How Tos, Videos, and more
    Video channel for step-by-step instructions to use our products, best practices, troubleshooting tips, and much more
    Information library of the latest product documents
    Best practices and use cases from the Implementation team
  • Learn
    Rich resources to help you leverage full capabilities of our products
    Learn
    Role-based training programs for the best ROI
    Get certified on Informatica products. Free, Foundation, or Professional
    Free and unlimited modules based on your expertise level and journey
    Self-guided, intuitive experience platform for outcome-focused product capabilities and use cases
  • Resources
    Library of content to help you leverage the best of Informatica products
    Resources
    Most popular webinars on product architecture, best practices, and more
    Product Availability Matrix statements of Informatica products
    Monthly support newsletter
    Informatica Support Guide and Statements, Quick Start Guides, and Cloud Product Description Schedule
    End of Life statements of Informatica products
Last Updated Date May 25, 2021 |

Challenge

ActiveVOS code can be developed once and deployed to many different environments. These could be development lifecycle environments such as production, test, development, and QA. Most commonly, the services that are being called from the production server are not in the same locations as the services being called from the test or QA environments.

Description

This document discusses how to use Uniform Resource Name (URN) Mappings to define server specific endpoints.

What is a URN Mapping?

As defined by the RFC, URNs are intended to serve as persistent, location-independent resource identifiers and are designed to make it easy to map other namespaces (which share the properties of URNs) into URN-space. Therefore, the URN syntax allows character data to be encoded in a form that can be sent in existing protocols.

ActiveVOS uses URNs as a way to map a logical resource name to a physical resource Uniform Resource Identifier (URI) or Uniform Resource Locator (URL). URN represents a logical name that is used in the ActiveVOS configurations and descriptors such as, the Process Deployment Descriptor (PDD). PDD allows an abstract name to be defined for the actual endpoint location of services or resources used by the ActiveVOS processes. The service endpoint or resource locations are often different in each development environment and the URN mappings provide a mechanism to deploy, once built. ActiveVOS deployment archives (BPR) into different environment without a need to change environment specific configuration inside the deployment archive. The actual endpoint or resource location in the particular environment is resolved in the runtime using the environment specific URN mapping from the ActiveVOS configuration.

Create a URN Mapping

On the server Console, choose Admin then choose URN Mappings.

ActiveVos-URN-Map-1.png

A list of urn maps will be shown in the right window.

ActiveVos-URN-Map-2.png

To create the new URN Mapping:

  • Enter the universal resource name in the edit field labeled URN
  • Enter the endpoint Uniform Resource Locator in the field labeled URL
  • Click the button Add/Update Mapping

Note: The dollar sign ($) is not valid in an URN mapping. The following characters are all valid: 1234567890!@#%^&*(),./<>?[]\{}|`~:";'+? 

How to use URN mappings

There are two kinds of mappings supported by the ActiveVOS

  • Static URL Value – this mapping refers to a single URL or URI
  • Dynamic URL Value – define an expression that maps to multiple resources/URLs derived from the URN partsURN mappings can be used several ways

PDD Partner Link Definitions

PDD defines partner link metadata to tell the ActiveVOS engine how to invoke a particular service and where the endpoint of the service is located.

<partnerLink name="assessor">
   <partnerRole endpointReference="static"
     invokeHandler="default:Address">
      <wsa:EndpointReference xmlns:assessor="http://
       tempuri.org/services/loanassessor">
      <wsa:Address>urn:localhost:AssessRisk</wsa:Address>
      <wsa:ServiceName PortName=
        "SOAPPort">assessor:LoanAssessor</wsa:ServiceName>
   </partnerRole></partnerLink>

The engine will simply translate the urn urn:localhost:AssessRisk to the actual URL which is defined as follows:

urn:localhost = http://localhost:8080/active-bpel/services/${urn.3}

Note that the dynamic ULR form is used in this case and the outcome of the URN resolution will be the following URL

http://localhost:8080/active-bpel/services/AssessRisk

Resolve URN Dynamically

Developers can use dynamic partner link handlers and generate a Partner Link Definition dynamically in the process.

This can be done in xQuery expressions using the bpel function resolveURN(urnString).  For example:

abx:resolveURN(‘urn:dq:batch:duration’)

Another common use case is to set process variables to URN values so that they behave differently in each environment. For example, it may be necessary to set a wait time of 5 minutes in production environments, but only 30 seconds for testing purposes. In that case, the urn:dq:batch:duration value would be set to PT5M in production and PT30S in lower environments.

Static URN Values

A static values map simplifies the URN string to a URI or URL value that typically represents a service location, a resource location, or a service name.

URN urn:domain:service will be substituted with a URL value such as http://mydomain.com/services

Dynamic URN Value Expressions

URN is a string composed of segments separated by colon character. Expression such as ${urn.4} can be used to refer to any URN segment, which can be used in the URL value to provide dynamic content derived from the URN segment. URNS can also refer to system environment variables, which provide even more flexibility to externalize environment specific service locations completely out of the ActiveVOS deployment archives or database.

The following table demonstrates some ways to map URNs to URLs. Note that each segment of the URN is separated by a colon. This means that a variable, such as ${urn.4} shown in the third example below, can be used to indicate a replaceable token in the fourth segment.

The second Example shows a URN mapping that should be avoided as it uses a URL in the URN value instead of a URN format. This leads to warnings to be logged in the ActiveVOS logs.

URN

URL

urnSegment1:urnSegment2

http://localhost:8080/active-bpel/services/MyService

http://ServerA:8080/active-bpel/services/MyService

http://ServerB:8081/active-bpel/services/MyService

urn:localhost:service

http://localhost:${AE-NODE1-PORT}/active-bpel/services/${urn.4}

The last example in the table shows how variable substitution can be used in a URL. Note that the ${AE-NODE1-PORT} refers to a system variable defined outside ActiveVOS runtime.

Benefits of Using URN Mappings

In summary, URN mappings provide a flexible and dynamic way to define target endpoint references. Use URN mappings to specify the physical address of a partner link endpoint reference instead of using the address specified in a process deployment descriptor (.pdd) file or WSDL file. By mapping a URN to a URL, there is no need to rely on invoking a statically defined endpoint address. URN mappings provide flexibility, for example, when deploying the same BPR files to testing and production environments. URN mappings also allow references to resource locations that may be different in each environment. Dynamic expression-based mappings also allow the number of configuration items that need to be managed, to be reduced; as one URN mapping can be used to represent many different services or resources located under the same base URI. In short using URN mapping provides following:

  • Control
  • Flexibility
  • Maintainability

Table of Contents

Success

Link Copied to Clipboard