Setting up the integration between Oracle Social Engagement & Monitoring Cloud Service and Oracle RightNow Cloud Service



Similar documents
An Oracle White Paper July Introducing the Oracle Home User in Oracle Database 12c for Microsoft Windows

An Oracle White Paper October BI Publisher 11g Scheduling & Apache ActiveMQ as JMS Provider

How To Load Data Into An Org Database Cloud Service - Multitenant Edition

OpenLDAP Oracle Enterprise Gateway Integration Guide

G Cloud 7 Pricing Document

An Oracle Communications White Paper December Serialized Asset Lifecycle Management and Property Accountability

An Oracle White Paper June RESTful Web Services for the Oracle Database Cloud - Multitenant Edition

An Oracle White Paper November Oracle Business Intelligence Standard Edition One 11g

An Oracle White Paper September Oracle WebLogic Server 12c on Microsoft Windows Azure

An Oracle White Paper June Security and the Oracle Database Cloud Service

An Oracle Technical White Paper June Oracle VM Windows Paravirtual (PV) Drivers 2.0: New Features

G Cloud 7 Pricing Document

An Oracle White Paper May Creating Custom PDF Reports with Oracle Application Express and the APEX Listener

An Oracle White Paper June, Provisioning & Patching Oracle Database using Enterprise Manager 12c.

An Oracle White Paper February Integration with Oracle Fusion Financials Cloud Service

An Oracle White Paper September Directory Services Integration with Database Enterprise User Security

Unbreakable Linux Network An Overview

An Oracle White Paper May Distributed Development Using Oracle Secure Global Desktop

Oracle Directory Services Integration with Database Enterprise User Security O R A C L E W H I T E P A P E R F E B R U A R Y

Using Symantec NetBackup with VSS Snapshot to Perform a Backup of SAN LUNs in the Oracle ZFS Storage Appliance

An Oracle White Paper July Oracle Linux and Oracle VM Remote Lab User Guide

An Oracle White Paper June How to Install and Configure a Two-Node Cluster

An Oracle Best Practice Guide April Best Practices for Designing Contact Center Experiences with Oracle RightNow CX Cloud Service

Microsoft Active Directory Oracle Enterprise Gateway Integration Guide

An Oracle Best Practice Guide April Best Practices for Implementing Contact Center Experiences

An Oracle White Paper September Oracle Database and the Oracle Database Cloud

THE NEW BUSINESS OF BUSINESS LEADERS. Hiring and Onboarding

APPLICATION MANAGEMENT SUITE FOR ORACLE E-BUSINESS SUITE APPLICATIONS

March Oracle Business Intelligence Discoverer Statement of Direction

An Oracle White Paper April How to Install the Oracle Solaris 10 Operating System on x86 Systems

An Oracle White Paper February Oracle Data Integrator 12c Architecture Overview

How to Use Microsoft Active Directory as an LDAP Source with the Oracle ZFS Storage Appliance

Oracle Enterprise Manager

An Oracle Best Practice Guide March Best Practices for Oracle RightNow Cobrowse Cloud Service

An Oracle White Paper January Using Oracle's StorageTek Search Accelerator

An Oracle White Paper September Advanced Java Diagnostics and Monitoring Without Performance Overhead

An Oracle White Paper March Oracle s Single Server Solution for VDI

June, 2015 Oracle s Siebel CRM Statement of Direction Client Platform Support

An Oracle White Paper July Oracle Desktop Virtualization Simplified Client Access for Oracle Applications

WebSphere MQ Oracle Enterprise Gateway Integration Guide

An Oracle White Paper June Oracle Linux Management with Oracle Enterprise Manager 12c

Driving Down the High Cost of Storage. Pillar Axiom 600

An Oracle White Paper November Leveraging Massively Parallel Processing in an Oracle Environment for Big Data Analytics

Oracle Enterprise Manager

How To Configure An Orgaa Cloud Control On A Bigip (Cloud Control) On An Orga Cloud Control (Oms) On A Microsoft Cloud Control 2.5 (Cloud) On Microsoft Powerbook (Cloudcontrol) On The

An Oracle White Paper March Integrating the SharePoint 2007 Adapter with WebCenter Spaces ( & )

