throbber
(19) United States
`(12) Patent Application Publication (10) Pub. No.: US 2009/0006614 A1
`(43) Pub. Date:
`Jan. 1, 2009
`Le et al.
`
`US 20090006614A1
`
`(54) MONITORING WEB SERVICE
`TRANSACTIONS
`
`(75) Inventors:
`
`Bach Le, San Diego, CA (US); Tim
`Drees, San Diego, CA (US); Lenny
`Ratchitsky, San Diego, CA (US);
`Peter KirWan, San Diego, CA
`(US); Rares Saftoiu, San Diego,
`CA (Us)
`
`Correspondence Address:
`PROCOPIO, CORY, HARGREAVES & SAV
`ITCH LLP
`530 B STREET, SUITE 2100
`SAN DIEGO, CA 92101 (US)
`
`(73) Assignee:
`
`(21) Appl. No.:
`
`NEUSTAR, INC., Sterling, VA
`(Us)
`12/163,659
`
`(22) Filed:
`
`Jun. 27, 2008
`
`10\
`
`Related US. Application Data
`(60) Provisional application No. 60/946,931, ?led on Jun.
`28, 2007.
`Publication Classi?cation
`
`(51) Int. Cl.
`(2006.01)
`G06F 15/173
`(52) us. c1. ...................................................... .. 709/224
`(57)
`ABSTRACT
`Systems and methods for monitoring Web service transac
`tions include a monitoring server that is con?gured to monitor
`a Web service transaction. The monitoring server alloWs a
`user to describe a sequence of Web service requests that in
`combination de?ne a Web service transaction. The monitor
`ing server sends out the Web service requests in sequence to
`remote agents that are deployed in geographically diverse
`locations. The agents send the requests to the target Web
`service and the results are provided back to the monitoring
`server. The monitoring server receives the results and then
`dynamically constructs the next request in the series based on
`the sequence of requests from the user and data from the
`response to a prior request. The dynamically constructed next
`request is then sent to remote agents for execution and the
`results are provided to the monitoring server.
`
`SOA/ mash
`up server
`30
`
`Monitoring
`Server
`70
`
`SAP 1007
`IPR of U.S. Patent No. 8,346,894
`Page 1 of 12
`
`

`
`Patent Application Publication
`
`Jan. 1, 2009 Sheet 1 0f 5
`
`US 2009/0006614 A1
`
`10x
`
`Agent
`20
`
`Web
`Server
`50
`
`5
`
`SOA/ mash
`up server
`30
`
`Web
`Network
`4 0 ¢ Server
`60
`
`Monitoring
`Server
`70
`
`FIG. 1A
`
`A 00
`///
`Identify
`sequence of
`web service
`requests
`
`.
`
`m0
`/
`
`Send first/next
`request
`
`V
`
`A
`
`/120
`//
`Receive
`
`7
`
`response
`
`data
`
`‘
`
`FIG. 2
`
`Transform
`
`Y
`
`130/
`
`/150
`///
`
`Send modified
`request
`
`A
`
`Modify
`subsequent
`request with
`.
`response data
`140/
`
`SAP 1007
`IPR of U.S. Patent No. 8,346,894
`Page 2 of 12
`
`

`
`Patent Application Publication
`
`Jan. 1, 2009 Sheet 2 0f 5
`
`US 2009/0006614 A1
`
`http://www.youtube.com/api2_rest‘?user=webmetricsEng&dev_id=WWDnteO8wx8&method=youtube.users.|ist_fav0rite_videos
`
`FIG. 5A
`
`FIG. 5B
`
`Alert
`module
`300
`
`Graph
`module
`310
`
`Transaction
`module
`320
`
`Test
`module
`330
`
`Monitoring server 70
`
`FIG. 1B
`
`SAP 1007
`IPR of U.S. Patent No. 8,346,894
`Page 3 of 12
`
`

`
`Patent Application Publication
`
`Jan. 1, 2009 Sheet 3 0f 5
`
`US 2009/0006614 A1
`
`200
`
`210
`
`220
`
`230
`
`ldentlfy
`sequence of
`web service
`.
`requests
`
`|:|G_ 3
`
`.
`Send first/next
`request
`
`V
`
`7
`
`Receive
`response
`data
`
`‘
`7
`
`Parse
`response
`data
`
`A
`
`Use variable to
`construct
`subsequent ‘
`request
`260/
`
`Store variable
`in memory ‘
`
`250/
`
`v
`Assign portion
`of response
`data to
`variable
`240/
`
`<?xm| version=“1.0“ encoding=“UTF-8“ ?>
`<SOAP-ENV:Enve|ope xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelopel“
`xmlns:xsi=“http://www.w3.org/1999/XM LSchema-instance“
`xmlns:xsd=“http://www.w3.org/1999/XM LSchema“>
`<SOAP-ENV:Body>
`<ns1:doSpeIIingSuggestion xm|ns:ns1=“urn:Goog|eSearch“
`SOAP-ENV:encodingSty|e=“http://schemas.xm|soap.org/soap/encoding/“>
`<key xsi:type=“xsd:string">00000000O0000O0</key>
`<phrase xsi:type=“xsd:string“>britney speers<lphrase>
`</ns1:doSpellingSuggestion>
`</SOAP-ENV:Body>
`</SOAP-ENV:Envelope>
`
`FIG. 4A
`
`<?xm| version=“1.0“ encoding=“UTF-8“ ?>
`<SOAP-ENV:Enve|ope xm|ns:SOAP-ENV=“http://schemas.xm|soap.org/soap/envelopel“
`xmlns:xsi=“http://www.w3.org/1999/XM LSchema-instance“
`xmlns:xsd=“http://www.w3.org/1999/XMLSchema“>
`<SOAP-ENV:Body>
`<ns1:doSpeIIingSuggestionResponse xm|ns:ns1=“urn:Goog|eSearch“ SOAP
`ENV:encodingStyle=“http:llschemas.xmlsoap.org/soap/enc0ding/“>
`<return xsi:type=“xsd:string“>britney spears<lreturn>
`</ns1:doSpelIingSuggestionResponse>
`</SOAP-ENV:Body>
`</SOAP-ENV:Enve|ope>
`
`FIG. 4B
`
`SAP 1007
`IPR of U.S. Patent No. 8,346,894
`Page 4 of 12
`
`

`
`Patent Application Publication
`
`Jan. 1, 2009 Sheet 4 of 5
`
`US 2009/0006614 A1
`
`Assign '-Jariables
`
`FIG. 6
`
`V.-‘arlable Nanwe
`
`Variable RegEx
`
`its-gignn ‘H'.3r'§ai;sie§ Ex: Res-apurnxaz
`
`iiiiiiiii77
`
`PAGE 1 http://wvvw_youtube_com/api2_rest
`method get
`formdatauser=webmetricsEng&method=youtube.users.|ist_favorite_videos&dev_id=WWDnteO
`searchstring crash
`description REST
`
`END
`
`#STEPS 2
`
`PAGE 1 http://www_youtube_com/api2_rest
`pagetimeout 3
`method GET
`formdata user=webmetricsEng&dev_id=WWDnteO8wx8&method=youtube_users_|ist_favorite_videos&
`description REST
`END
`
`varRegexnth VIDEOID4 4 id>(.*?)</id
`varRegex VIDEOID1 id>(.*'?)</id
`varRegexnth VIDEOIDS 5 id>(.*?)</id
`resetheaders
`resettimeout
`
`PAGE 2 http://api.goog|e.com/search/beta2
`header Content—Type text/xml
`ormda arawnewline <'?xm| version=‘1.0‘ encoding=‘UTF-8"?>
`ormda arawnewline <SOAP-ENV:Enve|ope xmlnszSOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/" xm|ns:xsi=“http://
`www_w3_org/1999/XM Lschema-instance" xmlnszxsd="http://www_w3_org/1999/XMLSchema">
`ormda arawnewline
`<SOAP—ENV:Body>
`ormda arawnewline
`<ns1:d0G0og|eSearch xm|ns:ns1="urn:Goog|eSearch"
`ormda arawnewline
`SOAP-ENV:encodingSty|e="http://schemas.xmlsoap_org/soap/encoding/">
`ormda arawnewline
`<key xsi:type="xsd:string">4EuPakFQFH|5uVHBmSfazd9bSrYa9y+Z</key>
`ormda arawnewline
`<q xsi:type=“xsd:string“><VAR V|DEO|D5></q>
`ormda arawnewline
`<start xsi:type="xsd:int“>0</start>
`ormda arawnewline
`<maxResu|ts xsi:type="xsd:int">‘|0</maxResu|ts>
`ormda arawnewline
`<fi|ter xsi:type=“xsd:boo|ean">true<lfi|ter>
`ormda arawnewline
`<restrict xsi:type="xsd:string"></restrict>
`ormda arawnewline
`<safeSearch xsi:type="xsd:boolean“>fa|se</safeSearch>
`ormda arawnewline
`<|r xsi:type="xsd:string"></|r>
`ormda arawnewline
`<ie xsi:type="xsd:string“>|atin1</ie>
`ormda arawnewline
`<oe xsi:type=“xsd:string">|atin1</oe>
`ormda arawnewline
`</ns1:doGoog|eSearch>
`ormda arawnewline
`</SOAP-ENV:Body>
`ormda arawnewline </SOAP-ENV:Enve|ope>
`pagetimeout 3
`method POST
`searchstring YouTube.com
`description SOAP
`END
`
`resetheaders
`resettimeout
`
`FIG. 7C
`
`SAP 1007
`
`IPR of U.S. Patent No. 8,346,894
`Page 5 of 12
`
`SAP 1007
`IPR of U.S. Patent No. 8,346,894
`Page 5 of 12
`
`

