US7089330B1 - System and method for transforming custom content generation tags associated with web pages - Google Patents

System and method for transforming custom content generation tags associated with web pages Download PDF

Info

Publication number
US7089330B1
US7089330B1 US09/675,780 US67578000A US7089330B1 US 7089330 B1 US7089330 B1 US 7089330B1 US 67578000 A US67578000 A US 67578000A US 7089330 B1 US7089330 B1 US 7089330B1
Authority
US
United States
Prior art keywords
tags
content generation
custom
jsp
custom content
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 - Lifetime, expires
Application number
US09/675,780
Inventor
Larry P. Mason
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.)
Blue Yonder Group Inc
Original Assignee
I2 Technologies US Inc
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
Assigned to I2 TECHNOLOGIES, INC. reassignment I2 TECHNOLOGIES, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MASON, LARRY P.
Priority to US09/675,780 priority Critical patent/US7089330B1/en
Application filed by I2 Technologies US Inc filed Critical I2 Technologies US Inc
Assigned to I2 TECHNOLOGIES US, INC. reassignment I2 TECHNOLOGIES US, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: I2 TECHNOLOGIES, INC.
Priority to DE10196699T priority patent/DE10196699T1/en
Priority to AU2001293174A priority patent/AU2001293174A1/en
Priority to PCT/US2001/030462 priority patent/WO2002027511A1/en
Publication of US7089330B1 publication Critical patent/US7089330B1/en
Application granted granted Critical
Assigned to WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT reassignment WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT PATENT SECURITY AGREEMENT Assignors: JDA TECHNOLOGIES US, INC.
Assigned to JDA TECHNOLOGIES US, INC reassignment JDA TECHNOLOGIES US, INC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: I2 TECHNOLOGIES US, INC
Assigned to JDA SOFTWARE GROUP, INC. reassignment JDA SOFTWARE GROUP, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: JDA TECHNOLOGIES US, INC.
Assigned to JDA TECHNOLOGIES US, INC. reassignment JDA TECHNOLOGIES US, INC. RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Assignors: WELLS FARGO CAPITAL FINANCE, LLC
Assigned to CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH reassignment CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH FIRST LIEN PATENT SECURITY AGREEMENT Assignors: JDA SOFTWARE GROUP, INC.
Assigned to CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH reassignment CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH FIRST LIEN PATENT SECURITY AGREEMENT Assignors: JDA SOFTWARE GROUP, INC.
Assigned to JDA SOFTWARE GROUP, INC. reassignment JDA SOFTWARE GROUP, INC. RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 29556/0809 Assignors: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Assigned to JDA SOFTWARE GROUP, INC. reassignment JDA SOFTWARE GROUP, INC. RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 29556/0697 Assignors: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Assigned to JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT reassignment JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT SECURITY AGREEMENT Assignors: JDA SOFTWARE GROUP, INC., RP CROWN HOLDING LLC, RP CROWN PARENT, LLC
Assigned to Blue Yonder Group, Inc. reassignment Blue Yonder Group, Inc. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: JDA SOFTWARE GROUP, INC.
Assigned to U.S. BANK NATIONAL ASSOCIATION reassignment U.S. BANK NATIONAL ASSOCIATION SECURITY AGREEMENT Assignors: Blue Yonder Group, Inc.
Assigned to JDA TECHNOLOGIES US, INC. reassignment JDA TECHNOLOGIES US, INC. CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF THE CONVEYING AND RECEIVING PARTIES TO INCLUDE A PERIOD AFTER THE TERM INC PREVIOUSLY RECORDED ON REEL 026468 FRAME 0199. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME FROM I2 TECHNOLOGIES US, INC. TO JDA TECHNOLOGIES US, INC.. Assignors: I2 TECHNOLOGIES US, INC.
Assigned to JDA SOFTWARE GROUP, INC. reassignment JDA SOFTWARE GROUP, INC. CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF THE CONVEYING AND RECEIVING PARTIES TO INCLUDE A PERIOD AFTER THE TERM INC PREVIOUSLY RECORDED AT REEL: 026740 FRAME: 0676. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Assignors: JDA TECHNOLOGIES US, INC.
Assigned to JDA TECHNOLOGIES US, INC. reassignment JDA TECHNOLOGIES US, INC. CORRECTIVE ASSIGNMENT TO CORRECT THE REEL 026468 FRAME NUMBER FROM 0199 TO 0119 PREVIOUSLY RECORDED ON REEL 055136 FRAME 0623. ASSIGNOR(S) HEREBY CONFIRMS THE CORRECTION ASSIGNMENT. Assignors: I2 TECHNOLOGIES US, INC.
Assigned to MANUGISTICS HOLDINGS DELAWARE II, INC., MANUGISTICS SERVICES, INC., REDPRAIRIE COLLABORATIVE FLOWCASTING GROUP, LLC, Blue Yonder Group, Inc., BLUE YONDER, INC., BY BENELUX HOLDING, INC., BY BOND FINANCE, INC., BY NETHERLANDS HOLDING, INC., I2 TECHNOLOGIES INTERNATIONAL SERVICES, LLC, JDA SOFTWARE RUSSIA HOLDINGS, INC., JDA SOFTWARE SERVICES, INC., REDPRAIRIE SERVICES CORPORATION reassignment MANUGISTICS HOLDINGS DELAWARE II, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: JPMORGAN CHASE BANK, N.A.
Assigned to Blue Yonder Group, Inc. reassignment Blue Yonder Group, Inc. RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053383/0117) Assignors: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Adjusted expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access