APPLICATION MANAGEMENT SUITE FOR ORACLE E-BUSINESS SUITE APPLICATIONS

Deliver Oracle BI Publisher documents to Microsoft Office SharePoint Server An Oracle White Paper July 2008

Oracle Primavera Gateway

A Comprehensive Solution for API Management

FAQ: How to create Effective Messages

See What's Coming in Oracle Service Cloud

2011 Customer Experience Impact Report. Getting to the Heart of the Consumer and Brand Relationship

An Oracle Technical Article November Certification with Oracle Linux 6

Oracle Business Intelligence Enterprise Edition Plus and Microsoft Office SharePoint Server. An Oracle White Paper October 2008

An Oracle White Paper Dec Oracle Access Management Security Token Service

An Oracle Benchmarking Study February Oracle Insurance Insbridge Enterprise Rating: Performance Assessment

Load Testing Hyperion Applications Using Oracle Load Testing 9.1

An Oracle Best Practice Guide April Best Practices for Knowledgebase and Search Effectiveness

Oracle Whitepaper April Security and the Oracle Database Cloud Service

Oracle s BigMachines Solutions. Cloud-Based Configuration, Pricing, and Quoting Solutions for Enterprises and Fast-Growing Midsize Companies

See What's Coming in Oracle Service Cloud

An Oracle White Paper December Leveraging Oracle Enterprise Single Sign-On Suite Plus to Achieve HIPAA Compliance

Managed Storage Services

ORACLE SOCIAL ENGAGEMENT AND MONITORING CLOUD SERVICE

An Oracle White Paper October Migrating Customers to Lower-Cost Channels

An Oracle White Paper March Integrating Microsoft SharePoint Server With Oracle Virtual Directory

Oracle JD Edwards EnterpriseOne Mobile Sales Order Entry

An Oracle White Paper November Upgrade Best Practices - Using the Oracle Upgrade Factory for Siebel Customer Relationship Management

Oracle Sales Cloud Configuration, Customization and Integrations

PRODUCT HUB STREAMLINED ITEM BATCH USER INTERFACE DEFINE IMPORT FORMATS FOR SPREADSHEET IMPORT CONSOLIDATION OF DIGITAL ASSETS THROUGH THE ITEM BATCH

Oracle SQL Developer Migration

An Oracle White Paper April, Effective Account Origination with Siebel Financial Services Customer Order Management for Banking

An Oracle White Paper May 2011 BETTER INSIGHTS AND ALIGNMENT WITH BUSINESS INTELLIGENCE AND SCORECARDS

Oracle Business Intelligence ADF Custom Visualizations and Integration. An Oracle White Paper November 2012

An Oracle Technical Article March Certification with Oracle Linux 7

SOCIAL NETWORKING WITH A PURPOSE. Building Your Referral Machine

The Yin and Yang of Enterprise Project Portfolio Management and Agile Software Development: Combining Creativity and Governance

An Oracle White Paper February Rapid Bottleneck Identification - A Better Way to do Load Testing

October Oracle Application Express Statement of Direction

An Oracle White Paper August Oracle Service Cloud Integration with Oracle Siebel Service

Improve your Customer Experience with High Quality Information

An Oracle Technical White Paper May How to Configure Kaspersky Anti-Virus Software for the Oracle ZFS Storage Appliance

Oracle Service Cloud and Oracle Field Service Cloud Accelerator

Migration Best Practices for OpenSSO 8 and SAM 7.1 deployments O R A C L E W H I T E P A P E R M A R C H 2015

A Framework for Implementing World-Class Talent Management. The highest performing businesses are re-focusing on talent management

An Oracle White Paper June Introduction to Determinations Engines

Next Generation Siebel Monitoring: A Real World Customer Experience. An Oracle White Paper June 2010

Sun ZFS Storage Appliance Rule-Based Identity Mapping Between Active Directory and Network Information Services Implementation Guide

Performance with the Oracle Database Cloud

An Oracle White Paper June, Enterprise Manager 12c Cloud Control Application Performance Management

ORACLE INFRASTRUCTURE AS A SERVICE PRIVATE CLOUD WITH CAPACITY ON DEMAND

