Movatterモバイル変換


[0]ホーム

URL:


US9032067B2 - Determining differences in an event-driven application accessed in different client-tier environments - Google Patents

Determining differences in an event-driven application accessed in different client-tier environments
Download PDF

Info

Publication number
US9032067B2
US9032067B2US12/723,568US72356810AUS9032067B2US 9032067 B2US9032067 B2US 9032067B2US 72356810 AUS72356810 AUS 72356810AUS 9032067 B2US9032067 B2US 9032067B2
Authority
US
United States
Prior art keywords
event
client
driven application
tier
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related, expires
Application number
US12/723,568
Other versions
US20110225289A1 (en
Inventor
Mukul R. Prasad
Ali Mesbah
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu LtdfiledCriticalFujitsu Ltd
Priority to US12/723,568priorityCriticalpatent/US9032067B2/en
Assigned to FUJITSU LIMITEDreassignmentFUJITSU LIMITEDASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: MESBAH, ALI, PRASAD, MUKUL R.
Publication of US20110225289A1publicationCriticalpatent/US20110225289A1/en
Application grantedgrantedCritical
Publication of US9032067B2publicationCriticalpatent/US9032067B2/en
Expired - Fee Relatedlegal-statusCriticalCurrent
Adjusted expirationlegal-statusCritical

Links

Images

Classifications

Definitions

Landscapes

Abstract

In one embodiment, a method includes dynamically crawling an event-driven application in a plurality of client-tier environments; for each of the client-tier environments, generating a behavioral model of the event-driven application based on the dynamic crawling; for each of the behavioral models, determining one or more pairwise equivalences with respect to one or more other ones of the behavioral models; and, for each of the client-tier environments, determining one or more differences in an end-user experience of the event-driven application in the client-tier environment with respect to one or more other end-user experiences of the event-driven application in one or more other ones of the client-tier environments.

Description

TECHNICAL FIELD
The present disclosure relates generally to determining differences in an event-driven application accessed in different client-tier environments.
BACKGROUND
Event-driven applications typically may be accessed in different client-tier environments. However, in many cases, a first client-tier environment may provide a different end-user experience of the event-driven application than a second client-tier environment.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates an example system for accessing one or more event-driven applications.
FIG. 2 illustrates an example Venn diagram depicting various types of differences that may occur in an event-driven application that is accessed in different client-tier environments.
FIG. 3 illustrates an example system for generating one or more behavioral models of an event-driven application.
FIG. 4 illustrates an example behavioral model generated by dynamically crawling an event-driven application in a client-tier environment.
FIG. 5 illustrates an example method for determining one or more differences between two behavioral models of an event-driven application.
FIG. 6 illustrates an example algorithm for comparing two behavioral models at a trace-level.
FIG. 7 illustrates an example algorithm for comparing two behavioral models, and outputting the differences between the two behavioral models.
FIG. 8 illustrates example end-user experiences of an event-driven application accessed in different client-tier environments.
FIG. 9 illustrates a table displaying example internal DOM level differences that occur when an event-driven application is accessed using different web browsers.
FIG. 10aillustrates an example behavioral model generated by dynamically crawling an event-driven application in a first client-tier environment.
FIG. 10billustrates an example behavioral model generated by dynamically crawling the same event-driven application in a second client-tier environment.
FIG. 11 illustrates example screen shots of detected DOM level differences of an event-driven application accessed in different client-tier environments.
FIG. 12 illustrates example tables of detected differences between two behavioral models.
FIG. 13 illustrates an example computer system.
DESCRIPTION OF EXAMPLE EMBODIMENTS
FIG. 1 illustrates anexample system10 for accessing one or more event-drivenapplications30.System10 includes auser14, one ormore clients26, one or more event-drivenapplications30, anetwork38, and one ormore servers46.
Auser14 may interact with aclient26 to access one or more event-drivenapplications30. As an example and not by way of limitation, auser14 may include a person, a program, a device, an automation, any other suitable entity, or a combination of two or more of these.
Aclient26 may send and receive signals to and from one ormore servers46 in order to allow auser14 to access one or more event-drivenapplications30. As an example and not by way of limitation, aclient26 may be an embedded computer system, a system-on-chip (SOC), a single-board computer system (SBC) (such as, for example, a computer-on-module (COM) or system-on-module (SOM)), a desktop computer system, a laptop or notebook computer system, an interactive kiosk, a mainframe, a mesh of computer systems, a mobile telephone, a personal digital assistant (PDA), a server, or a combination of two or more of these. Aclient26 may send and receive any suitable type of signals for accessing an event-drivenapplication30. For example and not by way of limitation, aclient26 may send and receive hypertext transfer protocol (HTTP) signals, file transfer protocol (FTP) signals, or any other suitable signals.
Aclient26 may further include an I/O interface (not shown) that enables auser14 to interact with aclient26. As an example and not by way of limitation, an I/O device may include a keyboard, keypad, microphone, monitor, mouse, printer, scanner, speaker, still camera, stylus, tablet, touchscreen, trackball, video camera, another suitable I/O device, or a combination of two or more of these. An I/O interface of aclient26 may provide auser14 with aviewable display22 of an event-drivenapplication30. As an example and not by way of limitation, an I/O device may be a monitor that provides aviewable display22 to auser14 by displaying an event-drivenapplication30 on the monitor. An I/O interface of aclient26 may further allow auser14 to interact with an event-drivenapplication30 by allowing auser14 to perform one ormore events18. Anevent18 may include any suitable type of user-initiated event. As an example and not by way of limitation, anevent18 may include clicking a mouse, moving a mouse, pressing one or more keys on a keypad, touching a touchscreen, moving a trackball, speaking into a microphone, any other event that may be initiated by auser14, or any combination of two or more of these.
Aclient26 may further include one or more client-tier environments (not shown). A client-tier environment of aclient26 may allow auser14 to access one or more event-drivenapplications30. As an example and not by way of limitation, a client-tier environment may include an operating system (OS) installed on aclient26, a web browser installed on aclient26, one or more settings of a client26 (e.g., such as the screen resolution of a monitor of a client26), one or more variations in a web browser installed on a client26 (e.g., the version and configuration of the web browser, including one or more web browser plug-ins and one or more web browser settings), or any combination of two or more of these.
An OS installed on aclient26 may run one or more web browsers installed on aclient26. As an example and not by way of limitation, the OS may include a Windows® 95/98/NT/XPNista/Mobile OS, an OS-X® OS, a UNIX® OS, a LINUX OS, or any other suitable OS. The web browser installed on aclient26 may allow auser14 to access event-drivenapplications30. For example and not by way of limitation, the web browser may include Microsoft Internet Explorer, Mozilla Firefox, Google® Chrome, Opera®, or any other suitable web browser. In particular embodiments, the web browser may initiate the transmittal of one or moreserver request signals34 from aclient26 to one ormore servers46 over anetwork38. Aserver request signal34 may be based on one ormore events18 from auser14 or web flow from an event-drivenapplication30. As an example and not by way of limitation, auser14 may enter an address for an event-driven application30 (e.g., such as a uniform resource locator (URL) or a uniform resource indicator (URI)) into an address box of the web browser, and the web browser may send aserver request signal34 to aserver46 to request content from an event-drivenapplication30. In particular embodiments, theserver46 may respond to theserver request signal34 by transmitting aserver response signal42 including content corresponding to an event-drivenapplication30 to the web browser in aclient26. After receiving the content, the web browser may render the content into a viewable form so that it may be displayed to auser14 through the I/O interface of aclient26.
An event-drivenapplication30 may provide one more media objects for auser14 to interact with. As an example and not by way of limitation, an event-drivenapplication30 may include a web application, a web 2.0 application, an AJAX-based web application, or any other suitable application that provides media objects. In particular embodiments, an event-drivenapplication30 may be run on aserver46 and interacted with by auser14 through a browser on aclient26. For example and not by way of limitation, content for an event-drivenapplication30 may be sent to the web browser in a programming language, and the web browser may render the programming language viewable on a display so that auser14 may interact with the event-drivenapplication30. In particular embodiments, an event driven application may include one or more contents that may be executed by the web browser.
The media objects provided by an event-drivenapplication30 may be changed (e.g., such as by adding, removing, or modifying the media objects) by one ormore events18 or web flow from the event-drivenapplication30. As an example and not by way of limitation, auser14 may enter data using a keyboard, causing the event-drivenapplication30 to change the media objects provided to theuser14. In particular embodiments, when an event-drivenapplication30 changes the media objects, the altered media objects may be provided to auser14 as a new a screen (or state). An event-drivenapplication30 may include any suitable programming language or combination of programming languages. In particular embodiments, an event-drivenapplication30 may include source code or object code. In particular embodiments, an event-drivenapplication30 may include a higher-level programming language, such as, for example, C, Perl, or a suitable extension thereof. In particular embodiments, an event-drivenapplication30 may include a lower-level programming language, such as assembly language (or machine code). In particular embodiments, an event-drivenapplication30 may include JAVA. In particular embodiments, an event-drivenapplication30 may include Hyper Text Markup Language (HTML), Extensible Markup Language (XML), Javascript (JS), Java Server Pages (JSP), Hypertext Preprocessor (PHP), or other suitable markup language.
Anetwork38 connects one ormore clients26 to one ormore servers46, transporting one or more signals to and from the one ormore clients26 and the one ormore servers46. Anetwork38 may refer to any interconnecting system capable of transmitting audio, video, signals, data, messages, or any combination of the preceding. Anetwork38 may comprise all or a portion of a public switched telephone network (PSTN), a public or private data network, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a local, regional, or global communication or computer network such as the Internet, a wireline or wireless network, an enterprise intranet, other suitable communication link, or any combination of the preceding. Anetwork38 may transport any suitable signal for accessing an event-drivenapplication30 on one ormore servers46. For example and not by way of limitation, anetwork38 may transport HTTP signals, FTP signals, or any other suitable signals.
Aserver46 may store one or more event-drivenapplications30, and may further send and receive signals to and from one ormore clients26 in order to allow auser14 to access one or more event-drivenapplications30 stored in theserver46. As example and not by way of limitation, aserver46 may be an embedded computer system, a system-on-chip (SOC), a single-board computer system (SBC) (such as, for example, a computer-on-module (COM) or system-on-module (SOM)), a desktop computer system, a laptop or notebook computer system, an interactive kiosk, a mainframe, a mesh of computer systems, a mobile telephone, a personal digital assistant (PDA), a server, or a combination of two or more of these. In particular embodiments, aserver46 may receive one or more server request signals34 from a web browser installed on aclient26. In particular embodiments, aserver46 may respond to aserver request signal34 by transmitting aserver response signal42 that includes content corresponding to an event-drivenapplication30 to a web browser in aclient26. Aserver46 may send and receive any suitable signals in order to allow aclient26 to access an event-drivenapplication30. For example and not by way of limitation, aserver46 may send and receive HTTP signals, FTP signals, or any other suitable signals.
In particular embodiments, an event-drivenapplication30 may be accessed in different client-tier environments. As example and not by way of limitation, an event drivenapplication30 may be accessed in a first client-tier environment that includes a Microsoft® Internet Explorer web browser, and the same event-drivenapplication30 may also be accessed in a second client-tier environment that includes a Mozilla® Firefox web browser. In particular embodiments, although the event-drivenapplication30 may be accessed in both client-tier environments, an end-user experience of the event-drivenapplication30 may be different on each client-tier environment. In particular embodiments, such differences may be caused by an OS installed on aclient26, a browser installed on aclient26, any other numerous differences in the client-tier environments, or any combination of two or more of these.
Unfortunately, these different end-user experiences may cause problems because an event-drivenapplication30 may modify the content provided based on one ormore events18 that occur. As an example and not by way of limitation, an event-drivenapplication30 may modify its content based on a user scrolling over certain content in the event-drivenapplication30. However, if the content is displayed differently in certain client-tier environments (or not displayed at all) anevent18 may never occur, and the content may not be modified—causing further differences in the end-user experience As such, even minor differences in an end-user experience may turn into much bigger differences.
FIG. 2 illustrates an example Venn diagram depicting various types of differences that may occur in an event-driven application that is accessed in different client-tier environments. Aset104 may include one or more differences in the Document Object Model (DOM) representations of one or more screens of an event-driven application, one or more differences in a client-side state (e.g., such as in the set or specific values of Javascript® variables on a client), and one or more differences in a set of possible traces (e.g., alternating sequences of screens and events causing the screen transitions) on a client-side. Aset112 may include one or more differences that may be observed by a human user on a web browser. Aset108 may include one or more differences that fall into bothset104 and set112. In particular embodiments, one or more differences that are included in aset104, aset108, aset112, or any combination of two of these may be determined, as is discussed inFIGS. 3-12.
FIG. 3 illustrates anexample system200 for generating one or more behavioral models216 of an event-drivenapplication204. In particular embodiments, a behavioral model216 may be generated for an event-drivenapplication204 in a plurality of client-tier environments212 using one or more crawlers208. As such, the behavioral models216 may be generated automatically and dynamically.
An event-drivenapplication204 ofFIG. 3 may be similar to an event-drivenapplication30 ofFIG. 1. As such, an event-drivenapplication204 may provide one more media objects for a user to interact with.
Acrawler208 may dynamically crawl an event-drivenapplication204. In particular embodiments, the dynamic crawl of a crawler may allow acrawler208 to dynamically analyze an event-drivenapplication204 in order to generate a behavioral model216. As example and not by way of limitation, acrawler208 may include Crawljax, WebCrawler, Methabot, Googlebot, or any other suitable crawler. In particular embodiments, acrawler208 may exercise code on a client (e.g., such asclient26 ofFIG. 1) in order to detect and execute one or more doorways (e.g., clickables) of an event-drivenapplication204. As such, in particular embodiments, acrawler208 may dynamically analyze one or more screens of an event-drivenapplication204 that are rendered by the web browser on a client. Furthermore, acrawler208 may analyze how the one or more executed doorways effect the one or more rendered screens of an event drivenapplication204. In particular embodiments, this may involve replicating (or firing) one or more events, such asevents18 ofFIG. 1 (e.g., clicking on a mouse, typing on a keyboard), in order to analyze how such events effect the dynamic DOM tree in a browser before and after the event is replicated. In particular embodiments, by analyzing and storing the effects that occur before and after each of the replicated events, acrawler208 may incrementally build a behavioral model216 for an event-drivenapplication204.
A client-tier environment212 may allow one or more event-drivenapplications204 to be accessed at a client. In particular embodiments, a client-tier environment may be similar to a client-tier environment ofFIG. 1. As an example and not by way of limitation, a client-tier environment212 may include an operating system (OS) installed on a client, a web browser installed on a client, one or more settings of a client (e.g., such as the screen resolution of a monitor of a client), one or more variations in the web browser installed on a client (e.g., the version and configuration of the web browser, including one or more web browser plug-ins and one or more web browser settings), or any combination of two or more of these.
According to the illustrated embodiment,system200 includes three client-tier environments212. In particular embodiments, each of the client-tier environments212 may be different. For example and not by way of limitation, a client-tier environment212amay include a Windows® Vista OS and a Google® Chrome web browser; a client-tier environment212bmay include a Windows® XP OS, a Microsoft® Internet Explorer web browser, and a particular screen resolution; and a client-tier environment212cmay include a UNIX® OS, a Mozilla® Firefox web browser, and one or more plug-ins for the web browser. Althoughsystem200 illustrates three client-tier environments212,system200 may include more than three client-tier environments212 or less than three client-tier environments212. As an example and not by way of limitation,system200 may include two or more client-tier environments212.
According to the illustrated embodiment, acrawler208 may dynamically crawl an event-drivenapplication204 in each of the client-tier environments212 in order to analyze the event-drivenapplication204. Accordingly, acrawler208 may generate a behavioral model216 for each client-tier environment212. In particular embodiments, the crawling conducted by acrawler208 may be performed in an identical fashion for each client-tier environment212. As an example and not by way of limitation, acrawler208 may replicate the same events (and do so in the same order) while crawling the event-drivenapplication204 on each client-tier environment212. As such, the only differences in the behavioral models216 (if there are any at all) may be caused by the different client-tier environments212. In particular embodiments, the crawling conducted by acrawler208 may be automatic. As an example and not by way of limitation, acrawler208 may be initiated for a particular event-drivenapplication204 in a particular client-tier environment212, and thecrawler208 may perform the entire crawl (including the analysis and behavioral model216 generation) for that particular event-drivenapplication204 in the particular client-tier environment212 without any further prompting.
A behavioral model216 may be generated based on the analysis conducted by acrawler208 on an event-drivenapplication204. According to the illustrated embodiment,system200 includes three behavioral models216—one behavioral model216 for each client-tier environment212. Behavioral models216 are further described inFIG. 4.
FIG. 4 illustrates an examplebehavioral model300 generated by dynamically crawling an event-driven application in a client-tier environment. Abehavioral model300 ofFIG. 4 may be similar to a behavioral model216 ofFIG. 3.
In particular embodiments, abehavioral model300 may be generated by dynamically crawling an event-driven application in a client-tier environment, as is discussed inFIG. 3. For example, abehavioral model300 may be generated by a crawler, such as acrawler208 ofFIG. 3.
In particular embodiments, abehavioral model300 may be a finite state machine (FSM) with partial transition functions. As an example and not by way of limitation, abehavioral model300 may include each of the states of the event-driven application, and each of the transitions that caused each of the states. In particular embodiments, a state of abehavioral model300 may refer to a screen observed by a user when the event-driven application is accessed in a particular client-tier environment. In particular embodiments, a transition may refer to an event (e.g., clicking a mouse, moving a mouse, pressing one or more keys on a keypad) that caused the observed screen (or state) to change. Abehavioral model300 may include astate graph304 and a set of onemore screen models308 for one more states of thestate graph304.
Astate graph304 may include a graphical representation of the finite-state machine with the states represented as unnamed vertices. In particular embodiments, astate graph304 captures the set of traces (e.g., alternating sequences of events and screen transitions caused by the events) without reference to the details of each state. In particular embodiments, astate graph304 may be a labeled, directed graph, with a special designed start vertex. It may be denoted by a 5-tuple, G (V, E, o, Σ, L), where V is the set of vertices, E is the set of (directed) edges, o is the special designated start vertex, E is an alphabet of labels, and L: E→Σ is a labeling function that assigns a label from E to each edge. According to the illustrated embodiment, eachnode312 in astate graph304 of abehavioral model300 may represent a state of a screen of the event-driven application. Furthermore, eachedge316 in astate graph304 of abehavioral model300 may represent an event (e.g., such as a user-initiated interaction with an event-driven application) causing a transition from one of the screens to another. In particular embodiments, eachedge316 of astate graph304 of abehavioral model300 may be labeled (not shown) with the event that caused the transition between states.
Ascreen model308 may include a programmatic representation of each state (screen). In particular embodiments, ascreen model308 captures details of each screen without any knowledge of transitions leading up to or out of the screen. In particular embodiments, ascreen model308 may be a rooted, directed, labeled tree. It may be denoted by a 5-tuple, T(Q, D, r, Λ, δ), where Q is the set of vertices, D is the set of directed edges, r ε Q is the root vertex, Λ is a finite set of labels and δ: Q→Λ is a labeling function that assigns a label from Λ to each vertex in Q. In particular embodiments, ascreen model308 may be an abstracted version of the DOM tree of a given state (screen) displayed on a web browser. Althoughbehavioral model300 illustrates asingle screen model308, abehavioral model300 may include any suitable number ofscreen models308. As an example and not by way of limitation, abehavioral model300 may include ascreen model308 for every state (screen) of astate graph304 of abehavioral model300.
FIG. 5 illustrates anexample method400 for determining one or more differences between two behavioral models of an event-driven application. In particular embodiments, by determining one or more differences between two behavioral models of an event-driven application, one or more differences in an end-user experience of the event-driven application in a client-tier environment may be determined with respect to one or more other end-user experiences of the event-driven application in one or more other ones of the client-tier environments. In particular embodiments,method400 may further include determining one or more pairwise equivalences for each of the behavioral models with respect to one or more other ones of the behavioral models.
The method begins atstep404. Atstep408, a first behavioral model (behavioral model M1) and a second behavioral model (behavioral model G2) are read. Atstep412, a first state graph (state graph G1) is extracted from behavioral model G1. Atstep416, a second state graph (state graph G2) is extracted from behavioral model G2. Atstep420, state graph G1 and state graph G2 are compared at a trace-level. A trace-level comparison may determine one or more pairwise equivalences between state graphs G1 and G2. In particular embodiments, determining one or more pairwise equivalences between state graphs G1 and G2 may include determining whether any edges (e.g., events that cause a transition between states or screens) of state graph G1 are isomorphic with any edges of state graph G2; and whether any nodes (e.g., representing states or screens) of state graph G1 are isomorphic with any nodes of state graph G2. In particular embodiments, the comparison may start from the root node of each state graph and traverse through a depth-first search. In particular embodiments, determining whether any edges are isomophoric may include retrieving the DOM element and the event from each corresponding node, and attempting to reconcile them.
In particular embodiments, the edges may be considered isomorphic if the edit distance between the two edges is lower than a similarity threshold. In particular embodiments, the edit distance may be based on event types, tag names, attributes and their values, Xpath positions of the two edges on their corresponding DOM trees, ID attributes, or any combination of two or more of these. In particular embodiments, the nodes may be considered isomorphic if and only if each of the previous nodes, successive nodes, and edges are isomorphic. In particular embodiments, the trace-level comparison may also determine which states of behavioral model M1 may be considered to be matching particular states of behavioral model M2.
Atstep424, if any edges or nodes of state graphs G1 and G2 were determined to not be isomorphic, the trace-level differences of the state graphs G1 and G2 are outputted atstep428. In particular embodiments, the output may include a list of all the edges and the nodes that were determined to not be isomorphic. However, atstep420, if all of the edges and nodes of state graphs G1 and G2 were determined to be isomorphic, no trace-level differences may be outputted, and the method moves to step432.
Atstep432, a vertex (vertex v1) is picked from state graph G1. Atstep436, a screen model (screen model T1) corresponding to the state (or screen) represented by vertex v1 is retrieved from the behavioral model M1. Atstep440, it is determined if the trace-level comparison between state graphs G1 and G2 (step416) produced a matching node v2 in state graph G2 corresponding to vertex v1 in state graph G1. If not, the algorithm moves to step460. Otherwise, atstep444, a screen model (screen model T2) corresponding to the state (or screen) represented by vertex v2 is retrieved from the behavioral model M2. In particular embodiments, vertex v1 and vertex v2 may be determined as matching during the trace-level comparison discussed above instep416. Atstep448, screen model T1 and screen model T2 are compared at a screen-level. A screen-level comparison may determine one or pairwise equivalences between the behavioral models M1 and M2. In particular embodiments, determining one or more pairwise equivalences between the behavioral models M1 and M2 may include determining whether screen model T1 and screen model T2 are isomorphic. In particular embodiments, the screen-level comparison may include retrieving the DOM tree and Javascript® state variables for both screen model T1 and screen model T2, and attempting to reconcile them. In particular embodiments, screen model T1 and screen model T2 may be determined to be isomorphic by checking the equivalence between the DOM trees corresponding to screen model T1 and screen model T2 and matching the name-value pairs of Javascript® variables of screen model T1 and screen model T2.
Atstep452, if screen model T1 and screen model T2 were determined to not be isomorphic, the screen-level differences for the screen model T1 and the screen model T2 are outputted atstep456. In particular embodiments, outputting the screen-level differences may include determining whether the differences may be irrelevant. In particular embodiments, an irrelevant difference may not be outputted. In particular embodiments, an irrelevant difference may result from certain web browsers rendering DOM changes differently than other web browsers. As an example and not by way of limitation, certain stylistic differences between various web browsers (e.g., case sensitivity, white space, attribute order, and node text values) may be determined to be an irrelevant difference, and may not be outputted. After the state-level differences are outputted, the method moves to step460.
Furthermore, if, atstep452, screen model T1 and screen model T2 were determined to be isomorphic, the method also moves to step460. Atstep460, a determination may be made regarding whether there are any more vertices in state graph G1 (or in state graph G2). If there are additional vertices,steps432 through460 are repeated for each additional vertex in state graph G1 (or in state graph G2). If there are no additional vertices, the method ends atstep464.
In particular embodiments, themethod400 may be repeated for each pairing of behavioral models. As an example and not by way of limitation, if three behavioral models are generated by a crawler for an event-driven application in three different client-tier environments, themethod400 may be repeated for each pairing of the three behavioral models. As such, each trace-level difference (or incompatibility) and each screen-level difference between each of the behavioral models may be determined and outputted. Furthermore, for each of the behavioral models, one or more pairwise equivalences with respect to one or more other ones of the behavioral models may be determined. In particular embodiments, the outputting of the trace-level differences and the screen-level differences may include sorting, classifying, and/or filtering the differences before outputting them.
FIG. 6 illustrates anexample algorithm500 for comparing two behavioral models at a trace-level. In particular embodiments,algorithm500 may be used to determine whether any edges and any nodes of a first behavioral model are isomorphic with any edges and any nodes of a second behavioral model. In particular embodiments,algorithm500 may be used inFIG. 5.
In particular embodiments,algorithm500 implements a trace-level equivalence check on the state graph (G1) of the first behavioral model and the state graph (G2) of the second behavioral model as an isomorphism check. The function OUT(v) returns the set of outgoing edges of vertex v, LABEL(e) returns the label of edge e and the function LOOKUP (l, edgeSet) returns an edge having thelabel1 from the set of edges edgeSet or null if none exists. DEST(e) returns the destination vertex of edge e. It may be assumed that the match field of each edge visited field of each vertex (in both G1and G2) is initialized to false and the match field of each vertex in G1is initialized to null. In particular embodiments,algorithm500 is a simple variant of depth-first search and linear-time in the sizes of G1, G2(e.g., O(|V1|+|V2|+|E1|+|E2|)).
In particular embodiments, G1(V1,E1,o1,Σ,L1), and G2(V2,E2,o2,Σ,L2) may be trace-equivalent if and only there exists a bijective mapping function M: V, V1→V2such that the following are true:
·∀u,v εV1.(u,vE
Figure US09032067-20150512-P00001
(
Figure US09032067-20150512-P00002
(u).
Figure US09032067-20150512-P00002
(v))εV2  (1)
e1(u1,v1E1,e2(u2,v2E2such that
Figure US09032067-20150512-P00002
(u1)=u2and
Figure US09032067-20150512-P00002
(v1)=v2
Figure US09032067-20150512-P00003
Figure US09032067-20150512-P00004
1(e1)=
Figure US09032067-20150512-P00004
2(e1)  (2)
Figure US09032067-20150512-P00002
(o1)=o2  (3)
In particular embodiments,algorithm500 may determine that G1and G2are equivalent if and only if they satisfy equations (1), (2), and (3), above.
In the case wherealgorithm500 determines that G1is not equivalent to G2, thealgorithm500 may determine that one or more sub-graphs implied by the partial match produced by the algorithm (e.g., the sub-graph implied by all nodes and edges that were matched to a counter-part in the other graph) are trace-equivalent based on equations (1), (2), and (3). For example and not by way of limitation, the subgraph:
G′1(V′1,E′1,o1,Σ,L′2) of G1, where E′1={eε E1: e.match=true}, V′1={v ε V1: v.match≠null}, L′1: E′1→E and L′1(e)=L1(e)∀e ε E′1. (and a similarly defined sub-graph for G′2of G2(V′2,E′2,o2,Σ,L′2)) may be determined to be trace-equivalent per equations (1), (2), and (3).
Further, in the case where G1is not equivalent to G2,algorithm500 not only produces a trace equivalent partial match but actually a maximal partial match (e.g., there do not exist a pair of edges e1and e2, where e1ε E1but e1ε E′1and e2ε E2but e2ε E′2which can be added to G′1and G′2respectively), along with their source and sink nodes such that the resulting graphs may also be trace-equivalent.
In particular embodiments, althoughalgorithm500 computes maximal matches, the match need not be the maximum match possible. In particular embodiments, a variant ofalgorithm500 may back-track on matching decisions made in order to compute the absolute maximum match.
FIG. 7 illustrates anexample algorithm600 for comparing two behavioral models, and outputting the differences between the two behavioral models. In particular embodiments,algorithm600 may be used inFIG. 5.
The function STATEGRAPH returns the underlying state graph for comparison through the Trace Equivalence Check (shown inFIG. 6). traceMatch is an object that receives the result ofalgorithm500 ofFIG. 6, including the partial match, in case where G1is not equivalent to G2. OUTPUTTRACEDIFFextracts and presents the user with the trace-level differences. Similarly, at the screen-level, the function GETSCREEN extracts and returns the detailed screen representation of a vertex v of a state graph from its corresponding behavioral model, to be used for the equivalence check byalgorithm600. scrnMatch is the object receiving the result of this comparison and the function OUTSCRDIFFextract and presents these screen-level differences to the user.
In particular embodiments, since the screen model is represented as a rooted, directed, labeled tree, a screen model T1of a first behavioral model and a screen model T2of a second behavioral model may be compared based on the isomorphism of the respective trees. Thus, in particular embodiments, screen models T1(Q1, D1, r1, Λ, δ1) and T2(Q2, D2, r2, Λ, δ2) may be determined to be equivalent, (e.g., T1≡T2) if and only if there exists a bijective mapping function N: Q1→Q2such that:
Figure US09032067-20150512-P00005
(r1)=r2  (4)
q εQ11(q)=δ2(
Figure US09032067-20150512-P00005
(q))  (5)
u,v εQ1,(u,vD1
Figure US09032067-20150512-P00001
(
Figure US09032067-20150512-P00005
(u),
Figure US09032067-20150512-P00005
(v))εD2  (6)
Since screen models are rooted, labeled trees, screen matching (the function call SCRNEQUIVCHECK(T1, T2) in algorithm600) may be performed in linear time by a simple variant of the tree isomorphism algorithm. In particular embodiments, if two screens are determined to not be matching,algorithm600 may utilize snapshots of the screens in outputting the differences to a user. As an example and not by way of limitation, during the dynamic crawling of an event-driven application, a snapshot may be made of each screen change in the web browser. In particular embodiments, when a screen mismatch is found byalgorithm600, the snapshots corresponding to each of the mismatched screens may be used to create a visualization report that is outputted to a user. In particular embodiments, the visualization report may include the transition paths that lead to the mismatched screens, and may also include the DOM trees corresponding to the mismatched screens. In particular embodiments, the differences between the screens may be highlighted in the DOM trees provided to the user.
FIG. 8 illustrates example end-user experiences of an event-driven application accessed in different client-tier environments. According to the illustrated embodiment,screenshot704 provides a different end-user experience of a particular event-driven application thanscreenshot708. In particular embodiments, the different end-user experiences may be caused by the different client-tier environments. As an example and not by way of limitation,screenshot704 may include a screen of an event-driven application displayed to a user using a Google® Chrome web browser, andscreenshot708 may include a screen of the event-driven application displayed to a user using a Mozilla® Firefox web browser.
FIG. 9 illustrates a table800 displaying example internal DOM level differences that occur when an event-driven application is accessed using different web browsers. According to the illustrated embodiment,row804 includes a list of internal DOM level differences (e.g., elements, attributes, and their values and order of appearance) that may occur when an event-driven application is accessed using a Mozilla® Firefox web browser. Row808 includes a list of internal DOM level differences that may occur when an event-driven application is accessed using a Microsoft® Internet Explorer web browser. Row812 includes a list of internal DOM level differences that may occur when an event-driven application is accessed using a Google® Chrome web browser. In particular embodiments, one or more of these internal DOM level differences may be determined to be irrelevant differences. As such, one or more of these differences may not be outputted to a user. In particular embodiments, one or more of these DOM level differences may be determined to be relevant differences. As such, one or more of these differences may be outputted to a user.
FIG. 10aillustrates an example behavioral model generated by dynamically crawling an event-driven application in a first client-tier environment that includes a Google® Chrome web browser.FIG. 10billustrates an example behavioral model generated by dynamically crawling the same event-driven application in a second client-tier environment that includes a Mozilla® Firefox web browser.
FIG. 11 illustrates example screen shots of detected DOM level differences of an event-driven application accessed in different client-tier environments. As an example and not by way of limitation,screenshot1004 may include detected DOM level differences of an event-driven application accessed in a first client-tier environment that includes a Google® Chrome web browser, andscreenshot1008 may include detected DOM level differences of the same event-driven application accessed in a second client-tier environment that includes Mozilla Firefox.
FIG. 12 illustrates example tables of detected differences between two behavioral models. Table1104 includes differences between two behavioral models that may be considered relevant. As such, the differences in table1104 may be outputted to a user. Table1108 includes differences between two behavioral models that may be considered irrelevant. As such, the differences in table1108 may not be outputted to a user.
FIG. 13 illustrates anexample computer system1200. In particular embodiments, one ormore computer systems1200 perform one or more steps of one or more methods described or illustrated herein. In particular embodiments, one ormore computer systems1200 provide functionality described or illustrated herein. In particular embodiments, software running on one ormore computer systems1200 performs one or more steps of one or more methods described or illustrated herein or provides functionality described or illustrated herein. Particular embodiments include one or more portions of one ormore computer systems1200.
This disclosure contemplates any suitable number ofcomputer systems1200. This disclosure contemplatescomputer system1200 taking any suitable physical form. As example and not by way of limitation,computer system1200 may be an embedded computer system, a system-on-chip (SOC), a single-board computer system (SBC) (such as, for example, a computer-on-module (COM) or system-on-module (SOM)), a desktop computer system, a laptop or notebook computer system, an interactive kiosk, a mainframe, a mesh of computer systems, a mobile telephone, a personal digital assistant (PDA), a server, or a combination of two or more of these: Where appropriate,computer system1200 may include one ormore computer systems1200; be unitary or distributed; span multiple locations; span multiple machines; or reside in a cloud, which may include one or more cloud components in one or more networks. Where appropriate, one ormore computer systems1200 may perform without substantial spatial or temporal limitation one or more steps of one or more methods described or illustrated herein. As an example and not by way of limitation, one ormore computer systems1200 may perform in real time or in batch mode one or more steps of one or more methods described or illustrated herein. One ormore computer systems1200 may perform at different times or at different locations one or more steps of one or more methods described or illustrated herein, where appropriate.
In particular embodiments,computer system1200 includes aprocessor1202,memory1204,storage1206, an input/output (I/O)interface1208, a communication interface710, and a bus712. Although this disclosure describes and illustrates a particular computer system having a particular number of particular components in a particular arrangement, this disclosure contemplates any suitable computer system having any suitable number of any suitable components in any suitable arrangement.
In particular embodiments,processor1202 includes hardware for executing instructions, such as those making up a computer program. As an example and not by way of limitation, to execute instructions,processor1202 may retrieve (or fetch) the instructions from an internal register, an internal cache,memory1204, orstorage1206; decode and execute them; and then write one or more results to an internal register, an internal cache,memory1204, orstorage1206. In particular embodiments,processor1202 may include one or more internal caches for data, instructions, or addresses. The present disclosure contemplatesprocessor1202 including any suitable number of any suitable internal caches, where appropriate. As an example and not by way of limitation,processor1202 may include one or more instruction caches, one or more data caches, and one or more translation lookaside buffers (TLBs). Instructions in the instruction caches may be copies of instructions inmemory1204 orstorage1206, and the instruction caches may speed up retrieval of those instructions byprocessor1202. Data in the data caches may be copies of data inmemory1204 orstorage1206 for instructions executing atprocessor1202 to operate on; the results of previous instructions executed atprocessor1202 for access by subsequent instructions executing atprocessor1202 or for writing tomemory1204 orstorage1206; or other suitable data. The data caches may speed up read or write operations byprocessor1202. The TLBs may speed up virtual-address translation forprocessor1202. In particular embodiments,processor1202 may include one or more internal registers for data, instructions, or addresses. The present disclosure contemplatesprocessor1202 including any suitable number of any suitable internal registers, where appropriate. Where appropriate,processor1202 may include one or more arithmetic logic units (ALUs); be a multi-core processor; or include one ormore processors1202. Although this disclosure describes and illustrates a particular processor, this disclosure contemplates any suitable processor.
In particular embodiments,memory1204 includes main memory for storing instructions forprocessor1202 to execute or data forprocessor1202 to operate on. As an example and not by way of limitation,computer system1200 may load instructions fromstorage1206 or another source (such as, for example, another computer system1200) tomemory1204.Processor1202 may then load the instructions frommemory1204 to an internal register or internal cache. To execute the instructions,processor1202 may retrieve the instructions from the internal register or internal cache and decode them. During or after execution of the instructions,processor1202 may write one or more results (which may be intermediate or final results) to the internal register or internal cache.Processor1202 may then write one or more of those results tomemory1204. In particular embodiments,processor1202 executes only instructions in one or more internal registers or internal caches or in memory1204 (as opposed tostorage1206 or elsewhere) and operates only on data in one or more internal registers or internal caches or in memory1204 (as opposed tostorage1206 or elsewhere). One or more memory buses (which may each include an address bus and a data bus) may coupleprocessor1202 tomemory1204. Bus712 may include one or more memory buses, as described below. In particular embodiments, one or more memory management units (MMUs) reside betweenprocessor1202 andmemory1204 and facilitate accesses tomemory1204 requested byprocessor1202. In particular embodiments,memory1204 includes random access memory (RAM). This RAM may be volatile memory, where appropriate Where appropriate, this RAM may be dynamic RAM (DRAM) or static RAM (SRAM). Moreover, where appropriate, this RAM may be single-ported or multi-ported RAM. The present disclosure contemplates any suitable RAM.Memory1204 may include one ormore memories1204, where appropriate. Although this disclosure describes and illustrates particular memory, this disclosure contemplates any suitable memory.
In particular embodiments,storage1206 includes mass storage for data or instructions. As an example and not by way of limitation,storage1206 may include an HDD, a floppy disk drive, flash memory, an optical disc, a magneto-optical disc, magnetic tape, or a Universal Serial Bus (USB) drive or a combination of two or more of these.Storage1206 may include removable or non-removable (or fixed) media, where appropriate.Storage1206 may be internal or external tocomputer system1200, where appropriate. In particular embodiments,storage1206 is non-volatile, solid-state memory. In particular embodiments,storage1206 includes read-only memory (ROM). Where appropriate, this ROM may be mask-programmed ROM, programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), electrically alterable ROM (EAROM), or flash memory or a combination of two or more of these. This disclosure contemplatesmass storage1206 taking any suitable physical form.Storage1206 may include one or more storage control units facilitating communication betweenprocessor1202 andstorage1206, where appropriate. Where appropriate,storage1206 may include one ormore storages1206. Although this disclosure describes and illustrates particular storage, this disclosure contemplates any suitable storage.
In particular embodiments, I/O interface1208 includes hardware, software, or both providing one or more interfaces for communication betweencomputer system1200 and one or more I/O devices.Computer system1200 may include one or more of these I/O devices, where appropriate. One or more of these I/O devices may enable communication between a person andcomputer system1200. As an example and not by way of limitation, an I/O device may include a keyboard, keypad, microphone, monitor, mouse, printer, scanner, speaker, still camera, stylus, tablet, touchscreen, trackball, video camera, another suitable I/O device or a combination of two or more of these. An I/O device may include one or more sensors. This disclosure contemplates any suitable I/O devices and any suitable I/O interfaces1208 for them. Where appropriate, I/O interface1208 may include one or more device or softwaredrivers enabling processor1202 to drive one or more of these I/O devices. I/O interface1208 may include one or more I/O interfaces1208, where appropriate. Although this disclosure describes and illustrates a particular I/O interface, this disclosure contemplates any suitable I/O interface.
In particular embodiments, communication interface710 includes hardware, software, or both providing one or more interfaces for communication (such as, for example, packet-based communication) betweencomputer system1200 and one or moreother computer systems1200 or one or more networks. As an example and not by way of limitation, communication interface710 may include a network interface controller (NIC) or network adapter for communicating with an Ethernet or other wire-based network or a wireless NIC (WNIC) or wireless adapter for communicating with a wireless network, such as a WI-FI network. This disclosure contemplates any suitable network and any suitable communication interface710 for it. As an example and not by way of limitation,computer system1200 may communicate with an ad hoc network, a personal area network (PAN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), or one or more portions of the Internet or a combination of two or more of these. One or more portions of one or more of these networks may be wired or wireless. As an example,computer system1200 may communicate with a wireless PAN (WPAN) (such as, for example, a BLUETOOTH WPAN), a WI-FI network, a WI-MAX network, a cellular telephone network (such as, for example, a Global System for Mobile Communications (GSM) network), or other suitable wireless network or a combination of two or more of these.Computer system1200 may include any suitable communication interface710 for any of these networks, where appropriate. Communication interface710 may include one or more communication interfaces710, where appropriate. Although this disclosure describes and illustrates a particular communication interface, this disclosure contemplates any suitable communication interface.
In particular embodiments, bus712 includes hardware, software, or both coupling components ofcomputer system1200 to each other. As an example and not by way of limitation, bus712 may include an Accelerated Graphics Port (AGP) or other graphics bus, an Enhanced Industry Standard Architecture (EISA) bus, a front-side bus (FSB), a HYPERTRANSPORT (HT) interconnect, an Industry Standard Architecture (ISA) bus, an INFINIBAND interconnect, a low-pin-count (LPC) bus, a memory bus, a Micro Channel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCI-X) bus, a serial advanced technology attachment (SATA) bus, a Video Electronics Standards Association local (VLB) bus, or another suitable bus or a combination of two or more of these. Bus712 may include one or more buses712, where appropriate. Although this disclosure describes and illustrates a particular bus, this disclosure contemplates any suitable bus or interconnect.
Herein, reference to a computer-readable storage medium encompasses one or more tangible computer-readable storage media possessing structure. As an example and not by way of limitation, a computer-readable storage medium may include a semiconductor-based or other integrated circuit (IC) (such, as for example, a field-programmable gate array (FPGA) or an application-specific IC (ASIC)), a hard disk, an HDD, a hybrid hard drive (HHD), an optical disc, an optical disc drive (ODD), a magneto-optical disc, a magneto-optical drive, a floppy disk, a floppy disk drive (FDD), magnetic tape, a holographic storage medium, a solid-state drive (SSD), a RAM-drive, a SECURE DIGITAL card, a SECURE DIGITAL drive, or another suitable computer-readable storage medium or a combination of two or more of these, where appropriate. Herein, reference to a computer-readable storage medium excludes any medium that is not eligible for patent protection under 35 U.S.C. §101. Herein, reference to a computer-readable storage medium excludes transitory forms of signal transmission (such as a propagating electrical or electromagnetic signal per se) to the extent that they are not eligible for patent protection under 35 U.S.C. §101.
This disclosure contemplates one or more computer-readable storage media implementing any suitable storage. In particular embodiments, a computer-readable storage medium implements one or more portions of processor1202 (such as, for example, one or more internal registers or caches), one or more portions ofmemory1204, one or more portions ofstorage1206, or a combination of these, where appropriate. In particular embodiments, a computer-readable storage medium implements RAM or ROM. In particular embodiments, a computer-readable storage medium implements volatile or persistent memory. In particular embodiments, one or more computer-readable storage media embody software. Herein, reference to software may encompass one or more applications, bytecode, one or more computer programs, one or more executables, one or more instructions, logic, machine code, one or more scripts, or source code, and vice versa, where appropriate. In particular embodiments, software includes one or more application programming interfaces (APIs). This disclosure contemplates any suitable software written or otherwise expressed in any suitable programming language or combination of programming languages. In particular embodiments, software is expressed as source code or object code. In particular embodiments, software is expressed in a higher-level programming language, such as, for example, C, Perl, or a suitable extension thereof. In particular embodiments, software is expressed in a lower-level programming language, such as assembly language (or machine code). In particular embodiments, software is expressed in JAVA. In particular embodiments, software is expressed in Hyper Text Markup Language (HTML), Extensible Markup Language (XML), Javascript (JS), Java Server Pages (JSP), Hypertext Preprocessor (PHP), or other suitable markup language.
The present disclosure encompasses all changes, substitutions, variations, alterations, and modifications to the example embodiments herein that a person having ordinary skill in the art would comprehend. Similarly, where appropriate, the appended claims encompass all changes, substitutions, variations, alterations, and modifications to the example embodiments herein that a person having ordinary skill in the art would comprehend.

Claims (29)

What is claimed is:
1. A method comprising, by one or more computer systems:
upon identification by a user of an event-driven application, automatically and without further user interaction dynamically crawling the event-driven application in a plurality of client-tier environments, wherein dynamically crawling comprises automatically and without user-interaction exercising code to detect and execute one or more doorways of the event-driven application in the plurality of client-tier environments;
for each of the client-tier environments, generating a behavioral model of the event-driven application comprising rooted directed graphs based on the dynamic crawling;
for each of the behavioral model, determining one or more pairwise equivalences with respect to one or more other ones of the behavioral models, wherein determining the one or more pairwise equivalences comprises determining isomorphism between the rooted directed graphs; and
for each of the client-tier environments, determining one or more differences in an end-user experience of the event-driven application in the client-tier environment with respect to one or more other end-user experiences of the event-driven application in one or more other ones of the client-tier environments.
2. The method ofclaim 1, wherein the event-driven application is a web application.
3. The method ofclaim 1, wherein each client-tier environment comprises:
a particular web browser;
a version of the particular web browser;
a configuration of the particular web browser;
a particular operating system (OS) of a computer system that the particular web browser is running on; and
a screen resolution of a display of the computer system.
4. The method ofclaim 1, wherein one or more of the differences in the end-user experience of the event-driven application in the client-tier environment are trace-level differences or screen-level differences.
5. The method ofclaim 1, wherein the behavioral models of the event-driven application comprise state graphs.
6. The method ofclaim 1, wherein:
each node in the state graphs represents a state of a screen of the event-driven application; and
each edge in the state graphs represents a user interaction with the event-driven application causing a transition from one of the states to another.
7. The method ofclaim 5, wherein the state graphs are finite state machines (FSMs) with partial transition functions.
8. The method ofclaim 5, wherein determining a pairwise equivalence comprises determining isomorphism between states in state graphs.
9. The method ofclaim 8, wherein determining the isomorphism between states comprises checking an equivalence between Document Object Model (DOM) trees corresponding to the states.
10. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:
upon identification by a user of an event-driven application, automatically and without further user interaction dynamically crawl the event-driven application in a plurality of client-tier environments, wherein dynamically crawling comprises automatically and without user-interaction exercising code to detect and execute one or more doorways of the event-driven application in the plurality of client-tier environments;
for each of the client-tier environments, generate a behavioral model of the event-driven application comprising rooted directed graphs based on the dynamic crawling;
for each of the behavioral models, determine one or more pairwise equivalences with respect to one or more other ones of the behavioral models, wherein determining the one or more pairwise equivalences comprises determining isomorphism between the rooted directed graphs; and
for each of the client-tier environments, determine one or more differences in an end-user experience of the event-driven application in the client-tier environment with respect to one or more other end-user experiences of the event-driven application in one or more other ones of the client-tier environments.
11. The media ofclaim 10, wherein the event-driven application is a web application.
12. The media ofclaim 10, wherein each client-tier environment comprises:
a particular web browser;
a version of the particular web browser;
a configuration of the particular web browser;
a particular operating system (OS) of a computer system that the particular web browser is running on; and
a screen resolution of a display of the computer system.
13. The media ofclaim 10, wherein one or more of the differences in the end-user experience of the event-driven application in the client-tier environment are trace-level differences or screen-level differences.
14. The media ofclaim 10, wherein the behavioral models of the event-driven application comprise state graphs.
15. The media ofclaim 10, wherein:
each node in the state graphs represents a state of a screen of the event-driven application; and
each edge in the state graphs represents a user interaction with the event-driven application causing a transition from one of the states to another.
16. The media ofclaim 14, wherein the state graphs are finite state machines (FSMs) with partial transition functions.
17. The media ofclaim 14, wherein the software is further operable when executed to determine a pairwise equivalence by determining isomorphism between states in state graphs.
18. The media ofclaim 17, wherein the software is further operable when executed to determine the isomorphism between states by checking an equivalence between Document Object Model (DOM) trees corresponding to the states.
19. An apparatus comprising:
one or more computer-readable non-transitory storage media embodying one or more instructions; and
one or more processors coupled to the media and operable when executing the instructions to:
upon identification by a user of an event-driven application, automatically and without further user interaction dynamically crawl the event-driven application in a plurality of client-tier environments, wherein dynamically crawling comprises automatically and without user-interaction exercising code to detect and execute one or more doorways of the event-driven application in the plurality of client-tier environments;
for each of the client-tier environments, generate a behavioral model of the event-driven application comprising rooted directed graphs based on the dynamic crawling;
for each of the behavioral models, determine one or more pairwise equivalences with respect to one or more other ones of the behavioral models, wherein determining the one or more pairwise equivalences comprises determining isomorphism between the rooted directed graphs; and
for each of the client-tier environments, determine one or more differences in an end-user experience of the event-driven application in the client-tier environment with respect to one or more other end-user experiences of the event-driven application in one or more other ones of the client-tier environments.
20. The apparatus ofclaim 19, wherein the event-driven application is a web application.
21. The apparatus ofclaim 19, wherein each client-tier environment comprises:
a particular web browser;
a version of the particular web browser;
a configuration of the particular web browser;
a particular operating system (OS) of a computer system that the particular web browser is running on; and
a screen resolution of a display of the computer system.
22. The apparatus ofclaim 19, wherein one or more of the differences in the end-user experience of the event-driven application in the client-tier environment are trace-level differences or screen-level differences.
23. The apparatus ofclaim 19, wherein the behavioral models of the event-driven application comprise state graphs.
24. The apparatus ofclaim 19, wherein:
each node in the state graphs represents a state of a screen of the event-driven application; and
each edge in the state graphs represents a user interaction with the event-driven application causing a transition from one of the states to another.
25. The apparatus ofclaim 23, wherein the state graphs are finite state machines (FSMs) with partial transition functions.
26. The apparatus ofclaim 23, wherein the processor is further operable to determine a pairwise equivalence by determining isomorphism between states in state graphs.
27. The apparatus ofclaim 26, wherein the processor is further operable to determine the isomorphism between states by checking an equivalence between Document Object Model (DOM) trees corresponding to the states.
28. A method comprising, by one or more computer systems:
upon identification by a user of an event-driven application, automatically and without further user interaction dynamically crawling the event-driven application in a plurality of client-tier environments, wherein dynamically crawling comprises automatically and without user-interaction exercising code to detect and execute one or more doorways of the event-driven application in the plurality of client-tier environments;
for each of the client-tier environments, generating a behavioral model of the event-driven application based on the dynamic crawling;
for each of the behavioral models, determining one or more pairwise equivalences with respect to one or more other ones of the behavioral models; and
for each of the client-tier environments, determining one or more differences in an end-user experience of the event-driven application in the client-tier environment with respect to one or more other end-user experiences of the event-driven application in one or more other ones of the client-tier environments, and
wherein the behavioral model for each of the client-tier environments comprises rooted directed graphs, and wherein the processor is further operable to determine a pairwise equivalence by determining isomorphism between at least two rooted directed graphs.
29. The method ofclaim 1, wherein:
based on the isomorphism determined between the pair of rooted directed state graphs, determining one or more differences indicating that an event did not occur in one of the client-tier environments.
US12/723,5682010-03-122010-03-12Determining differences in an event-driven application accessed in different client-tier environmentsExpired - Fee RelatedUS9032067B2 (en)

Priority Applications (1)

Application NumberPriority DateFiling DateTitle
US12/723,568US9032067B2 (en)2010-03-122010-03-12Determining differences in an event-driven application accessed in different client-tier environments

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
US12/723,568US9032067B2 (en)2010-03-122010-03-12Determining differences in an event-driven application accessed in different client-tier environments

Publications (2)

Publication NumberPublication Date
US20110225289A1 US20110225289A1 (en)2011-09-15
US9032067B2true US9032067B2 (en)2015-05-12

Family

ID=44560990

Family Applications (1)

Application NumberTitlePriority DateFiling Date
US12/723,568Expired - Fee RelatedUS9032067B2 (en)2010-03-122010-03-12Determining differences in an event-driven application accessed in different client-tier environments

Country Status (1)

CountryLink
US (1)US9032067B2 (en)

Cited By (154)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20150356062A1 (en)*2014-06-062015-12-10International Business Machines CorporationIndexing and annotating a usability test recording
US20190266201A1 (en)*2016-06-102019-08-29OneTrust, LLCData processing systems for fulfilling data subject access requests and related methods
US10467432B2 (en)2016-06-102019-11-05OneTrust, LLCData processing systems for use in automatically generating, populating, and submitting data subject access requests
US10496803B2 (en)2016-06-102019-12-03OneTrust, LLCData processing systems and methods for efficiently assessing the risk of privacy campaigns
US10496846B1 (en)2016-06-102019-12-03OneTrust, LLCData processing and communications systems and methods for the efficient implementation of privacy by design
US10503926B2 (en)2016-06-102019-12-10OneTrust, LLCConsent receipt management systems and related methods
US10509894B2 (en)2016-06-102019-12-17OneTrust, LLCData processing and scanning systems for assessing vendor risk
US10509920B2 (en)2016-06-102019-12-17OneTrust, LLCData processing systems for processing data subject access requests
US10558821B2 (en)2016-06-102020-02-11OneTrust, LLCData processing systems for fulfilling data subject access requests and related methods
US10564935B2 (en)2016-06-102020-02-18OneTrust, LLCData processing systems for integration of consumer feedback with data subject access requests and related methods
US10565236B1 (en)2016-06-102020-02-18OneTrust, LLCData processing systems for generating and populating a data inventory
US10567439B2 (en)2016-06-102020-02-18OneTrust, LLCData processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10565397B1 (en)2016-06-102020-02-18OneTrust, LLCData processing systems for fulfilling data subject access requests and related methods
US10565161B2 (en)2016-06-102020-02-18OneTrust, LLCData processing systems for processing data subject access requests
US10564936B2 (en)2016-06-102020-02-18OneTrust, LLCData processing systems for identity validation of data subject access requests and related methods
US10574705B2 (en)2016-06-102020-02-25OneTrust, LLCData processing and scanning systems for generating and populating a data inventory
US10572686B2 (en)2016-06-102020-02-25OneTrust, LLCConsent receipt management systems and related methods
US10586072B2 (en)2016-06-102020-03-10OneTrust, LLCData processing systems for measuring privacy maturity within an organization
US10586075B2 (en)2016-06-102020-03-10OneTrust, LLCData processing systems for orphaned data identification and deletion and related methods
US10592692B2 (en)2016-06-102020-03-17OneTrust, LLCData processing systems for central consent repository and related methods
US10594740B2 (en)2016-06-102020-03-17OneTrust, LLCData processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10592648B2 (en)2016-06-102020-03-17OneTrust, LLCConsent receipt management systems and related methods
US10599870B2 (en)2016-06-102020-03-24OneTrust, LLCData processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US10607028B2 (en)2016-06-102020-03-31OneTrust, LLCData processing systems for data testing to confirm data deletion and related methods
US10606916B2 (en)2016-06-102020-03-31OneTrust, LLCData processing user interface monitoring systems and related methods
US10614246B2 (en)2016-06-102020-04-07OneTrust, LLCData processing systems and methods for auditing data request compliance
US10614247B2 (en)2016-06-102020-04-07OneTrust, LLCData processing systems for automated classification of personal information from documents and related methods
US10642870B2 (en)2016-06-102020-05-05OneTrust, LLCData processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10678945B2 (en)2016-06-102020-06-09OneTrust, LLCConsent receipt management systems and related methods
US10685140B2 (en)2016-06-102020-06-16OneTrust, LLCConsent receipt management systems and related methods
US10692033B2 (en)2016-06-102020-06-23OneTrust, LLCData processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US10706131B2 (en)2016-06-102020-07-07OneTrust, LLCData processing systems and methods for efficiently assessing the risk of privacy campaigns
US10708305B2 (en)2016-06-102020-07-07OneTrust, LLCAutomated data processing systems and methods for automatically processing requests for privacy-related information
US10706379B2 (en)2016-06-102020-07-07OneTrust, LLCData processing systems for automatic preparation for remediation and related methods
US10706176B2 (en)2016-06-102020-07-07OneTrust, LLCData-processing consent refresh, re-prompt, and recapture systems and related methods
US10706447B2 (en)2016-04-012020-07-07OneTrust, LLCData processing systems and communication systems and methods for the efficient generation of privacy risk assessments
US10706174B2 (en)2016-06-102020-07-07OneTrust, LLCData processing systems for prioritizing data subject access requests for fulfillment and related methods
US10713387B2 (en)2016-06-102020-07-14OneTrust, LLCConsent conversion optimization systems and related methods
US10726158B2 (en)2016-06-102020-07-28OneTrust, LLCConsent receipt management and automated process blocking systems and related methods
US10740487B2 (en)2016-06-102020-08-11OneTrust, LLCData processing systems and methods for populating and maintaining a centralized database of personal data
US10762236B2 (en)2016-06-102020-09-01OneTrust, LLCData processing user interface monitoring systems and related methods
US10769301B2 (en)2016-06-102020-09-08OneTrust, LLCData processing systems for webform crawling to map processing activities and related methods
US10776518B2 (en)2016-06-102020-09-15OneTrust, LLCConsent receipt management systems and related methods
US10776514B2 (en)2016-06-102020-09-15OneTrust, LLCData processing systems for the identification and deletion of personal data in computer systems
US10776517B2 (en)2016-06-102020-09-15OneTrust, LLCData processing systems for calculating and communicating cost of fulfilling data subject access requests and related methods
US10783256B2 (en)2016-06-102020-09-22OneTrust, LLCData processing systems for data transfer risk identification and related methods
US10796260B2 (en)2016-06-102020-10-06OneTrust, LLCPrivacy management systems and methods
US10798133B2 (en)2016-06-102020-10-06OneTrust, LLCData processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10803200B2 (en)2016-06-102020-10-13OneTrust, LLCData processing systems for processing and managing data subject access in a distributed environment
US10803202B2 (en)2018-09-072020-10-13OneTrust, LLCData processing systems for orphaned data identification and deletion and related methods
US10839102B2 (en)2016-06-102020-11-17OneTrust, LLCData processing systems for identifying and modifying processes that are subject to data subject access requests
US10848523B2 (en)2016-06-102020-11-24OneTrust, LLCData processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10846433B2 (en)2016-06-102020-11-24OneTrust, LLCData processing consent management systems and related methods
US10853501B2 (en)2016-06-102020-12-01OneTrust, LLCData processing and scanning systems for assessing vendor risk
US10873606B2 (en)2016-06-102020-12-22OneTrust, LLCData processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10878127B2 (en)2016-06-102020-12-29OneTrust, LLCData subject access request processing systems and related methods
US10885485B2 (en)2016-06-102021-01-05OneTrust, LLCPrivacy management systems and methods
US10896394B2 (en)2016-06-102021-01-19OneTrust, LLCPrivacy management systems and methods
US10909488B2 (en)2016-06-102021-02-02OneTrust, LLCData processing systems for assessing readiness for responding to privacy-related incidents
US10909265B2 (en)2016-06-102021-02-02OneTrust, LLCApplication privacy scanning systems and related methods
US10944725B2 (en)2016-06-102021-03-09OneTrust, LLCData processing systems and methods for using a data model to select a target data asset in a data migration
US10949170B2 (en)2016-06-102021-03-16OneTrust, LLCData processing systems for integration of consumer feedback with data subject access requests and related methods
US10949565B2 (en)2016-06-102021-03-16OneTrust, LLCData processing systems for generating and populating a data inventory
US10970675B2 (en)2016-06-102021-04-06OneTrust, LLCData processing systems for generating and populating a data inventory
US10997315B2 (en)2016-06-102021-05-04OneTrust, LLCData processing systems for fulfilling data subject access requests and related methods
US10997318B2 (en)2016-06-102021-05-04OneTrust, LLCData processing systems for generating and populating a data inventory for processing data access requests
US11004125B2 (en)2016-04-012021-05-11OneTrust, LLCData processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11023842B2 (en)2016-06-102021-06-01OneTrust, LLCData processing systems and methods for bundled privacy policies
US11025675B2 (en)2016-06-102021-06-01OneTrust, LLCData processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US11038925B2 (en)2016-06-102021-06-15OneTrust, LLCData processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11057356B2 (en)2016-06-102021-07-06OneTrust, LLCAutomated data processing systems and methods for automatically processing data subject access requests using a chatbot
US11074367B2 (en)2016-06-102021-07-27OneTrust, LLCData processing systems for identity validation for consumer rights requests and related methods
US11087260B2 (en)2016-06-102021-08-10OneTrust, LLCData processing systems and methods for customizing privacy training
US11100444B2 (en)2016-06-102021-08-24OneTrust, LLCData processing systems and methods for providing training in a vendor procurement process
US11134086B2 (en)2016-06-102021-09-28OneTrust, LLCConsent conversion optimization systems and related methods
US11138299B2 (en)2016-06-102021-10-05OneTrust, LLCData processing and scanning systems for assessing vendor risk
US11138242B2 (en)2016-06-102021-10-05OneTrust, LLCData processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11144675B2 (en)2018-09-072021-10-12OneTrust, LLCData processing systems and methods for automatically protecting sensitive data within privacy management systems
US11146566B2 (en)2016-06-102021-10-12OneTrust, LLCData processing systems for fulfilling data subject access requests and related methods
US11144622B2 (en)2016-06-102021-10-12OneTrust, LLCPrivacy management systems and methods
US11151233B2 (en)2016-06-102021-10-19OneTrust, LLCData processing and scanning systems for assessing vendor risk
US11157600B2 (en)2016-06-102021-10-26OneTrust, LLCData processing and scanning systems for assessing vendor risk
US11188615B2 (en)2016-06-102021-11-30OneTrust, LLCData processing consent capture systems and related methods
US11188862B2 (en)2016-06-102021-11-30OneTrust, LLCPrivacy management systems and methods
US11200341B2 (en)2016-06-102021-12-14OneTrust, LLCConsent receipt management systems and related methods
US11210420B2 (en)2016-06-102021-12-28OneTrust, LLCData subject access request processing systems and related methods
US11222309B2 (en)2016-06-102022-01-11OneTrust, LLCData processing systems for generating and populating a data inventory
US11222142B2 (en)2016-06-102022-01-11OneTrust, LLCData processing systems for validating authorization for personal data collection, storage, and processing
US11222139B2 (en)2016-06-102022-01-11OneTrust, LLCData processing systems and methods for automatic discovery and assessment of mobile software development kits
US11227247B2 (en)2016-06-102022-01-18OneTrust, LLCData processing systems and methods for bundled privacy policies
US11228620B2 (en)2016-06-102022-01-18OneTrust, LLCData processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11238390B2 (en)2016-06-102022-02-01OneTrust, LLCPrivacy management systems and methods
US11244367B2 (en)2016-04-012022-02-08OneTrust, LLCData processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11277448B2 (en)2016-06-102022-03-15OneTrust, LLCData processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11295316B2 (en)2016-06-102022-04-05OneTrust, LLCData processing systems for identity validation for consumer rights requests and related methods
US11294939B2 (en)2016-06-102022-04-05OneTrust, LLCData processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11301796B2 (en)2016-06-102022-04-12OneTrust, LLCData processing systems and methods for customizing privacy training
US11328092B2 (en)2016-06-102022-05-10OneTrust, LLCData processing systems for processing and managing data subject access in a distributed environment
US11336697B2 (en)2016-06-102022-05-17OneTrust, LLCData processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11343284B2 (en)2016-06-102022-05-24OneTrust, LLCData processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US11341447B2 (en)2016-06-102022-05-24OneTrust, LLCPrivacy management systems and methods
US11354435B2 (en)2016-06-102022-06-07OneTrust, LLCData processing systems for data testing to confirm data deletion and related methods
US11354434B2 (en)2016-06-102022-06-07OneTrust, LLCData processing systems for verification of consent and notice processing and related methods
US11366909B2 (en)2016-06-102022-06-21OneTrust, LLCData processing and scanning systems for assessing vendor risk
US11366786B2 (en)2016-06-102022-06-21OneTrust, LLCData processing systems for processing data subject access requests
US11373007B2 (en)2017-06-162022-06-28OneTrust, LLCData processing systems for identifying whether cookies contain personally identifying information
US20220206828A1 (en)*2019-04-102022-06-30Nippon Telegraph And Telephone CorporationInput value setting assisting apparatus, input value setting assisting method and program
US11392720B2 (en)2016-06-102022-07-19OneTrust, LLCData processing systems for verification of consent and notice processing and related methods
US11397819B2 (en)2020-11-062022-07-26OneTrust, LLCSystems and methods for identifying data processing activities based on data discovery results
US11403377B2 (en)2016-06-102022-08-02OneTrust, LLCPrivacy management systems and methods
US11410106B2 (en)2016-06-102022-08-09OneTrust, LLCPrivacy management systems and methods
US11416798B2 (en)2016-06-102022-08-16OneTrust, LLCData processing systems and methods for providing training in a vendor procurement process
US11416590B2 (en)2016-06-102022-08-16OneTrust, LLCData processing and scanning systems for assessing vendor risk
US11418492B2 (en)2016-06-102022-08-16OneTrust, LLCData processing systems and methods for using a data model to select a target data asset in a data migration
US11416589B2 (en)2016-06-102022-08-16OneTrust, LLCData processing and scanning systems for assessing vendor risk
US11416109B2 (en)2016-06-102022-08-16OneTrust, LLCAutomated data processing systems and methods for automatically processing data subject access requests using a chatbot
US11436373B2 (en)2020-09-152022-09-06OneTrust, LLCData processing systems and methods for detecting tools for the automatic blocking of consent requests
US11438386B2 (en)2016-06-102022-09-06OneTrust, LLCData processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11444976B2 (en)2020-07-282022-09-13OneTrust, LLCSystems and methods for automatically blocking the use of tracking tools
US11442906B2 (en)2021-02-042022-09-13OneTrust, LLCManaging custom attributes for domain objects defined within microservices
US11461500B2 (en)2016-06-102022-10-04OneTrust, LLCData processing systems for cookie compliance testing with website scanning and related methods
US11475136B2 (en)2016-06-102022-10-18OneTrust, LLCData processing systems for data transfer risk identification and related methods
US11475165B2 (en)2020-08-062022-10-18OneTrust, LLCData processing systems and methods for automatically redacting unstructured data from a data subject access request
US11481710B2 (en)2016-06-102022-10-25OneTrust, LLCPrivacy management systems and methods
US11494515B2 (en)2021-02-082022-11-08OneTrust, LLCData processing systems and methods for anonymizing data samples in classification analysis
US11520928B2 (en)2016-06-102022-12-06OneTrust, LLCData processing systems for generating personal data receipts and related methods
US11526624B2 (en)2020-09-212022-12-13OneTrust, LLCData processing systems and methods for automatically detecting target data transfers and target data processing
US11533315B2 (en)2021-03-082022-12-20OneTrust, LLCData transfer discovery and analysis systems and related methods
US11546661B2 (en)2021-02-182023-01-03OneTrust, LLCSelective redaction of media content
US11544667B2 (en)2016-06-102023-01-03OneTrust, LLCData processing systems for generating and populating a data inventory
US11544409B2 (en)2018-09-072023-01-03OneTrust, LLCData processing systems and methods for automatically protecting sensitive data within privacy management systems
US11562097B2 (en)2016-06-102023-01-24OneTrust, LLCData processing systems for central consent repository and related methods
US11562078B2 (en)2021-04-162023-01-24OneTrust, LLCAssessing and managing computational risk involved with integrating third party computing functionality within a computing system
US11586700B2 (en)2016-06-102023-02-21OneTrust, LLCData processing systems and methods for automatically blocking the use of tracking tools
US11601464B2 (en)2021-02-102023-03-07OneTrust, LLCSystems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system
US11620142B1 (en)2022-06-032023-04-04OneTrust, LLCGenerating and customizing user interfaces for demonstrating functions of interactive user environments
US11625502B2 (en)2016-06-102023-04-11OneTrust, LLCData processing systems for identifying and modifying processes that are subject to data subject access requests
US11636171B2 (en)2016-06-102023-04-25OneTrust, LLCData processing user interface monitoring systems and related methods
US11651106B2 (en)2016-06-102023-05-16OneTrust, LLCData processing systems for fulfilling data subject access requests and related methods
US11651104B2 (en)2016-06-102023-05-16OneTrust, LLCConsent receipt management systems and related methods
US11651402B2 (en)2016-04-012023-05-16OneTrust, LLCData processing systems and communication systems and methods for the efficient generation of risk assessments
US11675929B2 (en)2016-06-102023-06-13OneTrust, LLCData processing consent sharing systems and related methods
US11687528B2 (en)2021-01-252023-06-27OneTrust, LLCSystems and methods for discovery, classification, and indexing of data in a native computing system
US11727141B2 (en)2016-06-102023-08-15OneTrust, LLCData processing systems and methods for synching privacy-related user consent across multiple computing devices
US11775348B2 (en)2021-02-172023-10-03OneTrust, LLCManaging custom workflows for domain objects defined within microservices
US11797528B2 (en)2020-07-082023-10-24OneTrust, LLCSystems and methods for targeted data discovery
US12045266B2 (en)2016-06-102024-07-23OneTrust, LLCData processing systems for generating and populating a data inventory
US12052289B2 (en)2016-06-102024-07-30OneTrust, LLCData processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US12118121B2 (en)2016-06-102024-10-15OneTrust, LLCData subject access request processing systems and related methods
US12136055B2 (en)2016-06-102024-11-05OneTrust, LLCData processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US12153704B2 (en)2021-08-052024-11-26OneTrust, LLCComputing platform for facilitating data exchange among computing environments
US12265896B2 (en)2020-10-052025-04-01OneTrust, LLCSystems and methods for detecting prejudice bias in machine-learning models
US12299065B2 (en)2016-06-102025-05-13OneTrust, LLCData processing systems and methods for dynamically determining data processing consent configurations
US12381915B2 (en)2016-06-102025-08-05OneTrust, LLCData processing systems and methods for performing assessments and monitoring of new versions of computer code for compliance

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US8832065B2 (en)2010-10-292014-09-09Fujitsu LimitedTechnique for coordinating the distributed, parallel crawling of interactive client-server applications
US9208054B2 (en)2011-02-142015-12-08Fujitsu LimitedWeb service for automated cross-browser compatibility checking of web applications
US9507851B1 (en)*2011-03-292016-11-29EMC IP Holding Company LLCMethods and systems for providing recommendation information
US8805094B2 (en)*2011-09-292014-08-12Fujitsu LimitedUsing machine learning to improve detection of visual pairwise differences between browsers
US8880951B2 (en)2012-04-062014-11-04Fujitsu LimitedDetection of dead widgets in software applications
US9418173B2 (en)2012-08-162016-08-16Fujitsu LimitedDetection of cross-platform differences of web applications
CN103942137B (en)*2013-01-232017-08-25腾讯科技(深圳)有限公司Browser compatibility method of testing and device
US20140280528A1 (en)*2013-03-122014-09-18Rockwell Automation Technologies, Inc.State machine configurator
CN104102643B (en)*2013-04-032017-09-22阿里巴巴集团控股有限公司A kind of method and apparatus for carrying out page snapshot
DE202014011247U1 (en)2013-05-152019-06-05Kensho Technologies, Llc Systems for data acquisition and modeling
US10693742B2 (en)2014-04-152020-06-23Splunk Inc.Inline visualizations of metrics related to captured network data
US10523521B2 (en)2014-04-152019-12-31Splunk Inc.Managing ephemeral event streams generated from captured network data
US10462004B2 (en)2014-04-152019-10-29Splunk Inc.Visualizations of statistics associated with captured network data
US9762443B2 (en)2014-04-152017-09-12Splunk Inc.Transformation of network data at remote capture agents
US11281643B2 (en)2014-04-152022-03-22Splunk Inc.Generating event streams including aggregated values from monitored network data
US10127273B2 (en)2014-04-152018-11-13Splunk Inc.Distributed processing of network data using remote capture agents
US12028208B1 (en)2014-05-092024-07-02Splunk Inc.Selective event stream data storage based on network traffic volume
US11625437B2 (en)2017-02-022023-04-11Kensho Technologies, LlcGraphical user interface for displaying search engine results
US10726071B2 (en)*2017-02-022020-07-28Kensho Technologies, LlcContent search engine
US10963517B2 (en)2017-02-022021-03-30Kensho Technologies, LlcGraphical user interface for displaying search engine results
IT201700016599A1 (en)*2017-02-152018-08-15Telecom Italia Spa METHOD AND SYSTEM FOR THE MANAGEMENT OF TELECOMMUNICATIONS NETWORK EQUIPMENT
US20190279084A1 (en)*2017-08-152019-09-12Toonimo, Inc.System and method for element detection and identification of changing elements on a web page
US10545470B2 (en)2017-11-102020-01-28Rockwell Automation Technologies, Inc.Configurable mode model

Citations (35)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
EP0415497A2 (en)1989-08-291991-03-06Koninklijke Philips Electronics N.V.Method of synchronizing parallel processors employing channels and compiling method minimizing cross-processor data dependencies
US6182085B1 (en)1998-05-282001-01-30International Business Machines CorporationCollaborative team crawling:Large scale information gathering over the internet
US6263364B1 (en)1999-11-022001-07-17Alta Vista CompanyWeb crawler system using plurality of parallel priority level queues having distinct associated download priority levels for prioritizing document downloading and maintaining document freshness
US6424966B1 (en)1998-06-302002-07-23Microsoft CorporationSynchronizing crawler with notification source
US20040103394A1 (en)*2002-11-262004-05-27Vijayram MandaMechanism for testing execution of applets with plug-ins and applications
WO2005077118A2 (en)2004-02-112005-08-25Spi Dynamics, Inc.System and method for testing web applications with recursive discovery and analysis
CA2588219A1 (en)2004-11-222006-06-01Truveo, Inc.Method and apparatus for an application crawler
US20060206547A1 (en)2005-02-082006-09-14Raghavendra KulkarniStoring and retrieving computer data files using an encrypted network drive file system
US20060230011A1 (en)2004-11-222006-10-12Truveo, Inc.Method and apparatus for an application crawler
US20070022480A1 (en)*2005-07-112007-01-25Newman Aaron CSystem for tracking and analyzing the integrity of an application
US20070061877A1 (en)2004-02-112007-03-15Caleb SimaIntegrated crawling and auditing of web applications and web content
US20070083808A1 (en)*2005-10-072007-04-12Nokia CorporationSystem and method for measuring SVG document similarity
US20070168832A1 (en)2004-08-022007-07-19Tom RichardsonMemory efficient LDPC decoding methods and apparatus
CN100353733C (en)2005-12-232007-12-05王建波RSS message interactive processing method based on XML file
US20080098375A1 (en)2006-09-292008-04-24Microsoft CorporationRuntime optimization of distributed execution graph
US20090007074A1 (en)*2007-06-262009-01-01Sean CampionSystem and method for distributed software testing
CN101344881A (en)2007-07-092009-01-14中国科学院大气物理研究所 Index generation method and device and search system for massive file-type data
US7496581B2 (en)2002-07-192009-02-24International Business Machines CorporationInformation search system, information search method, HTML document structure analyzing method, and program product
US20090225082A1 (en)2008-03-052009-09-10Microsoft CorporationGenerating distributed dataflow graphs
US7590620B1 (en)2004-06-182009-09-15Google Inc.System and method for analyzing data records
US7634496B1 (en)2006-01-032009-12-15Emc CorporationTechniques for managing state changes of a data storage system utilizing the object oriented paradigm
US7636717B1 (en)2007-01-182009-12-22Netlogic Microsystems, Inc.Method and apparatus for optimizing string search operations
US20100088668A1 (en)*2008-10-062010-04-08Sachiko YoshihamaCrawling of object model using transformation graph
US20100175049A1 (en)2009-01-072010-07-08Microsoft CorporationScope: a structured computations optimized for parallel execution script language
US7761395B2 (en)2006-08-282010-07-20Oracle America, Inc.System and method for scalable processing of collected knowledge by creating knowledge generation nodes
US20110078556A1 (en)2009-09-302011-03-31Fujitsu LimitedClient-tier validation of dynamic web applications
US20110099491A1 (en)*2009-10-282011-04-28Tal AbrahamUser-Interface Testing
US20110270853A1 (en)2010-05-032011-11-03International Business Machines CorporationDynamic Storage and Retrieval of Process Graphs
US20120110063A1 (en)2010-10-292012-05-03Fujitsu LimitedTechnique for stateless distributed parallel crawling of interactive client-server applications
US20120109927A1 (en)2010-10-292012-05-03Fujitsu LimitedArchitecture for distributed, parallel crawling of interactive client-server applications
US20120109929A1 (en)2010-10-292012-05-03Fujitsu LimitedTechnique for efficient partial crawling of interactive client-server applications in a parallel, distributed environment
US20120109928A1 (en)2010-10-292012-05-03Fujitsu LimitedSynchronization scheme for distributed, parallel crawling of interactive client-server applications
US20120109931A1 (en)2010-10-292012-05-03Fujitsu LimitedTechnique for compression of state information in the crawling of interactive client-server applications
US20120109930A1 (en)2010-10-292012-05-03Fujitsu LimitedTechnique for coordinating the distributed, parallel crawling of interactive client-server applications
US20120210236A1 (en)2011-02-142012-08-16Fujitsu LimitedWeb Service for Automated Cross-Browser Compatibility Checking of Web Applications

Patent Citations (37)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
EP0415497A2 (en)1989-08-291991-03-06Koninklijke Philips Electronics N.V.Method of synchronizing parallel processors employing channels and compiling method minimizing cross-processor data dependencies
US6182085B1 (en)1998-05-282001-01-30International Business Machines CorporationCollaborative team crawling:Large scale information gathering over the internet
US6424966B1 (en)1998-06-302002-07-23Microsoft CorporationSynchronizing crawler with notification source
US6263364B1 (en)1999-11-022001-07-17Alta Vista CompanyWeb crawler system using plurality of parallel priority level queues having distinct associated download priority levels for prioritizing document downloading and maintaining document freshness
US7496581B2 (en)2002-07-192009-02-24International Business Machines CorporationInformation search system, information search method, HTML document structure analyzing method, and program product
US20040103394A1 (en)*2002-11-262004-05-27Vijayram MandaMechanism for testing execution of applets with plug-ins and applications
WO2005077118A2 (en)2004-02-112005-08-25Spi Dynamics, Inc.System and method for testing web applications with recursive discovery and analysis
US20070061877A1 (en)2004-02-112007-03-15Caleb SimaIntegrated crawling and auditing of web applications and web content
US7590620B1 (en)2004-06-182009-09-15Google Inc.System and method for analyzing data records
US20070168832A1 (en)2004-08-022007-07-19Tom RichardsonMemory efficient LDPC decoding methods and apparatus
CA2588219A1 (en)2004-11-222006-06-01Truveo, Inc.Method and apparatus for an application crawler
US20060230011A1 (en)2004-11-222006-10-12Truveo, Inc.Method and apparatus for an application crawler
CN101443751A (en)2004-11-222009-05-27特鲁维奥公司Method and apparatus for an application crawler
US20060206547A1 (en)2005-02-082006-09-14Raghavendra KulkarniStoring and retrieving computer data files using an encrypted network drive file system
US20070022480A1 (en)*2005-07-112007-01-25Newman Aaron CSystem for tracking and analyzing the integrity of an application
US20070083808A1 (en)*2005-10-072007-04-12Nokia CorporationSystem and method for measuring SVG document similarity
CN100353733C (en)2005-12-232007-12-05王建波RSS message interactive processing method based on XML file
US7634496B1 (en)2006-01-032009-12-15Emc CorporationTechniques for managing state changes of a data storage system utilizing the object oriented paradigm
US7761395B2 (en)2006-08-282010-07-20Oracle America, Inc.System and method for scalable processing of collected knowledge by creating knowledge generation nodes
US20080098375A1 (en)2006-09-292008-04-24Microsoft CorporationRuntime optimization of distributed execution graph
US7636717B1 (en)2007-01-182009-12-22Netlogic Microsystems, Inc.Method and apparatus for optimizing string search operations
US7860849B1 (en)2007-01-182010-12-28Netlogic Microsystems, Inc.Optimizing search trees by increasing success size parameter
US20090007074A1 (en)*2007-06-262009-01-01Sean CampionSystem and method for distributed software testing
CN101344881A (en)2007-07-092009-01-14中国科学院大气物理研究所 Index generation method and device and search system for massive file-type data
US20090225082A1 (en)2008-03-052009-09-10Microsoft CorporationGenerating distributed dataflow graphs
US20100088668A1 (en)*2008-10-062010-04-08Sachiko YoshihamaCrawling of object model using transformation graph
US20100175049A1 (en)2009-01-072010-07-08Microsoft CorporationScope: a structured computations optimized for parallel execution script language
US20110078556A1 (en)2009-09-302011-03-31Fujitsu LimitedClient-tier validation of dynamic web applications
US20110099491A1 (en)*2009-10-282011-04-28Tal AbrahamUser-Interface Testing
US20110270853A1 (en)2010-05-032011-11-03International Business Machines CorporationDynamic Storage and Retrieval of Process Graphs
US20120110063A1 (en)2010-10-292012-05-03Fujitsu LimitedTechnique for stateless distributed parallel crawling of interactive client-server applications
US20120109927A1 (en)2010-10-292012-05-03Fujitsu LimitedArchitecture for distributed, parallel crawling of interactive client-server applications
US20120109929A1 (en)2010-10-292012-05-03Fujitsu LimitedTechnique for efficient partial crawling of interactive client-server applications in a parallel, distributed environment
US20120109928A1 (en)2010-10-292012-05-03Fujitsu LimitedSynchronization scheme for distributed, parallel crawling of interactive client-server applications
US20120109931A1 (en)2010-10-292012-05-03Fujitsu LimitedTechnique for compression of state information in the crawling of interactive client-server applications
US20120109930A1 (en)2010-10-292012-05-03Fujitsu LimitedTechnique for coordinating the distributed, parallel crawling of interactive client-server applications
US20120210236A1 (en)2011-02-142012-08-16Fujitsu LimitedWeb Service for Automated Cross-Browser Compatibility Checking of Web Applications

Non-Patent Citations (30)

* Cited by examiner, † Cited by third party
Title
Chau et al.; "Parallel Crawling for Online Social Networks"; ACM; pp. 1283-1284, 2007.
Cho et al.; "Parallel Crawlers"; ACM; pp. 13, 2002.
Choudhary, Shauvik Roy, et al., "WebDiff: Automated Identification of Cross-browser Issues in Web Applications", International Conference on Software Maintenance (ICSM 2010), 2010.
Extended European Search Report; Application No. 11185558.1; pp. 7, Sep. 28, 2012.
Extended European Search Report; Application No. 11186160.5; pp. 7, Sep. 28, 2012.
Extended European Search Report; Application No. 11186926.9; pp. 8, Oct. 4, 2012.
Extended European Search Report; Application No. 11186989.7; pp. 8, Oct. 17, 2012.
Extended European Search Report; Application No. 11186993.9; pp. 7, Sep. 28, 2012.
Extended European Search Report; Application No. 11816805.5; pp. 8, Oct. 25, 2012.
Extended European Search Report; Application No. 12151883.1; pp. 6, Oct. 8, 2012.
Hafri et al.; "Dominos: A New Web Crawler's Design"; IWAW04; pp. 8, 2004.
Halle et al.; "Eliminating Navigation Errors inWeb Applications via Model Checking and Runtime Enforcement of Navigation State Machines"; ACM; pp. 235-244, 2010.
Mesbah et al.; "Invariant-Based Automatic Testing of AJAX User Interfaces"; SERG; pp. 1-11, 2009.
Mesbah et al; "Crawling AJAX by Inferring User Interface State Changes"; Software Engineering Research Group; pp. 16, 2008.
Mesbah, Ali et al., "Automated Cross-Browser Compatibility Testing" International Conference on Software Engineering (ICSE 2011), 2011.
Notification of Transmittal Letter (English), dated Jan. 30, 2014; The State Intellectual Property Office of the People's Republic of China; Chinese Office Action and Search Report and English Translation of Text of the First Office Action and Search Report, Application No. 201080039223.9, Ref. No. 073338.0815 / Ref. 09-51264CN0 / Ref. FC111US4440E; dated Jan. 17, 2014; (19 pages), Jan. 17, 2014.
Oracle; "Oracle Ultra Search User's Guide log"; pp. 272, 2003.
Roest et al.; Regression Testing Ajax Applications: Coping with Dynamism; SERG; pp. 1-10, 2009.
U.S. Appl. No. 13/026,899, filed Feb. 14, 2011, Mukul R. Prasad.
U.S. Appl. No. 13/441,402; pp. 37, Apr. 6, 2012.
United States Final Office Action, Application No. 12/957,379; pp. 36, Feb. 14, 2013.
United States Final Office Action, Application No. 12/957,384; pp. 33, Jan. 15, 2013.
United States Final Office Action, U.S. Appl. No. 12/957,377; pp. 38, Aug. 13, 2012.
United States of Action, U.S. Appl. No. 12/957,379; pp. 28, Sep. 13, 2012.
United States Office Action, U.S. Appl. No. 12/957,374; pp. 14, Mar. 29, 2012.
United States Office Action, U.S. Appl. No. 12/957,376; pp. 14, Mar. 5, 2012.
United States Office Action, U.S. Appl. No. 12/957,377; pp. 39, Mar. 14, 2012.
United States Office Action, U.S. Appl. No. 12/957,384; pp. 26, May 18, 2012.
Wolf; "High Performance Embedded Computing. Architectures, applications, and methodologies"; Referex, XP040425711; pp. 520, 2007.
Ye et al.; "Crawling Online Social Graphs"; pp. 7, 2000.

Cited By (257)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US10649634B2 (en)*2014-06-062020-05-12International Business Machines CorporationIndexing and annotating a usability test recording
US20150356062A1 (en)*2014-06-062015-12-10International Business Machines CorporationIndexing and annotating a usability test recording
US11004125B2 (en)2016-04-012021-05-11OneTrust, LLCData processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US10706447B2 (en)2016-04-012020-07-07OneTrust, LLCData processing systems and communication systems and methods for the efficient generation of privacy risk assessments
US10853859B2 (en)2016-04-012020-12-01OneTrust, LLCData processing systems and methods for operationalizing privacy compliance and assessing the risk of various respective privacy campaigns
US10956952B2 (en)2016-04-012021-03-23OneTrust, LLCData processing systems and communication systems and methods for the efficient generation of privacy risk assessments
US12288233B2 (en)2016-04-012025-04-29OneTrust, LLCData processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11651402B2 (en)2016-04-012023-05-16OneTrust, LLCData processing systems and communication systems and methods for the efficient generation of risk assessments
US11244367B2 (en)2016-04-012022-02-08OneTrust, LLCData processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11182501B2 (en)2016-06-102021-11-23OneTrust, LLCData processing systems for fulfilling data subject access requests and related methods
US10586075B2 (en)2016-06-102020-03-10OneTrust, LLCData processing systems for orphaned data identification and deletion and related methods
US10509920B2 (en)2016-06-102019-12-17OneTrust, LLCData processing systems for processing data subject access requests
US10558821B2 (en)2016-06-102020-02-11OneTrust, LLCData processing systems for fulfilling data subject access requests and related methods
US10564935B2 (en)2016-06-102020-02-18OneTrust, LLCData processing systems for integration of consumer feedback with data subject access requests and related methods
US10565236B1 (en)2016-06-102020-02-18OneTrust, LLCData processing systems for generating and populating a data inventory
US10567439B2 (en)2016-06-102020-02-18OneTrust, LLCData processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10565397B1 (en)2016-06-102020-02-18OneTrust, LLCData processing systems for fulfilling data subject access requests and related methods
US10565161B2 (en)2016-06-102020-02-18OneTrust, LLCData processing systems for processing data subject access requests
US10564936B2 (en)2016-06-102020-02-18OneTrust, LLCData processing systems for identity validation of data subject access requests and related methods
US10574705B2 (en)2016-06-102020-02-25OneTrust, LLCData processing and scanning systems for generating and populating a data inventory
US10572686B2 (en)2016-06-102020-02-25OneTrust, LLCConsent receipt management systems and related methods
US10586072B2 (en)2016-06-102020-03-10OneTrust, LLCData processing systems for measuring privacy maturity within an organization
US11200341B2 (en)2016-06-102021-12-14OneTrust, LLCConsent receipt management systems and related methods
US10585968B2 (en)*2016-06-102020-03-10OneTrust, LLCData processing systems for fulfilling data subject access requests and related methods
US10592692B2 (en)2016-06-102020-03-17OneTrust, LLCData processing systems for central consent repository and related methods
US10594740B2 (en)2016-06-102020-03-17OneTrust, LLCData processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10592648B2 (en)2016-06-102020-03-17OneTrust, LLCConsent receipt management systems and related methods
US10599870B2 (en)2016-06-102020-03-24OneTrust, LLCData processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US10607028B2 (en)2016-06-102020-03-31OneTrust, LLCData processing systems for data testing to confirm data deletion and related methods
US10606916B2 (en)2016-06-102020-03-31OneTrust, LLCData processing user interface monitoring systems and related methods
US10614246B2 (en)2016-06-102020-04-07OneTrust, LLCData processing systems and methods for auditing data request compliance
US10614247B2 (en)2016-06-102020-04-07OneTrust, LLCData processing systems for automated classification of personal information from documents and related methods
US10642870B2 (en)2016-06-102020-05-05OneTrust, LLCData processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10678945B2 (en)2016-06-102020-06-09OneTrust, LLCConsent receipt management systems and related methods
US10685140B2 (en)2016-06-102020-06-16OneTrust, LLCConsent receipt management systems and related methods
US10692033B2 (en)2016-06-102020-06-23OneTrust, LLCData processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US10706131B2 (en)2016-06-102020-07-07OneTrust, LLCData processing systems and methods for efficiently assessing the risk of privacy campaigns
US10708305B2 (en)2016-06-102020-07-07OneTrust, LLCAutomated data processing systems and methods for automatically processing requests for privacy-related information
US10706379B2 (en)2016-06-102020-07-07OneTrust, LLCData processing systems for automatic preparation for remediation and related methods
US10705801B2 (en)2016-06-102020-07-07OneTrust, LLCData processing systems for identity validation of data subject access requests and related methods
US10706176B2 (en)2016-06-102020-07-07OneTrust, LLCData-processing consent refresh, re-prompt, and recapture systems and related methods
US10706174B2 (en)2016-06-102020-07-07OneTrust, LLCData processing systems for prioritizing data subject access requests for fulfillment and related methods
US10713387B2 (en)2016-06-102020-07-14OneTrust, LLCConsent conversion optimization systems and related methods
US10726158B2 (en)2016-06-102020-07-28OneTrust, LLCConsent receipt management and automated process blocking systems and related methods
US10740487B2 (en)2016-06-102020-08-11OneTrust, LLCData processing systems and methods for populating and maintaining a centralized database of personal data
US10754981B2 (en)2016-06-102020-08-25OneTrust, LLCData processing systems for fulfilling data subject access requests and related methods
US10762236B2 (en)2016-06-102020-09-01OneTrust, LLCData processing user interface monitoring systems and related methods
US10769302B2 (en)2016-06-102020-09-08OneTrust, LLCConsent receipt management systems and related methods
US10769301B2 (en)2016-06-102020-09-08OneTrust, LLCData processing systems for webform crawling to map processing activities and related methods
US10769303B2 (en)2016-06-102020-09-08OneTrust, LLCData processing systems for central consent repository and related methods
US10776518B2 (en)2016-06-102020-09-15OneTrust, LLCConsent receipt management systems and related methods
US10776514B2 (en)2016-06-102020-09-15OneTrust, LLCData processing systems for the identification and deletion of personal data in computer systems
US10776515B2 (en)2016-06-102020-09-15OneTrust, LLCData processing systems for fulfilling data subject access requests and related methods
US10776517B2 (en)2016-06-102020-09-15OneTrust, LLCData processing systems for calculating and communicating cost of fulfilling data subject access requests and related methods
US10783256B2 (en)2016-06-102020-09-22OneTrust, LLCData processing systems for data transfer risk identification and related methods
US10791150B2 (en)2016-06-102020-09-29OneTrust, LLCData processing and scanning systems for generating and populating a data inventory
US10796260B2 (en)2016-06-102020-10-06OneTrust, LLCPrivacy management systems and methods
US10796020B2 (en)2016-06-102020-10-06OneTrust, LLCConsent receipt management systems and related methods
US10798133B2 (en)2016-06-102020-10-06OneTrust, LLCData processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10803198B2 (en)2016-06-102020-10-13OneTrust, LLCData processing systems for use in automatically generating, populating, and submitting data subject access requests
US10803199B2 (en)2016-06-102020-10-13OneTrust, LLCData processing and communications systems and methods for the efficient implementation of privacy by design
US10803200B2 (en)2016-06-102020-10-13OneTrust, LLCData processing systems for processing and managing data subject access in a distributed environment
US10805354B2 (en)2016-06-102020-10-13OneTrust, LLCData processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10803097B2 (en)2016-06-102020-10-13OneTrust, LLCData processing systems for generating and populating a data inventory
US11195134B2 (en)2016-06-102021-12-07OneTrust, LLCPrivacy management systems and methods
US10848523B2 (en)2016-06-102020-11-24OneTrust, LLCData processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10846261B2 (en)2016-06-102020-11-24OneTrust, LLCData processing systems for processing data subject access requests
US10846433B2 (en)2016-06-102020-11-24OneTrust, LLCData processing consent management systems and related methods
US10853501B2 (en)2016-06-102020-12-01OneTrust, LLCData processing and scanning systems for assessing vendor risk
US10867007B2 (en)2016-06-102020-12-15OneTrust, LLCData processing systems for fulfilling data subject access requests and related methods
US10867072B2 (en)2016-06-102020-12-15OneTrust, LLCData processing systems for measuring privacy maturity within an organization
US10873606B2 (en)2016-06-102020-12-22OneTrust, LLCData processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10878127B2 (en)2016-06-102020-12-29OneTrust, LLCData subject access request processing systems and related methods
US10885485B2 (en)2016-06-102021-01-05OneTrust, LLCPrivacy management systems and methods
US10896394B2 (en)2016-06-102021-01-19OneTrust, LLCPrivacy management systems and methods
US10909488B2 (en)2016-06-102021-02-02OneTrust, LLCData processing systems for assessing readiness for responding to privacy-related incidents
US10909265B2 (en)2016-06-102021-02-02OneTrust, LLCApplication privacy scanning systems and related methods
US10929559B2 (en)2016-06-102021-02-23OneTrust, LLCData processing systems for data testing to confirm data deletion and related methods
US10944725B2 (en)2016-06-102021-03-09OneTrust, LLCData processing systems and methods for using a data model to select a target data asset in a data migration
US10949544B2 (en)2016-06-102021-03-16OneTrust, LLCData processing systems for data transfer risk identification and related methods
US10949170B2 (en)2016-06-102021-03-16OneTrust, LLCData processing systems for integration of consumer feedback with data subject access requests and related methods
US10949567B2 (en)2016-06-102021-03-16OneTrust, LLCData processing systems for fulfilling data subject access requests and related methods
US10949565B2 (en)2016-06-102021-03-16OneTrust, LLCData processing systems for generating and populating a data inventory
US12412140B2 (en)2016-06-102025-09-09OneTrust, LLCData processing systems and methods for bundled privacy policies
US12381915B2 (en)2016-06-102025-08-05OneTrust, LLCData processing systems and methods for performing assessments and monitoring of new versions of computer code for compliance
US10970675B2 (en)2016-06-102021-04-06OneTrust, LLCData processing systems for generating and populating a data inventory
US10972509B2 (en)2016-06-102021-04-06OneTrust, LLCData processing and scanning systems for generating and populating a data inventory
US10970371B2 (en)2016-06-102021-04-06OneTrust, LLCConsent receipt management systems and related methods
US10984132B2 (en)2016-06-102021-04-20OneTrust, LLCData processing systems and methods for populating and maintaining a centralized database of personal data
US10997542B2 (en)2016-06-102021-05-04OneTrust, LLCPrivacy management systems and methods
US10997315B2 (en)2016-06-102021-05-04OneTrust, LLCData processing systems for fulfilling data subject access requests and related methods
US10997318B2 (en)2016-06-102021-05-04OneTrust, LLCData processing systems for generating and populating a data inventory for processing data access requests
US10503926B2 (en)2016-06-102019-12-10OneTrust, LLCConsent receipt management systems and related methods
US11023842B2 (en)2016-06-102021-06-01OneTrust, LLCData processing systems and methods for bundled privacy policies
US11023616B2 (en)2016-06-102021-06-01OneTrust, LLCData processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11025675B2 (en)2016-06-102021-06-01OneTrust, LLCData processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US11030327B2 (en)2016-06-102021-06-08OneTrust, LLCData processing and scanning systems for assessing vendor risk
US11030274B2 (en)2016-06-102021-06-08OneTrust, LLCData processing user interface monitoring systems and related methods
US11030563B2 (en)2016-06-102021-06-08OneTrust, LLCPrivacy management systems and methods
US11038925B2 (en)2016-06-102021-06-15OneTrust, LLCData processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11036882B2 (en)2016-06-102021-06-15OneTrust, LLCData processing systems for processing and managing data subject access in a distributed environment
US11036674B2 (en)2016-06-102021-06-15OneTrust, LLCData processing systems for processing data subject access requests
US11036771B2 (en)2016-06-102021-06-15OneTrust, LLCData processing systems for generating and populating a data inventory
US11057356B2 (en)2016-06-102021-07-06OneTrust, LLCAutomated data processing systems and methods for automatically processing data subject access requests using a chatbot
US11062051B2 (en)2016-06-102021-07-13OneTrust, LLCConsent receipt management systems and related methods
US11068618B2 (en)2016-06-102021-07-20OneTrust, LLCData processing systems for central consent repository and related methods
US11070593B2 (en)2016-06-102021-07-20OneTrust, LLCData processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11074367B2 (en)2016-06-102021-07-27OneTrust, LLCData processing systems for identity validation for consumer rights requests and related methods
US11087260B2 (en)2016-06-102021-08-10OneTrust, LLCData processing systems and methods for customizing privacy training
US11100444B2 (en)2016-06-102021-08-24OneTrust, LLCData processing systems and methods for providing training in a vendor procurement process
US11100445B2 (en)2016-06-102021-08-24OneTrust, LLCData processing systems for assessing readiness for responding to privacy-related incidents
US11113416B2 (en)2016-06-102021-09-07OneTrust, LLCApplication privacy scanning systems and related methods
US11210420B2 (en)2016-06-102021-12-28OneTrust, LLCData subject access request processing systems and related methods
US11120161B2 (en)2016-06-102021-09-14OneTrust, LLCData subject access request processing systems and related methods
US11120162B2 (en)2016-06-102021-09-14OneTrust, LLCData processing systems for data testing to confirm data deletion and related methods
US11126748B2 (en)2016-06-102021-09-21OneTrust, LLCData processing consent management systems and related methods
US11134086B2 (en)2016-06-102021-09-28OneTrust, LLCConsent conversion optimization systems and related methods
US11138299B2 (en)2016-06-102021-10-05OneTrust, LLCData processing and scanning systems for assessing vendor risk
US11138318B2 (en)2016-06-102021-10-05OneTrust, LLCData processing systems for data transfer risk identification and related methods
US11138336B2 (en)2016-06-102021-10-05OneTrust, LLCData processing systems for generating and populating a data inventory
US11138242B2 (en)2016-06-102021-10-05OneTrust, LLCData processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11144670B2 (en)2016-06-102021-10-12OneTrust, LLCData processing systems for identifying and modifying processes that are subject to data subject access requests
US12299065B2 (en)2016-06-102025-05-13OneTrust, LLCData processing systems and methods for dynamically determining data processing consent configurations
US11146566B2 (en)2016-06-102021-10-12OneTrust, LLCData processing systems for fulfilling data subject access requests and related methods
US11144622B2 (en)2016-06-102021-10-12OneTrust, LLCPrivacy management systems and methods
US11151233B2 (en)2016-06-102021-10-19OneTrust, LLCData processing and scanning systems for assessing vendor risk
US20190266201A1 (en)*2016-06-102019-08-29OneTrust, LLCData processing systems for fulfilling data subject access requests and related methods
US11157600B2 (en)2016-06-102021-10-26OneTrust, LLCData processing and scanning systems for assessing vendor risk
US10496846B1 (en)2016-06-102019-12-03OneTrust, LLCData processing and communications systems and methods for the efficient implementation of privacy by design
US11188615B2 (en)2016-06-102021-11-30OneTrust, LLCData processing consent capture systems and related methods
US11188862B2 (en)2016-06-102021-11-30OneTrust, LLCPrivacy management systems and methods
US10839102B2 (en)2016-06-102020-11-17OneTrust, LLCData processing systems for identifying and modifying processes that are subject to data subject access requests
US10509894B2 (en)2016-06-102019-12-17OneTrust, LLCData processing and scanning systems for assessing vendor risk
US11122011B2 (en)2016-06-102021-09-14OneTrust, LLCData processing systems and methods for using a data model to select a target data asset in a data migration
US11222309B2 (en)2016-06-102022-01-11OneTrust, LLCData processing systems for generating and populating a data inventory
US11222142B2 (en)2016-06-102022-01-11OneTrust, LLCData processing systems for validating authorization for personal data collection, storage, and processing
US11222139B2 (en)2016-06-102022-01-11OneTrust, LLCData processing systems and methods for automatic discovery and assessment of mobile software development kits
US11227247B2 (en)2016-06-102022-01-18OneTrust, LLCData processing systems and methods for bundled privacy policies
US11228620B2 (en)2016-06-102022-01-18OneTrust, LLCData processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11240273B2 (en)2016-06-102022-02-01OneTrust, LLCData processing and scanning systems for generating and populating a data inventory
US11238390B2 (en)2016-06-102022-02-01OneTrust, LLCPrivacy management systems and methods
US10496803B2 (en)2016-06-102019-12-03OneTrust, LLCData processing systems and methods for efficiently assessing the risk of privacy campaigns
US11244072B2 (en)2016-06-102022-02-08OneTrust, LLCData processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11244071B2 (en)2016-06-102022-02-08OneTrust, LLCData processing systems for use in automatically generating, populating, and submitting data subject access requests
US11256777B2 (en)2016-06-102022-02-22OneTrust, LLCData processing user interface monitoring systems and related methods
US11277448B2 (en)2016-06-102022-03-15OneTrust, LLCData processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11295316B2 (en)2016-06-102022-04-05OneTrust, LLCData processing systems for identity validation for consumer rights requests and related methods
US11294939B2 (en)2016-06-102022-04-05OneTrust, LLCData processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11301796B2 (en)2016-06-102022-04-12OneTrust, LLCData processing systems and methods for customizing privacy training
US11301589B2 (en)2016-06-102022-04-12OneTrust, LLCConsent receipt management systems and related methods
US11308435B2 (en)2016-06-102022-04-19OneTrust, LLCData processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11328240B2 (en)2016-06-102022-05-10OneTrust, LLCData processing systems for assessing readiness for responding to privacy-related incidents
US11328092B2 (en)2016-06-102022-05-10OneTrust, LLCData processing systems for processing and managing data subject access in a distributed environment
US11336697B2 (en)2016-06-102022-05-17OneTrust, LLCData processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11334682B2 (en)2016-06-102022-05-17OneTrust, LLCData subject access request processing systems and related methods
US11334681B2 (en)2016-06-102022-05-17OneTrust, LLCApplication privacy scanning systems and related meihods
US11343284B2 (en)2016-06-102022-05-24OneTrust, LLCData processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US11341447B2 (en)2016-06-102022-05-24OneTrust, LLCPrivacy management systems and methods
US11347889B2 (en)2016-06-102022-05-31OneTrust, LLCData processing systems for generating and populating a data inventory
US11354435B2 (en)2016-06-102022-06-07OneTrust, LLCData processing systems for data testing to confirm data deletion and related methods
US11354434B2 (en)2016-06-102022-06-07OneTrust, LLCData processing systems for verification of consent and notice processing and related methods
US11361057B2 (en)2016-06-102022-06-14OneTrust, LLCConsent receipt management systems and related methods
US11366909B2 (en)2016-06-102022-06-21OneTrust, LLCData processing and scanning systems for assessing vendor risk
US11366786B2 (en)2016-06-102022-06-21OneTrust, LLCData processing systems for processing data subject access requests
US12216794B2 (en)2016-06-102025-02-04OneTrust, LLCData processing systems and methods for synching privacy-related user consent across multiple computing devices
US12204564B2 (en)2016-06-102025-01-21OneTrust, LLCData processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11392720B2 (en)2016-06-102022-07-19OneTrust, LLCData processing systems for verification of consent and notice processing and related methods
US12190330B2 (en)2016-06-102025-01-07OneTrust, LLCData processing systems for identity validation for consumer rights requests and related methods
US11403377B2 (en)2016-06-102022-08-02OneTrust, LLCPrivacy management systems and methods
US11410106B2 (en)2016-06-102022-08-09OneTrust, LLCPrivacy management systems and methods
US11409908B2 (en)2016-06-102022-08-09OneTrust, LLCData processing systems and methods for populating and maintaining a centralized database of personal data
US11416798B2 (en)2016-06-102022-08-16OneTrust, LLCData processing systems and methods for providing training in a vendor procurement process
US11416590B2 (en)2016-06-102022-08-16OneTrust, LLCData processing and scanning systems for assessing vendor risk
US11416576B2 (en)2016-06-102022-08-16OneTrust, LLCData processing consent capture systems and related methods
US11416634B2 (en)2016-06-102022-08-16OneTrust, LLCConsent receipt management systems and related methods
US11418492B2 (en)2016-06-102022-08-16OneTrust, LLCData processing systems and methods for using a data model to select a target data asset in a data migration
US11416636B2 (en)2016-06-102022-08-16OneTrust, LLCData processing consent management systems and related methods
US11416589B2 (en)2016-06-102022-08-16OneTrust, LLCData processing and scanning systems for assessing vendor risk
US11416109B2 (en)2016-06-102022-08-16OneTrust, LLCAutomated data processing systems and methods for automatically processing data subject access requests using a chatbot
US11418516B2 (en)2016-06-102022-08-16OneTrust, LLCConsent conversion optimization systems and related methods
US12164667B2 (en)2016-06-102024-12-10OneTrust, LLCApplication privacy scanning systems and related methods
US11438386B2 (en)2016-06-102022-09-06OneTrust, LLCData processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US12158975B2 (en)2016-06-102024-12-03OneTrust, LLCData processing consent sharing systems and related methods
US12147578B2 (en)2016-06-102024-11-19OneTrust, LLCConsent receipt management systems and related methods
US11449633B2 (en)2016-06-102022-09-20OneTrust, LLCData processing systems and methods for automatic discovery and assessment of mobile software development kits
US11461722B2 (en)2016-06-102022-10-04OneTrust, LLCQuestionnaire response automation for compliance management
US11461500B2 (en)2016-06-102022-10-04OneTrust, LLCData processing systems for cookie compliance testing with website scanning and related methods
US11468196B2 (en)2016-06-102022-10-11OneTrust, LLCData processing systems for validating authorization for personal data collection, storage, and processing
US11468386B2 (en)2016-06-102022-10-11OneTrust, LLCData processing systems and methods for bundled privacy policies
US11475136B2 (en)2016-06-102022-10-18OneTrust, LLCData processing systems for data transfer risk identification and related methods
US12136055B2 (en)2016-06-102024-11-05OneTrust, LLCData processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11481710B2 (en)2016-06-102022-10-25OneTrust, LLCPrivacy management systems and methods
US11488085B2 (en)2016-06-102022-11-01OneTrust, LLCQuestionnaire response automation for compliance management
US12118121B2 (en)2016-06-102024-10-15OneTrust, LLCData subject access request processing systems and related methods
US11520928B2 (en)2016-06-102022-12-06OneTrust, LLCData processing systems for generating personal data receipts and related methods
US12086748B2 (en)2016-06-102024-09-10OneTrust, LLCData processing systems for assessing readiness for responding to privacy-related incidents
US12052289B2 (en)2016-06-102024-07-30OneTrust, LLCData processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US12045266B2 (en)2016-06-102024-07-23OneTrust, LLCData processing systems for generating and populating a data inventory
US11544667B2 (en)2016-06-102023-01-03OneTrust, LLCData processing systems for generating and populating a data inventory
US11544405B2 (en)2016-06-102023-01-03OneTrust, LLCData processing systems for verification of consent and notice processing and related methods
US12026651B2 (en)2016-06-102024-07-02OneTrust, LLCData processing systems and methods for providing training in a vendor procurement process
US11550897B2 (en)2016-06-102023-01-10OneTrust, LLCData processing and scanning systems for assessing vendor risk
US11551174B2 (en)2016-06-102023-01-10OneTrust, LLCPrivacy management systems and methods
US11558429B2 (en)2016-06-102023-01-17OneTrust, LLCData processing and scanning systems for generating and populating a data inventory
US11556672B2 (en)2016-06-102023-01-17OneTrust, LLCData processing systems for verification of consent and notice processing and related methods
US11562097B2 (en)2016-06-102023-01-24OneTrust, LLCData processing systems for central consent repository and related methods
US11960564B2 (en)2016-06-102024-04-16OneTrust, LLCData processing systems and methods for automatically blocking the use of tracking tools
US11586762B2 (en)2016-06-102023-02-21OneTrust, LLCData processing systems and methods for auditing data request compliance
US11586700B2 (en)2016-06-102023-02-21OneTrust, LLCData processing systems and methods for automatically blocking the use of tracking tools
US11921894B2 (en)2016-06-102024-03-05OneTrust, LLCData processing systems for generating and populating a data inventory for processing data access requests
US11868507B2 (en)2016-06-102024-01-09OneTrust, LLCData processing systems for cookie compliance testing with website scanning and related methods
US11609939B2 (en)2016-06-102023-03-21OneTrust, LLCData processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11847182B2 (en)2016-06-102023-12-19OneTrust, LLCData processing consent capture systems and related methods
US11727141B2 (en)2016-06-102023-08-15OneTrust, LLCData processing systems and methods for synching privacy-related user consent across multiple computing devices
US11625502B2 (en)2016-06-102023-04-11OneTrust, LLCData processing systems for identifying and modifying processes that are subject to data subject access requests
US11636171B2 (en)2016-06-102023-04-25OneTrust, LLCData processing user interface monitoring systems and related methods
US11645353B2 (en)2016-06-102023-05-09OneTrust, LLCData processing consent capture systems and related methods
US11645418B2 (en)2016-06-102023-05-09OneTrust, LLCData processing systems for data testing to confirm data deletion and related methods
US11651106B2 (en)2016-06-102023-05-16OneTrust, LLCData processing systems for fulfilling data subject access requests and related methods
US11651104B2 (en)2016-06-102023-05-16OneTrust, LLCConsent receipt management systems and related methods
US10467432B2 (en)2016-06-102019-11-05OneTrust, LLCData processing systems for use in automatically generating, populating, and submitting data subject access requests
US11675929B2 (en)2016-06-102023-06-13OneTrust, LLCData processing consent sharing systems and related methods
US11373007B2 (en)2017-06-162022-06-28OneTrust, LLCData processing systems for identifying whether cookies contain personally identifying information
US11663359B2 (en)2017-06-162023-05-30OneTrust, LLCData processing systems for identifying whether cookies contain personally identifying information
US10803202B2 (en)2018-09-072020-10-13OneTrust, LLCData processing systems for orphaned data identification and deletion and related methods
US10963591B2 (en)2018-09-072021-03-30OneTrust, LLCData processing systems for orphaned data identification and deletion and related methods
US11144675B2 (en)2018-09-072021-10-12OneTrust, LLCData processing systems and methods for automatically protecting sensitive data within privacy management systems
US11157654B2 (en)2018-09-072021-10-26OneTrust, LLCData processing systems for orphaned data identification and deletion and related methods
US11544409B2 (en)2018-09-072023-01-03OneTrust, LLCData processing systems and methods for automatically protecting sensitive data within privacy management systems
US11593523B2 (en)2018-09-072023-02-28OneTrust, LLCData processing systems for orphaned data identification and deletion and related methods
US11947708B2 (en)2018-09-072024-04-02OneTrust, LLCData processing systems and methods for automatically protecting sensitive data within privacy management systems
US20220206828A1 (en)*2019-04-102022-06-30Nippon Telegraph And Telephone CorporationInput value setting assisting apparatus, input value setting assisting method and program
US12153942B2 (en)*2019-04-102024-11-26Nippon Telegraph And Telephone CorporationInput value setting assisting apparatus, input value setting assisting method and program
US11797528B2 (en)2020-07-082023-10-24OneTrust, LLCSystems and methods for targeted data discovery
US12353405B2 (en)2020-07-082025-07-08OneTrust, LLCSystems and methods for targeted data discovery
US11968229B2 (en)2020-07-282024-04-23OneTrust, LLCSystems and methods for automatically blocking the use of tracking tools
US11444976B2 (en)2020-07-282022-09-13OneTrust, LLCSystems and methods for automatically blocking the use of tracking tools
US11475165B2 (en)2020-08-062022-10-18OneTrust, LLCData processing systems and methods for automatically redacting unstructured data from a data subject access request
US11704440B2 (en)2020-09-152023-07-18OneTrust, LLCData processing systems and methods for preventing execution of an action documenting a consent rejection
US11436373B2 (en)2020-09-152022-09-06OneTrust, LLCData processing systems and methods for detecting tools for the automatic blocking of consent requests
US11526624B2 (en)2020-09-212022-12-13OneTrust, LLCData processing systems and methods for automatically detecting target data transfers and target data processing
US12265896B2 (en)2020-10-052025-04-01OneTrust, LLCSystems and methods for detecting prejudice bias in machine-learning models
US11397819B2 (en)2020-11-062022-07-26OneTrust, LLCSystems and methods for identifying data processing activities based on data discovery results
US12277232B2 (en)2020-11-062025-04-15OneTrust, LLCSystems and methods for identifying data processing activities based on data discovery results
US11615192B2 (en)2020-11-062023-03-28OneTrust, LLCSystems and methods for identifying data processing activities based on data discovery results
US12259882B2 (en)2021-01-252025-03-25OneTrust, LLCSystems and methods for discovery, classification, and indexing of data in a native computing system
US11687528B2 (en)2021-01-252023-06-27OneTrust, LLCSystems and methods for discovery, classification, and indexing of data in a native computing system
US11442906B2 (en)2021-02-042022-09-13OneTrust, LLCManaging custom attributes for domain objects defined within microservices
US11494515B2 (en)2021-02-082022-11-08OneTrust, LLCData processing systems and methods for anonymizing data samples in classification analysis
US11601464B2 (en)2021-02-102023-03-07OneTrust, LLCSystems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system
US11775348B2 (en)2021-02-172023-10-03OneTrust, LLCManaging custom workflows for domain objects defined within microservices
US11546661B2 (en)2021-02-182023-01-03OneTrust, LLCSelective redaction of media content
US11533315B2 (en)2021-03-082022-12-20OneTrust, LLCData transfer discovery and analysis systems and related methods
US11562078B2 (en)2021-04-162023-01-24OneTrust, LLCAssessing and managing computational risk involved with integrating third party computing functionality within a computing system
US11816224B2 (en)2021-04-162023-11-14OneTrust, LLCAssessing and managing computational risk involved with integrating third party computing functionality within a computing system
US12153704B2 (en)2021-08-052024-11-26OneTrust, LLCComputing platform for facilitating data exchange among computing environments
US11620142B1 (en)2022-06-032023-04-04OneTrust, LLCGenerating and customizing user interfaces for demonstrating functions of interactive user environments

Also Published As

Publication numberPublication date
US20110225289A1 (en)2011-09-15

Similar Documents

PublicationPublication DateTitle
US9032067B2 (en)Determining differences in an event-driven application accessed in different client-tier environments
US8381094B1 (en)Incremental visual comparison of web browser screens
JP5942750B2 (en) Visual comparison method
US8402319B2 (en)Method and system to extract a navigation model for analysis of a web application
EP2487595B1 (en)Web service for automated cross-browser compatibility checking of web applications
AU2013308886B2 (en)API version testing based on query schema
US10534512B2 (en)System and method for identifying web elements present on a web-page
US20180173495A1 (en)Duplicate and similar bug report detection and retrieval using neural networks
US8631394B2 (en)Static resource processing
US8543983B2 (en)Creating hierarchical message sequence charts for visualizing user-interactive applications
US20120233239A1 (en)Device Specific Handling of User Interface Components
US11544179B2 (en)Source traceability-based impact analysis
US8880951B2 (en)Detection of dead widgets in software applications
US20140052851A1 (en)Systems and methods for discovering sources of online content
CN114462040A (en)Malicious software detection model training method, malicious software detection method and malicious software detection device
US10740223B1 (en)Systems and methods for checkpoint-based machine learning model
JP6644188B2 (en) Impact extraction device, impact extraction program, and impact extraction method
US9785450B2 (en)Triggered controlled event listener learner
HraškaBrowser fingerprinting
US12080056B1 (en)Performing explanation jobs for computer vision tasks
CN119071037B (en) Method, device, electronic device and readable medium for determining fileless attack scenario graph
KR20250073972A (en)Javascript code property graph classification for ad and tracker detection
WO2024141876A1 (en)Securely enabling rendering of a hybrid website interface based on trusted and untrusted code components
CN117097548A (en)Data processing method and device, electronic equipment and storage medium
CN118677664A (en)Identification method, equipment and medium for APP download links in fraud-related websites

Legal Events

DateCodeTitleDescription
ASAssignment

Owner name:FUJITSU LIMITED, JAPAN

Free format text:ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PRASAD, MUKUL R.;MESBAH, ALI;REEL/FRAME:024163/0803

Effective date:20100330

STCFInformation on status: patent grant

Free format text:PATENTED CASE

MAFPMaintenance fee payment

Free format text:PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment:4

FEPPFee payment procedure

Free format text:MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPSLapse for failure to pay maintenance fees

Free format text:PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCHInformation on status: patent discontinuation

Free format text:PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FPLapsed due to failure to pay maintenance fee

Effective date:20230512


[8]ページ先頭

©2009-2025 Movatter.jp