Definitions

  • HTML Hypertext Markup Language
  • JAVA servlets are JAVA programs that execute at a web server (as opposed to an “applet,” which executes in a web browser) and that receive a HyperText Transfer Protocol (HTTP) request, dynamically generate a response to the request, and communicate the response to the web browser in the form of an HTML file.
  • HTTP HyperText Transfer Protocol
  • the entire web page (the HTML file) must be created by the servlet. Therefore, if a web page developer wishes to modify the appearance of the web page, the developer must access, edit, and recompile the servlet. This is true even if the developer only wants to change the formatting of the web page and does not want to change the logic of the program and the content that the logic creates.
  • JSP JAVASERVER PAGE
  • a JSP file is basically an HTML file that includes additional components that execute application logic to generate content.
  • web page developers use HTML or Extensible Markup Language (XML) tags to design and format a web page.
  • XML Extensible Markup Language
  • the JSP file also includes JSP tags and/or scriptlets that generate content in the web page.
  • the application logic that generates the content may be included in JAVA programs, such as JAVABEANS, that are executed at the web server using the JSP tags.
  • the HTML and XML tags are used to format the content produced by the JSP tags and scriptlets, such that the appearance of the page may be changed by modifying the HTML or XML tags without having to modify the underlying JAVA programs that are generating the content.
  • Custom tags give the web page developer even greater flexibility in the design of web pages.
  • custom JAVA code may be included in JSP files as scriptlets that create content, custom tags can be used to create this same content by executing separate JAVA applications. Therefore, instead of having to include JAVA code in the JSP file, the developer only has to include a custom tag and a minimal amount of supporting code.
  • the use of custom tags allows for the further separation of the content generation and page formatting tasks of developing a web page. Unfortunately, custom tags have not been available in previous version of JSP, and developers using these earlier versions have not been able to take advantage of custom tags.
  • a system for transforming custom content generation tags includes a web server that receives a request from a web browser.
  • the request identifies a file that includes one or more custom content generation tags that the web browser is unable to interpret.
  • the system also includes a transformation engine that receives the custom content generation tags from the web server and transforms the custom content generation tags into first output that the web browser is able to interpret.
  • the transformation engine communicates the first output to the web server and the web server communicates the first output to the web browser in response to the request.
  • the system and method of the present invention provide a number of important technical advantages.
  • the use of custom or other content generation tags in files that generate web pages allows for the appearance and formatting of content produced by the tags to be modified without actually modifying the logic generating the content.
  • JSP 1.1 allows for the use of custom tags to create content in web pages.
  • previous versions of JSP such as JSP 1.0
  • JSP 1.0 do not provide for these custom tags (these versions are not “forward compatible”). Therefore, the ability of individuals and businesses using earlier versions of JSP to create and host web pages has been hampered. For example, these individuals and businesses are unable to use the extensive libraries of custom tags that are being created to easily generate dynamic content on their web pages.
  • JSP custom tags may be included in a JSP file that is to be processed using a JSP 1.0 engine.
  • the JSP file including the custom tags is sent to the JSP 1.0 engine.
  • the JSP engine processes the portions of the JSP file that it understands (such as scriptlets and standard JSP tags) and then communicates the results of the processing and the unprocessed custom tags to a transformation engine.
  • the transformation engine is used to transform the custom tags into HTML, XML, or other appropriate code that can be interpreted using a web browser.
  • any other type of file including JSP or other custom tags may be communicated to the transformation engine to transform the custom tags. Therefore, even if an individual or business that hosts web pages does not have an engine capable of interpreting custom tags, the individual or business can still incorporate custom tags in their web pages and benefit from the advantages of custom tags. Techniques incorporating one or more of these or other advantages are well suited to a variety of web page development, hosting, and processing environments. Other technical advantages are readily apparent to those skilled in the art from the following figures, descriptions and claims.
  • FIG. 1 illustrates an exemplary system for transforming custom tags in a web page
  • FIG. 2 illustrates an exemplary JSP page that may be included in a JSP file
  • FIG. 3 illustrates an exemplary method of providing web pages that include custom tags to a web browser using a JSP engine
  • FIG. 4 illustrates an exemplary XSL stylesheet used to transform custom tags
  • FIG. 5 illustrates exemplary HTML code included in the output from a transformation engine
  • FIG. 6 illustrates an exemplary method of providing web pages including custom tags to a web browser using a JSP engine that is unable to process the custom tags
  • FIG. 7 illustrates an exemplary method of providing web pages including custom tags to web browser without using a JSP engine.
  • FIG. 1 illustrates an exemplary system 10 for transforming custom tags in a web page.
  • System 10 includes a web browser 12 executing on one or more computers 14 at one or more locations.
  • Browser 12 is coupled to a communications network 16 and may include any suitable HTTP (HyperText Transfer Protocol) client or other appropriate software and/or hardware for receiving web pages or other data using network 16 .
  • HTTP HyperText Transfer Protocol
  • browser 12 may include software such as INTERNET EXPLORER by MICROSOFT CORPORATION or NETSCAPE COMMUNICATOR by NETSCAPE COMMUNICATIONS CORPORATION.
  • Browser 12 may generate one or more content requests 18 for web pages or other content in response to input from a user associated with browser 12 .
  • browser 12 may generate an HTTP request 18 that includes a Uniform Resource Locator (URL) portion identifying the requested item of content and a header portion containing further information about HTTP request 18 .
  • URL Uniform Resource Locator
  • System 10 also includes a web server 20 .
  • Server 20 is coupled to network 16 and may include any suitable HTTP server or other appropriate software and/or hardware for communicating web pages or other data to one or more browsers 12 using network 16 .
  • Network 16 may include the Internet, a wide area network (WAN), a local area network (LAN), or any other appropriate wireline or wireless network or networks.
  • Browser 12 may communicate a request 18 , as described above, to server 20 using communication network 16 .
  • Such a request may indicate a desire to receive a file from server 20 .
  • server 20 may have access to and be able to provide one or more files 24 stored in database 26 (and identified by a URL according to where they are stored).
  • files 24 may include any appropriate files that may be communicated to browser 12 or that may be used to create content for communication to browser 12
  • an exemplary type of file 24 is a JAVASERVER PAGE (JSP) file.
  • a JSP file is basically a HyperText Markup Language (HTML) file that includes additional components that execute application logic to generate dynamic content.
  • HTML HyperText Markup Language
  • XML Extensible Markup Language
  • the JSP file also includes JSP tags and/or scriptlets that generate content in the web page.
  • the HTML and XML tags in the JSP file 24 are used, in part, to format the content generated by the JSP tags and scriptlets.
  • JSP files 24 may be text files including the various tags and scriptlets, servlets or “JSP page implementation classes,” or any other appropriate file formats.
  • server 20 accesses the file 24 in database 26 and loads the file 24 to a JSP engine (or container) 28 .
  • JSP engine 28 is primarily described, the present invention contemplates any suitable web page processing engine.
  • JSP engine 28 may be implemented as software and/or hardware that is a part of or separate from web server 20 .
  • JSP engine 28 is used to interpret the JSP tags and scriptlets to generate content.
  • a JSP file 24 may instruct JSP engine 28 to generate content using a variety of techniques.
  • JSP standard content generation tags in a file 24 may instruct JSP engine 28 to access and instantiate JAVABEAN or Enterprise JAVABEAN components, set and retrieve bean attributes, download applets, access a database to retrieve data (for example, using JDBC objects), use Remote Method Invocation (RMI) objects, and/or include one or more files.
  • the JAVABEAN or ENTERPRISE JAVABEAN components, applets, JDBC and RMI objects, files to be included, and other appropriate files used by JSP engine 28 (all of which will be generally referred to as files 30 ) may be stored in a database 32 coupled to JSP engine 28 .
  • JSP engine 28 may execute JAVA or other scriptlets in a JSP file 24 to generate content or may use any other appropriate technique for generating content.
  • JSP files 24 may include one or more JSP custom content generation tags (or “custom tags”).
  • custom JAVA code can be included in JSP files 24 as one or more scriptlets that create content
  • custom tags can be used to create this same content by executing JAVA applications that are separate from file 24 . Therefore, instead of having to include JAVA code in a JSP file 24 , a web developer only has to include a custom tag and a minimal amount of supporting code. However, as described more fully below, not all JSP or other web page processing engines 28 are able to process custom content tags. Therefore, system 10 also includes a transformation engine 34 that transforms custom tags in a JSP or other file 24 into a format that can be interpreted by web browser 12 .
  • Transformation engine 34 performs this transformation using stylesheets 36 that may be stored in a database 38 .
  • Web server 20 , JSP engine 28 , and transformation engine 34 may each operate on one or more computers 22 at one or more locations. One or more of these components may also share a computer 22 .
  • databases 26 , 32 , and 38 may each include one or more storage locations and/or devices integral to or separate from one another and may use any appropriate techniques or components for storing files and other data.
  • FIG. 2 illustrates an exemplary JSP page 50 that may be included in a JSP file 24 .
  • Page 50 may include one or more directives 52 , JSP standard tags (or actions) 54 , expressions 56 , declarations 58 , scriptlets 60 , JSP custom tags 62 , or any other suitable components, in any suitable combination.
  • Page 50 may also include HTML code 64 that formats the foregoing components and produces selected text on the web page generated using page 50 .
  • Directives 52 are instructions processed by JSP engine 28 when page 50 is compiled into a servlet for execution or is otherwise loaded to JSP engine 28 .
  • Directives 52 may be used, for example, to set instructions, specify custom tag libraries, and insert data from external files.
  • directive 52 a is used to specify a custom tag library used by custom tag 62 , described below.
  • Directive 52 b is used to define the language used in page 50 (JAVA) and to import the JAVA classes needed by the embedded JAVA code in page 50 .
  • JSP standard tags 54 are used to perform a variety of functions, such as accessing and using JAVABEANS components.
  • exemplary tag 54 is used to initialize a JAVABEAN that is used in subsequent portions of page 50 .
  • Expressions 56 are variables or constants inserted in the data that JSP engine 28 returns to server 20 after processing page 50 .
  • expressions 56 make calls on a JAVABEAN component and insert the resulting data (in this case, the day of the month and the year) into page 50 .
  • Declarations 58 are used to define variables for use in expressions 56 or scriptlets 60 .
  • the exemplary declaration 58 initializes a time variable and assigns a value to the variable.
  • Scriptlets 60 are blocks of JAVA code that are executed verbatim by JSP engine 28 .
  • the exemplary scriptlet 60 determines the time of day and generates an appropriate greeting (either “Good Morning” or “Good Afternoon”).
  • Page 50 also includes an exemplary custom tag 62 that instructs JSP engine 28 to generate a button.
  • custom tags 62 extend the capabilities of JSP to allow web page developers to define tags and the content that the tags should generate.
  • the button could be created by directly inserting HTML code or a JAVA scriptlet 60 into page 50
  • the use of custom tag 62 helps to separate the content generation and formatting tasks of creating a JSP page 50 .
  • an unsophisticated web page developer can simply insert a custom tag 62 and a directive 52 specifying a tag library that defines the custom tag 62 .
  • Custom tag 62 may be expressed in an XML or “XML-like” format.
  • a tag library descriptor is an XML file that defines a custom tag 62 and that connects it to an associated tag handler class.
  • a tag library descriptor includes the various attributes of the tag 62 , the name and location of the tag handler class, and any information that JSP engine 28 needs to process the custom tag 62 .
  • a tag handler class is a JAVA class (compiled JAVA source code) that executes the operations associated with the custom tag 62 .
  • a JAVA class is used to create a graphical button that, when clicked, generates “OUCH—stop that” as synthesized speech.
  • OUCH—stop that as synthesized speech.
  • One skilled in the art will understand how to create custom tags 62 and the associated tag library descriptors and tag handler classes, so the contents of these components will not be described in further detail.
  • FIG. 3 illustrates an exemplary method of providing web pages that include custom tags 62 to web browser 12 .
  • This method assumes that JSP engine 28 is capable of processing custom tags 62 to generate content.
  • the method begins at step 102 with the creation of a file 24 that includes JSP or other custom tags 62 , as described above.
  • file 24 is stored in database 26 .
  • Server 20 receives a request 18 for file 24 from web browser 12 at step 106 .
  • file 24 is loaded to JSP engine 28 and JSP engine 28 processes file 24 to create HTML or other appropriate output. This processing includes the processing of custom tags 62 to generate content as described above.
  • JSP engine 28 communicates the HTML or other output to server 20 at step 110 , server 20 communicates the output to browser 12 at step 112 as a response 19 to request 18 , and the method ends.
  • server 20 communicates the output to browser 12 at step 112 as a response 19 to request 18 , and the method ends.
  • the present invention also contemplates that JSP engine 28 may communicate the output directly to browser 12 .
  • custom tags 62 As described above, it can be very useful and easy to generate content in a web page using JSP custom tags 62 .
  • JSP such as JSP 1.1
  • earlier versions of JSP such as JSP 1.0
  • web developers creating pages to be processed using an earlier version of JSP or using another type of web page processing software have not been able to incorporate custom tags 62 in their web pages.
  • other types of custom tags besides JSP custom tags 62 have also been developed. As with JSP custom tags 62 , these other types of custom tags are not able to be used without the particular processing engine for which the tags were developed.
  • JSP custom tags 62 these other types of custom tags may be XML or “XML-like” tags. All custom tags, whether developed for JSP or other appropriate software or hardware, will be referred to as custom tags 62 .
  • Transformation engine 34 may be implemented as software and/or hardware that is a part of or separate from web server 20 and/or JSP engine 28 .
  • transformation engine 34 may be an Extensible Stylesheet Language Transformation (XSLT) engine or processor. Transformation engine 34 may transform a custom tag 62 to HTML, XML, or any other appropriate type of code (such as Wireless Markup Language, Vector Markup Language, and Scalable Vector Graphics).
  • XSLT is a part of the Extensible Stylesheet Language (XSL) and is typically used to transform the structure of an XML document into another data format (either another form of XML or another type of data, such as HTML). Since custom tags 62 are written in XML or XML-like code, XSLT may also be used to transform custom tags 62 in a file 24 .
  • XSL Extensible Stylesheet Language
  • FIG. 4 illustrates an exemplary XSL stylesheet 36 used to transform custom tags 62 .
  • transformation engine 34 uses one or more XSL stylesheets 36 (which may be written in XSLT) to transform custom tags 62 into an appropriate format for interpretation by browser 20 .
  • Transformation engine 34 reads a file 24 that includes custom tags 62 and follows the instructions in one or more stylesheets 36 to transform custom tags 62 .
  • Exemplary stylesheet 36 begins with a processing instruction 70 that indicates to transformation engine 34 the type of transformation that is to occur.
  • the exemplary processing instruction 70 indicates the version of the XSL standard that is used and that the transformation is to produce HTML output.
  • Stylesheet 36 also includes one or more templates 72 that may each be used to transform a particular custom tag 62 into HTML or other appropriate code.
  • the first template, template 72 a applies to the entire file 24 to be transformed (as indicated by the “/” in the first line).
  • the apply-templates element 74 of template 72 a identifies the portions of file 24 that transformation engine 34 is to examine.
  • Exemplary element 74 indicates that the entire file 24 is to be examined (as indicated by the “/” in element 74 ).
  • template 72 b applies to exemplary custom tag 62 in the JSP page 50 illustrated in FIG. 3 .
  • This applicability is indicated by including the name of custom tag 62 (i 2 :button) in the first line of template 72 b .
  • Template 72 includes HTML code 76 and XSL elements 78 that generate a text string formatted according to portions of HTML code 76 .
  • XSL elements 78 include an attribute element that assigns an attribute name and value and inserts the name and value into the output produced by transformation engine 34 .
  • the name of the attribute is assigned in the first line of the attribute element. In the exemplary stylesheet 36 , the name assigned is “href”.
  • the value of the attribute is given by the contents of the attribute element (as identified by the xsl:value-of element).
  • the “1” indicates that the value of href is the value of an attribute of custom tag 62 (in this case, the value of onclick).
  • the value given to the onclick attribute of the i 2 :button custom tag 62 is as follows: “javascript:alert(‘OUCH—stop that!’)”>Click Me”. Therefore, this text string is assigned as the value of the href attribute.
  • the result of processing a file 24 including custom tags 62 using transformation engine 34 may be that each of the custom tags 62 is replaced with HTML or other appropriate code included within templates in an XSL stylesheet 36 .
  • each of the custom tags 62 is replaced with HTML or other appropriate code included within templates in an XSL stylesheet 36 .
  • This custom tag has a corresponding template 72 b in the exemplary style sheet 36 . Therefore, when JSP page 50 is processed using transformation engine 34 , the exemplary custom tag 62 is replaced in the output from transformation engine 34 with the HTML code 76 in template 72 b and the text generated by XML elements 78 in template 72 b , as described above.
  • FIG. 5 illustrates exemplary HTML code 80 that may be included in output produced by transformation engine 34 .
  • HTML code 80 is generated when custom tag 62 in exemplary JSP page 50 is transformed using exemplary style sheet 36 .
  • custom tags 62 may also be used to generate other types of content.
  • a custom tag 62 may be used to call a component, such as a JAVA class, that accesses a database and generates content based on data retrieved from the database.
  • Information from several sources may be integrated into a web page using multiple custom tags 62 .
  • the file 24 used to generate the web page may include a custom tag 62 that accesses information about the contract in the first party's database, another custom tag 62 that accesses information about the contract in the second party's database, and yet another custom tag 62 that accesses information about the contract database operated by the marketplace operator that is facilitating the contract.
  • the information gathered using these custom tags 62 may then be integrated in a web page to provide the parties or others with comprehensive and current information about the contract.
  • the tags 62 may be processed using transformation engine 34 .
  • this type of database information is not static (unlike HTML code that may be used to generate a button)
  • the custom tags 62 cannot be replaced with static HTML code included in a stylesheet 36 , as described above. Therefore, instead of containing static HTML code or XSL elements that generate static HTML code, the template in stylesheet 36 that corresponds to each custom tag 62 may instead include code that is used to call a suitable component to access the appropriate database and generate HTML content based on the information retrieved from the database.
  • Stylesheet 36 may also include code to create dynamic content using any other appropriate techniques. Therefore, transformation engine 34 may be used to replace custom tags 62 with dynamic content, as well as with static content.
  • FIG. 6 illustrates an exemplary method of providing web pages that include custom tags 62 to web browser 12 using a JSP engine 28 that is unable to process custom tags 62 .
  • JSP engine 28 may be any other appropriate type of web page processing engine that is unable to process custom tags 62 .
  • JSP engine 28 may be a JSP 1.0 engine.
  • the method begins at step 132 with the creation of a file 24 that includes JSP or other custom tags 62 , as described above.
  • file 24 is stored in database 26 , which is associated with and accessible by web server 20 .
  • Server 20 receives a request 18 for file 24 from web browser 12 at step 136 .
  • file 24 is loaded to JSP engine 28 (or any other appropriate type of engine) and JSP engine 28 processes file 24 to create HTML or other appropriate output.
  • JSP engine 28 since JSP engine 28 is unable to process custom tags 62 , custom tags are not processed and remain in the output produced by JSP engine 28 (JSP engine 28 is designed to pass custom tags 62 and other unrecognized tags to the output instead of generating an error message). Therefore, the output produced by JSP engine 38 may include HTML or other content that was originally included in file 24 , HTML or other content that was generated by JSP engine 28 based on JSP standard tags and scriptlets in file 24 , and the unprocessed custom tags 62 .
  • the processing by JSP engine 28 may also include adding a MIME (Multi-Purpose Internet Mail Extensions) header or other appropriate header or indicator to the output to indicate that the output includes unprocessed custom tags 62 .
  • MIME Multi-Purpose Internet Mail Extensions
  • JSP engine 28 communicates the output including the unprocessed custom tags 62 to server 20 at step 140 .
  • server 20 redirects the output to transformation engine 34 at step 142 instead of communicating the output to browser 12 .
  • Server 20 may redirect the output to transformation engine 34 by calling a servlet that includes or uses transformation engine 34 .
  • transformation engine 34 processes the output from JSP engine 28 and transforms the unprocessed custom tags 62 using one or more stylesheets 36 , as described above.
  • transformation engine 34 transforms custom tags 62 into HTML code.
  • the output produced by transformation engine 34 may include HTML or other content that was originally included in file 24 , HTML or other content that was generated by JSP engine 28 , and HTML or other content that was generated by transformation engine 34 by processing custom tags 62 .
  • Transformation engine 34 communicates this output to server 20 at step 146 , server 20 communicates the output to browser 12 at step 148 as a response 19 to request 18 , and the method ends.
  • the present invention also contemplates that transformation engine 34 may communicate the output directly to browser 12 .
  • FIG. 7 illustrates an exemplary method of providing web pages that include custom tags 62 to web browser 12 without using a JSP engine 28 .
  • Such a method may be used to process web pages that include custom tags 62 , but that do not include any other JSP elements, such as JSP standard tags or scriptlets.
  • the method begins at step 162 with the creation of a file 24 that includes JSP or other custom tags 62 , as described above.
  • the other contents of file 24 may include HTML or other code that may be interpreted by browser 12 .
  • File 24 may also include a MIME header or other appropriate header that indicates that file 24 includes custom tags 62 .
  • file 24 is stored in database 26 .
  • Server 20 receives a request 18 for file 24 from web browser 12 at step 166 .
  • Server retrieves file 24 from database 26 and determines, based on the MIME header or other appropriate information, that file 24 includes custom tags 62 that should be transformed before file 24 or the output from file 24 is communicated to browser 12 .
  • server 20 communicates file 24 to transformation engine 34 at step 168 .
  • transformation engine 34 processes file 24 and transforms custom tags 62 using one or more stylesheets 36 , as described above.
  • transformation engine 34 transforms custom tags 62 into HTML code. Therefore, the output produced by transformation engine 34 may include HTML or other content that was originally included in file 24 and HTML or other content that was generated by transformation engine 34 by processing the custom tags 62 .
  • Transformation engine 34 communicates this output to server 20 at step 172 , server 20 communicates the output to browser 12 at step 174 as a response 19 to request 18 , and the method ends. Alternatively, transformation engine 34 may communicate the output directly to browser 12 .

