throbber
(19) United States
`(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
`
`Page 1 of 44
`
`GOOGLE EXHIBIT 1007
`
`

`

`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
`
`Page 2 of 44
`
`

`

`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
`
`Page 3 of 44
`
`

`

`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
`
`Page 4 of 44
`
`

`

`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
`
`Page 5 of 44
`
`

`

`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
`
`Page 6 of 44
`
`

`

`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
`
`Page 7 of 44
`
`

`

`Patent Application Publication May 24, 2007 Sheet 7 of 28
`
`US 2007/01 18844 A1
`
`FIG. 2A
`
`
`
`lookupoppbutton
`
`Page 8 of 44
`
`

`

`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
`
`
`
`Page 9 of 44
`
`

`

`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
`
`Page 10 of 44
`
`

`

`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
`
`Page 11 of 44
`
`

`

`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
`
`
`
`Page 12 of 44
`
`

`

`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.
`
`
`
`
`
`
`
`Page 13 of 44
`
`

`

`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
`
`Page 14 of 44
`
`

`

`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,
`
`Page 15 of 44
`
`

`

`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
`
`Page 16 of 44
`
`

`

`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
`
`Page 17 of 44
`
`

`

`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
`
`Page 18 of 44
`
`

`

`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
`
`Page 19 of 44
`
`

`

`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
`
`Page 20 of 44
`
`

`

`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
`
`Page 21 of 44
`
`

`

`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
`
`Page 22 of 44
`
`

`

`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
`
`Page 23 of 44
`
`

`

`Patent Application Publication May 24, 2007 Sheet 23 of 28
`
`US 2007/01 18844 A1
`
`1904
`
`1908
`
`1910 N
`LaunchWSPlayer()
`
`
`
`
`
`setFilterFields()
`
`getWSData()
`
`Figure 19
`
`Page 24 of 44
`
`

`

`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
`
`Page 25 of 44
`
`

`

`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
`
`Page 26 of 44
`
`

`

`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
`
`Page 27 of 44
`
`

`

`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
`
`Page 28 of 44
`
`

`

`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
`
`Page 29 of 44
`
`

`

`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.
`
`Page 30 of 44
`
`

`

`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
`
`Page 31 of 44
`
`

`

`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 has functions for querying, inserting, updating,
`and deleting objects provided by web services. The func
`tions provided by the WSManager 127 are shown in Table
`1.
`
`TABLE 1.
`
`WSFactory Function
`queryObject
`insertOrUpdateCobject
`
`deleteObject
`
`Description
`Get a list of instances of an object.
`Inserts or updates a specified instance with
`specified values.
`Deletes

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket