+ All Categories
Home > Documents > rightnow5

rightnow5

Date post: 28-Mar-2016
Category:
Upload: thomas-weinstein
View: 217 times
Download: 1 times
Share this document with a friend
Description:
rightnow material
Popular Tags:
71
© RightNow Technologies, Inc. Connect Web Services for SOAP Introduction and Overview Mark Ericson [email protected]
Transcript
Page 1: rightnow5

© RightNow Technologies, Inc.

Connect Web Services for SOAP

Introduction and Overview

Mark Ericson

[email protected]

Page 2: rightnow5

Disclaimer

Statements included in this presentation, other than statements or characterizations of historical fact, are forward-looking statements. These forward-looking statements are based on our current expectations, estimates, and projections about our industry, management‟s beliefs, and certain assumptions made by us, all of which are subject to change. Forward-looking statements can often be identified by the words such as “anticipates,” “expects,” “intends,” “plans,” “predicts,” “believes,” “seeks,” “estimates,” “may,” “will,” “should,” “would,” “could,” “potential,” “continue,” “ongoing,” similar expressions, and variation or negatives of these words. These forward-looking statements are not guarantees of future results and are subject to risks, uncertainties, and assumptions that could cause our actual results to differ materially and adversely from those expressed in any forward-looking statement.

The risks and uncertainties referred to above include, but are not limited to, our assessment of current trends in the CRM market, possible changes to our approach to CRM and our core product strategies, changes to the functionality and timing of future product releases, customer acceptance of our existing and newer products, possible fluctuations in our operating results and our rate of growth, interruptions or delays in our hosting operations, breaches of our security measures, and our ability to expand, retain, and motivate our employees and manage our growth. Further information on potential factors that could affect our financial results are included in our annual and periodic filings with the Securities and Exchange Commission.

By sharing our product roadmap with you, we are not undertaking an obligation to develop the software with the features and functionality discussed herein.

The forward-looking statements in this presentation are made as of August 20, 2010 (today). We undertake no obligation to revise or update publicly any forward-looking statement for any reason.

Page 3: rightnow5

What to expect from this presentation…

Introduction to Connect Web Services for SOAP

Web Services Background

Overview of API key concepts and capabilities

Discussion of RightNow API directions

Covered in other RDC sessions…Common Object Model

Coding examples

RightNow Object Query Language (ROQL)

Custom Objects & Generic / metadata-driven coding

Page 4: rightnow5

Agenda

Introducing Connect Web Services for SOAP !

Web Services background and key concepts

Connect Web Services for SOAP capabilities

Choosing the right data RightNow API

Conclusion

Page 5: rightnow5
Page 6: rightnow5

Connect Web Services for SOAP

Latest (and greatest) API from RightNow

Released with RightNow CX May‟2010

Based on the Connect Common Object Model

Designed for…Standards Compliance

Ease of use

Backward compatibility

Interoperability

Efficiency

Extensibility

Page 7: rightnow5

© RightNow Technologies, Inc.

Connect Web Services for

SOAP Introduction

Web Services Background

Page 8: rightnow5

What are Web Services?

Web APIs that can be accessed over a network, often the internet

Typically client/server communications using Web (W3C) standards

HTTP protocol

XML Encoding

SOAP messaging

WSDL contracts

Two predominate Web Services approaches…

SOAP & REST

Page 9: rightnow5

What is SOAP?

W3C - Simple Object Access Protocol

An XML-based wire-protocol for web services

Often delivered over HTTP

actually transport neutral

XML Consists of

a header (for meta information)

and a body (for request and data information)

Note: RightNow initially supporting SOAP v1.1

Page 10: rightnow5

What is a WSDL?

W3C - Web Services Definition Language

Companion to SOAP (the protocol)

A shared contract between client & server

requester / responder, producer / consumer, …

Describes available operations supported by server

Describes „wire syntax‟ (parameters) for those operations

Describes „assertions‟ of capabilities

Note: RightNow initially supporting WSDL v1.1

Page 11: rightnow5

Why WSDL & SOAP?

Interoperability…. IBM & Microsoft agreed!

and HP, Oracle, SAP, etc…

Standards-based

Not a proprietary protocol

Broad tooling and programming language support

Universal integration

“Out of the box” experience

Most tooling directly consumes a WSDL

“adapter-less” integrations

Extensible with additional standards

Security, Reliable Messaging, Routing/Addressing, Eventing,

Transactions, etc.

Page 12: rightnow5

What is REST?

Representational State Transfer – REST

Style of software architecture for client / server communication

Server transfers “representations” of “resources”

Generally used for web mashups

RightNow currently does not offer a RESTfulAPI

Page 13: rightnow5

REST vs. SOAP

Ongoing heated debate… RESTful vs. SOAP web services

In general… SOAP=enterprise integration, REST=web (mashups & AJAX)

Pros Cons

REST

-Simple & lightweight

-Works w/current HTTP stacks

-Widely used on Web

-Especially effective for web-browser (AJAX)

-No one standard

-Multiple payload formats

-No formal „contract‟

-Transport-level security only

-No asynchronous messaging

-No enterprise class standards (transactions,

reliable messaging, security, routing, …)

SOAP

-WSDL/Schema provide contract

- Common enterprise solution

- Headers enable aggregated standards

- Extensive tooling available

- Many add-on enterprise standards

(transactions, reliable messaging, security,

addressing, …)

-Not as simple or lightweight

-Additional complexity & overhead

-Difficult to do well in a web browser

Page 14: rightnow5

SOA – a tale of two cities…

SOA = Service Oriented Architecture

SOA the Product

SOA has become a dirty word in some camps because of the heavy commercialization of SOA by vendors such as Progress Software, IBM & others.

These vendors have told customers to do SOA you need a laundry list of technologies and standards

• ESB, UDDI, XML edge-appliance, etc.

SOA the Architecture

Originally SOA was intended as a software architecture.

A good SOA decomposes systems into a set of independent services that can be flexibly reused and combined in different ways

In theory SOA delivers maximum IT agility

“SOA is dead… long live services!”

– Anne Thomas Manes, Burton Group

Page 15: rightnow5

Additional Web Services Resources

Resource Description Location

Introduction

to Web Services

W3C Web Services

tutorialhttp://www.w3schools.com/webservices/ws_intro.asp

Introduction

to WSDLW3C WSDL tutorial http://www.w3schools.com/wsdl/wsdl_intro.asp

Introduction

to XMLW3C XML Introduction http://www.w3schools.com/xml/xml_whatis.asp

Page 16: rightnow5

© RightNow Technologies, Inc.

Connect Web Services for

SOAP Introduction

Capabilities Overview

Page 17: rightnow5

What is Connect Web Services for SOAP?

Open & standards based integration capabilities to data contained within RightNow

OpenConsumable by customers with or without RightNow professional services

Fully documented and available resources for self sufficiency

Non-proprietary protocols

Extensible (custom objects)

StandardsConfidence of interoperability

Consumable by tooling and processes that understand the standards

Page 18: rightnow5

Standards Supported

W3CWSDL 1.1

SOAP 1.1

XML

XML Schema

HTTP/S

OASISWeb Services Security (WSS)

• Username Token Profile

WS-IBasic Profile 1.1

OtherMTOM

Page 19: rightnow5

Capabilities Overview

Object Model

Operational Behavior

Optimizations

Other Capabilities

Including Custom Objects

Pricing & Limits

Page 20: rightnow5

Object Model

Page 21: rightnow5

Core Object Concepts

Primary ObjectsCRUD-capable objects

Each has a unique ID (for its type)

All inherit from RNObject

• Account, Answer, Contact, Incident, Opportunity, Organization, SalesProduct, ServiceCategory, ServiceDisposition, ServiceProduct, Task

Sub-ObjectsChild relationship to parent object

• „contained‟ by parent (aggregation)

• Child can‟t exist without the parent

Can‟t use CRUD operations on Sub-Objects• Instead, managed inline within Parent

Page 22: rightnow5

RightNow Sub-Objects

AccountCTISettings

AccountOptions

AccountSalesSettings

AccountServiceSettings

AccountSpeedDial

AccountSpeedDialList

Address

AnswerLink

AnswerNotification

Banner

CategoryNotification

ContactMarketingSettings

ContactSalesSettings

ContactServiceSettings

CRMModules

Email

FileAttachment

FileAttachmentAnswer