Abstract

A system (10) for transforming custom content generation tags (62) includes a web server (20) that receives a request (18) from a web browser (12). The request (18) identifies a file (24) that includes one or more custom content generation tags (62) that the web browser (12) is unable to interpret. The system (10) also includes a transformation engine (34) that receives the custom content generation tags (62) from the web server (20) and transforms the tags (62) into first output that the web browser (12) is able to interpret. The transformation engine (34) communicates the first output to the web server (20) and the web server (20) communicates the first output to the web browser (12) in response to the request (18).

Description

BACKGROUND OF THE INVENTION
With the increasing popularity of the Internet, technologies for creating and delivering web pages to users are continuously being developed and refined. Web pages that have static content can be created relatively easily using Hypertext Markup Language (HTML) to define the content of the pages. However, it is more difficult to create dynamic page content that is based on a user request, system status, or other input. One solution has been to use “servlets,” such as JAVA servlets, to dynamically create web page content. JAVA servlets are JAVA programs that execute at a web server (as opposed to an “applet,” which executes in a web browser) and that receive a HyperText Transfer Protocol (HTTP) request, dynamically generate a response to the request, and communicate the response to the web browser in the form of an HTML file. When using this approach, however, the entire web page (the HTML file) must be created by the servlet. Therefore, if a web page developer wishes to modify the appearance of the web page, the developer must access, edit, and recompile the servlet. This is true even if the developer only wants to change the formatting of the web page and does not want to change the logic of the program and the content that the logic creates.
Certain technologies have begun to be developed to separate the application logic from the appearance of the web page and to allow the appearance of the page to be changed without having to access the logic that creates the content. An example of such technology is the JAVASERVER PAGE (JSP) technology. A JSP file is basically an HTML file that includes additional components that execute application logic to generate content. Using JSP technology, web page developers use HTML or Extensible Markup Language (XML) tags to design and format a web page. In addition to the HTML and XML tags, the JSP file also includes JSP tags and/or scriptlets that generate content in the web page. The application logic that generates the content may be included in JAVA programs, such as JAVABEANS, that are executed at the web server using the JSP tags. The HTML and XML tags are used to format the content produced by the JSP tags and scriptlets, such that the appearance of the page may be changed by modifying the HTML or XML tags without having to modify the underlying JAVA programs that are generating the content.
In addition to the standard JSP tags that are defined in the JSP specification, the current version of JSP allows for the use of custom tags. Custom tags give the web page developer even greater flexibility in the design of web pages. Although custom JAVA code may be included in JSP files as scriptlets that create content, custom tags can be used to create this same content by executing separate JAVA applications. Therefore, instead of having to include JAVA code in the JSP file, the developer only has to include a custom tag and a minimal amount of supporting code. The use of custom tags allows for the further separation of the content generation and page formatting tasks of developing a web page. Unfortunately, custom tags have not been available in previous version of JSP, and developers using these earlier versions have not been able to take advantage of custom tags.
SUMMARY OF THE INVENTION
According to the present invention, disadvantages and problems associated with previous techniques for processing document tags have been substantially reduced or eliminated.
According to one embodiment of the present invention, a system for transforming custom content generation tags includes a web server that receives a request from a web browser. The request identifies a file that includes one or more custom content generation tags that the web browser is unable to interpret. The system also includes a transformation engine that receives the custom content generation tags from the web server and transforms the custom content generation tags into first output that the web browser is able to interpret. The transformation engine communicates the first output to the web server and the web server communicates the first output to the web browser in response to the request.
The system and method of the present invention provide a number of important technical advantages. The use of custom or other content generation tags in files that generate web pages allows for the appearance and formatting of content produced by the tags to be modified without actually modifying the logic generating the content. For example, JSP 1.1 allows for the use of custom tags to create content in web pages. However, previous versions of JSP (such as JSP 1.0) do not provide for these custom tags (these versions are not “forward compatible”). Therefore, the ability of individuals and businesses using earlier versions of JSP to create and host web pages has been hampered. For example, these individuals and businesses are unable to use the extensive libraries of custom tags that are being created to easily generate dynamic content on their web pages.
The present invention eliminates or reduces this problem by providing for the transformation of JSP custom tags or other types of custom tags to a format that can be processed by older versions of JSP and other web page hosting technologies. For example, JSP custom tags may be included in a JSP file that is to be processed using a JSP 1.0 engine. When the JSP file is requested by a web browser, the JSP file including the custom tags is sent to the JSP 1.0 engine. The JSP engine processes the portions of the JSP file that it understands (such as scriptlets and standard JSP tags) and then communicates the results of the processing and the unprocessed custom tags to a transformation engine. The transformation engine is used to transform the custom tags into HTML, XML, or other appropriate code that can be interpreted using a web browser. Alternatively, any other type of file including JSP or other custom tags may be communicated to the transformation engine to transform the custom tags. Therefore, even if an individual or business that hosts web pages does not have an engine capable of interpreting custom tags, the individual or business can still incorporate custom tags in their web pages and benefit from the advantages of custom tags. Techniques incorporating one or more of these or other advantages are well suited to a variety of web page development, hosting, and processing environments. Other technical advantages are readily apparent to those skilled in the art from the following figures, descriptions and claims.
BRIEF DESCRIPTION OF THE DRAWINGS
To provide a more complete understanding of the present invention and the features and advantages thereof, reference is made to the following description taken in conjunction with the accompanying drawings, in which:
FIG. 1 illustrates an exemplary system for transforming custom tags in a web page;
FIG. 2 illustrates an exemplary JSP page that may be included in a JSP file;
FIG. 3 illustrates an exemplary method of providing web pages that include custom tags to a web browser using a JSP engine;
FIG. 4 illustrates an exemplary XSL stylesheet used to transform custom tags;
FIG. 5 illustrates exemplary HTML code included in the output from a transformation engine;
FIG. 6 illustrates an exemplary method of providing web pages including custom tags to a web browser using a JSP engine that is unable to process the custom tags; and
FIG. 7 illustrates an exemplary method of providing web pages including custom tags to web browser without using a JSP engine.
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 illustrates an exemplary system 10 for transforming custom tags in a web page. System 10 includes a web browser 12 executing on one or more computers 14 at one or more locations. Browser 12 is coupled to a communications network 16 and may include any suitable HTTP (HyperText Transfer Protocol) client or other appropriate software and/or hardware for receiving web pages or other data using network 16. For example, browser 12 may include software such as INTERNET EXPLORER by MICROSOFT CORPORATION or NETSCAPE COMMUNICATOR by NETSCAPE COMMUNICATIONS CORPORATION. Browser 12 may generate one or more content requests 18 for web pages or other content in response to input from a user associated with browser 12. For example, browser 12 may generate an HTTP request 18 that includes a Uniform Resource Locator (URL) portion identifying the requested item of content and a header portion containing further information about HTTP request 18.
System 10 also includes a web server 20. Server 20 is coupled to network 16 and may include any suitable HTTP server or other appropriate software and/or hardware for communicating web pages or other data to one or more browsers 12 using network 16. Network 16 may include the Internet, a wide area network (WAN), a local area network (LAN), or any other appropriate wireline or wireless network or networks. Browser 12 may communicate a request 18, as described above, to server 20 using communication network 16. Such a request may indicate a desire to receive a file from server 20. For example, server 20 may have access to and be able to provide one or more files 24 stored in database 26 (and identified by a URL according to where they are stored).
Although files 24 may include any appropriate files that may be communicated to browser 12 or that may be used to create content for communication to browser 12, an exemplary type of file 24 is a JAVASERVER PAGE (JSP) file. A JSP file is basically a HyperText Markup Language (HTML) file that includes additional components that execute application logic to generate dynamic content. Using JSP technology, web page developers use HTML and/or Extensible Markup Language (XML) tags to design and format a web page. In addition to the HTML and XML tags, the JSP file also includes JSP tags and/or scriptlets that generate content in the web page. The HTML and XML tags in the JSP file 24 are used, in part, to format the content generated by the JSP tags and scriptlets.
JSP files 24 may be text files including the various tags and scriptlets, servlets or “JSP page implementation classes,” or any other appropriate file formats. When server 20 receives a request for a JSP file 24, server 20 accesses the file 24 in database 26 and loads the file 24 to a JSP engine (or container) 28. Although JSP engine 28 is primarily described, the present invention contemplates any suitable web page processing engine. JSP engine 28 may be implemented as software and/or hardware that is a part of or separate from web server 20. JSP engine 28 is used to interpret the JSP tags and scriptlets to generate content. A JSP file 24 may instruct JSP engine 28 to generate content using a variety of techniques. For example, JSP standard content generation tags (or “standard tags”) in a file 24 may instruct JSP engine 28 to access and instantiate JAVABEAN or Enterprise JAVABEAN components, set and retrieve bean attributes, download applets, access a database to retrieve data (for example, using JDBC objects), use Remote Method Invocation (RMI) objects, and/or include one or more files. The JAVABEAN or ENTERPRISE JAVABEAN components, applets, JDBC and RMI objects, files to be included, and other appropriate files used by JSP engine 28 (all of which will be generally referred to as files 30) may be stored in a database 32 coupled to JSP engine 28. In addition to processing JSP tags, JSP engine 28 may execute JAVA or other scriptlets in a JSP file 24 to generate content or may use any other appropriate technique for generating content.
In addition to JSP standard tags and scriptlets, JSP files 24 may include one or more JSP custom content generation tags (or “custom tags”). Although custom JAVA code can be included in JSP files 24 as one or more scriptlets that create content, custom tags can be used to create this same content by executing JAVA applications that are separate from file 24. Therefore, instead of having to include JAVA code in a JSP file 24, a web developer only has to include a custom tag and a minimal amount of supporting code. However, as described more fully below, not all JSP or other web page processing engines 28 are able to process custom content tags. Therefore, system 10 also includes a transformation engine 34 that transforms custom tags in a JSP or other file 24 into a format that can be interpreted by web browser 12. Transformation engine 34 performs this transformation using stylesheets 36 that may be stored in a database 38. Web server 20, JSP engine 28, and transformation engine 34 may each operate on one or more computers 22 at one or more locations. One or more of these components may also share a computer 22. Furthermore, databases 26, 32, and 38 may each include one or more storage locations and/or devices integral to or separate from one another and may use any appropriate techniques or components for storing files and other data.
FIG. 2 illustrates an exemplary JSP page 50 that may be included in a JSP file 24. Page 50 may include one or more directives 52, JSP standard tags (or actions) 54, expressions 56, declarations 58, scriptlets 60, JSP custom tags 62, or any other suitable components, in any suitable combination. Page 50 may also include HTML code 64 that formats the foregoing components and produces selected text on the web page generated using page 50. Directives 52 are instructions processed by JSP engine 28 when page 50 is compiled into a servlet for execution or is otherwise loaded to JSP engine 28. Directives 52 may be used, for example, to set instructions, specify custom tag libraries, and insert data from external files. For example, directive 52 a is used to specify a custom tag library used by custom tag 62, described below. Directive 52 b is used to define the language used in page 50 (JAVA) and to import the JAVA classes needed by the embedded JAVA code in page 50.
As described above, JSP standard tags 54 are used to perform a variety of functions, such as accessing and using JAVABEANS components. For example, exemplary tag 54 is used to initialize a JAVABEAN that is used in subsequent portions of page 50. Expressions 56 are variables or constants inserted in the data that JSP engine 28 returns to server 20 after processing page 50. In exemplary page 50, expressions 56 make calls on a JAVABEAN component and insert the resulting data (in this case, the day of the month and the year) into page 50. Declarations 58 are used to define variables for use in expressions 56 or scriptlets 60. In page 50, the exemplary declaration 58 initializes a time variable and assigns a value to the variable. Scriptlets 60 are blocks of JAVA code that are executed verbatim by JSP engine 28. The exemplary scriptlet 60 determines the time of day and generates an appropriate greeting (either “Good Morning” or “Good Afternoon”).
Page 50 also includes an exemplary custom tag 62 that instructs JSP engine 28 to generate a button. As described above, custom tags 62 extend the capabilities of JSP to allow web page developers to define tags and the content that the tags should generate. Although the button could be created by directly inserting HTML code or a JAVA scriptlet 60 into page 50, the use of custom tag 62 helps to separate the content generation and formatting tasks of creating a JSP page 50. For example, instead of having to know how to generate certain content using HTML, JAVA, or other appropriate code, an unsophisticated web page developer can simply insert a custom tag 62 and a directive 52 specifying a tag library that defines the custom tag 62. Custom tag 62 may be expressed in an XML or “XML-like” format.
Exemplary page 50 includes a taglib directive 52 a that identifies the location of a tag library descriptor (i2.tld) and defines a tag attribute (prefix=‘i2’). A tag library descriptor is an XML file that defines a custom tag 62 and that connects it to an associated tag handler class. A tag library descriptor includes the various attributes of the tag 62, the name and location of the tag handler class, and any information that JSP engine 28 needs to process the custom tag 62. A tag handler class is a JAVA class (compiled JAVA source code) that executes the operations associated with the custom tag 62. For example, to process custom tag 62 in exemplary page 50, a JAVA class is used to create a graphical button that, when clicked, generates “OUCH—stop that” as synthesized speech. One skilled in the art will understand how to create custom tags 62 and the associated tag library descriptors and tag handler classes, so the contents of these components will not be described in further detail.
FIG. 3 illustrates an exemplary method of providing web pages that include custom tags 62 to web browser 12. This method assumes that JSP engine 28 is capable of processing custom tags 62 to generate content. The method begins at step 102 with the creation of a file 24 that includes JSP or other custom tags 62, as described above. At step 104, file 24 is stored in database 26. Server 20 receives a request 18 for file 24 from web browser 12 at step 106. At step 108, file 24 is loaded to JSP engine 28 and JSP engine 28 processes file 24 to create HTML or other appropriate output. This processing includes the processing of custom tags 62 to generate content as described above. JSP engine 28 communicates the HTML or other output to server 20 at step 110, server 20 communicates the output to browser 12 at step 112 as a response 19 to request 18, and the method ends. The present invention also contemplates that JSP engine 28 may communicate the output directly to browser 12.
As described above, it can be very useful and easy to generate content in a web page using JSP custom tags 62. However, although current versions of JSP (such as JSP 1.1) provide for the use of custom tags 62, earlier versions of JSP (such as JSP 1.0) do not provide for the use of such tags. Therefore, web developers creating pages to be processed using an earlier version of JSP or using another type of web page processing software have not been able to incorporate custom tags 62 in their web pages. Furthermore, other types of custom tags besides JSP custom tags 62 have also been developed. As with JSP custom tags 62, these other types of custom tags are not able to be used without the particular processing engine for which the tags were developed. As with JSP custom tags 62, these other types of custom tags may be XML or “XML-like” tags. All custom tags, whether developed for JSP or other appropriate software or hardware, will be referred to as custom tags 62.
Referring again to FIG. 1, the present invention addresses the problem of not being able to use custom tags 62 without having a specific processing engine by providing transformation engine 34 that transforms custom tags 62 in a JSP or other file 24 into a format that can be interpreted by web browser 12. Transformation engine 34 may be implemented as software and/or hardware that is a part of or separate from web server 20 and/or JSP engine 28. As an example only, and not by way of limitation, transformation engine 34 may be an Extensible Stylesheet Language Transformation (XSLT) engine or processor. Transformation engine 34 may transform a custom tag 62 to HTML, XML, or any other appropriate type of code (such as Wireless Markup Language, Vector Markup Language, and Scalable Vector Graphics). XSLT is a part of the Extensible Stylesheet Language (XSL) and is typically used to transform the structure of an XML document into another data format (either another form of XML or another type of data, such as HTML). Since custom tags 62 are written in XML or XML-like code, XSLT may also be used to transform custom tags 62 in a file 24.
FIG. 4 illustrates an exemplary XSL stylesheet 36 used to transform custom tags 62. In an exemplary embodiment, transformation engine 34 uses one or more XSL stylesheets 36 (which may be written in XSLT) to transform custom tags 62 into an appropriate format for interpretation by browser 20. Transformation engine 34 reads a file 24 that includes custom tags 62 and follows the instructions in one or more stylesheets 36 to transform custom tags 62.
Exemplary stylesheet 36 begins with a processing instruction 70 that indicates to transformation engine 34 the type of transformation that is to occur. The exemplary processing instruction 70 indicates the version of the XSL standard that is used and that the transformation is to produce HTML output. Stylesheet 36 also includes one or more templates 72 that may each be used to transform a particular custom tag 62 into HTML or other appropriate code. The first template, template 72 a, applies to the entire file 24 to be transformed (as indicated by the “/” in the first line). The apply-templates element 74 of template 72 a identifies the portions of file 24 that transformation engine 34 is to examine. Exemplary element 74 indicates that the entire file 24 is to be examined (as indicated by the “/” in element 74).
The next template in stylesheet 36, template 72 b, applies to exemplary custom tag 62 in the JSP page 50 illustrated in FIG. 3. This applicability is indicated by including the name of custom tag 62 (i2:button) in the first line of template 72 b. Template 72 includes HTML code 76 and XSL elements 78 that generate a text string formatted according to portions of HTML code 76. XSL elements 78 include an attribute element that assigns an attribute name and value and inserts the name and value into the output produced by transformation engine 34. The name of the attribute is assigned in the first line of the attribute element. In the exemplary stylesheet 36, the name assigned is “href”. The value of the attribute is given by the contents of the attribute element (as identified by the xsl:value-of element). The “1” indicates that the value of href is the value of an attribute of custom tag 62 (in this case, the value of onclick). Referring to the exemplary JSP page 50 illustrated in FIG. 3, the value given to the onclick attribute of the i2:button custom tag 62 is as follows: “javascript:alert(‘OUCH—stop that!’)”>Click Me”. Therefore, this text string is assigned as the value of the href attribute. The end result of the processing of XSL elements 78 is the insertion of the following text string in the output produced by transformation engine 34: href=“javascript:alert(‘OUCH—stop that!’)”>Click Me”. Following the XSL elements 78 are additional HTML tags 76 used to format the output generated by XSL elements 78.
The result of processing a file 24 including custom tags 62 using transformation engine 34 may be that each of the custom tags 62 is replaced with HTML or other appropriate code included within templates in an XSL stylesheet 36. In the exemplary JSP page 50 illustrated in FIG. 3, there is a single custom tag 62. This custom tag has a corresponding template 72 b in the exemplary style sheet 36. Therefore, when JSP page 50 is processed using transformation engine 34, the exemplary custom tag 62 is replaced in the output from transformation engine 34 with the HTML code 76 in template 72 b and the text generated by XML elements 78 in template 72 b, as described above.
FIG. 5 illustrates exemplary HTML code 80 that may be included in output produced by transformation engine 34. HTML code 80 is generated when custom tag 62 in exemplary JSP page 50 is transformed using exemplary style sheet 36.
Although the exemplary custom tag 62 described above is used to produce presentation content (a button), custom tags 62 may also be used to generate other types of content. For example, a custom tag 62 may be used to call a component, such as a JAVA class, that accesses a database and generates content based on data retrieved from the database. Information from several sources (for example, databases) may be integrated into a web page using multiple custom tags 62. For instance, if an operator of an electronic business-to-business (“B2B”) marketplace wishes to provide a web page that includes information about a contract between two parties, the file 24 used to generate the web page may include a custom tag 62 that accesses information about the contract in the first party's database, another custom tag 62 that accesses information about the contract in the second party's database, and yet another custom tag 62 that accesses information about the contract database operated by the marketplace operator that is facilitating the contract. The information gathered using these custom tags 62 may then be integrated in a web page to provide the parties or others with comprehensive and current information about the contract.
If a JSP or other engine 28 is not available to process such custom tags 62, then the tags 62 may be processed using transformation engine 34. However, since this type of database information is not static (unlike HTML code that may be used to generate a button), the custom tags 62 cannot be replaced with static HTML code included in a stylesheet 36, as described above. Therefore, instead of containing static HTML code or XSL elements that generate static HTML code, the template in stylesheet 36 that corresponds to each custom tag 62 may instead include code that is used to call a suitable component to access the appropriate database and generate HTML content based on the information retrieved from the database. Such a component may be the same as or similar to the component that a JSP engine 28 would call if a JSP engine 28 was used to process the custom tag 62. Stylesheet 36 may also include code to create dynamic content using any other appropriate techniques. Therefore, transformation engine 34 may be used to replace custom tags 62 with dynamic content, as well as with static content.
FIG. 6 illustrates an exemplary method of providing web pages that include custom tags 62 to web browser 12 using a JSP engine 28 that is unable to process custom tags 62. Alternatively, JSP engine 28 may be any other appropriate type of web page processing engine that is unable to process custom tags 62. As an example only, and not by way of limitation, JSP engine 28 may be a JSP 1.0 engine. The method begins at step 132 with the creation of a file 24 that includes JSP or other custom tags 62, as described above. At step 134, file 24 is stored in database 26, which is associated with and accessible by web server 20. Server 20 receives a request 18 for file 24 from web browser 12 at step 136. At step 138, file 24 is loaded to JSP engine 28 (or any other appropriate type of engine) and JSP engine 28 processes file 24 to create HTML or other appropriate output. However, since JSP engine 28 is unable to process custom tags 62, custom tags are not processed and remain in the output produced by JSP engine 28 (JSP engine 28 is designed to pass custom tags 62 and other unrecognized tags to the output instead of generating an error message). Therefore, the output produced by JSP engine 38 may include HTML or other content that was originally included in file 24, HTML or other content that was generated by JSP engine 28 based on JSP standard tags and scriptlets in file 24, and the unprocessed custom tags 62. The processing by JSP engine 28 may also include adding a MIME (Multi-Purpose Internet Mail Extensions) header or other appropriate header or indicator to the output to indicate that the output includes unprocessed custom tags 62.
JSP engine 28 communicates the output including the unprocessed custom tags 62 to server 20 at step 140. Based on the MIME or other header indicating the presence of unprocessed custom tags 62, server 20 redirects the output to transformation engine 34 at step 142 instead of communicating the output to browser 12. Server 20 may redirect the output to transformation engine 34 by calling a servlet that includes or uses transformation engine 34. At step 144, transformation engine 34 processes the output from JSP engine 28 and transforms the unprocessed custom tags 62 using one or more stylesheets 36, as described above. In an exemplary embodiment, transformation engine 34 transforms custom tags 62 into HTML code. Therefore, the output produced by transformation engine 34 may include HTML or other content that was originally included in file 24, HTML or other content that was generated by JSP engine 28, and HTML or other content that was generated by transformation engine 34 by processing custom tags 62. Transformation engine 34 communicates this output to server 20 at step 146, server 20 communicates the output to browser 12 at step 148 as a response 19 to request 18, and the method ends. The present invention also contemplates that transformation engine 34 may communicate the output directly to browser 12.
FIG. 7 illustrates an exemplary method of providing web pages that include custom tags 62 to web browser 12 without using a JSP engine 28. Such a method may be used to process web pages that include custom tags 62, but that do not include any other JSP elements, such as JSP standard tags or scriptlets. The method begins at step 162 with the creation of a file 24 that includes JSP or other custom tags 62, as described above. The other contents of file 24 may include HTML or other code that may be interpreted by browser 12. File 24 may also include a MIME header or other appropriate header that indicates that file 24 includes custom tags 62. At step 164, file 24 is stored in database 26. Server 20 receives a request 18 for file 24 from web browser 12 at step 166. Server retrieves file 24 from database 26 and determines, based on the MIME header or other appropriate information, that file 24 includes custom tags 62 that should be transformed before file 24 or the output from file 24 is communicated to browser 12.
Based on this determination, server 20 communicates file 24 to transformation engine 34 at step 168. At step 170, transformation engine 34 processes file 24 and transforms custom tags 62 using one or more stylesheets 36, as described above. In an exemplary embodiment, transformation engine 34 transforms custom tags 62 into HTML code. Therefore, the output produced by transformation engine 34 may include HTML or other content that was originally included in file 24 and HTML or other content that was generated by transformation engine 34 by processing the custom tags 62. Transformation engine 34 communicates this output to server 20 at step 172, server 20 communicates the output to browser 12 at step 174 as a response 19 to request 18, and the method ends. Alternatively, transformation engine 34 may communicate the output directly to browser 12.
Although the present invention has been described with several embodiments, numerous changes, substitutions, variations, alterations, and modifications may be suggested to one skilled in the art, and it is intended that the invention encompass all such changes, substitutions, variations, alterations, and modifications as fall within the spirit and scope of the appended claims.