`
`Patent Application Publication
`
`Jan. 1, 2009 Sheet 5 of 5
`
`US 2009/0006614 A1
`
`header SOAPAction urn:Goog|eSearchAction
`header Content-'
`ype text/xml
`
`PAGE 1 http://api_goog|e.com/search/beta2
`method post
`ormda arawnew ine <?xm| version='1.0' encoding=‘UTF-8'?>
`'ormda arawnew ine <SOAP—ENV:Enve|ope xm|ns:SOAP—ENV="http:l/schemasxmlsoap.org/soap/envelope/" xm|ns:xsi="http:lI
`wvvw.w3_org/1999/XMLSchema-instance" xm|ns:xsd="http://www_w3_org/1999/XMLSchema">
`ormda arawnew ine <SOAP-ENV:Body>
`ormda arawnew ine
`<ns1:doGoog|eSearch xm|ns:ns1="urn:Goog|eSearch"
`'ormda arawnew ine
`SOAP—ENV:enCodingStyle=“http://schemaexmlsoap.org/soap/encoding/“>
`'ormda arawnew ine
`<key xsi:type=“xsd:string">4EuPakFQFHI5uVHBmSfazd9bSrYa9y+Z</key>
`ormda arawnew ine
`<q xsi:type="xsd:string“>Webmetrics</q>
`'ormda arawnew ine
`<start xsi:type="xsd:int“>0</start>
`'ormda arawnew ine
`<maxResu|ts xsi:type="xsd:int">10</maxResu|ts>
`ormda arawnew ine
`<fi|ter xsi :type="xsd:boo|ean“>true</fi|ter>
`'ormda arawnew ine
`<restrict xsi 2type="xsd:string"></restrict>
`'ormda arawnew ine
`<eafeSearch xsi:type="xsd:boolean“>fa|se</safeSearch>
`ormda arawnew ine
`<|r xsi:type="xsd:string“></|r>
`'ormda arawnew ine
`<ie xsi:type="xsd:string">|atin1</ie>
`'ormda arawnew ine
`<oe xsi:type=“xsd:string">|atin1</oe>
`ormda arawnew ine
`</ns1:doGoog|eSearch>
`'ormda arawnew ine <ISOAP—ENV:Body>
`'ormda arawnew ine </SOAP-ENV:Enve|ope>
`searchstring http://wvvw.webmetrics.com
`description SOAP
`END
`
`FIG. 7B
`
`
`
` Secondary
`Memory 558
`
`Processor
`
`CommunicationBus554
`
`Removable
`
`Storage Drive
`
` Interface 574
`
`Main Memory
`556
`
`Communication
`
`FIG. 8
`
`SAP 1007
`
`IPR of U.S. Patent No. 8,346,894
`Page 6 of 12
`
`SAP 1007
`IPR of U.S. Patent No. 8,346,894
`Page 6 of 12
`
`

`
`US 2009/0006614 A1
`
`Jan. 1, 2009
`
`MONITORING WEB SERVICE
`TRANSACTIONS
`
`RELATED APPLICATION
`[0001] The present application claims priority to US. pro
`visional patent application Ser. No. 60/946,931 ?led Jun. 28,
`2007, Which is incorporated herein by reference in its entirety.
`
`BACKGROUND
`[0002] 1. Field of the Invention
`[0003] The present invention is generally related to Website
`monitoring and more speci?cally related to the monitoring of
`Web service transactions.
`[0004] 2. RelatedArt
`[0005] In conventional Web service monitoring, it is di?i
`cult to test an online Web service from a variety of remote
`locations on a regular interval. Typical solutions hard code a
`series of requests and related values for use in each step of the
`Web service transaction. These conventional solutions are
`problematic and very labor intensive because they require
`manually updating the hard coded values each time the Web
`service transaction is monitored. Data entry errors are intro
`duced by operators that result in incorrect results that then
`require additional monitoring at high labor cost. Additionally,
`the conventional solutions are unable to scale up to the nec
`essary bandWidth required to monitor a Web service transac
`tion from remote locations on a regular interval. Therefore,
`What is needed is a system and method that overcomes these
`signi?cant problems found in the conventional systems as
`described above.
`
`SUMMARY
`[0006] Accordingly, described herein are systems and
`methods for monitoring Web service transactions. A monitor
`ing server is con?gured to monitor a Web service transaction,
`Which is de?ned as a series of steps that include requests to
`one or more Web services that can be hosted by one or more
`different servers such that each step can be discrete Web
`service request. The monitoring server alloWs a user to
`describe a sequence of Web service requests that in combina
`tion de?ne a Web service transaction. The monitoring server
`sends out the various Web service requests in sequence to
`remote agents that are deployed in geographically diverse
`locations. The agents send the requests to the target Web
`service and the results are provided back to the monitoring
`server. The monitoring server then dynamically constructs
`the next request in the series based on the sequence of
`requests from the user and data from the response to a prior
`request and sends the dynamically constructed next request to
`remote agents for execution. In this fashion a Web service
`transaction can be monitored in a Way that approximates the
`actual use of Web services in the ?eld. Other features and
`advantages of the present invention Will become more readily
`apparent to those of ordinary skill in the art after revieWing the
`folloWing detailed description and accompanying draWings.
`BRIEF DESCRIPTION OF THE DRAWINGS
`[0007] The details of the present invention, both as to its
`structure and operation, may be gleaned in part by study of the
`accompanying draWings, in Which like reference numerals
`refer to like parts, and in Which:
`
`[0008] FIG. 1A is a netWork diagram illustrating an
`example system for Web service transaction monitoring
`according to an embodiment of the present invention;
`[0009] FIG. 1B is a block diagram illustrating an example
`monitoring server according to an embodiment of the present
`invention;
`[0010] FIG. 2 is a How diagram illustrating an example
`process for using data in a subsequent transaction according
`to an embodiment of the present invention;
`[0011] FIG. 3 is a How diagram illustrating an example
`process for variable assignment according to an embodiment
`of the present invention;
`[0012] FIGS. 4A and 4B are code sections that illustrate an
`example of a Web service SOAP request according to an
`embodiment of the present invention;
`[0013] FIGS. 5A and 5B are code sections that illustrate an
`example of a Web service REST request according to an
`embodiment of the present invention;
`[0014] FIG. 6 is a dialog box illustrating an example inter
`face for de?ning a variable according to an embodiment of the
`present invention;
`[0015] FIG. 7A is a code section that illustrates an example
`REST Web service script according to an embodiment of the
`present invention;
`[0016] FIG. 7B is a code section that illustrates an example
`SOAP Web service script according to an embodiment of the
`present invention;
`[0017] FIG. 7C is a code section that illustrates an example
`Web service transaction script according to an embodiment of
`the present invention; and
`[0018] FIG. 8 is a block diagram illustrating an example
`computer system that may be used in connection With various
`embodiments described herein.
`DETAILED DESCRIPTION
`[0019] Certain embodiments as disclosed herein provide
`systems and methods for monitoring of Web service transac
`tions. For example, one method as disclosed herein alloWs for
`a monitor server to receive a sequence of Web service requests
`from a user. The monitor server then causes each request to be
`sent to the particular Web service and subsequent requests are
`dynamically constructed such that they may include informa
`tion received by the monitor server in response to a prior Web
`service request. The result of the processing of the sequence
`of Web service requests alloWs the Web service transaction to
`be automatically monitored Without user involvement.
`[0020] After reading this description it Will become appar
`ent to one skilled in the art hoW to implement the invention in
`various alternative embodiments and alternative applications.
`HoWever, although various embodiments of the present
`invention Will be described herein, it is understood that these
`embodiments are presented by Way of example only, and not
`limitation. As such, this detailed description of various alter
`native embodiments should not be construed to limit the
`scope or breadth of the present invention as set forth in the
`appended claims.
`[0021] Web services are becoming an industry standard
`mechanism of sharing data and they enable the linking
`together (serial or parallel or both) of applications hosted by
`one or more Web servers. An example of a Web service trans
`action can be illustrated by a simple car insurance application.
`An applicant ?lls out a request for insurance form at a par
`ticular car insurance Website. The data collected in the insur
`ance form is then encapsulated into a Web service friendly
`
`SAP 1007
`IPR of U.S. Patent No. 8,346,894
`Page 7 of 12
`
`