FileAttachmentCommon

FileAttachmentIncident

FileAttachmentShared

GroupAccount

IncidentContact

IncidentContactDelta

InheritOptions

Label

LabelRequired

MonetaryValue

Note

OpportunityContact

OpportunityContactDelta

OpportunityContactList

OrganizationSalesSettings

OrganizationServiceSettings

PersonFullName

PersonName

Phone

ProductNotification

Quote

QuoteLineItem

SalesProductSchedule

SLAInstance

StageWithStrategy

StatusWithType

TaskMarketingSettings

TaskSalesSettings

TaskServiceSettings

Thread

TimeBilled

TypedAddress

Page 23: rightnow5

Operational Behavior

Page 24: rightnow5

CRUD Operations

CRUD manages database „lifecycle‟ of objects

Create, Read (Get), Update, Delete (Destroy)

CRUD operations share common behavior

All operations are polymorphic

Create(Contact) or Create(Incident) not CreateContact

All operations support „Bulk‟

Filtering of fields returned byexemplar Object(s)

Support for inline CRUD of sub-objects

Special processing options on operations

Controls execution of external events / rules

Page 25: rightnow5

Creating Objects with Create()

Create one or more Primary Objects

Polymorphic, for any primary objectEven mixed types

Can populate fields of object during create

Even create Sub-Objects during create !

Returns object(s) with ID values if succesfulFault (exception) if nots

Page 26: rightnow5

Demo: Create

Page 27: rightnow5

Updating Objects with Update()

Updates one or more Primary Objects

Only passed in fields are updated

Only ID and changed fields are required

Empty fields are ignored

Returns empty response if successful

Fault (exception) if not

Page 28: rightnow5

Demo: Update

Page 29: rightnow5

Reading Objects with Get()

Read one or more Primary ObjectsFor retrieval by ID

Must have ID to use

To discover objects use ROQL to query

Polymorphic, for any primary objectEven mixed types

Object(s) passed in to specify type and ID

Control over details returned by input objectInstantiate Sub-Objects to retrieve on input object

Instantiate NamedID objects to retrieve both ID and Name• Otherwise just ID returned

Returns an array of RNObject (primary objects) if successfulFault (exception) if not

Page 30: rightnow5

Demo: Get

Page 31: rightnow5

Relationships – Sub-Object

SubObjects are „children‟ of a parent object

They don‟t exist separate apart from parent

Deleted when parent is deleted

Managed „inline‟ within parent object

Some 1:1, others 1:* (managed as lists)

„Delta List‟ allows inline CRUD of SubObjects

while operating on parent object

Page 32: rightnow5

Demo: Update w/SubObjects

Page 33: rightnow5

Relationships - NameID

NamedID represent relationship to other Objects by „name‟ or „ID‟Binding by name is a shortcut for not having to query for the ID

Also, names can be retrieved on get to have both Name & ID for object

Used for some Primary Object RelationshipsContact on Incident can be set by Contact‟s email address

Used for „Menu Items‟MenuItem (aka OptList) are predefined or administratively sets of values

• usually exposed as menu fields on workspaces

• ContactType, Severity, Products, Categories, etc.

NamedIDHierarchySome MenuItems are hierarchical and NamedIDHierarchy is used

• Product & Category on Incident

NamedIDHierarchyListSometimes a „list‟ of hierarchical menuitem values are supported

Products & Categories on Answer

Page 34: rightnow5

Demo: NamedID

Page 35: rightnow5

Other (non-CRUD) Operations

Marketing OperationsSend mailing to a contact

Execute a campaign flow

Download & upload file attachmentsAdd/Retrieve files using MTOM standard

First API to manage file attachments via API• vs. URL to retrieve file

Helper operationsReset a contact password

Metadata OperationsRetrieve the object model (metadata) at runtime

Great for Partners

Release independent coding

Dynamic discovery of types (MenuItems and Custom Objects)

Page 36: rightnow5

Deleting Objects with Destroy()

Delete one or more Primary Objects

Instance with ID is passed in

Children (sub-objects) also deleted

Returns an empty response if successful

Fault (or exception) if not

Page 37: rightnow5

Demo: Destroy

Page 38: rightnow5

Optimizations

Page 39: rightnow5

RightNow Web Services Optimizations