Claims (23)

1. A system for transforming custom content generation tags, comprising:
a web server operable to receive a request from a web browser, the request identifying a file comprising one or more standard content generation tags and one or more custom content generation tags, both of which the web browser is unable to interpret;
a web page processing engine operable to receive the standard content generation tags and the custom content generation tags and to transform the standard content generation tags into first output that the web browser is able to interpret, the web page processing engine unable to interpret the custom content generation tags;
the web page processing engine further operable to communicate the first output and the custom content generation tags to the web server;
a transformation engine operable to receive the custom content generation tags, transform the custom content generation tags into second output that the web browser is able to interpret, and communicate the second output to the web server; and
the web server further operable to receive the second output and to communicate the first and second output to the web browser in response to the request.
2. The system of claim 1, wherein:
the web server is operable to communicate the first output to the transformation engine with the custom content generation tags; and
the transformation engine is operable to communicate the first output back to the web server with the second output.
3. The system of claim 1, wherein:
the requested file comprises a JAVASERVER PAGE (JSP) file;
the standard content generation tags comprise JSP standard tags;
the custom content generation tags comprise JSP custom tags; and
the web page processing engine comprises a JSP engine unable to process the JSP custom tags.
4. The system of claim 1, wherein the first and second output comprises code selected from the group consisting of HyperText Markup Language (HTML) code, Extensible Markup Language (XML) code, and Wireless Markup Language (WML) code.
5. The system of claim 1, wherein:
the web page processing engine is operable to attach a header to the custom content generation tags, the header indicating the presence of the custom content generation tags; and
the web server is operable to communicate the custom content generation tags to the transformation engine in response to the header.
6. The system of claim 1, wherein the transformation engine comprises an Extensible Stylesheet Language Transformation (XSLT) engine, the XSLT engine operable to transform the custom content generation tags using an Extensible Stylesheet Language (XSL) stylesheet.
7. The system of claim 6, wherein the XSL stylesheet comprises one or more templates corresponding to each custom content generation tag, the templates comprising HTML code to replace the corresponding custom content generation tag.
8. The system of claim 7, wherein one or more of the templates comprise code operable to generate HTML code to replace the corresponding custom content generation tag.
9. A method for transforming custom content generation tags, comprising:
receiving a request from a web browser for a file comprising one or more standard content generation tags and one or more custom content generation tags, both of which the web browser is unable to interpret;
processing the file using a web page processing engine to transform the standard content generation tags into first output that the web browser is able to interpret, the web page processing engine unable to interpret the custom content generation tags;
transforming the custom content generation tags using a transformation engine into second output that the web browser is able to interpret; and
communicating the first and second output to the web browser in response to the request.
10. The method of claim 9, further comprising communicating the first output to the transformation engine with the custom content generation tags, the first output being unaffected by the transformation engine.
11. The method of claim 9, wherein:
the requested file comprises a JAVASERVER PAGE (JSP) file;
the standard content generation tags comprise JSP standard tags;
the custom content generation tags comprise JSP custom tags; and
the web page processing engine comprises a JSP engine unable to process the JSP custom tags.
12. The method of claim 9, wherein the first and second output comprises code selected from the group consisting of HyperText Markup Language (HTML) code, Extensible Markup Language (XML) code, and Wireless Markup Language (WML) code.
13. The method of claim 9, wherein:
the method further comprises attaching a header to the custom content generation tags, the header indicating the presence of custom content generation tags; and
the custom content generation tags are communicated to the transformation engine in response to the header.
14. The method of claim 9, wherein the transformation engine comprises an Extensible Stylesheet Language Transformation (XSLT) engine, the XSLT engine operable to transform the custom content generation tags using an Extensible Stylesheet Language (XSL) stylesheet.
15. The method of claim 14, wherein the XSL stylesheet comprises one or more templates corresponding to each custom content generation tag, the templates comprising HTML code to replace the corresponding custom content generation tag.
16. The method of claim 15, wherein one or more of the templates comprise code operable to generate HTML code to replace the corresponding custom content generation tag.
17. Custom tag transformation software embodied in a computer-readable medium and operable to:
receive a request from a web browser for a file comprising one or more standard content generation tags and one or more custom content generation tags, both of which the web browser is unable to interpret;
process the file using a web page processing engine to transform the standard content generation tags into first output that the web browser is able to interpret, the web page processing engine unable to interpret the custom content generation tags;
transform the custom content generation tags into second output that the web browser is able to interpret; and
communicate the first and second output to the web browser in response to the request.
18. The software of claim 17, wherein:
the requested file comprises a JAVASERVER PAGES (JSP) file;
the standard content generation tags comprise JSP standard tags;
the custom content generation tags comprise JSP custom tags; and
the web page processing engine comprises a JSP engine unable to process the JSP custom tags.
19. The software of claim 17, wherein the first and second output comprises code selected from the group consisting of HyperText Markup Language (HTML) code, Extensible Markup Language (XML) code, and Wireless Markup Language (WML) code.
20. The software of claim 17, further operable to transform the custom content generation tags using an Extensible Stylesheet Language (XSL) stylesheet.
21. The software of claim 20, wherein the XSL stylesheet comprises one or more templates corresponding to each custom content generation tag, the templates comprising HTML code to replace the corresponding custom content generation tag.
22. The software of claim 21, wherein one or more of the templates comprise code operable to generate HTML code to replace the corresponding custom content generation tag.
23. A system for transforming custom content generation tags, comprising:
means for receiving a request from a web browser for a file comprising one or more standard content generation tags and one or more custom content generation tags, both of which the web browser is unable to interpret;
means for processing the file by transforming the standard content generation tags into first output that the web browser is able to interpret, the means for processing unable to interpret the custom content generation tags;
means for transforming the custom content generation tags into second output that the web browser is able to interpret; and
means for communicating the first and second output to the web browser in response to the request.
US09/675,780 2000-09-28 2000-09-28 System and method for transforming custom content generation tags associated with web pages Expired - Lifetime US7089330B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US09/675,780 US7089330B1 (en) 2000-09-28 2000-09-28 System and method for transforming custom content generation tags associated with web pages
DE10196699T DE10196699T1 (en) 2000-09-28 2001-09-28 System and method for converting application specific content creation tags associated with web pages
AU2001293174A AU2001293174A1 (en) 2000-09-28 2001-09-28 System and method for transforming custom content generation tags associated with web pages
PCT/US2001/030462 WO2002027511A1 (en) 2000-09-28 2001-09-28 System and method for transforming custom content generation tags associated with web pages

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/675,780 US7089330B1 (en) 2000-09-28 2000-09-28 System and method for transforming custom content generation tags associated with web pages