`
`US 2009/0006614 A1
`
`Jan. 1, 2009
`
`format @(ML, J SON, etc). That data is then sent using REST
`or SOAP to the department of motor vehicles (“DMV”) Web
`service for a record check. The response from the DMV
`comes back and is modi?ed and then submitted to a state and
`or federal government crime Web service to see if the appli
`cant has a criminal history. The response from the crime Web
`service comes back and is modi?ed then submitted to a ?nan
`cial Web service for a credit check. The aggregation of all of
`the responses from the various Web services is then packaged
`and provided to the particular car insurance Website that Was
`offering the insurance product Where the decision Weather or
`not to approve the application can be made.
`[0022] Another example of a Web service transaction is a
`mashup. For example, at a real estate Website, a user enters the
`Zip code of the area in Which he or she is interested in pur
`chasing or renting a home. The Zip code is then sent to a
`classi?eds Web service to determine What rental and for sale
`listings are available in that Zip code. The data from the
`classi?eds Web service is then supplied to a mapping Web
`service and the user is then presented With a map of apart
`ments and or homes that are for rent or sale in the desired area
`code.
`[0023] Web services alloW machines to be interoperable
`regardless of architectural differences in softWare or hard
`Ware. A Web service receives a request for information, pro
`cesses the request, and returns the information requestedi
`typically in the form of extensible markup language (“XML”)
`data or similar languages used in the transmission of infor
`mation across the internet. Types of Web services include
`SOAP (formerly an acronym for Simple Object Access Pro
`tocol although that de?nition for the acronym Was dropped
`With SOAP version 1.2), representational state transfer
`(“REST”), hypertext transfer protocol/ hypertext markup lan
`guage (“HTTP/HTML”), and extensible markup languagei
`remote procedure call (“XML-RPC”).
`[0024] SOAP is a standard maintained by the World Wide
`Web Consortium (“W3C”). SOAP Web services are de?ned
`by a Web services description language (“WSDL”) ?le. This
`?le contains the information needed to generate a properly
`formatted request and describes the format of the response.
`Setting up Web services to monitor a SOAP Web service
`requires a properly con?gured WSDL ?le. SOAP requests are
`typically sent using a POST HTTP request method.
`[0025] REST does not have a standard that is maintained by
`the W3C. Accordingly, the de?nition of the format for
`requests and replies are designed and implemented by the
`company/person offering the Web service. REST usage is
`very popular because of its simplicity and ease of implemen
`tation. REST requests are typically sent using a GET HTTP
`request method Where all parameters are passed in the URL.
`HoWever, the response from the Web service is typically
`XML, JavaScript Object Notation (“JSON”) or something
`similar. POST can also be used as a request format for REST.
`[0026] HTTP/HTML/ TEXT is used for those Web services
`that return strings of text or HTML rather than XML. This
`type of Web service is similar to REST in that the format for
`the request and response is de?ned by the designer of the Web
`service. One example of this is requesting information from a
`page that Will do some sort of processing and returns a mes
`sage indicating Whether it Was successful or not.
`[0027] Hash message authentication code (“HMAC”) and
`message-digest algorithm 5 (“MD5”) are types of message
`authentication codes calculated using a cryptographic hash
`function in combination With a secret key. This is used in the
`
`context of Web services to encode the request in such a Way as
`to ensure its integrity, and to distinguish one request from
`another. For example, pieces of the Web service request can be
`encoded using HMAC or MD5 algorithms. Other encoding
`techniques may also be used as Will be understood by those
`skilled in the art.
`[0028] FIG. 1 is a netWork diagram illustrating an example
`system 10 for Web service transaction monitoring according
`to an embodiment of the present invention. In the illustrated
`embodiment, the system 10 comprises a netWork 40 that
`communicatively links a plurality of agents 20 (only one is
`shoWn for simplicity), a plurality of Web servers 50 and 60
`(only tWo are shoWn for simplicity), a monitoring server 70,
`and an service oriented architecture (“SO ”)/mash-up server
`30. Each of the computing devices shoWn in FIG. 1 is con
`?gured With an associated data storage area.
`[0029] In practice, the SOA server 30 employs the service
`oriented architecture to provide mash-ups to consumers or for
`internal use, for example to track sales information, account
`ing information, or the like. The various Web services used by
`the SOA server 30 may be hosted by a variety of Web servers
`such as Web server 50 and Web server 60 as Well as other Web
`servers (not shoWn). The SOA server 30 has a need to monitor
`these various Web servers (including 50 and 60) to ensure that
`they are operating as needed. In one embodiment, a mashup
`could also be correlated by a Web broWser alone Without the
`need for a separate server doing the aggregation.
`[0030] The monitoring server 70 is con?gured to perform
`the monitoring of Web service transactions. The monitoring
`server 70 is con?gured to monitor a single Web service, for
`example a Web service provided by Web server 50. The moni
`toring server 70 is also con?gured to monitor a plurality of
`Web services that are intentionally used in sequence to
`achieve a desired result. Each of the plurality of Web services
`may be hosted by a separate Web server (e. g., Web server 50).
`Alternatively, a single Web server 50 may also host more than
`one Web service. Additionally, the use of Web services as part
`of a Web service transaction can be sequential and may also be
`in parallel.
`[0031] The monitoring server 70 alloWs for a sequence of
`Web service requests to be created and this sequence of
`requests is carried out by the various agents 20 under the
`control of the monitoring server 70. The monitoring server 70
`is also con?gured to store data that is received in response to
`a request, for example in data storage or as one or more
`variables in volatile memory. The response data can then be
`used by the monitoring server 70 in subsequent requests.
`Advantageously, this use of response data for subsequent
`requests approximates the fashion in Which SOA servers such
`as SOA server 30 actually employ Web services that may be
`provided by Web servers 50 and 60.
`[0032] The monitoring server 70 is also con?gured to vali
`date the data that is received in response to the various
`requests that are processed in order to determine the status of
`the various Web servers 50 and 60 that are used in a sequence
`of Web service requests that de?ne a Web service transaction.
`[0033] The monitoring server provides the ability to assign
`values from a response at any given step to a variable and
`reuse the data stored in that variable in any subsequent
`requests. This ability alloWs the monitoring server to do an
`nth match for anything in the page. For example, FIG. 6 is a
`dialog box illustrating an example interface for de?ning a
`variable according to an embodiment of the present invention.
`As shoWn, the variable being de?ned is named “TITLE” and
`
`SAP 1007
`IPR of U.S. Patent No. 8,346,894
`Page 8 of 12
`
`