SIX QUESTIONS TO ASK ANY VENDOR BEFORE SIGNING A SaaS E-COMMERCE CONTRACT

April Oracle Higher Education Investment Executive Brief

PeopleSoft Forms & Approval Builder

Oracle Taleo Business Edition Cloud Service. What s New in Release 15B2

Business Driven Process Optimization

Manage Oracle Database Users and Roles Centrally in Active Directory or Sun Directory. Overview August 2008

Primavera Unifier Integration Overview: A Web Services Integration Approach O R A C L E W H I T E P A P E R F E B R U A R Y

An Oracle White Paper September Managing the Social Media Mix

Transcription:

An Oracle Best Practice Guide November 2013 Setting up the integration between Oracle Social Engagement & Monitoring Cloud Service and Oracle RightNow Cloud Service

Introduction Creation of the custom object required for the integration Creation of the custom process required for the integration Creation of a Profile that Social Engagement & Monitoring Cloud Service would use to call Oracle RightNow APIs Creation of a Staff Account that Social Engagement & Monitoring Cloud Service would use to call Oracle RightNow APIs Setting up Oracle RightNow Cloud Service plug-in parameters in the Social Engagement & Monitoring Cloud Service admin screen Setting up Twitter channel Accounts in Oracle RightNow Social Monitor Conclusion 2 3 7 15 16 18 18 19

Introduction This white paper provides the step-by-step instructions to set up the integration between Oracle Social Engagement & Monitoring Cloud Service and Oracle RightNow Cloud Service. Note: The step Creation of the custom process in this white paper contains sample code that should be considered as examples and is not part of the RightNow product or the APIs that are supported by Oracle RightNow Customer Support. Before we get into the integration, here are the Oracle RightNow Cloud Service version requirements for this integration: 1. The February 2012 release can receive social posts from Social Engagement & Monitoring Cloud Service but will not update the status of the post in Social Engagement & Monitoring Cloud Service when an incident is closed. 2. On the May 2012 release and after, the Custom Process Models (CPM) feature can be used in order to better leverage all the features of the integration. 3. On releases prior to February 2012, it is recommended to first upgrade to the November 2012 release or later. After implementing this white paper you will be able to: 1. Manually escalate a social post from Social Engagement & Monitoring Cloud Service to Oracle RightNow Cloud Service Incident. 2. Respond to twitter posts using Oracle RightNow Social Monitor. 3. See the updates in the Social Engagement & Monitoring Cloud Service post s activity history when an incident is closed. Described below is the overview of the flow of data between Social Engagement & Monitoring Cloud Service and Oracle RightNow Cloud Service. When a Social Engagement & Monitoring Cloud Service user clicks on the menu item Send to RightNow: 1. The system checks if the post author already exists as a contact in Oracle RightNow Cloud Service. This is done by checking if there is any contact with the same social network handle as the post author. 2. If a contact is found, the system would create an incident for that contact. 3. If a contact is not found in Oracle RightNow Cloud Service, a contact is created in the following situations: a. If the channel corresponding to the post is Twitter, Social Engagement & Monitoring Cloud Service creates a contact with the first and last name as 2

the post author s twitter handle. This is because Twitter does not expose the first and last name publicly. b. If the channel corresponding to the post is a Facebook fan page, a contact is created with the appropriate first and last name from Facebook 4. For all other scenarios (Social Engagement & Monitoring Cloud Service Listen Topic feed, feeds from other channels like RSS), a sparse contact with the name OSEM Contact is used. 5. After the contact identification and creation process, an incident is created in Oracle RightNow Cloud Service for that contact. When creating the incident, the incident subject is populated with the post content. Other than the subject, incident thread(s) are also created with the post content and URL. 6. After the creation of the incident, an agent picks up the incident and works on it. Once the incident is resolved, when the agent sets the status of the incident to Solved, the system will update the corresponding post s activity history in Social Engagement & Monitoring Cloud Service, to indicate that the incident was closed. This setup process covers the following topics: 1. Creation of the custom object required for the integration 2. Creation of the custom process to update Social Engagement & Monitoring Cloud Service once the incident is closed 3. Setting up of Oracle RightNow Cloud Service plug-in parameters in the Social Engagement & Monitoring Cloud Service admin screen 4. Setting up Twitter channel Accounts in Oracle RightNow Social Monitor Creation of the custom object required for the integration This section will guide you through the process of creating the custom object required for this integration. 1) Login to Oracle RightNow Cloud Service using an account with administrator privileges. 3

