`(12) Patent Application Publication (10) Pub. No.: US 2007/01188.44 A1
`Huang et al.
`(43) Pub. Date:
`May 24, 2007
`
`US 200701 18844A1
`
`(54) DESIGNER AND PLAYER FOR WEB
`SERVICES APPLICATIONS
`
`(76) Inventors: Jin Huang, Mountain House, CA (US);
`Pawan Nachnani, Newark, CA (US);
`Sampath Thasampalayam, Fremont,
`CA (US); Lawrence Lindsey,
`Livermore, CA (US); Paul M. Tabet,
`Danville, CA (US)
`
`Publication Classification
`
`(51) Int. Cl.
`(2006.01)
`G06F 9/46
`(2006.01)
`G06F 9/44
`(52) U.S. Cl. ............................................ 719/330; 71.9/316
`
`ABSTRACT
`(57)
`In the computer field, method and apparatus for Supporting
`web services so as to allow use of web services across
`organizations and allow use of the web services as a data
`Source for a Software application. This allows access to the
`database of another organization via web services with
`access via a web browser. One may access a field of data, a
`group of fields of data or a table of data or other types of
`Software objects including logic. The present system maps
`or binds software object to software object between the
`accessing system and the accessed system. The web service
`access may be supported in a hosted manner by a server
`maintained by yet a third organization.
`
`120
`Server WS Factory
`130
`Generic WS Object
`171
`
`Web Service Object
`GE Attribute /17
`
`WS Object Mapping
`
`Vendor-Specific
`WS Object
`
`Correspondence Address:
`MORRISON & FOERSTER LLP
`7SS PAGE MILL RD
`PALO ALTO, CA 94304-1018 (US)
`(21) Appl. No.:
`11/286,267
`(22) Filed:
`Nov. 23, 2005
`
`101
`
`Browser
`
`Application
`Component 175
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`143
`
`144
`
`Binding
`Application
`Component
`
`Web Service Object
`Attribute
`
`
`
`
`
`Vendor Web Service
`153
`Web Service Object
`
`Attribute
`
`155
`
`SAP Exhibit 1005
`SAP v. Express Mobile, Inc.
`IPR2021-01146
`Page 00001
`
`
`
`Patent Application Publication May 24, 2007 Sheet 1 of 28
`
`US 2007/01 18844 A1
`
`101
`
`104 v
`
`108
`
`Action Builder
`
`Application designer
`110
`WSBuilder
`
`intertet Browser
`
`108
`
`H HTTP(S)/XMLHTTP
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Bring
`
`Application XML
`Definitions
`
`
`
`124
`
`invocation
`XM
`Document
`
`Response
`XML
`Document
`
`Application Server
`Generic WSObject Model
`
`WSAjaxEventManager
`
`132
`
`WSFactory AP
`
`WSLookupBean
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`WS
`Credential
`Manager
`
`Siebel
`WS Adapter
`
`138
`
`136
`Salesforce
`WS Adapter
`
`
`
`P(S)/SOAP
`
`140
`
`Siebel
`Web Services
`
`142
`
`Salesforce
`Web Services
`
`FIG. 1A
`
`IPR2021-01146 Page 00002
`
`
`
`Patent Application Publication May 24, 2007 Sheet 2 of 28
`
`US 2007/01 18844 A1
`
`101
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`BroWSet
`
`Application
`Component 175
`
`
`
`143
`
`Binding
`Application
`Component
`
`
`
`
`
`
`
`144 N Web Service Object
`Attribute
`
`120
`Server WS Factory
`130
`Generic WSObject
`171
`
`Web Service Object
`174
`Attribute
`
`123
`WS Object Mapping
`154
`Vendor-Specific
`WS Object
`
`Vendor Web Service
`153
`Web Service Object
`
`Attribute
`
`155
`
`insert/
`Update/
`Delete
`
`FIG. 1B
`
`IPR2021-01146 Page 00003
`
`
`
`Patent Application Publication May 24, 2007 Sheet 3 of 28
`
`US 2007/01 18844 A1
`
`
`
`
`
`
`
`
`
`
`
`101
`
`BrOWSer
`
`Application Component
`"OppNameTextArea"
`
`182
`
`120
`Server WS Factory
`130
`Generic WS Object
`
`145
`
`146
`
`Binding
`OppNameTextArea
`
`
`
`
`
`Opportunity's
`OppName attribute
`
`
`
`Attribute
`Name = OppName
`Value = BigCorp
`
`FIG. 1C
`
`IPR2021-01146 Page 00004
`
`
`
`Patent Application Publication May 24, 2007 Sheet 4 of 28
`
`US 2007/01 18844 A1
`
`101
`
`BrOWSer
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Application Component
`"OppNameTextArea"
`
`182
`
`145
`
`146
`
`Binding
`OppNameTextArea
`
`Opportunity's
`OppName attribute
`
`120
`Server WS Factory
`130
`Generic WS Object
`Vendor F Salesforce
`Object = Opportunity
`Attribute
`Name = OppName
`Value = BigCorp
`
`
`
`123
`WS Object Mapping
`
`Opportunity Object
`
`Salesforce Web Service
`Object = Opportunity
`Attribute
`Name = OppName
`Value F BigCorp
`
`
`
`
`
`FIG. 1D
`
`IPR2021-01146 Page 00005
`
`
`
`Patent Application Publication May 24, 2007 Sheet 5 of 28
`
`US 2007/01 18844 A1
`
`Establish Connection
`
`160
`
`
`
`Select a web service object
`and define binding(s) between
`object's attributes and application
`Components
`
`161
`
`.
`
`Define Filters
`
`Define Columns
`
`162
`
`163
`
`F.G. 1E
`
`IPR2021-01146 Page 00006
`
`
`
`Patent Application Publication May 24, 2007 Sheet 6 of 28
`
`US 2007/01 18844 A1
`
`164
`
`Display application
`
`165
`Wait for "lookup" button to be
`pressed
`
`166
`Query Web service for data
`
`167
`Display selection lookup table
`
`168
`USer Selects a roW of data and
`presses "submit" button
`
`169
`Copy value(s) from selected row
`to application Component(s)
`according to bindings
`
`FIG. 1F
`
`IPR2021-01146 Page 00007
`
`
`
`Patent Application Publication May 24, 2007 Sheet 7 of 28
`
`US 2007/01 18844 A1
`
`FIG. 2A
`
`
`
`lookupoppbutton
`
`IPR2021-01146 Page 00008
`
`
`
`Patent Application Publication May 24, 2007 Sheet 8 of 28
`
`US 2007/01 18844 A1
`
`
`
`
`
`
`
`
`
`
`
`
`
`Building a web service data source for an application control involves mapping attributes from the web service object to the Nsite
`application controls, Since there may be many data matches, the user will be required to plek the appropriate data at run tirthg.
`This wizard assists En marking the connection with the web service object. mapping the attributas batha controls, and creating
`the run-tarne data selection screen.
`
`Selection
`Selection
`Connection MG lookup Tabled Lookup Table
`pping
`Configuration
`Review
`
`Select the vendor of the web service to for you wish to connect, rtar four togn information, then dick Hext
`Web Service Wendor:
`Batesforce
`st-1304
`Web service R
`stWSalesforce coase s
`306
`ritessoap.Also
`userName: in- 308
`Passaged: Fre
`310
`
`v
`
`FIG. 3
`
`e OpportunityContactrole
`OpportunityHistory
`Opportunity nettern
`Opportunity inefternschedule
`
`3 AES
`
`
`
`IPR2021-01146 Page 00009
`
`
`
`Patent Application Publication May 24, 2007 Sheet 9 of 28
`
`US 2007/01 18844 A1
`
`.
`.
`Select Web service object: " Opportunity.
`Map obiact attributes from the Web service obtact to the controls from your Ksite a fication
`Select
`Application Control
`data Source
`oppNameendrea 3
`Please select
`CosetChecket
`Descriptioned Area
`parate:Aea
`Stage6Rea
`438
`
`K
`
`434
`
`430
`
`Please seect
`
`-
`
`- - - - -
`
`
`
`
`
`402
`
`setect
`
`Application Control
`oppnamerasareas
`
`
`
`
`
`K
`440
`
`444
`
`
`
`Oat Stree
`
`LastModifestyle
`LeadSource
`MainConpetitors:
`
`OrderNumber c
`Owner
`Pricebook2ld
`Pricebook
`Recorded
`
`IPR2021-01146 Page 00010
`
`
`
`Patent Application Publication May 24, 2007 Sheet 10 of 28
`
`US 2007/01 18844 A1
`
`
`
`oppNameTextArea
`DescriptionTedAreas
`
`atta Source
`Nine
`Description
`StageName
`sciosed
`
`FIG. 4D
`
`IPR2021-01146 Page 00011
`
`
`
`Patent Application Publication May 24, 2007 Sheet 11 of 28
`
`US 2007/01 18844 A1
`
`502
`
`:: Sigfilgirikip
`
`504
`1
`Wendor name: salestore
`1 506
`earay
`Select Web Service Object ------
`The Selection lookup sbie is how the user will select specife aferrestion.
`The Salaction Lookup Table is rida up of fitars to target the data and
`calurry of the data itself.
`8aact the attributes to use as filters, you may seed the fears with date
`from the upplication control, so appropriate selections will appear in the
`lookup table upon launching of the screen
`select
`Filter Type
`Filter
`3 Please select
`Last ModifiedByid
`
`e Berg
`2
`
`514
`
`
`
`Control to seed Filter
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`OrderNumber.c
`Owner
`Pricek2
`Pricebooks
`Prait
`
`
`
`SOS
`
`Wendo Nare:
`-
`Select Web Service Object:
`The salection Lookup Table is how the user will salect specific information
`The Selection lookup Table is made up offers to target the dete and
`columns of the data itself.
`Select the attributes to use as filbers. You may seed the filters whith date
`from the application control, so appropriate selections wifi appear in the
`lookup table upon launching of the sereen.
`select
`filter Type
`Filter
`
`Control to seed fitter
`
`Please select
`Accoratic
`Anotra
`Campaigald
`OS838
`
`
`
`IPR2021-01146 Page 00012
`
`
`
`Patent Application Publication May 24, 2007 Sheet 12 of 28
`
`US 2007/01 18844 A1
`
`602
`
`
`
`vendor Name: salestore
`Select Web Service Object:
`
`/ 605
`
`Object Attributes
`N
`
`show at the top of the column.
`
`select web service object opportunity
`select the attributes you wish to use as columns of data. The Columns do not
`have to be the same as the fitars for the data or thin data which is to be
`used in the application,
`
`Object Attributes
`Accountd
`Armount
`Campaignid
`CurrentGenerators c is
`Delivery.nstallationState
`ExpectedRevenue
`ForecastCategory
`
`use the up and down arrows on the far right to define the order of the columns, The filter at the top of the
`tist will be the filtar shown at the farthest left of the selection lookup table. Enter the label you wish to
`show at the top of the column.
`
`
`
`
`
`
`
`IPR2021-01146 Page 00013
`
`
`
`Patent Application Publication May 24, 2007 Sheet 13 of 28
`
`US 2007/01 18844 A1
`
`EEEEEE
`saves
`&:
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Application control
`
`808
`
`DataSource -
`
`FirstName
`
`LeadSource
`Department
`
`salatast
`
`Sai Sigei
`
`unsas
`
`IPR2021-01146 Page 00014
`
`
`
`Patent Application Publication May 24, 2007 Sheet 14 of 28
`
`US 2007/01 18844 A1
`
`
`
`
`
`
`
`
`
`Wendor Name: salesforce
`select Web Service object: Kontact
`The Selection Lookup Table is how the usar will select specific information.
`The 8election kookup Table is made up of filters to target the data and
`columns of the data itself.
`Select the attributes to use as filters, You may seed the fitters with data
`from the application control, so appropriate selections will appear in the
`lookup table upon launchting of the toreen.
`Select
`Fifter Type
`F. ter
`
`a
`1Teciso
`-Dropdowns
`
`FirstName
`LastName
`
`3.
`s
`
`
`
`906
`
`Catro to Seed Filter
`
`tailingPostal Code
`Mattingstate
`Mailingstreet
`alberhoe
`
`Wendor Narine
`select web service object contact
`Select the attributes you wish to use as columns of data. The Columns do not
`have to be the same as the filters for the data or the date which is to be
`used in the application.
`
`LeadSource
`Levec
`MalingCity
`MaltingCountry
`MailingPostalCode
`MailingState
`MailingStreet
`MobilePhone
`OtherCity
`OtherCountry
`:
`Otherfhone
`Use the up and down anows on the far right to define the order of
`tist will be the filter shown at the farthest left of the selection lookup table. Enter the label you wish to
`show at the top of the column,
`
`IPR2021-01146 Page 00015
`
`
`
`Patent Application Publication May 24, 2007 Sheet 15 of 28
`
`US 2007/01 18844 A1
`
`1102
`
`a Form header
`
`lossroot
`opportunity rare
`escriptic -
`
`- - - --ms-X w.ssews
`
`--was -------aw assis :-a:... &--esis
`
`
`
`
`
`FIG. 11
`
`IPR2021-01146 Page 00016
`
`
`
`Patent Application Publication May 24, 2007 Sheet 16 of 28
`
`US 2007/01 18844 A1
`
`1202
`
`a lookup Opportunity from salesford
`1220 s-E
`
`Closedate:
`
`closebate
`
`s
`
`FIG. 12A
`
`
`
`
`
`1202
`
`itlookup opportunity fron salesfor
`name reaseseea T
`S Closedate:
`sessed 9 stations
`United OOffice Portable Generators
`
`
`
`F.G. 12B
`
`IPR2021-01146 Page 00017
`
`
`
`Patent Application Publication May 24, 2007 Sheet 17 of 28
`
`US 2007/01 18844 A1
`
`1202
`
`g Lookup opportunity from safesford
`Name: intest
`
`1210
`closedate:
`
`---
`
`2s-os-2 0053OOOOOOOdfoxAAQ 2s-9-2792.2 false
`
`Displaying i to 1 of of Opportunity. Page 1 i.
`
`submit canal
`
`1216
`
`FIG. 12C
`
`
`
`FIG. 13
`
`IPR2021-01146 Page 00018
`
`
`
`Patent Application Publication May 24, 2007 Sheet 18 of 28
`
`US 2007/01 18844 A1
`
`1402
`
`a lookup contact from Salesforc
`FirstName:
`--
`
`i LastName: Please seeds
`N 1403
`N1405
`
`
`
`404
`
`- - -
`
`-
`
`-
`
`-
`
`- - -
`
`- -
`
`-
`
`.
`
`.
`
`(014) 427-4465
`
`re-3
`Displaying 1 to 10 of 20 of Contact, Page i? 2,
`
`
`
`FIG. 14A
`
`TS-144- - - -
`
`Rogers
`
`Jeen Marie
`
`---- .
`
`|
`
`.
`
`-
`
`.
`
`(- - - - - -uira-a-a-i-les-sha-e----me
`
`1406
`created at
`anic Assistant Nanne Assistant phone birthdate creat diliyid
`iGonzalez
`1956-09-08 loos3000oooodfoxAAQ2004-10-11
`sists.S. 1410"
`.
`.
`.
`.
`.
`. .----- re-wr-
`-er re r" st
`1935-06-0s .0053000000edfoxAAQ2004-10
`-------------...------. .
`. .
`OO53000 OOoodfoXAAQ2004-0-1
`oos300000oodfoxAAQ2004-10-11
`0.53OoooooodfoxAAQ2004-0-1
`1942-05-04 toos3000
`XAAQ2004-10-11
`1944-07-5 loosgooooooodfoxAAqaoo-o-1
`
`IPR2021-01146 Page 00019
`
`
`
`Patent Application Publication May 24, 2007 Sheet 19 of 28
`
`US 2007/01 18844 A1
`
`1402
`
`algkup contact frutin Salestere
`
`FIG. 14B
`
`1402
`
`
`
`
`
`
`
`select first same lastinarie Assistant Nails Assistantiphanisatirthdate created byld
`levy
`Ron Sage
`(503) 421-6782
`
`create dist
`
`to of of C
`
`sissiéisis
`
`
`
`FIG. 14C
`
`IPR2021-01146 Page 00020
`
`
`
`Patent Application Publication May 24, 2007 Sheet 20 of 28
`
`US 2007/01 18844 A1
`
`1502 Referem
`
`Sikh Yi?hihisaas
`opportunity name gas
`Desaissar - :
`Stege creat
`
`
`
`
`
`
`
`
`
`as
`
`Gs seese es?ee)
`
`FIG. 15
`
`IPR2021-01146 Page 00021
`
`
`
`Patent Application Publication May 24, 2007 Sheet 21 of 28
`
`US 2007/01 18844 A1
`
`1602
`
`XML Schema
`
`WSObjectMapping
`
`1604
`
`1606
`
`
`
`
`
`
`
`+List getWSMapping(Connection con, String vendorname, String objectName, WSManager wsManager)()
`+createmappingFile(Connection con, String vendorname, String objectName)0
`+String getxMLMapping(Connection con, String vendorname, String objectName).()
`+WSObject mapWSObject(Connection con, String vendorname, String objectName, String xmText, Object vendorobj)()
`
`K--------
`
`1610
`
`Siebel WSObject Model Sforce WSObject Model
`
`wVSeSn
`
`
`
`
`
`
`
`-
`A
`
`WSAccessManagerimp)
`
`
`
`WSAccessarder
`
`1628
`
`-
`-
`
`CoreexternalCredentialismanager
`
`FIG. 16
`
`IPR2021-01146 Page 00022
`
`
`
`Patent Application Publication May 24, 2007 Sheet 22 of 28
`
`US 2007/01 18844 A1
`
`1704
`
`Form Designer
`
`WS Player
`
`1708 N
`LaunchWSPlayer()
`
`
`
`1802
`
`1804
`
`1806
`
`1808
`
`1810 N
`: LaunchWSPlayer()
`
`
`
`1818 N
`Selected Rows()
`
`FIG. 18
`
`IPR2021-01146 Page 00023
`
`
`
`Patent Application Publication May 24, 2007 Sheet 23 of 28
`
`US 2007/01 18844 A1
`
`1904
`
`1908
`
`1910 N
`LaunchWSPlayer()
`
`
`
`
`
`setFilterFields()
`
`getWSData()
`
`Figure 19
`
`IPR2021-01146 Page 00024
`
`
`
`Patent Application Publication May 24, 2007 Sheet 24 of 28
`
`US 2007/01 18844 A1
`
`2000
`
`Generate XML Request
`Data
`
`2002
`Send XML Request Data
`
`2004
`
`2006
`
`Wait for Response
`
`Get XML response data
`
`2008
`Parse XML response data
`
`2010
`
`Fill in Application Components
`
`End
`
`FIG. 20
`
`IPR2021-01146 Page 00025
`
`
`
`Patent Application Publication May 24, 2007 Sheet 25 of 28
`
`US 2007/01 18844 A1
`
`2100
`
`Receive XML Request
`Data
`
`2102
`Parse XML Request Data
`
`2104
`
`Generate Java Objects
`
`2106
`Invoke WSManager queryObjec
`for every Java Object
`
`2108
`
`Convert resulting list of
`WSObjects to XML Response
`Data
`
`2110
`Send XML Response Data to
`Client
`
`End
`
`FIG 21
`
`IPR2021-01146 Page 00026
`
`
`
`Patent Application Publication May 24, 2007 Sheet 26 of 28
`
`US 2007/01 18844 A1
`
`
`
`2200
`Generate XML Request Data,
`including values from
`Application Components
`
`22O2
`Send XML Request Data
`
`2204
`
`2206
`
`Wait for Response
`
`Get XML response data
`
`2208
`Parse XML response data
`
`2210
`
`Report any errors
`
`FG. 22
`
`IPR2021-01146 Page 00027
`
`
`
`Patent Application Publication May 24, 2007 Sheet 27 of 28
`
`US 2007/01 18844 A1
`
`2300
`
`Receive XML Request
`Data
`
`2302
`Parse XML Request Data
`
`2304
`
`2306
`
`Generate Java Objects
`
`
`
`Invoke WSManager
`insertOrupdate0bject or
`deleteObject for every Java
`Object
`
`2308
`
`Send XML Response to client.
`
`End
`
`FIG. 23
`
`IPR2021-01146 Page 00028
`
`
`
`Patent Application Publication May 24, 2007 Sheet 28 of 28
`
`US 2007/01 18844 A1
`
`" "
`
`-
`
`Segend
`
`".
`
`
`
`Assissississios"
`
`Applications 7 oriars 7 archs / Rents
`esservice
`8&
`tform leader Aid Rew
`Araabtei
`Opportunity are:
`s opportunity descripticn:
`esota:3
`label; sincretaerts. Forecast category
`
`-
`
`" '
`
`help
`
`"
`
`estian
`2404
`
`
`
`
`
`; :::::s:
`textates
`i38885.0053
`textares 1320.207590.
`button-sresous:08393738.
`link-area.01132032916628
`opic
`fnrrernt aregnry ...
`opps
`led source
`to stage are
`if Opportunity tire iters
`a textbrea20
`is texts rea21
`
`3 -
`
`- ----
`
`salt cy.
`select functior,
`
`Esg32S281658.
`
`& sp. esci, is ess
`is
`episi
`Arisatio iiisk. Area(1300e2 oprick chjcontrol)
`Yar cols gas hex,
`yar a rau Syriciteanger stricersal :
`
`FIG. 25
`
`IPR2021-01146 Page 00029
`
`
`
`US 2007/01 18844 A1
`
`May 24, 2007
`
`DESIGNER AND PLAYER FOR WEB SERVICES
`APPLICATIONS
`0001. The specification includes Appendixes A, B, C, and
`D, which form part of the disclosure. Appendix A includes
`a schema describing the structure of an XML data mapping.
`Appendix B includes a format for XML-based invocations,
`and Appendix C contains an example invocation XML
`document. Appendix D contains an example XML descrip
`tion of attribute bindings, column bindings, and filters.
`
`FIELD OF THE INVENTION
`0002 This invention relates to computers and the Inter
`net, and more specifically to web services.
`
`BACKGROUND
`0003 Web services are well known in the computer
`software field. Generally a web service is a computer
`application (software) component accessible over open pro
`tocols. Web services are intended for purposes of interop
`erability, for instance for enterprise application integration
`and business-to-business integration. This addresses the
`problem that enterprises (i.e., organizations) face in inte
`grating their various Software applications with one and
`other. Typically, even inside one organization there may be
`several computer systems even using different operating
`systems. These need to communicate and exchange infor
`mation to serve the needs of the organization. This is
`exacerbated with cross-enterprise collaboration. Hence the
`need for interoperability. Web applications are also well
`known and are a type of distributed application built around
`web browsers. They typically use a computer language Such
`as XML.
`0004 More precisely a web service is an application
`component that communicates via open protocols, processes
`XML messages, describes the messages using XML Schema,
`and provides an endpoint description using WSDL. WSDL
`is the Web Service Description Language. WSDL makes it
`possible to describe an endpoint for a message and its
`behavior. WSDL layers additional information over the
`XML Schema definitions that describe actual messages.
`Hence WSDL provides meta-information about, for
`instance, a computer file to be accessed.
`0005 Web services are web-based enterprise applications
`that use open XML standards and transport protocols to
`exchange data with calling clients (programs). The calling
`client may be at the same organization or at a different
`organization. Organization here does not necessarily refer to
`a particular business or legal entity, but instead any organi
`Zation that maintains a networked computer system.
`
`SUMMARY
`In accordance with this disclosure there is provided
`0006.
`a web services framework to support existing and future web
`service requirements. In one example the web services here
`are used with Software objects such as Software applications
`(i.e., programs) which carry out a business process. See
`commonly owned Patent Application entitled “Browser
`Based Designer and Player, filed Sep. 30, 2005, inventors
`Pawan Nachnani et al., Ser. No. 1 1/241,073, incorporated
`herein by reference in its entirety, which describes a method
`of building software applications. The sort of software
`
`applications disclosed in that Patent Application may also be
`used in the system of the present disclosure. The present
`inventors have determined that it would be useful to support
`web services in Software applications, and other software
`objects, and executing same. Hence the present method and
`apparatus are directed to use of web services to make the
`web service a data source for a software application, and in
`one aspect to Such use of web services in Software applica
`tions built using the methods described in the “Browser
`Based Designer and Player patent application referenced
`above. This use of web services may be in addition to
`Sourcing data from a database Supported by the same orga
`nization as the Software application in question.
`0007. A goal is to access databases and/or business logic
`of other organizations via web services. Typically the web
`service is used to access objects, which may include data and
`operations (logic), in another organization’s computer sys
`tem. What is accessed is generally referred to herein as a
`software object. A software object includes data and/or
`operations from the other organization’s computer system.
`The access is typically over the Internet but not so limited.
`The data source accessed may be a single field of data, a
`group of fields of data, or a table of data. Moreover there are
`provided adapters which allow access to web services Sup
`ported by each of a number of different organizations each
`having a different type of computer system and/or database.
`In one embodiment the present system is hosted by yet a
`third organization which maintains a host server which
`includes a routing engine, a multi-tenant database and a
`process control module for web services.
`0008. By defining bindings between software objects
`Such as application user interface components to other
`software objects such as web services or attributes of web
`services, one can build composite software applications
`which draw objects from several different organizations.
`These bindings can be represented as, for example, data in
`an Extensible Markup Language (XML) based format. Thus
`one software application can have objects drawn from a
`number of enterprises. In addition to the hosted server there
`is a player module which operates at runtime to run the
`application and a designer module which is the builder of the
`application. The adapters are provided for each accessed
`organization’s objects because of differences in the objects
`and associated data. Typically there is at least one adapter for
`each web service vendor. Examples of web service vendors
`include Siebel(R) and Salesforce.com(R). The present method
`accesses a WSDL (Web Service Definition Language)
`description for each vendor, this description being a standard
`metadata type well known in the field for describing web
`service interfaces. Typically there is one such WSDL
`description for each object or entity (enterprise or organi
`zation). Also included is a wizard which is part of the web
`services designer which creates the binding or mapping of
`meta-information to generate composite or other software
`applications. Typically the present system is coded in
`JavaTM, but is not so limited and is intended to be used via
`standard web browsers such as Microsoft Internet Explorer,
`again not so limited.
`BRIEF DESCRIPTION OF THE DRAWINGS
`0009 FIG. 1A is an illustrative drawing of a system for
`developing and executing browser-based applications.
`0010 FIG. 1B is an illustrative drawing of a binding
`between an application component and a web service.
`
`IPR2021-01146 Page 00030
`
`
`
`US 2007/01 18844 A1
`
`May 24, 2007
`
`FIGS. 1C and 1D are illustrative drawings of an
`0011
`example binding between an application component and a
`web service.
`0012 FIG. 1E is an illustrative drawing of a flowchart of
`a process for defining a binding between an application and
`a web service.
`0013 FIG. 1F is an illustrative drawing of a flowchart of
`a process for defining a web service lookup in an application
`player.
`0014 FIG. 2A is an illustrative drawing of defining an
`application text input component in an Application
`Designer.
`0.015
`FIG. 2B is an illustrative drawing of defining an
`application button component in an Application Designer.
`0016 FIG. 3 is an illustrative drawing of defining a web
`service connection in a web services Designer.
`0017 FIGS. 4A-4D are illustrative drawings of binding
`an application component in a web services Designer.
`0018 FIGS. 5A-5B are illustrative drawings of adding
`filters in a web services Designer.
`0.019
`FIGS. 6A-6B are illustrative drawings of adding
`columns in a web services Designer.
`0020 FIG. 7 is an illustrative drawing of defining a table
`area in an Application Designer.
`0021
`FIG. 8 is an illustrative drawing of binding appli
`cation table columns in a web services Designer.
`0022 FIG. 9 is an illustrative drawing of adding filters in
`a web services Designer.
`0023 FIG. 10 is an illustrative drawing of adding col
`umns in a web services Designer.
`0024 FIG. 11 is an illustrative drawing of an application
`in an Application Player.
`0025 FIGS. 12A-12C are illustrative drawings of a selec
`tion lookup table in a web services Player.
`0026 FIG. 13 is an illustrative drawing of an application
`in an Application Player with data retrieved from a web
`service.
`0027 FIGS. 14A-14C are illustrative drawings of a selec
`tion lookup table in a web services Player.
`0028 FIG. 15 is an illustrative drawing of an application
`in an Application Player with data retrieved from a web
`service.
`0029 FIG. 16 is an illustrative drawing of implementa
`tion interfaces and objects.
`0030 FIG. 17 is an illustrative drawing of a process for
`authenticating a user.
`0031
`FIG. 18 is an illustrative drawing of a process for
`invoking a lookup.
`0032 FIG. 19 is an illustrative drawing of a process for
`processing multiple pages of results.
`0033 FIG. 20 is a flowchart of an exemplary portion of
`a method to be executed by a Designer or a Player for
`looking up web service objects.
`
`0034 FIG. 21 is a flowchart of an exemplary portion of
`a method to be executed by a server for looking up web
`service objects.
`0035 FIG. 22 is a flowchart of an exemplary portion of
`a method to be executed by a Designer or a Player for
`inserting, updating, or deleting web service objects.
`0036 FIG. 23 is a flowchart of an exemplary portion of
`a method to be executed by a server for inserting, updating,
`or deleting web service objects.
`0037 FIG. 24 is an illustrative drawing of a Designer
`user interface.
`0038 FIG. 25 is an illustrative drawing of a user-defined
`Script in an action builder.
`
`DETAILED DESCRIPTION
`0039 The following description is presented to enable
`one skilled in the art to make and use the present invention,
`and is provided in the context of particular uses and their
`requirements. Various modifications to preferred embodi
`ments will be readily apparent to those skilled in the art, and
`the generic principles defined herein and may be applied to
`other embodiments and applications without departing from
`the spirit and scope of the invention. Moreover, in the
`following description, numerous details are set forth for the
`purpose of explanation. However, one of ordinary skill in the
`art will realize that the invention, might be practiced without
`the use of these specific details. In other instances, structures
`and devices are shown in block diagram form in order not to
`obscure the description of the invention with unnecessary
`detail. Thus, the present invention is not intended to be
`limited to the embodiments shown, but is to be accorded the
`widest scope consistent with the principles and features
`disclosed herein.
`0040 FIG. 1A is an illustrative drawing of a computer
`enabled system for developing and executing browser-based
`software applications. The system includes a Designer 104
`and a Player 106, as described in the commonly owned
`Patent Application entitled “Browser Based Designer and
`Player,” referenced above. The Player 106 is a computer
`program that provides a user interface which executes a
`browser based application 111, which can receive values
`from web services, send values to web services, and invoke
`other operations provided by web services. An exemplary
`Siebel web service 140 and an exemplary Salesforce web
`service 142 are shown. The Designer 104 is a computer
`program that provides a user interface which allows a user
`to create the application 111. The Designer 104 and Player
`106 execute in a conventional Internet Browser 101, which
`may be, for example, Microsoft Internet Explorer or Mozilla
`FirefoxTM. Each element or component shown in FIG. 1A is
`a software computer program entity to be executed on a
`computer.
`0041) The Designer 104 and Player 106 are provided to
`the Internet Browser 101 by a server 120 as web pages. The
`web pages may be, for example, Java Server Pages (JSP) or
`Java Server Faces (JSF) pages, and may include HTML and
`JavaScriptTM code that implements the Designer 104 and
`Player 106. The server 120 may be, for example, an appli
`cation server computer program Such as JBoss(R or the like.
`The server 120 communicates with the Internet Browser 101
`via a network protocol, e.g., HyperText Transfer Protocol
`
`IPR2021-01146 Page 00031
`
`
`
`US 2007/01 18844 A1
`
`May 24, 2007
`
`(HTTP) or Secure HyperText Transfer Protocol (HTTPs).
`The components shown in the server 120 typically share a
`single address space and communicate with each other via
`function calls. The components shown outside the server
`120 typically communicate with the server via a network
`protocol, such as HTTP for the Internet Browser 101. Note
`that “server here generally refers to software rather than to
`a physical computer.
`0.042
`Applications created by the Designer 104 are
`stored in Extensible Markup Language (XML) format as
`XML definitions 122 in a database 124, and loaded into the
`Player 106 as the application 111. The XML definitions are
`described in the aforementioned commonly-assigned patent
`application, and are described in more detail herein with
`respect to web services-related portions of applications. For
`the web services-based applications described herein, the
`XML definitions include bindings 102 which associate
`application components with web service object attributes.
`0043. The server 120 receives web service interaction
`requests from the Designer 104, e.g., a request for a list of
`objects provided by a web service, and interacts with web
`services provided by specific vendors, such as the Siebel
`Web Service 140 provided by Oracle Corporation of Red
`wood Shores, Calif., and the Salesforce Web Service 142
`provided by Salesforce.com of San Francisco, Calif. The
`server 120 communicates with the web services via a
`network protocol, such as Simple Object Access Protocol
`(SOAP), which may be based on the HTTP or HTTPs
`protocol. The server 120 includes components implemented
`in a computer programming language, e.g., JavaTM, CFTM, or
`the like.
`0044) The components of the server 120 include a
`Generic Web Service Object Model 130 (also referred to
`herein as a Genetic WS Object or a WSObject), and a Web
`Service Factory Application Programming Interface 132
`(also referred to herein as a WSFactory API). The WSFac
`tory API 132 includes a WSObjectMapping 123, which
`maps, i.e., converts, the Generic WS Object Model 130
`(WSObject) to vendor-specific Application Programming
`Interfaces, such as a Siebel Web Service Adapter 134 for
`interacting with the Siebel Web Service 140, and a Sales
`force Web Service Adapter 136 for interacting with the
`Salesforce Web Service 142. More specifically, the WSOb
`jectMapping 123 generates the Generic WSObjects 130 for
`substantially all object types provided by a web service (e.g.
`an Opportunity object type that represents a sales opportu
`nity). The mapping between the Generic WSObject Model
`130 and the vendor-specific adapters, such as the Siebel WS
`(Web Services) Adapter 134, is represented as a WSObject
`XML definition 126, which is stored in the database 124.
`The WSObject XML definition 126 is also referred to herein
`as an XML mapping file and is described in more detail
`below.
`0045. The adapters, e.g., the Siebel WS Adapter 134,
`interact with the vendor specific objects 138 generated by,
`e.g., Apache Axis. Apache Axis is a programming tool
`available from the Apache Software Foundation. The vendor
`specific objects 138 are generated by a software tool, such
`as the Axis WSDL2Java command line tool, from vendor
`specific web service interface descriptions, as is known to
`those skilled in the art. The web service interface descrip
`tions are typically provided by the web service vendor in a
`format such as WSDL.
`
`0046) The WSFactory API 132 includes a WSManager
`127, which