`
`US 2009/0006614 Al
`
`Jan. 1, 2009
`
`the variable is to be assigned the contents between the
`“Title>” and “</Title” strings. The nth match column is
`optional in that if a value is not speci?ed, it Will default to the
`?rst match hoWever if the strings “Title>” and “</Title”
`appear in multiple places, it Will return the nth match. As
`shoWn in FIG. 6, n is the 2nd match.
`[0034] For example, given a Web service that provides the
`folloWing response:
`
`[0035] To assign the value 123456789 to a variable called
`ITEM, the Word “ITEM” is entered into the variable name
`?eld, the value “item>(.*?)</item” is entered into the variable
`regex ?eld and the third ?eld is either left blank or the number
`one is entered into the nth match ?eld. When the above data is
`receive in response to a request to the Web service, the
`response Will be parsed and the variable ITEM Will be
`assigned the value 123456789. Alternatively, to assign the
`value 987654312 to the variable ITEM, the value in the “nth
`match” ?eld can be set to the number tWo.
`[0036] FIG. 1B is a block diagram illustrating an example
`monitoring server 70 according to an embodiment of the
`present invention. In the illustrated embodiment, the moni
`toring server 70 comprises an alert module 300, a graph
`module 310, a transaction module 320, and a test module 330.
`[0037] The alert module 300 is con?gured to provide an
`alert of some sort (e.g., email, text message, phone call) in
`response to a certain event. For example, timeout errors,
`connectivity errors, and content errors may each cause an
`alert. Advantageously, if a Web service provides XML
`responses, alerts (e. g., diagnostic emails) include both header
`information and content. In one embodiment, the diagnostic
`email is sent With one ?le attached that includes the header
`information and a second ?le attached that includes the XML
`content so that When a user opens an XML attachment, it Will
`render properly in the broWser, otherWise the broWser Will try
`to interpret it as html and only display the contents of the tags
`and not the tags themselves.
`[0038] The graph module 310 is con?gured to provide
`illustrative information regarding the status of individual Web
`services and Web service transactions that are being moni
`tored. Graphs for individual Web services and Web service
`transactions include (1) load time graphs (response time by
`period, transaction step averages, transaction steps over
`time); (2) city graphs (response timeicity by city (average),
`response time4city by city (scatter), uptime & average
`response timeiall cities); (3) error graphs (errors by type,
`errors by time); and (4) performance trending graphs (uptime
`table, transfer rate, performance variation, Worst hour/Worst
`day). Other graphs can also be included.
`[0039] The transaction module 320 alloWs a user to con?g
`ure a Web service transaction that includes a plurality of
`requests. The transaction module alloWs a user to de?ne vari
`ables that Will store data that can be used in subsequent
`requests. The data in a variable can be prede?ned static data or
`it may be dynamically de?ned from prior response data or
`from data in a local ?le or database that may change over time.
`[0040] Additionally, for SOAP requests using the POST
`method, the transaction module 320 alloWs users to con?gure
`
`?elds that include: (a) service location: Where the Web service
`is located; (b) SOAPAction: usually optional but some Web
`services require it to be set in the header of the transaction; (c)
`XML message: the entire request that Will be sent to the Web
`service; (d) verify keyWord: keyWord We can use to verify a
`successful transaction; and (e) error keyWord: keyWord We
`can use to verify an unsuccessful transaction.
`[0041] For SOAP requests using the GET method, the
`transaction module 320 alloWs users to con?gure ?elds that
`include: (a) service location: Where the Web service is
`located; (b) parameter name/value pair4e.g., parameter
`name: name of data to be passed/parameter value: value of
`data to be passed; (c) complete request: users can opt to use
`this option to set the URL With all of the data included in the
`URL; (d) verify keyWord: keyWord to verify a successful
`transaction; and (e) error keyWord: keyWord to verify an
`unsuccessful transaction.
`[0042] For REST requests using the POST method, the
`transaction module 320 alloWs users to con?gure ?elds that
`include: (a) service location: Where the Web service is
`located; (b) XML message: the XML block that We Will
`submit to the Web service; (c) verify keyWord: keyWord to
`verify a successful transaction; and (d) error keyWord: key
`Word to verify an unsuccessful transaction.
`[0043] For REST requests using the GET method, the
`transaction module 320 alloWs users to con?gure ?elds that
`include: (a) service location: Where the Web service is
`located; (b) parameter name/value pair4e.g., parameter
`name: name of data to be passed/parameter value: value of
`data to be passed; (c) complete request: users can opt to use
`this option to set the URL With all of the data included in the
`URL; (d) verify keyWord: keyWord to verify a successful
`transaction; and (e) error keyWord: keyWord to verify an
`unsuccessful transaction.
`[0044] For Web service requests that return HTML or
`TEXT, the transaction module 320 alloWs users to con?gure
`?elds that include: (a) service location: Where the Web service
`is located; (b) parameter name/value pairie.g., parameter
`name: name of data to be passed/parameter value: value of
`data to be passed; (c) complete request: users can opt to use
`this instead of the parameter name/value pair but Will have to
`specify the entire URL; (d) verify keyWord: keyWord to verify
`a successful transaction; and (e) error keyWord: keyWord to
`verify an unsuccessful transaction.
`[0045] Once a Web service transaction has been set up for
`monitoring, the transaction module 320 is con?gured to
`execute the monitoring in an automatic fashion. This function
`may also be separated out in alternative embodiments to
`provide separation betWeen live production monitoring and
`the creation and testing of monitoring sequences.
`[0046] The test module 330 is con?gured to alloW manual
`or automated testing of a Web service monitoring sequence to
`ensure the settings are correct before automated monitoring
`begins.
`[0047] FIG. 2 is a How diagram illustrating an example
`process for using response data from a prior request in a
`subsequent request according to an embodiment of the
`present invention. In one embodiment, this process may be
`implemented by the monitoring server previously described
`With respect to FIG. 1. Initially, in step 100, the monitoring
`server identi?es a predetermined sequence of Web service
`requests that are desired to be monitored. This sequence of
`Web service requests de?ne a Web service transaction and
`may be provided by a user through a user interface on the
`
`SAP 1007
`IPR of U.S. Patent No. 8,346,894
`Page 9 of 12
`
`