2) To create the custom object, navigate to Configuration> Database > Object Designer and double click to open the list of objects. In the Object Designer tab, select the node for CO (referring to custom objects). 3) Select the CO Package. If the CO Package does not exist, create a new CO package. 4) Create a new object in the CO Package. 4

5) Set the Object name and other attributes as follows: a. Name = OSEMIncident b. Object is Available in Workspaces, Scripting and Workflow = Checked c. Object is Enabled for Transactions = Checked d. Label = 'OSEMIncident' 6) Add fields to the OSEMIncident Object. 5

7) Make sure that the fields have the following attributes when creating them: Field Name Data Type Field Options Integer/Text Field Settings ID System created field. Leave as default IncidentID Integer Is In single Field Index = checked All Settings = Default Other Options= Default OSEMEndpoint Text All Options = Default Field Usage = Plain Text Length of Field = 255 All Other Settings = default OSEMAuthToken Text All Options = Default Field Usage = Plain Text Length of Field = 255 All Other Settings = default OSEMServiceRequestID Text All Options = Default Field Usage = Plain Text Length of Field = 255 All Other Settings = default OSEMMessageID Text All Options = Default Field Usage = Plain Text Length of Field = 255 All Other Settings = default 8) Save your changes and click on the Relationship ribbon button to add a new relationship with the Incident Object so that Incident is the parent of OSEMIncident. 6

9) Make sure that the relationship has the following attributes set in the Parents of OSEMIncident Object section: Type Parent Object Parent Field Child Field Association RN.Incident i_id IncidentID 10) Deploy your new custom Object. Creation of the custom process required for the integration This section will guide you through the process of creating the custom process required for this integration. This custom process is used to call the Social Engagement & Monitoring API when the incident is closed. When this API is executed, the internal activity for the Social Engagement & Monitoring post will be updated to indicate that the related Incident is closed. Note: It is not required to deploy this custom script if you only want to escalate a post as an incident and do not want to report back to Social Engagement & Monitoring Cloud Service if the incident was closed. Note: Please be aware of the following limitations before deploying the custom script: 7

a. If for some reason the API call made to Social Engagement & Monitoring Cloud Service from this script fails, it will not be retried. The post which created the incident will not be updated to reflect the incident status change to Closed. Moreover, at present there is no manual process to update the post Social Engagement & Monitoring Cloud Service Engage post internal activity. b. Oracle RightNow Cloud Service expects all synchronous custom process scripts to be completed within 5 seconds to prevent run-away processes. If this script does not complete in 5 seconds, it will be timed out. c. If this script times out multiple times within a short duration, Oracle RightNow Cloud Service will disable the script. You will need to manually re-enable it by going to Process Designer. 1) Navigate to Process Designer. You may need to add Process designer to your Navigation Set. You should find Process Designer under Components -> Common as shown below. 8

2) If you do not find Process Designer in your Navigation set, check the following: a. Process Designer is enabled for your Site. Please contact your Oracle Customer Success Manager to confirm that Process designer has been enabled for your site. b. Confirm that your profile has the Process Designer permission checked. This permission is under the Administrator Section. 9

3) The PHP code is viewed below. Actual PHP is provided in a separate file. <? /* * CPMObjectEventHandler: osem_callback * Package: RN * Objects: Incident * Actions: Update * Version: 1.2 */ use \RightNow\Connect\v1_2 as RNCPHP; use \RightNow\CPM\v1 as RNCPM; class osem_callback implements RNCPM\ObjectEventHandler { // { Just for debugging private static $osem_obj = NULL; // Just for debugging */ private static function my_post_request($osem_obj) { $optional_headers = null; $params = array('http' => array( 'method' => 'PUT', 'content' => http_build_query(array('service_request' => array('auth_token' => $osem_obj->osemauthtoken))))); if ($optional_headers!== null) { 10

$params['http']['header'] = $optional_headers; $ctx = stream_context_create($params); $final_url = $osem_obj->osemendpoint. $osem_obj->osemmessageid. '/service_requests/'. $osem_obj->osemservicerequestid; $fp = @fopen(($final_url), 'rb', false, $ctx); $response = @stream_get_contents($fp); @fclose(fp); return; public static function apply($run_mode, $action, $obj, $n_cycles) { if ($action==rncpm\actionupdate) { // Has the ClosedTime changed? if ($obj->closedtime!= $obj->prev->closedtime) { if (is_null($obj->closedtime)) { // The Incident was re-opened // Is there anything to do when the incident is reopened? else { // The Incident was closed $query = "SELECT CO.OSEMIncident FROM CO.OSEMIncident WHERE CO.OSEMIncident.IncidentID = {$obj->id"; $osem_obj = RNCPHP\ROQL::queryObject($query)->next()- >next(); if (!is_null($osem_obj)) { if (RNCPM\RunModeLive == $run_mode) { osem_callback::my_post_request($osem_obj); else { echo("in Test Mode ID='{$obj->ID', IncidentID: {$osem_obj->incidentid->id\n"); $inv_id = "OSEM:{$obj->ID"; if ($inv_id === $osem_obj->osemmessageid && $osem_obj->osemauthtoken === "secret_key" && $osem_obj- >OSEMServiceRequestID === "111" && $osem_obj->osemendpoint === "testurl.com") { $obj->subject = "TestSuccess"; info object // { Add a private note to the Incident with some debugging // when the subject begins with "Involver test" if (0 === strpos($obj->subject, 'Involver test')) { if (is_null($obj->threads)) { $obj->threads = new RNCPHP\ThreadArray; $note = new RNCPHP\Thread; $note->entrytype->id = 1; $note->text = static::$debug_text; $obj->threads[] = $note; $obj->save(rncphp\rnobject::suppressall); // Clean up after the debugging/invented OSEMIncident if (!is_null(static::$osem_obj)) { 11

info */ static::$osem_obj->destroy(); static::$osem_obj = NULL; // Add a private note to the Incident with some debugging return; class osem_callback_testharness implements RNCPM\ObjectEventHandler_TestHarness { static $incident = array(); public static function setup() { // Create Primary Contact $contact = new RNCPHP\Contact(); $contact->emails = new RNCPHP\EmailArray(); $contact->emails[0] = new RNCPHP\Email(); $contact->emails[0]->addresstype=new RNCPHP\NamedIDOptList(); $contact->emails[0]->addresstype->lookupname = "Email - Primary"; $contact->emails[0]->address = "srmtest776655@invalid.net"; $contact->login = "srmtest776655"; $contact->name = new RNCPHP\PersonName(); $contact->name->first = "SRM"; $contact->name->last = "Test"; $contact->save(); // Update Two Incidents $inc1 = new RNCPHP\Incident(); $inc1->subject = 'This is a post from twitter'; $inc1->primarycontact = $contact; $inc1->statuswithtype = new RNCPHP\StatusWithType(); $inc1->statuswithtype->status = new RNCPHP\NamedIDOptList(); $inc1->statuswithtype->status->id = 2;// ID 2 is for lookup name "Solved" $inc1->save(); $osem_inc1 = new RNCPHP\CO\OSEMIncident(); $osem_inc1->osemmessageid = "OSEM:{$inc1->ID"; $osem_inc1->incidentid = $inc1; $osem_inc1->osemauthtoken = 'secret_key'; $osem_inc1->osemservicerequestid = '111'; $osem_inc1->osemendpoint = 'testurl.com'; $osem_inc1->save(); $inc2 = new RNCPHP\Incident(); $inc2->subject = 'This is a post from facebook'; $inc2->primarycontact = $contact; $inc2->save(); static::$incident[0] = $inc1; static::$incident[1] = $inc2; return; public static function fetchobject($action, $object_type ) { return(static::$incident); public static function validate($action, $object ) { 12

$retval = false; if ($action==rncpm\actionupdate) { if ($object->statuswithtype->status->lookupname == "Solved") { if ($object->subject == "TestSuccess") { $retval = true; else { if ($object->subject!= "TestSuccess") { $retval = true; if ($retval) { echo(" Success\n"); else { echo(" Failure\n"); return $retval; public static function cleanup() { foreach (static::$incident as $inc) { $inc->destroy; static::$incident = NULL; return; 4) Save the file with name osem_callback.php. 5) Create a new Server Process Object Event handler with the procedure name: osem_callback and upload the previously saved osem_callback.php file. 13

6) Save the procedure and then test the procedure by clicking on the Test button. 7) Confirm that the test result was a Success. A failed test is typically because there is an error in the script itself or an exception was not caught in the test harness of the event handler. Please verify your script and test again. More details on custom processes can be found in the Core Features > Custom Processes > Overview > Adding object event handlers section of the user guide. The latest user guide can be found at: https://cx.rightnow.com/app/answers/detail/a_id/5168. 8) Save the procedure once again and then deploy the procedure by clicking on the deploy button. 9) Once deployed, click on RN->Incident to go to the Custom Event Handlers for the Incident Object. 10) Select osem_callback for the Update event. Save and Deploy the event handler. 11) This completes the deployment of the custom process for the integration. 14

Creation of a Profile that Social Engagement & Monitoring Cloud Service would use to call Oracle RightNow APIs 1) In Oracle RightNow Cloud Service navigate to Configuration -> Staff Management -> Profiles 2) Click on New on the ribbon bar 3) Create a new Profile in RightNow and fill in the appropriate fields. 4) Click on the Permissions button in the Ribbon bar 15

5) Make sure that the Public Soap APIs permissions are selected. 6) You can use an existing profile if required; as long as you make sure that the profile has the above Public SOAP API permissions selected. Creation of a Staff Account that Social Engagement & Monitoring Cloud Service would use to call Oracle RightNow APIs 1) In Oracle RightNow Cloud Service navigate to Configuration -> Staff Management -> Staff Account by Profile 16

2) Click on the New button in the ribbon bar to create a new staff account. 3) Enter the required fields to create a staff account and save the record 4) Make sure that for the staff account you are creating, you select the profile that you configured in the previous section. 17