Publications (1)

Publication Number Publication Date
US7089330B1 true US7089330B1 (en) 2006-08-08

Family

ID=24711940

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/675,780 Expired - Lifetime US7089330B1 (en) 2000-09-28 2000-09-28 System and method for transforming custom content generation tags associated with web pages

Country Status (4)

Country Link
US (1) US7089330B1 (en)
AU (1) AU2001293174A1 (en)
DE (1) DE10196699T1 (en)
WO (1) WO2002027511A1 (en)

Cited By (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030135633A1 (en) * 2002-01-04 2003-07-17 International Business Machines Corporation Streaming and managing complex media content on Web servers
US20040225749A1 (en) * 2003-05-08 2004-11-11 Gregory Pavlik Transformation of web site summary via taglibs
US20050198577A1 (en) * 2004-03-05 2005-09-08 International Business Machines Corporation Reducing the run-time cost of incorporating custom tags in a server page
US20050262049A1 (en) * 2004-05-05 2005-11-24 Nokia Corporation System, method, device, and computer code product for implementing an XML template
US20060259909A1 (en) * 2005-05-13 2006-11-16 Harris Corporation Mechanism for maintaining data format synchronization between different entities
US20070061708A1 (en) * 2005-09-12 2007-03-15 Microsoft Corporation Script markup
US20070089052A1 (en) * 2005-10-13 2007-04-19 Karle Christopher J Systems, methods, and media for enforcing accessible content development
US20070214408A1 (en) * 2006-03-07 2007-09-13 Optimus Corporation Declarative web application for search and retrieval
US20070266176A1 (en) * 2000-10-20 2007-11-15 Jonathan Wu Updating a web user interface on a client device
US20080196046A1 (en) * 2007-02-09 2008-08-14 Novarra, Inc. Method and Apparatus for Providing Information Content for Display on a Client Device
US20090259714A1 (en) * 2002-07-15 2009-10-15 Richard Doerksen Handheld client framework system
US20090300111A1 (en) * 2001-04-09 2009-12-03 Aol Llc, A Delaware Limited Liability Company Server-based browser system
US20100121731A1 (en) * 2003-02-07 2010-05-13 Takeshi Toyohara End-to-end digital media entitlement system
US20100182631A1 (en) * 2004-04-01 2010-07-22 King Martin T Information gathering system and method
US20110029443A1 (en) * 2009-03-12 2011-02-03 King Martin T Performing actions based on capturing information from rendered documents, such as documents under copyright
US20110043652A1 (en) * 2009-03-12 2011-02-24 King Martin T Automatically providing content associated with captured information, such as information captured in real-time
US7987271B1 (en) * 2002-08-12 2011-07-26 Cisco Technology, Inc. Methods and apparatus for inserting content within a content page
US8418055B2 (en) 2009-02-18 2013-04-09 Google Inc. Identifying a document by performing spectral analysis on the contents of the document
US8442331B2 (en) 2004-02-15 2013-05-14 Google Inc. Capturing text from rendered documents using supplemental information
US8447111B2 (en) 2004-04-01 2013-05-21 Google Inc. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
US8447144B2 (en) 2004-02-15 2013-05-21 Google Inc. Data capture from rendered documents using handheld device
US20130138774A1 (en) * 1999-10-21 2013-05-30 Automated Media Processing Solutions Inc. dba Equilibrium, "AMPS, Inc." Automated media delivery system
US8489624B2 (en) 2004-05-17 2013-07-16 Google, Inc. Processing techniques for text capture from a rendered document
US8505090B2 (en) 2004-04-01 2013-08-06 Google Inc. Archive of text captures from rendered documents
US8521772B2 (en) 2004-02-15 2013-08-27 Google Inc. Document enhancement system and method
US8531710B2 (en) 2004-12-03 2013-09-10 Google Inc. Association of a portable scanner with input/output and storage devices
US8600196B2 (en) 2006-09-08 2013-12-03 Google Inc. Optical scanners, such as hand-held optical scanners
US8620083B2 (en) 2004-12-03 2013-12-31 Google Inc. Method and system for character recognition
US8621349B2 (en) 2004-04-01 2013-12-31 Google Inc. Publishing techniques for adding value to a rendered document
US8619147B2 (en) 2004-02-15 2013-12-31 Google Inc. Handheld device for capturing text from both a document printed on paper and a document displayed on a dynamic display device
US8713418B2 (en) 2004-04-12 2014-04-29 Google Inc. Adding value to a rendered document
US8793162B2 (en) 2004-04-01 2014-07-29 Google Inc. Adding information or functionality to a rendered document via association with an electronic counterpart
US8799303B2 (en) 2004-02-15 2014-08-05 Google Inc. Establishing an interactive environment for rendered documents
US20140280351A1 (en) * 2013-03-15 2014-09-18 Dale Peterson Systems and methods for generating and implementing a custom device description file
US8874504B2 (en) 2004-12-03 2014-10-28 Google Inc. Processing techniques for visual capture data from a rendered document
US8892495B2 (en) 1991-12-23 2014-11-18 Blanding Hovenweep, Llc Adaptive pattern recognition based controller apparatus and method and human-interface therefore
US8903759B2 (en) 2004-12-03 2014-12-02 Google Inc. Determining actions involving captured information and electronic content associated with rendered documents
US9008447B2 (en) 2004-04-01 2015-04-14 Google Inc. Method and system for character recognition
US9081799B2 (en) 2009-12-04 2015-07-14 Google Inc. Using gestalt information to identify locations in printed information
US9116890B2 (en) 2004-04-01 2015-08-25 Google Inc. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
US9143638B2 (en) 2004-04-01 2015-09-22 Google Inc. Data capture from rendered documents using handheld device
US20150302110A1 (en) * 2014-04-21 2015-10-22 Alibaba Group Holding Limited Decoupling front end and back end pages using tags
US9268852B2 (en) 2004-02-15 2016-02-23 Google Inc. Search engines and systems with handheld document data capture devices
US9275051B2 (en) 2004-07-19 2016-03-01 Google Inc. Automatic modification of web pages
US9323784B2 (en) 2009-12-09 2016-04-26 Google Inc. Image search using text-based elements within the contents of images
US9454764B2 (en) 2004-04-01 2016-09-27 Google Inc. Contextual dynamic advertising based upon captured rendered text
US9535563B2 (en) 1999-02-01 2017-01-03 Blanding Hovenweep, Llc Internet appliance system and method
US10325009B2 (en) * 2016-05-12 2019-06-18 Alibaba Group Holding Limited Method and apparatus for using custom component parsing engine to parse tag of custom component
US10769431B2 (en) 2004-09-27 2020-09-08 Google Llc Handheld device for capturing text from both a document printed on paper and a document displayed on a dynamic display device
US11562043B1 (en) * 2021-10-29 2023-01-24 Shopify Inc. System and method for rendering webpage code to dynamically disable an element of template code
US20230244852A1 (en) * 2022-02-02 2023-08-03 Morgan Stanley Services Group Inc. Css customization of user interface components

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1839259A4 (en) * 2004-12-30 2010-02-17 Cauldron Solutions Llc A system and method of processing entitlement rules, offering and delivering digital content
CN100383790C (en) * 2005-09-15 2008-04-23 杭州华三通信技术有限公司 HTTP web page dynamic outputting method and system

Citations (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987480A (en) 1996-07-25 1999-11-16 Donohue; Michael Method and system for delivering documents customized for a particular user over the internet using imbedded dynamic content
US6052710A (en) 1996-06-28 2000-04-18 Microsoft Corporation System and method for making function calls over a distributed network
US6122657A (en) 1997-02-04 2000-09-19 Networks Associates, Inc. Internet computer system with methods for dynamic filtering of hypertext tags and content
US6195694B1 (en) 1997-03-13 2001-02-27 International Business Machines Corporation Server for reconfiguring control of a subset of devices on one or more kiosks
US6237005B1 (en) 1998-06-29 2001-05-22 Compaq Computer Corporation Web server mechanism for processing multiple transactions in an interpreted language execution environment
US6263332B1 (en) * 1998-08-14 2001-07-17 Vignette Corporation System and method for query processing of structured documents
US6314451B1 (en) 1998-05-15 2001-11-06 Unicast Communications Corporation Ad controller for use in implementing user-transparent network-distributed advertising and for interstitially displaying an advertisement so distributed
US20010049702A1 (en) * 2000-06-05 2001-12-06 Sun Microsystems, Inc. Service side filtering XML messages in a distributed network
US20020035579A1 (en) * 2000-09-12 2002-03-21 Wang Wayne W. Transform rule generator for web-based markup languages
US20020120685A1 (en) * 1999-06-01 2002-08-29 Alok Srivastava System for dynamically invoking remote network services using service descriptions stored in a service registry
US20020122054A1 (en) * 2001-03-02 2002-09-05 International Business Machines Corporation Representing and managing dynamic data content for web documents
US20020143821A1 (en) * 2000-12-15 2002-10-03 Douglas Jakubowski Site mining stylesheet generator
US20020169851A1 (en) * 2000-10-04 2002-11-14 Robert Weathersby Internet-based system for dynamically creating and delivering customized content within remote web pages
US20020178290A1 (en) * 2001-05-25 2002-11-28 Coulthard Philip S. Method and system for converting user interface source code of a legacy application to web pages
US20030023699A1 (en) * 2001-07-26 2003-01-30 Newsome Mark R. Method, server and system for dynamic server application adjustment
US6535896B2 (en) * 1999-01-29 2003-03-18 International Business Machines Corporation Systems, methods and computer program products for tailoring web page content in hypertext markup language format for display within pervasive computing devices using extensible markup language tools
US20030217169A1 (en) * 2002-03-21 2003-11-20 International Business Machines Corporation High-speed content transformation engine
US6654784B1 (en) * 2000-01-14 2003-11-25 Nexaweb Technologies, Inc Computing architecture
US6654949B1 (en) * 1998-11-30 2003-11-25 International Business Machines Corporation Method and system for monitoring the execution of hybrid source code
US20030226107A1 (en) * 2002-05-31 2003-12-04 Sun Microsystems, Inc. JSP tag libraries and web services
US6675354B1 (en) * 1999-11-18 2004-01-06 International Business Machines Corporation Case-insensitive custom tag recognition and handling
US20040049574A1 (en) * 2000-09-26 2004-03-11 Watson Mark Alexander Web server

Patent Citations (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052710A (en) 1996-06-28 2000-04-18 Microsoft Corporation System and method for making function calls over a distributed network
US5987480A (en) 1996-07-25 1999-11-16 Donohue; Michael Method and system for delivering documents customized for a particular user over the internet using imbedded dynamic content
US6122657A (en) 1997-02-04 2000-09-19 Networks Associates, Inc. Internet computer system with methods for dynamic filtering of hypertext tags and content
US6195694B1 (en) 1997-03-13 2001-02-27 International Business Machines Corporation Server for reconfiguring control of a subset of devices on one or more kiosks
US6314451B1 (en) 1998-05-15 2001-11-06 Unicast Communications Corporation Ad controller for use in implementing user-transparent network-distributed advertising and for interstitially displaying an advertisement so distributed
US6237005B1 (en) 1998-06-29 2001-05-22 Compaq Computer Corporation Web server mechanism for processing multiple transactions in an interpreted language execution environment
US6263332B1 (en) * 1998-08-14 2001-07-17 Vignette Corporation System and method for query processing of structured documents
US6654949B1 (en) * 1998-11-30 2003-11-25 International Business Machines Corporation Method and system for monitoring the execution of hybrid source code
US6535896B2 (en) * 1999-01-29 2003-03-18 International Business Machines Corporation Systems, methods and computer program products for tailoring web page content in hypertext markup language format for display within pervasive computing devices using extensible markup language tools
US20020120685A1 (en) * 1999-06-01 2002-08-29 Alok Srivastava System for dynamically invoking remote network services using service descriptions stored in a service registry
US6675354B1 (en) * 1999-11-18 2004-01-06 International Business Machines Corporation Case-insensitive custom tag recognition and handling
US6654784B1 (en) * 2000-01-14 2003-11-25 Nexaweb Technologies, Inc Computing architecture
US20010049702A1 (en) * 2000-06-05 2001-12-06 Sun Microsystems, Inc. Service side filtering XML messages in a distributed network
US20020035579A1 (en) * 2000-09-12 2002-03-21 Wang Wayne W. Transform rule generator for web-based markup languages
US20040049574A1 (en) * 2000-09-26 2004-03-11 Watson Mark Alexander Web server
US20020169851A1 (en) * 2000-10-04 2002-11-14 Robert Weathersby Internet-based system for dynamically creating and delivering customized content within remote web pages
US20020143821A1 (en) * 2000-12-15 2002-10-03 Douglas Jakubowski Site mining stylesheet generator
US20020122054A1 (en) * 2001-03-02 2002-09-05 International Business Machines Corporation Representing and managing dynamic data content for web documents
US20020178290A1 (en) * 2001-05-25 2002-11-28 Coulthard Philip S. Method and system for converting user interface source code of a legacy application to web pages
US20030023699A1 (en) * 2001-07-26 2003-01-30 Newsome Mark R. Method, server and system for dynamic server application adjustment
US20030217169A1 (en) * 2002-03-21 2003-11-20 International Business Machines Corporation High-speed content transformation engine
US20030226107A1 (en) * 2002-05-31 2003-12-04 Sun Microsystems, Inc. JSP tag libraries and web services

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
James Clark; "XSL Transformations (XSLT)," Version 1.0; http://www.w3.org/TR/xslt; downloaded Sep. 9, 2000; all, Nov. 16, 1999.
Java Software; "JavaServer Pages(TM) Specification;" Version 1.0; all, Sep. 27, 1999.
Java Software; "JavaServer Pages(TM) Specification;" Version 1.1; all, Nov. 30, 1999.

Cited By (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8892495B2 (en) 1991-12-23 2014-11-18 Blanding Hovenweep, Llc Adaptive pattern recognition based controller apparatus and method and human-interface therefore
US9535563B2 (en) 1999-02-01 2017-01-03 Blanding Hovenweep, Llc Internet appliance system and method
US20130138774A1 (en) * 1999-10-21 2013-05-30 Automated Media Processing Solutions Inc. dba Equilibrium, "AMPS, Inc." Automated media delivery system
US9158745B2 (en) * 1999-10-21 2015-10-13 Equilibrium Optimization of media content using generated intermediate media content
US7610406B2 (en) * 2000-10-20 2009-10-27 Jonathan Wu Updating a web user interface on a client device
US20070266176A1 (en) * 2000-10-20 2007-11-15 Jonathan Wu Updating a web user interface on a client device
US20090300111A1 (en) * 2001-04-09 2009-12-03 Aol Llc, A Delaware Limited Liability Company Server-based browser system
US8874637B2 (en) 2001-04-09 2014-10-28 Mercury Kingdom Assets Limited Server-based browser system
US9866612B2 (en) 2001-04-09 2018-01-09 Mercury Kingdom Assets Limited Server-based browser system
US20030135633A1 (en) * 2002-01-04 2003-07-17 International Business Machines Corporation Streaming and managing complex media content on Web servers
US8200745B2 (en) * 2002-07-15 2012-06-12 Aol Inc. Handheld client framework system
US20090259714A1 (en) * 2002-07-15 2009-10-15 Richard Doerksen Handheld client framework system
US7987271B1 (en) * 2002-08-12 2011-07-26 Cisco Technology, Inc. Methods and apparatus for inserting content within a content page
US20100121731A1 (en) * 2003-02-07 2010-05-13 Takeshi Toyohara End-to-end digital media entitlement system
US20040225749A1 (en) * 2003-05-08 2004-11-11 Gregory Pavlik Transformation of web site summary via taglibs
US8447144B2 (en) 2004-02-15 2013-05-21 Google Inc. Data capture from rendered documents using handheld device
US8515816B2 (en) 2004-02-15 2013-08-20 Google Inc. Aggregate analysis of text captures performed by multiple users from rendered documents
US8831365B2 (en) 2004-02-15 2014-09-09 Google Inc. Capturing text from rendered documents using supplement information
US8799303B2 (en) 2004-02-15 2014-08-05 Google Inc. Establishing an interactive environment for rendered documents
US8619147B2 (en) 2004-02-15 2013-12-31 Google Inc. Handheld device for capturing text from both a document printed on paper and a document displayed on a dynamic display device
US8521772B2 (en) 2004-02-15 2013-08-27 Google Inc. Document enhancement system and method
US10635723B2 (en) 2004-02-15 2020-04-28 Google Llc Search engines and systems with handheld document data capture devices
US9268852B2 (en) 2004-02-15 2016-02-23 Google Inc. Search engines and systems with handheld document data capture devices
US8442331B2 (en) 2004-02-15 2013-05-14 Google Inc. Capturing text from rendered documents using supplemental information
US20050198577A1 (en) * 2004-03-05 2005-09-08 International Business Machines Corporation Reducing the run-time cost of incorporating custom tags in a server page
US8010955B2 (en) * 2004-03-05 2011-08-30 International Business Machines Corporation Reducing the run-time cost of incorporating custom tags in a server page
US8781228B2 (en) 2004-04-01 2014-07-15 Google Inc. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
US9143638B2 (en) 2004-04-01 2015-09-22 Google Inc. Data capture from rendered documents using handheld device
US9514134B2 (en) 2004-04-01 2016-12-06 Google Inc. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
US8793162B2 (en) 2004-04-01 2014-07-29 Google Inc. Adding information or functionality to a rendered document via association with an electronic counterpart
US20100182631A1 (en) * 2004-04-01 2010-07-22 King Martin T Information gathering system and method
US8505090B2 (en) 2004-04-01 2013-08-06 Google Inc. Archive of text captures from rendered documents
US8447111B2 (en) 2004-04-01 2013-05-21 Google Inc. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
US9008447B2 (en) 2004-04-01 2015-04-14 Google Inc. Method and system for character recognition
US9116890B2 (en) 2004-04-01 2015-08-25 Google Inc. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
US9633013B2 (en) 2004-04-01 2017-04-25 Google Inc. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
US8620760B2 (en) 2004-04-01 2013-12-31 Google Inc. Methods and systems for initiating application processes by data capture from rendered documents
US8619287B2 (en) 2004-04-01 2013-12-31 Google Inc. System and method for information gathering utilizing form identifiers
US9454764B2 (en) 2004-04-01 2016-09-27 Google Inc. Contextual dynamic advertising based upon captured rendered text
US8621349B2 (en) 2004-04-01 2013-12-31 Google Inc. Publishing techniques for adding value to a rendered document
US8713418B2 (en) 2004-04-12 2014-04-29 Google Inc. Adding value to a rendered document
US9030699B2 (en) 2004-04-19 2015-05-12 Google Inc. Association of a portable scanner with input/output and storage devices
US20050262049A1 (en) * 2004-05-05 2005-11-24 Nokia Corporation System, method, device, and computer code product for implementing an XML template
US8799099B2 (en) 2004-05-17 2014-08-05 Google Inc. Processing techniques for text capture from a rendered document
US8489624B2 (en) 2004-05-17 2013-07-16 Google, Inc. Processing techniques for text capture from a rendered document
US9275051B2 (en) 2004-07-19 2016-03-01 Google Inc. Automatic modification of web pages
US10769431B2 (en) 2004-09-27 2020-09-08 Google Llc Handheld device for capturing text from both a document printed on paper and a document displayed on a dynamic display device
US8620083B2 (en) 2004-12-03 2013-12-31 Google Inc. Method and system for character recognition
US8531710B2 (en) 2004-12-03 2013-09-10 Google Inc. Association of a portable scanner with input/output and storage devices
US8874504B2 (en) 2004-12-03 2014-10-28 Google Inc. Processing techniques for visual capture data from a rendered document
US8903759B2 (en) 2004-12-03 2014-12-02 Google Inc. Determining actions involving captured information and electronic content associated with rendered documents
US8953886B2 (en) 2004-12-03 2015-02-10 Google Inc. Method and system for character recognition
US7577900B2 (en) * 2005-05-13 2009-08-18 Harris Corporation Mechanism for maintaining data format synchronization between different entities
US20060259909A1 (en) * 2005-05-13 2006-11-16 Harris Corporation Mechanism for maintaining data format synchronization between different entities
US7945853B2 (en) * 2005-09-12 2011-05-17 Microsoft Corporation Script markup
US20070061708A1 (en) * 2005-09-12 2007-03-15 Microsoft Corporation Script markup
US8122342B2 (en) * 2005-10-13 2012-02-21 International Business Machines Corporation Enforcing accessible content development
US20070089052A1 (en) * 2005-10-13 2007-04-19 Karle Christopher J Systems, methods, and media for enforcing accessible content development
US20080184104A1 (en) * 2005-10-13 2008-07-31 Karle Christopher J Systems, Methods, and Media for Enforcing Accessible Content Development
US20070214408A1 (en) * 2006-03-07 2007-09-13 Optimus Corporation Declarative web application for search and retrieval
US8600196B2 (en) 2006-09-08 2013-12-03 Google Inc. Optical scanners, such as hand-held optical scanners
US20080196046A1 (en) * 2007-02-09 2008-08-14 Novarra, Inc. Method and Apparatus for Providing Information Content for Display on a Client Device
US8638363B2 (en) 2009-02-18 2014-01-28 Google Inc. Automatically capturing information, such as capturing information using a document-aware device
US8418055B2 (en) 2009-02-18 2013-04-09 Google Inc. Identifying a document by performing spectral analysis on the contents of the document
US20110029443A1 (en) * 2009-03-12 2011-02-03 King Martin T Performing actions based on capturing information from rendered documents, such as documents under copyright
US20110043652A1 (en) * 2009-03-12 2011-02-24 King Martin T Automatically providing content associated with captured information, such as information captured in real-time
US8990235B2 (en) * 2009-03-12 2015-03-24 Google Inc. Automatically providing content associated with captured information, such as information captured in real-time
US9075779B2 (en) 2009-03-12 2015-07-07 Google Inc. Performing actions based on capturing information from rendered documents, such as documents under copyright
US8447066B2 (en) 2009-03-12 2013-05-21 Google Inc. Performing actions based on capturing information from rendered documents, such as documents under copyright
US9081799B2 (en) 2009-12-04 2015-07-14 Google Inc. Using gestalt information to identify locations in printed information
US9323784B2 (en) 2009-12-09 2016-04-26 Google Inc. Image search using text-based elements within the contents of images
US10095702B2 (en) * 2013-03-15 2018-10-09 Cognex Corporation Systems and methods for generating and implementing a custom device description file
US20140280351A1 (en) * 2013-03-15 2014-09-18 Dale Peterson Systems and methods for generating and implementing a custom device description file
TWI671681B (en) * 2014-04-21 2019-09-11 阿里巴巴集團服務有限公司 Tag-based program development method, page request response method and device thereof
US20150302110A1 (en) * 2014-04-21 2015-10-22 Alibaba Group Holding Limited Decoupling front end and back end pages using tags
US10325009B2 (en) * 2016-05-12 2019-06-18 Alibaba Group Holding Limited Method and apparatus for using custom component parsing engine to parse tag of custom component
US11562043B1 (en) * 2021-10-29 2023-01-24 Shopify Inc. System and method for rendering webpage code to dynamically disable an element of template code
US20230244852A1 (en) * 2022-02-02 2023-08-03 Morgan Stanley Services Group Inc. Css customization of user interface components
US11822871B2 (en) * 2022-02-02 2023-11-21 Morgan Stanley Services Group Inc. CSS customization of user interface components

Also Published As

Publication number Publication date
AU2001293174A1 (en) 2002-04-08
WO2002027511A1 (en) 2002-04-04
DE10196699T1 (en) 2003-08-28

Similar Documents

Publication Publication Date Title
US7089330B1 (en) System and method for transforming custom content generation tags associated with web pages
US7194683B2 (en) Representing and managing dynamic data content for web documents
JP5787963B2 (en) Computer platform programming interface
US7162687B2 (en) JSP tag libraries and web services
JP4625198B2 (en) Server-side code generation from dynamic web page content files
US20040225749A1 (en) Transformation of web site summary via taglibs
US7013351B2 (en) Template architecture and rendering engine for web browser access to databases
US7278132B2 (en) Mechanism for automatic synchronization of scripting variables
KR101099272B1 (en) Web page rendering mechanism using external programmatic themes
US7233956B2 (en) Method and apparatus for data migration between databases
US7415524B2 (en) Postback input handling by server-side control objects
US6507857B1 (en) Extending the capabilities of an XSL style sheet to include components for content transformation
US6701485B1 (en) Binding spreadsheet cells to objects
US20040261017A1 (en) Document generation
US6948120B1 (en) Computer-implemented system and method for hosting design-time controls
US20040181748A1 (en) Thin client framework deployment of spreadsheet applications in a web browser based environment
US20020099738A1 (en) Automated web access for back-end enterprise systems
US20020029304A1 (en) Method and system for defining semantic categories and actions
US20040225724A1 (en) RPC type SOAP service access via taglibs for dynamic web content
JP2003531412A (en) Method and apparatus for creating a service
JP2002196967A (en) Method for redirecting source of data object displayed on html document
US20040225959A1 (en) Appearance properties for web applications using TagLibs
KR20010113472A (en) A method and apparatus defining a component model for creating dynamic document in a distributed data processing system
Manola Some Web Object Model Construction Technologies
Sarhan et al. Master Project Defense

Legal Events

Date Code Title Description
AS Assignment

Owner name: I2 TECHNOLOGIES, INC., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MASON, LARRY P.;REEL/FRAME:011168/0301

Effective date: 20000926

AS Assignment

Owner name: I2 TECHNOLOGIES US, INC., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:I2 TECHNOLOGIES, INC.;REEL/FRAME:012034/0965

Effective date: 20010701

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT, CALIFORNIA

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:JDA TECHNOLOGIES US, INC.;REEL/FRAME:026072/0353

Effective date: 20110318

Owner name: WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT, CALIFO

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:JDA TECHNOLOGIES US, INC.;REEL/FRAME:026072/0353

Effective date: 20110318

AS Assignment

Owner name: JDA TECHNOLOGIES US, INC, TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:I2 TECHNOLOGIES US, INC;REEL/FRAME:026468/0119

Effective date: 20100205

AS Assignment

Owner name: JDA SOFTWARE GROUP, INC., ARIZONA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:JDA TECHNOLOGIES US, INC.;REEL/FRAME:026740/0676

Effective date: 20110524

Owner name: JDA SOFTWARE GROUP, INC, ARIZONA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:JDA TECHNOLOGIES US, INC;REEL/FRAME:026740/0676

Effective date: 20110524

AS Assignment

Owner name: JDA TECHNOLOGIES US, INC., ARIZONA

Free format text: RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL;ASSIGNOR:WELLS FARGO CAPITAL FINANCE, LLC;REEL/FRAME:029529/0812

Effective date: 20121221

AS Assignment

Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, NEW YORK

Free format text: FIRST LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:JDA SOFTWARE GROUP, INC.;REEL/FRAME:029556/0809

Effective date: 20121221

Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, NEW YORK

Free format text: FIRST LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:JDA SOFTWARE GROUP, INC.;REEL/FRAME:029556/0697

Effective date: 20121221

REMI Maintenance fee reminder mailed
FPAY Fee payment

Year of fee payment: 8

SULP Surcharge for late payment

Year of fee payment: 7

AS Assignment

Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, ILLINOIS

Free format text: SECURITY AGREEMENT;ASSIGNORS:RP CROWN PARENT, LLC;RP CROWN HOLDING LLC;JDA SOFTWARE GROUP, INC.;REEL/FRAME:040326/0449

Effective date: 20161012

Owner name: JDA SOFTWARE GROUP, INC., ARIZONA

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 29556/0809;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:040337/0356

Effective date: 20161012

Owner name: JDA SOFTWARE GROUP, INC., ARIZONA

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 29556/0697;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:040337/0053

Effective date: 20161012

Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, IL

Free format text: SECURITY AGREEMENT;ASSIGNORS:RP CROWN PARENT, LLC;RP CROWN HOLDING LLC;JDA SOFTWARE GROUP, INC.;REEL/FRAME:040326/0449

Effective date: 20161012

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.)

FEPP Fee payment procedure

Free format text: 11.5 YR SURCHARGE- LATE PMT W/IN 6 MO, LARGE ENTITY (ORIGINAL EVENT CODE: M1556)

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553)

Year of fee payment: 12

AS Assignment

Owner name: BLUE YONDER GROUP, INC., ARIZONA

Free format text: CHANGE OF NAME;ASSIGNOR:JDA SOFTWARE GROUP, INC.;REEL/FRAME:052392/0720

Effective date: 20200214

AS Assignment

Owner name: U.S. BANK NATIONAL ASSOCIATION, MINNESOTA

Free format text: SECURITY AGREEMENT;ASSIGNOR:BLUE YONDER GROUP, INC.;REEL/FRAME:053383/0117

Effective date: 20200731

AS Assignment

Owner name: JDA TECHNOLOGIES US, INC., TEXAS

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF THE CONVEYING AND RECEIVING PARTIES TO INCLUDE A PERIOD AFTER THE TERM INC PREVIOUSLY RECORDED ON REEL 026468 FRAME 0199. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME FROM I2 TECHNOLOGIES US, INC. TO JDA TECHNOLOGIES US, INC.;ASSIGNOR:I2 TECHNOLOGIES US, INC.;REEL/FRAME:055136/0623

Effective date: 20100205

AS Assignment

Owner name: JDA SOFTWARE GROUP, INC., ARIZONA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF THE CONVEYING AND RECEIVING PARTIES TO INCLUDE A PERIOD AFTER THE TERM INC PREVIOUSLY RECORDED AT REEL: 026740 FRAME: 0676. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNOR:JDA TECHNOLOGIES US, INC.;REEL/FRAME:055257/0747

Effective date: 20110524

AS Assignment

Owner name: JDA TECHNOLOGIES US, INC., TEXAS

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REEL 026468 FRAME NUMBER FROM 0199 TO 0119 PREVIOUSLY RECORDED ON REEL 055136 FRAME 0623. ASSIGNOR(S) HEREBY CONFIRMS THE CORRECTION ASSIGNMENT;ASSIGNOR:I2 TECHNOLOGIES US, INC.;REEL/FRAME:056813/0110

Effective date: 20100205

AS Assignment

Owner name: BY BENELUX HOLDING, INC., ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:057724/0593

Effective date: 20210916

Owner name: BY NETHERLANDS HOLDING, INC., ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:057724/0593

Effective date: 20210916

Owner name: BY BOND FINANCE, INC., ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:057724/0593

Effective date: 20210916

Owner name: REDPRAIRIE SERVICES CORPORATION, ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:057724/0593

Effective date: 20210916

Owner name: JDA SOFTWARE RUSSIA HOLDINGS, INC., ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:057724/0593

Effective date: 20210916

Owner name: REDPRAIRIE COLLABORATIVE FLOWCASTING GROUP, LLC, ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:057724/0593

Effective date: 20210916

Owner name: MANUGISTICS HOLDINGS DELAWARE II, INC., ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:057724/0593

Effective date: 20210916

Owner name: MANUGISTICS SERVICES, INC., ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:057724/0593

Effective date: 20210916

Owner name: I2 TECHNOLOGIES INTERNATIONAL SERVICES, LLC, ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:057724/0593

Effective date: 20210916

Owner name: JDA SOFTWARE SERVICES, INC., ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:057724/0593

Effective date: 20210916

Owner name: BLUE YONDER, INC., ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:057724/0593

Effective date: 20210916

Owner name: BLUE YONDER GROUP, INC., ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:057724/0593

Effective date: 20210916

AS Assignment

Owner name: BLUE YONDER GROUP, INC., ARIZONA

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053383/0117);ASSIGNOR:U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT;REEL/FRAME:058794/0776

Effective date: 20210916