`
`US 2009/0006614 A1
`
`Jan. 1, 2009
`
`monitoring server. The sequence of Web service transactions
`can be predetermined by an administrator of the SOA server,
`for example.
`[0048] Next, in step 110 the ?rst request in the Web service
`transaction is sent to the provider of the Web service. In one
`embodiment, the request may be sent to the Web service
`provider by a plurality of geographically diverse agents oper
`ating under the control of the monitoring server. Next, in step
`120 the response is received from the Web service provider. If
`the data from the response is to be transformed (i.e., used in a
`subsequent request), as determined in step 130, a subsequent
`request in the predetermined list is then modi?ed With the
`prior response data. The modi?ed request is then sent, as
`shoWn in step 150. In one embodiment, the modi?ed request
`may be the next request that is sent as part of the overall Web
`service transaction or it may be a subsequent request that is
`sent tWo or more requests later. If the data is not to be trans
`formed, the monitoring server then sends the next request as
`shoWn in step 110. The process continues until the sequence
`of Web service requests that comprise the Web service trans
`action is exhausted. The transformation process can modify
`data used in the most recent response, remove data, add
`prede?ned static data or add dynamic variables, e.g., date,
`time, and random numbers, just to name a feW types of
`dynamic data.
`[0049] FIG. 3 is a How diagram illustrating an example
`process for variable assignment according to an embodiment
`of the present invention. In one embodiment, this process may
`be implemented by the monitoring server previously
`described With respect to FIG. 1. Initially, in step 200, the
`monitoring server identi?es a predetermined sequence of Web
`service requests that are desired to be monitored, as described
`With respect to FIG. 2. Next, in step 210 the ?rst request is sent
`to the Web service provider and then in step 220 the response
`is received from the Web service provider. In step 230, the
`response is parsed by the monitoring server to identify par
`ticular portions of the response data. These one or more
`particular portions of the response data are then assigned to
`variables in step 240 and the variables are stored in memory
`on the monitoring server for later use, as shoWn in step 250. In
`alternative embodiments, the portion of response data can be
`stored in one or more ?les, stored in a database, a register or
`some other form of storage that does not involve the use of a
`variable. In a subsequent request, either the next request or
`perhaps tWo or three requests later in the Web service trans
`action, the data from one or more variables can be used to
`construct the request, as shoWn in step 260. This dynamically
`constructed request is then sent by the monitoring server, as
`shoWn in step 210. As previously described With respect to
`FIG. 2, When stored data is used to dynamically construct a
`subsequent request, the subsequent request can be modi?ed
`by changing, deleting, or adding static or variable driven data
`to the request.
`[0050] FIGS. 4A and 4B are code sections that illustrate an
`example of a Web service SOAP request sent to a spelling
`suggestion Web service (4A) and the corre

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