RightNow offers many optimizations in the WSDL which can significantly improve performance by…

Operating on many objects at the same time

Performing a many operations in a single sever request

Reducing round-trips and the inherent latency

Optimizations are surfaced conveniently to program language bindings

Not just wire-level optimization concepts

Page 40: rightnow5

Key optimizations in RightNow WSDL

Polymorphic Bulk operationsMixed object CRUD capabilities

• Create a contact, incident & organization in a single request

Batch operationsMixed operation capabilities

Can create, update, delete and send mailing to a contact in a single request

Chaining IDsSupported on CRUD operations

Can create a new contact and “chain” the contact id to a new incident, setting the incident contact, in a single request

Page 41: rightnow5

Typical SOAP Requests

Inefficient, one object-operation per request!

Page 42: rightnow5

Bulk Operations

Some Web Services allow operations on

many objects in one SOAP request

Page 43: rightnow5

Batch

Few Web Services offer Batch

z

Page 44: rightnow5

Chaining

Chaining allows passing results from one

operation to parameters of a subsequent

operation

Typically new ID from create to subsequent

create/update requests

Page 45: rightnow5

Bulk, Batch, & Chaining

RightNow may be unique to combine…

z

Page 46: rightnow5

Demo: Batch, Bulk, & Chaining

Page 47: rightnow5

Previously Discussed Optimizations

NamedID

Relationship binding by name

• Eliminates separate round-trip for an ID lookup

Inline CRUD

Manage Sub-Objects inline

Add, or Remove from list in same call as

MTOM file attachments

Page 48: rightnow5

Other Capabilities

Page 49: rightnow5

Other Capabilities

Versioning & Backward Compatibility

RightNow Object Query Language (ROQL)

Security & Authentication

Transactional Behavior

File Attachments

Custom Fields

Generic Objects & Metadata

Custom Objects

Page 50: rightnow5

Versioning & Backward Compatibility

Web Services use versioning scheme to support backward compatibility

Version is indicated by URI in XML namespace

For example, objects with XML namespace• urn:objects.ws.rightnow.com/v1

Namespace version is updated with major API changes (breaking changes)

API versioning is independent of release version

Might have several releases of RightNow without namespace changing

New RightNow releases will support old version (up to 2 years) and the latest version of the API

Page 51: rightnow5

RightNow Object Query Language

ROQL – Pronounced “Rockwell”

SQL-like query language exposes Connect Common Object Model

Alternative to using analytics reports in other RightNow APIs

Supports two query styles

object query & results – to retrieve typed objects

tabular query/results – for selective raw data

Each has different query syntax and result data

Access to only those objects exposed in the API

Subset of direct SQL and analytics today

Object model coverage will expand over time

Paging support

Request # of objects/rows per „page‟

Result returns count & startindex,

use count „offset‟ in next query

BREAKOUT

RightNow Object Query Language Overview @ 5-6pm today!

Page 52: rightnow5

Demo: ROQL

Page 53: rightnow5

Security (Authentication & Cryptography)

AuthenticationWe use WSS (Web Services Security) standard for authentication

• Username Token Authentication

Username & password sent with every request• Not session-based, scalable to messaging models

Most toolkits automate this• Set once in code, toolkit sends with every request

EncryptionTransport level security

• Web Services use TLS (SSL) on the HTTP connection to encrypt the data being passed between the client and RightNow CX.

Page 54: rightnow5

Transactional Behavior

Simple modelOne operation per SOAP request

Operation succeeds or fails (only committed if succesful)

Batch ModelBatches of operations are atomic

First operation that fails does a rollback of database

Developer must parse BatchResponseItem array to determine if transaction rolled back

• Note: Operations prior to failure will show success, but if later fault occurs everything rolled back

Multi-transaction Batch ModelAllows multiple transactions within a single batch

• Or, per operation transactional behavior within batch

Accomplished by tagging operation in batch to be „CommitAfter‟• Uisng CommitAfter attribute on BatchRequestItem

Must parse results to determine which transactions succeeded or failed

Page 55: rightnow5

Demo: Transactions

Page 56: rightnow5

File Attachments

File Attachments completely managed through the APIOther APIs require out of band retrieval of attachments from URL

File attachment objects Represent attachment on objects with attachment support

Provides all the meta information for attachment(s)• ID, ContentType, Filename, Size, Created/Updated Time

Support for MTOM standardMTOM (Message Transmission Optimization Mechanism)

• Uses HTML Multipart to transmit as binary for greater efficiency (save 33% overhead)

MTOM recommended for large attachments

Uploading attachmentsOn Create or Update operations

Using Base64 inline, or toolkit‟s MTOM mechanism

Downloading AttachmentsUsing GetFileData operation with ID (base64 or MTOM)

Page 57: rightnow5

No demo for file attachments

Page 58: rightnow5

Custom Fields

Added Custom Fields available on objects

„CustomFields‟ sequence of „GenericField‟

Available fields discovered in MetaData

GetMetaDataForClass()

GenericField

Name, DataValue, & DataType

Name corresponds to the „column name‟

Custom fields have „C$‟ prefix

Set/Update inline with Object

Page 59: rightnow5

Demo: Custom Fields

Page 60: rightnow5

Generic Objects & Metadata

Generic Objects - dynamically typed objects

Types dynamically discovered via metadata, and objects constructed at runtime

vs. generating typed language bindings form WSDL

Metadata Describes aspects of data model not possible with XML

Schema

Runtime discovery of type information and other constraints

Use cases

3rd Parties that want to develop version & site-independent code

Metadata driven programming that is „forward compatible‟

Generic Objects also used for „Custom Objects‟

BREAKOUT

“Web Services for SOAP & Custom Objects”

Wednesday 2:30 – 3:30

Page 61: rightnow5

Demo: Generic Objects & Metadata

Page 62: rightnow5

Custom Objects

„Custom Objects‟ available only through Common Object Model based APIs

Connect Web Services for SOAP & Connect PHP

Custom Objects discoverable through metadata

Custom Objects use GenericObject bindings

BREAKOUT

Web Services for SOAP & Custom Objects”

Wednesday 2:30 – 3:30

Page 63: rightnow5

© RightNow Technologies, Inc.

Connect Web Services for

SOAP Introduction

API Pricing and Limits

Page 64: rightnow5

Web Services API Pricing

„API operations‟ are allocated on an annual basis

API Operation corresponds to each WSDL operation

Generous amount of „API operations‟ allotted

Scales by # of seats licensed

Standard Enterprise ECC

Annual Allocations per licensed User (by type)

Named User 109,500 547,500 2,737,500

Concurrent User 328,500 1,642,500 4,927,500

Seat Month 9,125 45,625 228,125

Concurrent Seat

Month27,375 136,875 410,625

Page 66: rightnow5

© RightNow Technologies, Inc.

Connect Web Services for

SOAP Introduction

What API should you choose?

Page 67: rightnow5

API Comparison

1ROQL intended to replace reports & SQL2Custom Objects solution for most Custom API use cases3No plans for Custom Objects for Connect DXML-API or Connect

WSDL XML-API Connect (toolkits)

CRUD Core

ObjectsYes Yes Yes

Utility functions Yes Yes Yes

Execute Report No1 Yes Yes

Direct SQL No1 Yes - limited Yes - limited

ROQL Yes No No

Custom API No2 Yes No

Custom Objects Yes No3 No3

Page 68: rightnow5

What API to Choose?

Connect Web Services for SOAPAll new integrations moving forward

Connect Web Services for SOAP + XML-APIWhere gaps exist in object model

Connect Data Integration or XML-APIExisting legacy integrations

Plan on migrating to Web Services for SOAP!

Connect Desktop Add-in FrameworkFor sclient-side desktop extensions and automation

Page 69: rightnow5

© RightNow Technologies, Inc.

Connect Web Services for

SOAP Introduction

Conclusion

Page 70: rightnow5

Conclusion

Connect Web Services for SOAP…

available May 2010 and beyond

based on the Connect Common Object Model

the latest, greatest & future of RightNow Integration

provides the best interoperability

supports the broadest set of tooling

designed for backward compatibility

• forward compatible through generic objects

the API to use for Custom Objects integration

Recommended API for RightNow CX data

integration

Page 71: rightnow5

© RightNow Technologies, Inc.

Thank you! Questions?

Integration Product Managers

[email protected]

[email protected]