Setting up Oracle RightNow Cloud Service plug-in parameters in the Social Engagement & Monitoring Cloud Service admin screen In this step you will input the end-point URL of the Oracle RightNow SOAP APIs and username/password that Social Engagement & Monitoring Cloud Service will use to call the Oracle RightNow APIs. 1) Login to Oracle Social Engagement & Monitoring Cloud Service. Navigate to Plugins sub-section of the Workflow & Automation section. 2) Populate the RightNow username, password & URL in the RightNow section of the plugins page. 3) The RightNow WSDL URL should be of the format: http://<host_name>/cgibin/<interface>.cfg/services/soap?wsdl. Contact your Oracle RightNow Customer Success Manager if you have any questions about the WSDL. Setting up Twitter channel Accounts in Oracle RightNow Social Monitor In order to respond to twitter posts sent from Oracle Social Engagement & Monitoring Cloud Service to Oracle RightNow Cloud Service, you need to add twitter channel accounts to Oracle RightNow Cloud Service. The details to setup the twitter channel account can be found in the Oracle RightNow User guide in the section: Social Experience > Channels > Social channels overview > Adding Twitter channel accounts 18

You can find the latest Oracle RightNow User guide at the location: https://cx.rightnow.com/app/answers/detail/a_id/5168 Conclusion This concludes the required configuration for you to send posts from Oracle Social Engagement & Monitoring Cloud Service to Oracle RightNow Cloud Service as incidents and for Oracle Social Engagement & Monitoring Cloud Service to get updates on the post s internal activity once the incident is closed. 19

Integration between Oracle RightNow Cloud Service & Social Engagement & Monitoring Cloud Service September 2013 Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. Worldwide Inquiries: Phone: +1.650.506.7000 Fax: +1.650.506.7200 Copyright 2013, Oracle and/or its affiliates. All rights reserved. This document is provided for information purposes only and the contents hereof are subject to change without notice. This document is not warranted to be error-free, nor subject to any other warranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability or fitness for a particular purpose. We specifically disclaim any liability with respect to this document and no contractual obligations are formed either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without our prior written permission. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners. Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark licensed through X/Open Company, Ltd. 0312 oracle.com