US20090138792A1 - System and method for extending ad hoc information around structured data - Google Patents

System and method for extending ad hoc information around structured data Download PDF

Info

Publication number
US20090138792A1
US20090138792A1 US12/109,133 US10913308A US2009138792A1 US 20090138792 A1 US20090138792 A1 US 20090138792A1 US 10913308 A US10913308 A US 10913308A US 2009138792 A1 US2009138792 A1 US 2009138792A1
Authority
US
United States
Prior art keywords
page
data
users
pages
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US12/109,133
Inventor
Matias Cudich
Stephan Dennis Morais
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.)
Oracle International Corp
Original Assignee
BEA Systems 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
Application filed by BEA Systems Inc filed Critical BEA Systems Inc
Priority to US12/109,133 priority Critical patent/US20090138792A1/en
Assigned to BEA SYSTEMS, INC. reassignment BEA SYSTEMS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CUDICH, MATIAS, MORAIS, STEPHAN DENNIS
Publication of US20090138792A1 publication Critical patent/US20090138792A1/en
Assigned to ORACLE INTERNATIONAL CORPORATION reassignment ORACLE INTERNATIONAL CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BEA SYSTEMS, INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • 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/957Browsing optimisation, e.g. caching or content distillation
    • 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
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/123Storage facilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/137Hierarchical processing, e.g. outlines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/37Compiler construction; Parser generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/121Frame memory handling using a cache memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences

Definitions

  • Embodiments of the present invention relate to a seamless, collaborative environment for creating applications, consuming information, and contributing content.
  • Participants must first obtain an extract of prospects from a core enterprise system used to track the prospects, such as a Siebel or Salesforce.com® CRM application. 2. Once the data is obtained, one of the participants sorts it in a spreadsheet document and emails the document to all other participants. 3. Participants edit the list and email each of their new versions to the entire group. 4. Several participants also add new columns to the spreadsheet to reflect additional prospect information. 5. Multiple new versions are generated and distributed through email. 6. Someone is designated as the master editor who cuts and pastes the various iterations into a consolidated document, which is then emailed to the group for final approval.
  • a core enterprise system used to track the prospects such as a Siebel or Salesforce.com® CRM application.
  • FIG. 1 is a flowchart that shows a method for one embodiment for extending ad-hoc information around structured data.
  • FIG. 2 is an illustration that shows the architecture for one embodiment.
  • FIG. 3 is an illustration that shows one embodiment's flow to assemble a header portlet with content from a live space.
  • FIG. 4 is an illustration that shows one embodiment's flow to return a page with a header portlet.
  • FIG. 5 is an illustration that describes how one embodiment constructs a page out of components.
  • a system for extending ad-hoc information around structured data can solve these issues.
  • a web-based application constructor can help line-of-business users create web pages—wikis, blogs, data-driven collaborative web applications, and more.
  • One exemplary embodiment of a web-based application constructor is BEA AquaLogic® Pages from BEA Systems, Inc.
  • FIG. 1 is a flowchart that shows a method for one embodiment for extending ad-hoc information around structured data.
  • This embodiment is a method comprising several steps.
  • Step 100 is creating a web interface for structured data.
  • Step 102 is combining the structured data through the web interface with unstructured data, wherein one or more users can collaborate to combine the structured data through the web interface with the unstructured data without administrative approval.
  • Step 104 is producing groups of pages extending ad hoc information around the structured data, wherein versions of the groups of pages are tracked.
  • the structured data is one or more records stored in a database.
  • Alternative embodiments of structured data include application data from enterprise resource planning systems, customer relationship management systems, and many other enterprise systems.
  • unstructured data represents ad hoc information that might be included in a text document, e-mail message, or placed in any number of other unstructured documents.
  • FIG. 2 is an illustration that shows the architecture for one embodiment.
  • Web browser 200 displays information to a user.
  • the browser 200 , client tier 204 , the web tier 208 , the service tier 214 , the file system 224 , content service 226 , and relational database management system 228 are located on one or more computers.
  • the system can be distributed both horizontally and vertically.
  • Page libraries 202 and DOJO 204 are used to create pages in a collaborative process.
  • Page rendering 210 renders the page to the browser using Facelets and JSF.
  • the page service 212 provides a remote interface for performing create, remove, update, and delete (CRUD) operations on a page.
  • the page 216 can be instantiated on the service tier 214 .
  • CRUD create, remove, update, and delete
  • the page manager 218 controls CRUD operations performed on a page 216 .
  • a page includes a layout 220 and one or more components 222 . Additional content for pages is accessed from the file system 224 , a content service 226 , and/or a relational database management system 228 .
  • FIG. 3 is an illustration that shows one embodiment's flow to assemble a header portlet with content from a live space.
  • portal page 300 In order to assemble portal page 300 to be displayed to a user, first a request is made from gateway 304 to a portal navigation header 310 . Then a live space tag is processed out of the header, by passing the tag through the gateway to the live spaces list service 308 .
  • a builder 306 then returns a list of live spaces in a SOAP envelope through the gateway 304 to the portal page 300 where the header portlet is assembled with content from a live space.
  • a web-based application constructor is used instead of builder 306 .
  • BEA Aqualogic® Pages is used instead of builder 306 .
  • FIG. 4 is an illustration that shows one embodiment's flow to return a page with a header portlet.
  • User 400 requests a builder page through gateway 404 .
  • a portal 402 is being used.
  • the gateway then retrieves the content from the builder page 406 .
  • the gateway then processes the portal navigation header portlet 408 .
  • the gateway then returns the builder page 406 with the header portlet 408 to be displayed to the user.
  • a portal 402 is not used.
  • the builder page 406 is a page created by BEA Aqualogic® Pages.
  • the builder page 406 is a page created by a web-based application constructor.
  • FIG. 5 is an illustration that describes how one embodiment constructs a page out of components.
  • a request is made from a browser for an object as a page.
  • the system determines whether the page is in session. If the answer is no, then the system goes to step 504 and determines whether the page is cached. There are two caches that need to be checked, as described in 524 . If any of the previous determinations were yes, then go to step 520 and the system assembles XHTML for the page, starting with the shell and including the page, the containers, layouts, and components.
  • Step 522 follows step 520 , Facelets take the XHTML, render the HTML, and sends the response.
  • the next step is 506 where the system queries the back end repository or file system for the page.
  • step 510 it is determined whether the page is found. If the page was not found then go to step 512 , where the system queries the back end repository or file system for the object.
  • step 514 the system determines whether the object was found. If the object was not found then the system goes to step 508 and the browser receives a redirect request to an error page. If the object was found then go to step 518 , where the system creates the page from the object and the corresponding page template. If previously the page was found in Step 510 , then go to step 516 and build the page object graph from backend objects. From either Step 516 or step 518 , the next step is 520 and proceed as described above for step 520 .
  • the web-based application constructor can serve the diverse needs of both IT departments and line-of-business users.
  • the web-based application constructor provides the management and governance control that core enterprise systems require. But the real impact is in IT management's ability to empower a greater army of creators and participants, allowing business users to solve their challenges directly on the web.
  • the web-based application constructor is a revolution: creating for the web becomes as easy as creating a Word document or sending an email. Users feed data from core enterprise systems directly into their applications, and can wire that data on the page to other components, such as a Google MapTM or an RSS feed. Every page can be edited by a user while the system tracks changes, versioning, and access.
  • the web-based application constructor is a system for creating and editing web pages quickly.
  • One embodiment includes data spaces for assembling data into pages and live spaces for assembling pages into applications.
  • Data spaces allow participants to create powerful Web interfaces on top of structured data sets, like a simple list of records or an extract of new opportunities from a CRM system. Participants can surface data-to-data spaces through a variety of mechanisms, including Really Simple Syndication (RSS), Web services, or by creating a data set from scratch.
  • RSS Really Simple Syndication
  • a data space can be created simply by publishing an Excel® spreadsheet to the Web.
  • data spaces allow the user to select different data type fields (simple text, long text, drop-down) and configure them. Users can thus quickly create data sets, such as a list of items or contacts, and reuse that data within other pages, live spaces, and applications created within the system.
  • Data spaces provide several templates for integrating and presenting data, including for RSS, blogging, and Webservices invocation.
  • Data spaces automatically create pages for each list of records in a data set, and individual pages for each record in a list.
  • creating a data space from an RSS feed yields a single page displaying a list of items in the feed.
  • the system creates a page representing each individual item in the feed.
  • Data spaces let users add structured and unstructured content to each of the views they express, and become important sources of reusable data that live spaces assemble into Web applications. Data spaces are a simple but powerful concept. By representing structured data records on the Web as a series of independent pages, users can quickly annotate these records with unstructured text, or add additional structured data related to a single record.
  • Live spaces can be dynamic groups of pages, created and woven together by end-user participants. Live spaces combine data from data spaces with documents and other unstructured information that is either created for a given page or added from within the system. Like other pages in the system, live spaces can be built collaboratively by multiple users, and the system can track and control versions over time. Live spaces offer granular access-control capabilities, so managers of a live space can determine who can edit parts of the live space and what they have the ability to do.
  • Live spaces can provide a canvas on the Web that allows users to efficiently share information and accomplish activities collaboratively.
  • live spaces allow business users to create simple pages for any topic, mix in data space records, documents, annotations, or comments, and add links onto those pages.
  • BEA AquaLogic® Pages creates simple, unique URLs for each live space and its pages, providing an easy way for system users to navigate directly to useful pages and applications.
  • the web-based application constructor features a rich page framework that overlays a number of capabilities on pages created, including the ability to attach images, documents, and control versioning and page history.
  • every page in the web-based application constructor system is a live, editable page.
  • the system features wiki-style page editing where at the push of a button an individual user can make changes and add new text, hyperlinks, images, documents, and widgets. Users can enter a simple edit mode on the page, which makes the page instantly editable for either writing, where the user can write rich text directly onto the page, or designing, where through a simple toolbar a user can drag and drop widgets onto the page for application-building.
  • Page editing can be a collaborative process that involves multiple participants making changes to pages over several iterative sessions.
  • the system tracks each page's history and creates a new version of the page with each change made to it. This allows page owners to revert to earlier versions of an accepted page, or undo previously made changes.
  • Applications built using the web-based application constructor can thus be dynamic and flexible, and builders of these applications can add temporary functionality to a page—like a map to display location data, or a short list of tasks—and remove that functionality when it is no longer useful.
  • the web-based application constructor provides several useful common templates and layouts for creating pages. Users can specify a layout when creating an individual page, selecting from a number of layout templates, including a two-column layout, a header-body-footer layout, and more. Layouts allow participants to quickly arrange widgets within structures common to specific applications or pages.
  • the system also provides a free-form layout, which allows users to modify the form and structure of pages on the fly to meet changing requirements of the applications they are building.
  • the system also provides basic templates for applications like a blog or simple wiki that is created using data spaces or live spaces, as described above. IT management or developers can extend the system by creating additional templates for building specific applications or, in the case of a data space, for connecting to specific data sources such as a Customer Relationship Management (CRM) or enterprise resource planning (ERP) system.
  • CRM Customer Relationship Management
  • ERP enterprise resource planning
  • the Dashboard is the system's home page and a starting point for most user activities, including live space and data space creation, as well as exploring the system for useful objects.
  • the Dashboard is also a simple workspace, displaying a list of recent activities and changes in the system, a list of an individual's outstanding drafts, and a complete list of every live space and data space in the system, sorted by the date they were last modified.
  • the Dashboard also includes simple links to initiate common activities, like creating a live space or a data space.
  • the Action pane is a dynamic activity sidebar that overlays each page, providing access to common functions for page builders. These functions include the ability to create new pages, edit the existing page, edit the settings for live spaces or data spaces, attach documents to a page or interact with documents already attached to it, and view recent changes on the page and its version history.
  • the Action pane also displays lists of the objects included in a live space or data space, and provides the ability to search quickly for those objects from within the sidebar.
  • Active pages is an innovative way to automatically liberate any item as a separate page on which any participant can freely add other data or engage in unstructured collaboration.
  • the system uses this capability to represent any object—lists of records, individual records, documents, and images—as individual pages to which unstructured content, or other widget components, can be added collaboratively by users. Every page in the system, including pages created for objects, benefits from this capability.
  • Each object-page is based on the page framework within the web-based application constructor, which governs normal page actions, such as document attachment and page versioning.
  • Active pages can be a way to link ad-hoc activity, such as wiki-ing, to the systems of record, in such a way that this free-form collaboration will always be tied to the underlying business object.
  • documents can be attached to any page in the system, and as it does for other objects, the web-based application constructor also represents the document as a page, conferring all the benefits of the page framework to it as described above.
  • the system will track versions of documents, providing a simple way for users to share documents they create and modify along with other users.
  • Widgets can be bound to data created within the web-based application constructor, imported from enterprise systems, or provided by third party services and surfaced through integration capabilities in the web-based application constructor.
  • Page components can also contain static content or content keyed to preferences assigned to another component.
  • the web-based application constructor comes with a number of page-component types that users can select to create new instances of a page component.
  • Page-component types include: Data Table, Image, Record List, Text, and more.
  • Page components are added to the page through simple drag-and-drop.
  • Each component features an intuitive wizard that allows the user to name the new component instance, configure it, and set its security.
  • Each instance of a page component features a unique URL, and can thus be consumed outside the web-based application constructor environment—by an enterprise portal, for example.
  • the Data Table is a page component that lets users display and interact with structured data. Users can bind Data Tables to any type of data space, and depending on that type, can get a read-only or editable view of data. Users can also create a new data space from within the Data Table configuration wizard.
  • the Data Table component features three primary modes: 1) Simple, where the data is simply displayed; 2) Master/Detail, whereby selecting an individual record displays that record's detail below, and where new records can be added directly within the page; and 3) Spreadsheet, where users can insert and edit records as they can within Microsoft Excel®.
  • the Data Table interface automatically generates a row for every record and a column for every field in the data space. It also features common controls for interacting with data, including field-sorting, filtering, and pagination.
  • the Record List page component is similar to the Data Table component, but used for displaying data from data spaces that has significant numbers of fields or records.
  • Record List components are commonly used to display lists of records from within a data space that drive other interactions across the page. Record Lists feature the same built-in sorting, fielding, and pagination capabilities as Data Tables.
  • the Record List component includes a special user-configuration feature that lets it exchange data with other components on the same page. Each Record List instance can either broadcast information—a single rowclick, or all rows—or “listen” for information from other components. This capability, in conjunction with other page components that possess it, allows end-users to build data-driven mashups, combining data from multiple systems interactively on a single page.
  • the Image component lets users embed images directly into pages and alongside other components, such as rich text, data tables, and so on. Users can also, in the context of a rich-text editing session, embed an image in the middle of text, creating elegant, Web-style HTML without programming. Images can be added by either specifying a URL, by uploading directly to the system, or by selecting previously specified images within the system. Uploaded images have the versioning and object-control features of most other page objects.
  • the image editor allows the user to specify each image's width and height attributes, displays a preview of images, and lets the user add descriptive text that shows when other users hover over it with the mouse.
  • the web-based application constructor provides a sample Map component that graphically maps data fed to it from other components.
  • the sample Map component once added to the page, can be configured to listen for data from the entire page, or from data sent to it by specific components.
  • the map component when provided the value of a field named “Address,” will map the value visually.
  • page components include a special user-configurable feature that enables the component to exchange data with other components on the same page.
  • Each component instance can either broadcast information—either a single row-click, or all rows—or “listen” for information from other components by specifying data fields of interest.
  • This capability is available with Record List, Map, and several other page components, and lets end-users build data-driven mashups that can dynamically and interactively combine data from multiple systems on a single page.
  • Users in the system can save pages as drafts, and retrieve drafts from the Dashboard described above.
  • the web-based application constructor automatically saves a draft in the background every 10 seconds to protect a user from losing work before it is published. Users can thus work on the Web in a way that is similar to their method of working on desktop applications.
  • a user simply selects the “Share” button, and can also add a description about those changes.
  • the web-based application constructor keeps track of the changes made to individual pages, data spaces, and live spaces. As the page goes through successive versions, users can view a previous version, delete it, or revert back to a previous version of the page. The same applies to documents attached to pages, and users can download old versions of documents in addition to seeing their history.
  • the web-based application constructor provides a core set of security capabilities that secure and protect the data and functionality created and managed within it. The ability to govern who can do what in the system ensures that people see only what they're entitled to see.
  • Each object in the system is governed by an access-control list (ACL) that determines the actions users and groups can take regarding it, including reading, creating, editing, and more.
  • ACL access-control list
  • Child objects inherit the security of their “parent,” making it easy to set security once on a particular live space and continue working.
  • the web-based application constructor recognizes a set of configurable roles, in which activities and privileges can be set: Guest, Reviewer, Creator, Publisher, Editor, and Administrator. Individual users and user groups are added to these roles to confer permissions on specific system users.
  • the web-based application constructor leverages user and group information from within a portal system, or by using the user and group security capabilities found in another system. This allows the web-based application constructor to define users and groups by integrating with virtually any third-party user repository, including LDAP, Active Directory, or custom databases.
  • the web-based application constructor brings a rich set of capabilities to a wide variety of business needs, ranging from customer-support issue tracking to sales planning to employee blog publishing. This is a simple example of how the web-based application constructor can be used to improve a customer support team's ability to respond to a critical situation in a few simple steps.
  • a single support engineer creates a new “Support Issues” data space, which displays a list of support incidents for a single customer.
  • the list is pulled directly from a Clarify support system, using the Web-service invocation method provided by the web-based application constructor.
  • An account manager who is largely responsible for customer satisfaction for this individual account, creates a new “Issue Tracking” live space for assembling all the information related to this specific customer and issue. This information will be assembled by an extended team of participants related either to the account or to resolving the issue.
  • the account representative writes directly onto a page of the live space, listing action items and owners for each action the support team needs to address.
  • a customer service representative enters the live space and drags-and-drops a “Support Team” DataTable widget onto the page.
  • the customer service representative maps this component to the existing “Employee Contacts” data space, which pulls a list of records from an internal LDAP system.
  • the web-based application constructor includes a set of Adaptive Tags to add links to live spaces and data spaces to the portal navigation, allowing users to navigate to components from within a portal page.
  • These tags are data tags; they return URL attributes as data, and can be used in conjunction with a display tag.
  • the tags retrieve live spaces and data spaces by making requests to web services on the server. In one embodiment, the results are cached for 5 minutes or until the user logs out. The tags return the live spaces and data spaces that the current user has access to.
  • One embodiment includes an embedded Apache Derby database.
  • One embodiment uses the web-based application constructor without a portal.
  • Maps Component enables users to add maps to a page. Maps can receive input (in the form of an address) from data spaces or other components on the same page.
  • One embodiment provides an IPC page of a Record List Component—enables users to configure the component to broadcast row clicks (to a map for example) or listen for content from other components.
  • One embodiment provides a Markup Component—enables users to paste html content, like a YouTube video or Google GadgetTM, directly into a page.
  • One embodiment provides a REST data space—enables administrators to create data space templates that receive data from a REST API.
  • One embodiment provides a Yahoo!® Search data space Template—sample implementation of a REST data space using the Yahoo!® REST search API.
  • One embodiment provides a GoogleTM Search data space Template—sample implementation of a web service data space using the GoogleTM SOAP search API.
  • a live space is a logical collection of individual pages. For example, you might have a Marketing live space that includes the following pages: Collateral, Events, and Writing and Design Resources.
  • Each live space includes security so one can control which users can view or edit the pages and any other objects associated with the live space. Users who are allowed to edit the pages can add or edit content enabling rapid knowledge transfer. Because each page is versioned, and the user can easily revert to a previous version, users can be a bit more relaxed with who is allowed to edit content.
  • Security can be set by assigning roles to portal users and groups. These roles apply to every object associated with the live space (pages, documents, and components).
  • Access to each page is controlled by the associated live space security. Users who are allowed to edit the pages can add or edit content enabling rapid knowledge transfer. Because each page is versioned, and because it is so easy to edit anything, users are compelled to contribute, participate, and when necessary, correct others' contributions.
  • actions can be performed that do not alter the actual contents of a given page. For example, one can add comments, attach documents, create new pages, and work with content in record lists and tables. Each time a user publishes a page or an object in page view a new version is created (versions are listed under Recent Changes). This allows a user to easily see what changes were made and revert to a previous version if necessary.
  • a data space defines a set of data, made up of records.
  • a user can create a custom data space that stores data in the Pages repository, or points to an external system from which data is surfaced.
  • Each data space is based on a template that defines the configurable properties of the data space (for example, whether the data space relies on the native Pages repository or an external repository).
  • a user can display data from an external data source in pages via SOAP. For example, a user might want to display customer support issues or sales information from a customer relationship management (CRM) system, display inventory information from an enterprise resource planning (ERP) system, or connect to a free web service on the internet.
  • CRM customer relationship management
  • ERP enterprise resource planning
  • Each data space includes security to control which users can view or edit the records in the data space. Users who are allowed to edit the records can add or edit content enabling rapid knowledge transfer.
  • Security is set by assigning roles to portal users and groups. These roles apply to every object associated with the data space (records, documents, and components added to the data space or records in page view).
  • Data spaces enable a user to define data fields to fit the user's needs. For example, a user might want to create a data space to track job postings, marketing campaigns, or facilities requests. Data collected in a data space is stored in the Pages repository and is therefore editable. Blog data spaces, like custom data spaces, store data in the Pages repository and are therefore editable.
  • Data spaces enable a user to display content from an external RSS feed. For example, a user might want to display recent news articles discussing a product or company. Data spaces enable a user to surface data residing in external systems via SOAP-based web services. For example, a user might want to display sales information from a CRM system, or display inventory information from an ERP system, or connect to a free web service on the internet.
  • the records after a data space is created and its records have been fetched at least once (by a user viewing the data space), the records become part of the search collection and users can add components, text, and document attachments to the records.
  • the cached records are updated when a record is viewed by a user.
  • a record is a group of related fields that store data about a subject or activity (for example, a record can be one row in a table or one entry in a blog).
  • a collection of records is stored in a data space (which stores data in the native repository or points to an external repository of data).
  • a user can search for records using the search box at the top of any table or record list. As you type, the list is dynamically filtered to display only those records that include your search text in one of the record fields.
  • a user can add components, comments, or documents to a record by opening the record in page view and editing the record just like any other page. Records can be deleted in different ways depending on the interface that displays the records.
  • Embodiments of the present invention enable users to manage information stored in both native databases and external systems.
  • data sources can let users create on-the-fly applications that surface critical business information such as sales leads from a Siebel CRM system, or manage lightweight data sets, such as a product feature list.
  • One embodiment of the present invention is a web-based application constructor for constructing a web display.
  • the web-based application constructor can obtain data from heterogeneous data sources to produce the web display.
  • a web display can contain page components and display the data from at least some of the heterogeneous data sources.
  • a versioning system can keep track of changes to page components to allow users to make changes without administrative approval.
  • the versioning system can keep track of changes to page layout, searches, and text to allow users to make changes without administrative approval.
  • a change control system can allow users to dynamically undo changes to page components while using the web-based application constructor.
  • the versioning system can store old versions of the web display and thus allow the users to roll back changes.
  • the system can store a history of old versions and when a user makes an error, the page can be rolled back to a previous version.
  • the page components can be elements constructed from data in the heterogeneous data sources.
  • the page components can expose data from ERP, Database or other sources.
  • the heterogeneous data source can include a relational database management system, a customer relationship management system, enterprise resource planning system and/or any other types of data sources.
  • the heterogeneous data sources can have Web Services schemas that allow the application constructor to produce a display of the data.
  • the page components can contain interactive elements. In one embodiment, all page editing is versioned.
  • Whether a page component is displayed to a user can be controlled by roles and security. For example, some pages can have page components that are only viewable by users in a certain group or with a certain security level. Display and/or updates to page components can be controlled by using the URLs for the page components.
  • the web-based application constructor can provide roles to users that can be used to limit access to applications.
  • the page layout can also be versioned. Versions of the page can be stored at a remote server. AJAX at a user browser can send version update information to the remote server. Page templates can be used to create the display. The page components can include rich text.
  • the page components can have their own URL so that they can be shared among applications. For example, a user can copy a page component into their own page since the system can use the page component's URL to copy it into a new display page. In this way, updates can be sent to multiple pages.
  • the page components can include a view of data in a list, a view of data in a record, a view of an ad-hoc application or other views.
  • the display can be constructed from available applications, where available applications can be dragged and dropped into page components.
  • At least one of the heterogeneous data sources is a searchable resource.
  • the display provides for a search field into the searchable resource, the result of a search can be shown in a page component of the display.
  • the page components can be dragged and dropped to a new display.
  • the changes to the page component are not propagated back to the application data source propagated back to the application.
  • the web-based application constructor can provide roles to users that can be used to limit access to applications.
  • the application constructor can convert at least one object from a heterogeneous data source into a page component.
  • the system can allow for the construction of user interfaces to access different types of data.
  • Change control system can allow users to dynamically undo changes to page components while using the web-based application constructor.
  • All page editing can be versioned.
  • the change control system can allow for a redo of changes.
  • the versions can be time stamped and changes can be rolled back up. For example in one embodiment, users can rollback changes to a state as of a previous period of time. Changes can be dynamically made to page components, page layout, searches, and text while using the web-based application constructor.
  • the web-based application constructor can allow users to annotate page components with comments visible in the web display.
  • the page components can be identified by URLs and the annotations can be associated with the URL.
  • the annotations can receive user inputs from multiple pages and produce a common display. A web-based text editor can be used for the annotations.
  • One embodiment of the present invention includes an application constructor to convert at least one object from a heterogeneous data source into a page component.
  • the system allows for the construction of user interfaces to access different types of data.
  • Web service WSDL can be analyzed to determine user interface fields.
  • An XML editor framework can analyze XML schema at the WSDL.
  • the page components are accessible by URLs.
  • URLs can be used by a security system. Roles can be used to determine what page components are displayable to a user.
  • the URLs can be automatically created. All elements on a page can have their own URL.
  • An XML editor framework can be adapted to use web services schemas to automatically create user interfaces for inputting data in fields determined from the web service schemas.
  • Page components can contain data that has been converted into a list format. Clicking on elements of the list can access additional details of the list. The list can be annotated.
  • the page display can have a nested layout.
  • the nested layout can include rows and columns in a cell defined by rows and columns. Different rows can have different numbers of columns.
  • the page components can be dragged and dropped so as to change the layout. New columns and/or rows can be created by the dragging and dropping.
  • Page editing can include:
  • State and mode management can be done in multiple ways.
  • users regardless of the shell applied to the given page/live space, users can specify a mode and a state for the page they are viewing or editing.
  • users can specify a page title, a URL for the page (this can be automatically generated by the form, but users can override the URL if they so desire), and a description for the page.
  • users can specify a layout for the page, and the Live Space in which the page will live. By default, pages can be placed in the current Live Space; users do have the opportunity, however, to place the page in another Live Space—either one that exists, or a new one they create on the fly.
  • Dojo can be used for all JavaScript operations on the client, primarily gathering DOM objects, updating styles on those objects, updating page modes and edit states, parts of drag-and-drop, rich-text editing, console logging, and so on.
  • Every document attached to a page has its own page/URL.
  • the following operations can be performed: upload a new version of the document, delete a version of the document, delete all versions of the document, revert to a version of the document, and decorate the document.
  • Decorating a given document-page is identical to decorating a record-page or recordlist-page. Like these other objects, only one page exists for any given document.
  • a user wants to create a new version of a specific document, users can navigate to the document (document as page), and click Upload New Version. This allows users to upload a new version of the given document that perhaps has a different file name. Once this happens, the operative file name of the document changes to the file name of the latest uploaded document. This is important when it comes to figuring out whether or not to increment a given document, or create a new attachment when a user tries to do a simple file version task.
  • the system need not be designed to look at old versions of a given document when figuring out whether or not to increment a document's version history.
  • Users can revert to any version of a given document. This can be a version uploaded before or after the version labeled as “current.” For example, a user can upload five versions of a document, and then decide to revert to version 3. At this point, all 5 versions still exist, but version 3 is the “current” version. Then, a user can choose to revert to an even earlier version, or back to the latest version. If a user reverts to a previous version, then uploads a new version, the version list is incremented by 1 (meaning the new version would be version 6 and versions 4 and 5 would remain). When figuring out whether or not to increment a document, Constructor looks at the “current” version, not the latest version.
  • Objects as Pages can be used to represent structured data, such as records, lists of records, documents, and so on, as pages to which unstructured content can be added.
  • Constructor allows displaying a record such as a Customer Bug as a page; users can then view this customer bug as a page, mark up the page with additional content (using page components and rich text); and comment on the page using Annotations.
  • Objects as Pages are based on the Constructor page framework, normal page actions, such as document attachment and page versioning, can also be supported.
  • Certain types of objects can be viewed as pages. This can include records and documents attached to pages. This view depends on the given page to have embedded in it a page component that knows how to display the given object. For example, the standard Record Object as Page can use the Record Detail component; on the other hand, the standard Document Object as Page can use the Document Detail component. These components handle operations such as updating the object, and deleting the object to which they are bound. All of these pages support an operation currently called “Decoration.” Decoration is identical to page-editing, except that it is done in the context of an Object as Page. The distinction here is that there are certain modifications to the area into which users can add content.
  • Pages are designed to allow users to add net new objects to a collection. In one example, adding net new records to data sets can be supported.
  • a given Entry as Page the first thing they should see is a blank form (this is actually an empty Record Detail component). Else, they are navigating to an existing record, in which case they would actually be looking at an Object as Page.
  • Entries as Pages support “decoration” in the same way that Objects as Pages support “decoration.”
  • These pages are designed to allow users to view multiple records in a given data set via this page construct.
  • the default component used to display these records is the Data Table. Much like Objects as Pages and Entries as Pages, these pages can be “decorated” by users.
  • Each Object such as Page, Entry as Page and Object List as Page can have its own unique URL. This can allow users to navigate to these views from outside of Constructor (which lets them do things like e-mail around links, etc.).
  • Constructor which lets them do things like e-mail around links, etc.
  • URLs to records are also ID bound, but they do include the name of their owning record set, which could be updated by users.
  • Constructor need not create or store Objects as Pages until those pages are decorated and subsequently published by users. Also, these pages can be persisted when Annotations are added to a page (even if the page hasn't been decorated).
  • Every Object as Page can have one or more base components it uses to display the given object to which the page is bound.
  • the default view can contain a Record Detail Component; in the case of document Objects as Pages, the default view can contain a Document Detail component, and so on.
  • These base components may differ slightly in functionality from their regular versions: for example, the normal Record Detail component that can be added to any page supports paging between records using an AJAX operation (the page doesn't refresh).
  • the Object as Page version paging between records actually navigates the user among each of the URLs for each of the records in the given record set.
  • Some components in the system may only be available via Objects as Pages (such as the blog and document detail components).
  • Objects as Pages can be versioned just like any other page.
  • only decoration-level operations are tracked, and not changes to the underlying object.
  • Objects as Pages When decorating an Object as Page, there may be restrictions as to where users can add content.
  • Objects as Pages will have a primary page component at the top of the page, and then a blank content area beneath that.
  • users are only able to add and manage components within this content region.
  • users cannot add new components to the left, to the right or above the Object as Page primary component.
  • Live Spaces can provide a natural way to group pages, and to provide for those pages a common access control list, which makes it easy for Live Space managers to decide who should be able to see and do what in a Live Space, and the pages contained therein.
  • a page for a Live Space which acts as the default page when anyone tries to navigate to the Live Space directly. For example, if a user types in a URL like http:// . . . /Is/foo, they are immediately navigated to the home page for the “foo” Live Space.
  • Live Spaces can be represented in the system by a live space object, which can contain properties for all the configurable settings noted above.
  • the live space object can be persisted in the repository as a node (and on the filesystem as an XML file).
  • the pages for a given live space can be represented as child nodes under the parent live space node. While in one embodiment, certain nodes under the live space (pages, documents) are versionable, the live space node need not be.
  • live space objects can be cached, thereby reducing the need to make a remote repository request every time a live space is requested.
  • exposing the live space object through the UI exposing properties like the live space name as text on the page, or editing live space properties via the editor
  • EL expressions
  • the Live Space editor can update settings on the live space object by way of the DWR live spaceService, which can expose methods to the client tier (such as JavaScript) to create and update live space objects.
  • Navigating to a Live Space by means of a URL can be handled by a “resource resolver” class, which will parse a URL, and from it, extract the Live Space name (what is typed into the URL field in the editor). From the Live Space name, one can look up the Live Space, get its home page, and render it.
  • Page Components can be UI elements which can be added to pages by users.
  • Page components can be bound to back-end data provided by Constructor or a third-party data source, or can simply contain static content, or content keyed off of the preferences assigned to a given component.
  • Constructor can ship with a number of page component types, a list from which users can pick to create new page component instances. These can include: Data Table, Image, Record List, Text, and so on.
  • Every component in Constructor can have a URL that can be used to access that component directly.
  • users can get access to these URLs by either (a) clicking on the component name in the component title bar (for components that have title bars), (b) by viewing the properties panel for a given component (for components that have wizards/editors), (c) by searching/finding the component in the Explorer panel and then navigating to the component or (d) by searching/finding the component in the Organizer and then navigating to it.
  • a specific page component shell that wraps the given component.
  • This can take two forms: (a) user-friendly and (b) portal-ready.
  • the shell simply displays the page component title and description within the shell; in the case of (b) the shell is completely blank and only displays the contents of the component (not even the title bar).
  • the purpose of (b) is to allow displaying a single page component as a portlet in the portal, where one wants to let the portal govern things like toolbars, and so on.
  • Page components can be shared across pages.
  • Page components need not be versioned on their own, or saved on their own. Page components can be versioned and saved as part of a page save operation.
  • a Data Table component can expose records in data spaces.
  • the Record List component is designed to allow viewing sizable data spaces in a compact, filterable UI. Once a data space is specified, the following features can be available:
  • Page editing can be equivalent to document uploads.
  • users can have the option of either saving the given changes as a draft, or publishing their changes.
  • users save their changes as a draft they effectively are not versioning the page, but instead are keeping their changes around for later review.
  • Once a user is ready to submit their changes to the system they can click Publish, at which point a new version of a page is created, and that version can be set as the “active” version. Any time a user navigates to a given page, they can effectively navigate to the “active” version.
  • the case of documents there are two ways to add a new version: (a) users can upload to a page a document, and if that document has the same name as a document already attached to the given page, then that document is added as a new version of the existing attached document, or (b) users can upload to a specific document a new version, and even if the names are different, the new file is treated as a new version of that existing document.
  • Users can revert to any version of a page that exists in the system. After reverting to an old version of a page, say from version 10 to version 6, versions later than the now “active” version need not be deleted (versions 7-10 are not deleted). Reverting can be performed to an older version, or a newer version, given the relative position of the “active” version. Users can revert to a later version from a previous version. When users revert to an old version, and then publish that version (after perhaps making some changes), the new version is tacked on to the very end of the version history, and is marked “latest.” The same exact behavior applies to documents (except uploading replaces publishing).
  • a navigation tag can be deployed into portal navigation components. In most cases, this tag will be deployed inside the out-of-the-box portal header, or a modified version of the out-of-the-box portal header.
  • the portal has two types of navigation: pluggable navigation and tag-based navigation (Adaptive Tags). Via portal Experience Definitions, customers can create rules to determine which type of navigation to display on a given portal page.
  • tag-based navigation portlets can be used to render out the portal navigation scheme.
  • the portal header can be a portlet (aka, a Web application that produces HTML), and is built out of HTML and XML tags.
  • tags are primarily ‘pt:ptdata’ tags, which are then wrapped by ‘pt:plugnav’ tags for actually rendering out the data as HTML/CSS/JS.
  • Constructor can ship an additional live spaces data tag that can be inserted into this portal header portlet to list out live spaces next to My Pages and communities. This tag, when rendered out on the page via a UI tag, lists out all the live spaces to which a user has access. When a user clicks on one of these live space links, they can then be navigated to a gatewayed Constructor page (the home page for the given live space run through the portal gateway).
  • the Constructor page When viewing a Constructor page via the portal, it can be a requirement that the Constructor page be gatewayed.
  • the user's browser makes an HTTP request to the portal with a URL that the user wants to see.
  • the portal parses this URL and figures out that the user wants to see a specific portlet, the portal then makes an HTTP request for that Constructor page (which was specified via the URL), gets back the HTML/CSS/JS etc. from Constructor, “transforms” that markup (makes all of the URLs gatewayed URLs), and then finally returns that HTML to the user's browser.
  • Gatewaying a page also allows the portal to scan the page and replace any Adaptive Tags with their corresponding HTML/CSS/JS (this is used to support the live spaces menu and injecting the portal header into the Constructor shell).
  • User identity propagation can also be done via the gateway.
  • the portal makes a request to Constructor it can send along user information, which Constructor can then use to figure out whether or not a user should have access to a given resource.
  • the portal header can automatically appear at the top of the Constructor page.
  • This can be supported by a custom Constructor Adaptive Tag, which is embedded into the default Constructor shell.
  • the portal transforms the Constructor page it can see this Adaptive Tag and insert the portal header HTML.
  • this HTML can include a menu which lists out Live Spaces. Customers have the flexibility to modify their shell, and place this header insertion tag wherever they want.
  • Constructor can include a portlet template that can be deployed to the portal to allow users to create new portlets based off existing Constructor page components.
  • Constructor Page Component Wizard When creating a new portlet, users choose the Constructor Page Component Wizard, wherein they can choose an existing Constructor page component to which they have access. Once they choose this page component and hit Finish, this choice is stored as an Administrative Preference for the new portlet instance, and whenever that portlet instance is displayed on a portal page, it can dynamically surface the given Constructor page component.
  • security implications here (a) a user cannot select a page component to which they do not have access, and (b) a user cannot view the contents of a Constructor portlet which contains a page component to which they do not have access.
  • a friendly error message can be displayed.
  • users can go back and point at a different Constructor page component. There are no restrictions in place to prevent a user from deleting a Constructor page component being surfaced in the portal.
  • a friendly error message will again be displayed telling the user that the content no longer exists.
  • page components should “work” and look just like the page components do inside of Constructor.
  • Data spaces can allow Constructor users to create a full-blown UI for managing data. There can be a few data space templates that ship with Constructor, e.g., RSS, blogging, and so on.
  • users can create a data space from scratch. Once a data space is created, users can access the data in the data space via a set of different URLs, each unique to the data space and the type of view on the data that URL provides.
  • Users can create data spaces for tracking things like feature lists, to-dos, customer phone calls, project tasks, and so on.
  • data spaces will prove valuable for blogging, and for keeping track of information published by other Web sites (via RSS).
  • Data spaces can be important in that they let users add structured and unstructured content to each of the views they express. So, for example, for each feature listed in a feature list, one could attach rich text, documents, images, and even further, additional data spaces around a single feature.
  • only Local data spaces are read/write; all others are read-only.
  • a user picks a data space template, they are then navigated to a separate wizard, specific to that type of data space. The next few features outline those. Common to all data spaces, however, is the fact that each has a Title, a URL, and a Description. This can make it easy to find (and navigate to) the data space in the system once it has been created. Once one of those data spaces is created, the user can then navigate to either (a) the component where the data space will be surfaced, or (b) the List view for the data space. This navigation decision is based on where the data space was created from.
  • Custom data space Configuration Wizard users can specify a set of fields for the data space. Each of these fields has a set of properties: Field Title, Field Type, Display Order, Is the Title Field?, Is Required?, and in the case of a DropDown field, the options that show up in the DropDown menu.
  • Users can specify any title for each of these fields; and users can specify the field type: Text, MultiLineText (shows up as an HTML textarea), RichText (shows up as a rich text field), DropDown (shows up as an HTML select menu with options), and DynamicDropDown (shows up as an HTML select menu with options). Users can go back at any time and modify each of these settings.
  • field type Text, MultiLineText (shows up as an HTML textarea), RichText (shows up as a rich text field), DropDown (shows up as an HTML select menu with options), and DynamicDropDown (shows up as an HTML select menu with options). Users can go back at any time and modify each of these settings.
  • a given user can have one of many roles.
  • the set of roles in Constructor can include: Guest, Reviewer, Creator, Publisher, Editor, and Administrator.
  • a user having a given role can mean that user has a certain collection of privileges, which let them perform a certain set of actions within that given container.
  • having a certain role for a given container can also mean that a user can see certain data within the given container.
  • Constructor can ship a fixed set of roles a user can have. The roles for each container differ slightly, and are described below. It is worth noting that groups can also have roles, and that by being a member of a group that has a role, a user assumes that role.
  • Roles can be collections of privileges. Privileges can be hidden from end users. The roll-up of these privileges, however, can be exposed to users via roles. Therefore, when a user has a given role, they then can have a collection of privileges. Privileges help govern what a user can see and do in the system.
  • ACLs access control lists
  • ACLs help the system decide what a user can see or do for a given container (LS or DS).
  • ACLs take on a very simple form: they are a list of principal/role pairs, where a principal is either a user or a group, and a role is one of the roles described above. Users can choose users and groups with the user and group selector, which can be populated with users and groups from the ALI database.
  • the ACL UI can allow full CRUD operations on the control list.
  • Security evaluation can be done when a user tries to access a given resource or perform a given action. When this happens, several things can occur: (a) the user is in a role that has the ability to see the given resource, or perform the given action on the given resource; (b) the user is in a role that can see the resource, but cannot perform the given action on the resource; or (c) they cannot even see the resource to begin with. Because security is applied at the container level, security evaluation can be done against the ACL of either the object in question (if the object in question happens to be a container itself, like a live space), or a parent container of the object in question. If a user does not have the ability to perform an action, an exception propagates to the UI. This takes the form of an error page, which lists out why they cannot do what they are trying to do.
  • Constructor need not store information about users and groups, and can instead rely on a portal product to do so. Any time a user tries to do something in Constructor, their user identity can be retrieved from either the portal or other session, and mapped against the corresponding ACL (which would include a role that is mapped to a portal user or group they are in). Group membership evaluation can be done at runtime (but may be cached).
  • a default set of principals can be added to the ACL for that object.
  • This default set can include: (a) the portal Administrators group, and (b) the principal who is creating the object.
  • This default list can be extended/modified by customers via an unsupported feature known as security templates.
  • the Action Pane can provide a base set of functionality that allows users to interact with content surrounding a given page (or record page). This can include: other pages (or record pages), documents, records, data spaces, and so on. Usually, a user will use the Action Pane when they want to navigate to another object in the system.
  • Embodiments of the present invention can include computer-based methods and systems which may be implemented using conventional general purpose or a specialized digital computer(s) or microprocessor(s), programmed according to the teachings of the present disclosure. Appropriate software coding can readily be prepared by programmers based on the teachings of the present disclosure.
  • Embodiments of the present invention can include a computer readable medium, such as computer readable storage medium.
  • the computer readable storage medium can have stored instructions which can be used to program a computer to perform any of the features present herein.
  • the storage medium can include, but is not limited to, any type of disk including floppy disks, optical discs, DVD, CD-ROMs, micro drive, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, flash memory or any media or device suitable for storing instructions and/or data.
  • the present invention can include software for controlling both the hardware of a computer, such as general purpose/specialized computer(s) or microprocessor(s), and for enabling them to interact with a human user or other mechanism utilizing the results of the present invention.
  • software may include, but is not limited to, device drivers, operating systems, execution environments/containers, and user applications.
  • Embodiments of the present invention can include providing code for implementing processes of the present invention.
  • the providing can include providing code to a user in any manner.
  • the providing can include transmitting digital signals containing the code to a user; providing the code on a physical media to a user; or any other method of making the code available.
  • Embodiments of the present invention can include a computer-implemented method for transmitting the code which can be executed at a computer to perform any of the processes of embodiments of the present invention.
  • the transmitting can include transfer through any portion of a network, such as the Internet; through wires, the atmosphere or space; or any other type of transmission.
  • the transmitting can include initiating a transmission of code; or causing the code to pass into any region or country from another region or country.
  • a transmission to a user can include any transmission received by the user in any region or country, regardless of the location from which the transmission is sent.
  • Embodiments of the present invention can include a signal containing code which can be executed at a computer to perform any of the processes of embodiments of the present invention.
  • the signal can be transmitted through a network, such as the Internet; through wires, the atmosphere or space; or any other type of transmission.
  • the entire signal need not be in transit at the same time.
  • the signal can extend in time over the period of its transfer. The signal is not to be considered as a snapshot of what is currently in transit.

Abstract

Systems and methods for extending ad hoc information around structured data. The method for one embodiment comprises several steps. One step is creating a web interface for structured data. One step is combining the structured data through the web interface with unstructured data, wherein one or more users can collaborate to combine the structured data through the web interface with the unstructured data without administrative approval. One step is producing groups of pages extending ad hoc information around the structured data, wherein versions of the groups of pages are tracked.

Description

    CLAIM OF PRIORITY
  • This application claims priority to U.S. Provisional Application No. 60/914,623 entitled “ENTERPRISE WEB APPLICATION CONSTRUCTOR SYSTEM AND METHOD,” filed Apr. 27, 2007 [Atty. Docket No. BEAS-02048US0], by Matias Cudich et al., which is herein incorporated by reference in its entirety.
  • COPYRIGHT NOTICE
  • A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
  • FIELD OF THE INVENTION
  • Embodiments of the present invention relate to a seamless, collaborative environment for creating applications, consuming information, and contributing content.
  • BACKGROUND
  • Today's workers spend the majority of their time consumed by ad hoc activities. These activities depend on rapid-fire content creation, information access, and collaboration with colleagues. In their day-to-day activities, most knowledge workers currently rely on a set of enterprise software productivity tools—email, instant messaging, content management, portals, document management, and desktop office tools (e.g., Microsoft Office®). Knowledge workers manually create context by transferring documents or conveying conclusions or recommendations from one tool or environment to another.
  • In one example, multiple participants want to collaborate on creating a prioritized list of prospects for lead generation:
  • 1. Participants must first obtain an extract of prospects from a core enterprise system used to track the prospects, such as a Siebel or Salesforce.com® CRM application.
    2. Once the data is obtained, one of the participants sorts it in a spreadsheet document and emails the document to all other participants.
    3. Participants edit the list and email each of their new versions to the entire group.
    4. Several participants also add new columns to the spreadsheet to reflect additional prospect information.
    5. Multiple new versions are generated and distributed through email.
    6. Someone is designated as the master editor who cuts and pastes the various iterations into a consolidated document, which is then emailed to the group for final approval.
  • For knowledge workers to collaborate in the process described above requires ad hoc activities.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a flowchart that shows a method for one embodiment for extending ad-hoc information around structured data.
  • FIG. 2 is an illustration that shows the architecture for one embodiment.
  • FIG. 3 is an illustration that shows one embodiment's flow to assemble a header portlet with content from a live space.
  • FIG. 4 is an illustration that shows one embodiment's flow to return a page with a header portlet.
  • FIG. 5 is an illustration that describes how one embodiment constructs a page out of components.
  • DETAILED DESCRIPTION
  • There are several drawbacks to the approach to ad hoc activities described above. Time to resolution is lengthened due to back and forth email exchanges, delays in email replies, and manual editorial aggregation. There is a lower quality of output because participants do not have access to current aggregate content when making their contributions. Productivity is reduced since participants must use multiple tools (email, spreadsheets, CRM systems, etc.) to add context and content to the list. There is also no traceability between versions of the list, and if information is lost, records of the information are also lost.
  • A system for extending ad-hoc information around structured data can solve these issues. A web-based application constructor can help line-of-business users create web pages—wikis, blogs, data-driven collaborative web applications, and more. One exemplary embodiment of a web-based application constructor is BEA AquaLogic® Pages from BEA Systems, Inc.
  • FIG. 1 is a flowchart that shows a method for one embodiment for extending ad-hoc information around structured data. This embodiment is a method comprising several steps. Step 100 is creating a web interface for structured data. Step 102 is combining the structured data through the web interface with unstructured data, wherein one or more users can collaborate to combine the structured data through the web interface with the unstructured data without administrative approval. Step 104 is producing groups of pages extending ad hoc information around the structured data, wherein versions of the groups of pages are tracked. In one embodiment, the structured data is one or more records stored in a database. Alternative embodiments of structured data include application data from enterprise resource planning systems, customer relationship management systems, and many other enterprise systems. In one embodiment, unstructured data represents ad hoc information that might be included in a text document, e-mail message, or placed in any number of other unstructured documents.
  • FIG. 2 is an illustration that shows the architecture for one embodiment. Web browser 200 displays information to a user. The browser 200, client tier 204, the web tier 208, the service tier 214, the file system 224, content service 226, and relational database management system 228 are located on one or more computers. The system can be distributed both horizontally and vertically. Page libraries 202 and DOJO 204 are used to create pages in a collaborative process. Page rendering 210 renders the page to the browser using Facelets and JSF. In one embodiment, the page service 212 provides a remote interface for performing create, remove, update, and delete (CRUD) operations on a page. The page 216 can be instantiated on the service tier 214. The page manager 218 controls CRUD operations performed on a page 216. A page includes a layout 220 and one or more components 222. Additional content for pages is accessed from the file system 224, a content service 226, and/or a relational database management system 228.
  • FIG. 3 is an illustration that shows one embodiment's flow to assemble a header portlet with content from a live space. In order to assemble portal page 300 to be displayed to a user, first a request is made from gateway 304 to a portal navigation header 310. Then a live space tag is processed out of the header, by passing the tag through the gateway to the live spaces list service 308. In one embodiment, a builder 306 then returns a list of live spaces in a SOAP envelope through the gateway 304 to the portal page 300 where the header portlet is assembled with content from a live space. In one alternative embodiment, a web-based application constructor is used instead of builder 306. In a further alternative embodiment, BEA Aqualogic® Pages is used instead of builder 306.
  • FIG. 4 is an illustration that shows one embodiment's flow to return a page with a header portlet. User 400 requests a builder page through gateway 404. In this embodiment, a portal 402 is being used. The gateway then retrieves the content from the builder page 406. The gateway then processes the portal navigation header portlet 408. The gateway then returns the builder page 406 with the header portlet 408 to be displayed to the user. In an alternative embodiment, a portal 402 is not used. In an alternative embodiment the builder page 406 is a page created by BEA Aqualogic® Pages. In an alternative embodiment, the builder page 406 is a page created by a web-based application constructor.
  • FIG. 5 is an illustration that describes how one embodiment constructs a page out of components. In step 500, a request is made from a browser for an object as a page. In step 502, the system determines whether the page is in session. If the answer is no, then the system goes to step 504 and determines whether the page is cached. There are two caches that need to be checked, as described in 524. If any of the previous determinations were yes, then go to step 520 and the system assembles XHTML for the page, starting with the shell and including the page, the containers, layouts, and components. Step 522 follows step 520, Facelets take the XHTML, render the HTML, and sends the response. Otherwise, the next step is 506 where the system queries the back end repository or file system for the page. In step 510, it is determined whether the page is found. If the page was not found then go to step 512, where the system queries the back end repository or file system for the object. In step 514, the system determines whether the object was found. If the object was not found then the system goes to step 508 and the browser receives a redirect request to an error page. If the object was found then go to step 518, where the system creates the page from the object and the corresponding page template. If previously the page was found in Step 510, then go to step 516 and build the page object graph from backend objects. From either Step 516 or step 518, the next step is 520 and proceed as described above for step 520.
  • The web-based application constructor can serve the diverse needs of both IT departments and line-of-business users.
  • For IT management, the web-based application constructor provides the management and governance control that core enterprise systems require. But the real impact is in IT management's ability to empower a greater army of creators and participants, allowing business users to solve their challenges directly on the web.
  • For line-of-business users, the web-based application constructor is a revolution: creating for the web becomes as easy as creating a Word document or sending an email. Users feed data from core enterprise systems directly into their applications, and can wire that data on the page to other components, such as a Google Map™ or an RSS feed. Every page can be edited by a user while the system tracks changes, versioning, and access.
  • At its core, the web-based application constructor is a system for creating and editing web pages quickly. One embodiment includes data spaces for assembling data into pages and live spaces for assembling pages into applications.
  • Data spaces allow participants to create powerful Web interfaces on top of structured data sets, like a simple list of records or an extract of new opportunities from a CRM system. Participants can surface data-to-data spaces through a variety of mechanisms, including Really Simple Syndication (RSS), Web services, or by creating a data set from scratch. A data space can be created simply by publishing an Excel® spreadsheet to the Web.
  • When creating new data sets, data spaces allow the user to select different data type fields (simple text, long text, drop-down) and configure them. Users can thus quickly create data sets, such as a list of items or contacts, and reuse that data within other pages, live spaces, and applications created within the system.
  • Data spaces provide several templates for integrating and presenting data, including for RSS, blogging, and Webservices invocation. Data spaces automatically create pages for each list of records in a data set, and individual pages for each record in a list. As an example, creating a data space from an RSS feed yields a single page displaying a list of items in the feed. Additionally, the system creates a page representing each individual item in the feed. These pages can be enhanced through the system's page-creation and page-editing capabilities.
  • Once a data space is created, users can access the data within it through a set of different URLs, each unique to the data space and the type of view on the data that the URL provides. Data spaces let users add structured and unstructured content to each of the views they express, and become important sources of reusable data that live spaces assemble into Web applications. Data spaces are a simple but powerful concept. By representing structured data records on the Web as a series of independent pages, users can quickly annotate these records with unstructured text, or add additional structured data related to a single record.
  • Live spaces can be dynamic groups of pages, created and woven together by end-user participants. Live spaces combine data from data spaces with documents and other unstructured information that is either created for a given page or added from within the system. Like other pages in the system, live spaces can be built collaboratively by multiple users, and the system can track and control versions over time. Live spaces offer granular access-control capabilities, so managers of a live space can determine who can edit parts of the live space and what they have the ability to do.
  • Live spaces can provide a canvas on the Web that allows users to efficiently share information and accomplish activities collaboratively. In the same way virtually any interested participant can create a Wikipedia article for a given topic, live spaces allow business users to create simple pages for any topic, mix in data space records, documents, annotations, or comments, and add links onto those pages. As it does for all pages in the system, BEA AquaLogic® Pages creates simple, unique URLs for each live space and its pages, providing an easy way for system users to navigate directly to useful pages and applications.
  • In one embodiment, the web-based application constructor features a rich page framework that overlays a number of capabilities on pages created, including the ability to attach images, documents, and control versioning and page history.
  • In one embodiment, every page in the web-based application constructor system is a live, editable page. The system features wiki-style page editing where at the push of a button an individual user can make changes and add new text, hyperlinks, images, documents, and widgets. Users can enter a simple edit mode on the page, which makes the page instantly editable for either writing, where the user can write rich text directly onto the page, or designing, where through a simple toolbar a user can drag and drop widgets onto the page for application-building.
  • Page editing can be a collaborative process that involves multiple participants making changes to pages over several iterative sessions. The system tracks each page's history and creates a new version of the page with each change made to it. This allows page owners to revert to earlier versions of an accepted page, or undo previously made changes. Applications built using the web-based application constructor can thus be dynamic and flexible, and builders of these applications can add temporary functionality to a page—like a map to display location data, or a short list of tasks—and remove that functionality when it is no longer useful.
  • The web-based application constructor provides several useful common templates and layouts for creating pages. Users can specify a layout when creating an individual page, selecting from a number of layout templates, including a two-column layout, a header-body-footer layout, and more. Layouts allow participants to quickly arrange widgets within structures common to specific applications or pages. The system also provides a free-form layout, which allows users to modify the form and structure of pages on the fly to meet changing requirements of the applications they are building. The system also provides basic templates for applications like a blog or simple wiki that is created using data spaces or live spaces, as described above. IT management or developers can extend the system by creating additional templates for building specific applications or, in the case of a data space, for connecting to specific data sources such as a Customer Relationship Management (CRM) or enterprise resource planning (ERP) system.
  • In one embodiment, the Dashboard is the system's home page and a starting point for most user activities, including live space and data space creation, as well as exploring the system for useful objects. The Dashboard is also a simple workspace, displaying a list of recent activities and changes in the system, a list of an individual's outstanding drafts, and a complete list of every live space and data space in the system, sorted by the date they were last modified. The Dashboard also includes simple links to initiate common activities, like creating a live space or a data space.
  • In one embodiment, the Action pane is a dynamic activity sidebar that overlays each page, providing access to common functions for page builders. These functions include the ability to create new pages, edit the existing page, edit the settings for live spaces or data spaces, attach documents to a page or interact with documents already attached to it, and view recent changes on the page and its version history. The Action pane also displays lists of the objects included in a live space or data space, and provides the ability to search quickly for those objects from within the sidebar.
  • Active pages is an innovative way to automatically liberate any item as a separate page on which any participant can freely add other data or engage in unstructured collaboration. The system uses this capability to represent any object—lists of records, individual records, documents, and images—as individual pages to which unstructured content, or other widget components, can be added collaboratively by users. Every page in the system, including pages created for objects, benefits from this capability. Each object-page is based on the page framework within the web-based application constructor, which governs normal page actions, such as document attachment and page versioning.
  • Active pages can be a way to link ad-hoc activity, such as wiki-ing, to the systems of record, in such a way that this free-form collaboration will always be tied to the underlying business object.
  • Following is an example of active pages:
      • A data space displays a specific list of customer records from a CRM system.
      • Through active pages, represents each customer record automatically as a separate page the user can drill into.
      • A sales account team can thus add related documents, images, RSS feeds, or other records to this specific customer record page.
  • In one embodiment, documents can be attached to any page in the system, and as it does for other objects, the web-based application constructor also represents the document as a page, conferring all the benefits of the page framework to it as described above. In addition, the system will track versions of documents, providing a simple way for users to share documents they create and modify along with other users.
  • Users add functionality to pages they create using a series of page components, or widgets. Widgets can be bound to data created within the web-based application constructor, imported from enterprise systems, or provided by third party services and surfaced through integration capabilities in the web-based application constructor. Page components can also contain static content or content keyed to preferences assigned to another component.
  • The web-based application constructor comes with a number of page-component types that users can select to create new instances of a page component. Page-component types include: Data Table, Image, Record List, Text, and more. Page components are added to the page through simple drag-and-drop. Each component features an intuitive wizard that allows the user to name the new component instance, configure it, and set its security. Each instance of a page component features a unique URL, and can thus be consumed outside the web-based application constructor environment—by an enterprise portal, for example.
  • The Data Table is a page component that lets users display and interact with structured data. Users can bind Data Tables to any type of data space, and depending on that type, can get a read-only or editable view of data. Users can also create a new data space from within the Data Table configuration wizard.
  • The Data Table component features three primary modes: 1) Simple, where the data is simply displayed; 2) Master/Detail, whereby selecting an individual record displays that record's detail below, and where new records can be added directly within the page; and 3) Spreadsheet, where users can insert and edit records as they can within Microsoft Excel®. The Data Table interface automatically generates a row for every record and a column for every field in the data space. It also features common controls for interacting with data, including field-sorting, filtering, and pagination.
  • The Record List page component is similar to the Data Table component, but used for displaying data from data spaces that has significant numbers of fields or records. Record List components are commonly used to display lists of records from within a data space that drive other interactions across the page. Record Lists feature the same built-in sorting, fielding, and pagination capabilities as Data Tables. The Record List component includes a special user-configuration feature that lets it exchange data with other components on the same page. Each Record List instance can either broadcast information—a single rowclick, or all rows—or “listen” for information from other components. This capability, in conjunction with other page components that possess it, allows end-users to build data-driven mashups, combining data from multiple systems interactively on a single page.
  • The Image component lets users embed images directly into pages and alongside other components, such as rich text, data tables, and so on. Users can also, in the context of a rich-text editing session, embed an image in the middle of text, creating elegant, Web-style HTML without programming. Images can be added by either specifying a URL, by uploading directly to the system, or by selecting previously specified images within the system. Uploaded images have the versioning and object-control features of most other page objects. The image editor allows the user to specify each image's width and height attributes, displays a preview of images, and lets the user add descriptive text that shows when other users hover over it with the mouse.
  • The web-based application constructor provides a sample Map component that graphically maps data fed to it from other components. The sample Map component, once added to the page, can be configured to listen for data from the entire page, or from data sent to it by specific components. The map component, when provided the value of a field named “Address,” will map the value visually.
  • Several page components include a special user-configurable feature that enables the component to exchange data with other components on the same page. Each component instance can either broadcast information—either a single row-click, or all rows—or “listen” for information from other components by specifying data fields of interest. This capability is available with Record List, Map, and several other page components, and lets end-users build data-driven mashups that can dynamically and interactively combine data from multiple systems on a single page.
  • Users in the system can save pages as drafts, and retrieve drafts from the Dashboard described above. As a user is working, the web-based application constructor automatically saves a draft in the background every 10 seconds to protect a user from losing work before it is published. Users can thus work on the Web in a way that is similar to their method of working on desktop applications. To publish changes made to the system, a user simply selects the “Share” button, and can also add a description about those changes. The web-based application constructor keeps track of the changes made to individual pages, data spaces, and live spaces. As the page goes through successive versions, users can view a previous version, delete it, or revert back to a previous version of the page. The same applies to documents attached to pages, and users can download old versions of documents in addition to seeing their history.
  • The web-based application constructor provides a core set of security capabilities that secure and protect the data and functionality created and managed within it. The ability to govern who can do what in the system ensures that people see only what they're entitled to see. Each object in the system is governed by an access-control list (ACL) that determines the actions users and groups can take regarding it, including reading, creating, editing, and more. By default, “child” objects inherit the security of their “parent,” making it easy to set security once on a particular live space and continue working. For each object, the web-based application constructor recognizes a set of configurable roles, in which activities and privileges can be set: Guest, Reviewer, Creator, Publisher, Editor, and Administrator. Individual users and user groups are added to these roles to confer permissions on specific system users. The web-based application constructor leverages user and group information from within a portal system, or by using the user and group security capabilities found in another system. This allows the web-based application constructor to define users and groups by integrating with virtually any third-party user repository, including LDAP, Active Directory, or custom databases.
  • The web-based application constructor brings a rich set of capabilities to a wide variety of business needs, ranging from customer-support issue tracking to sales planning to employee blog publishing. This is a simple example of how the web-based application constructor can be used to improve a customer support team's ability to respond to a critical situation in a few simple steps.
  • 1. A single support engineer creates a new “Support Issues” data space, which displays a list of support incidents for a single customer. The list is pulled directly from a Clarify support system, using the Web-service invocation method provided by the web-based application constructor.
  • 2. An account manager, who is largely responsible for customer satisfaction for this individual account, creates a new “Issue Tracking” live space for assembling all the information related to this specific customer and issue. This information will be assembled by an extended team of participants related either to the account or to resolving the issue.
  • 3. The account representative writes directly onto a page of the live space, listing action items and owners for each action the support team needs to address.
  • 4. A customer service representative enters the live space and drags-and-drops a “Support Team” DataTable widget onto the page. The customer service representative maps this component to the existing “Employee Contacts” data space, which pulls a list of records from an internal LDAP system.
  • In one embodiment, the web-based application constructor includes a set of Adaptive Tags to add links to live spaces and data spaces to the portal navigation, allowing users to navigate to components from within a portal page. These tags are data tags; they return URL attributes as data, and can be used in conjunction with a display tag. The tags retrieve live spaces and data spaces by making requests to web services on the server. In one embodiment, the results are cached for 5 minutes or until the user logs out. The tags return the live spaces and data spaces that the current user has access to.
  • The Navigation Tags Header Portlet includes live spaces and data spaces tags. The sample header portlet includes an example of how to use tags with HTML combobox menus, required to support Safari browsers. One exemplary embodiment adds data tags to the navigation in a custom header portlet. Live spaces, data spaces and other Pages components can be added to a portal page using portlets.
  • One embodiment includes an embedded Apache Derby database. One embodiment uses the web-based application constructor without a portal.
  • One embodiment provides a Maps Component—enables users to add maps to a page. Maps can receive input (in the form of an address) from data spaces or other components on the same page.
  • One embodiment provides an IPC page of a Record List Component—enables users to configure the component to broadcast row clicks (to a map for example) or listen for content from other components.
  • One embodiment provides a Markup Component—enables users to paste html content, like a YouTube video or Google Gadget™, directly into a page.
  • One embodiment provides a REST data space—enables administrators to create data space templates that receive data from a REST API.
  • One embodiment provides a Yahoo!® Search data space Template—sample implementation of a REST data space using the Yahoo!® REST search API.
  • One embodiment provides a Google™ Search data space Template—sample implementation of a web service data space using the Google™ SOAP search API.
  • A live space is a logical collection of individual pages. For example, you might have a Marketing live space that includes the following pages: Collateral, Events, and Writing and Design Resources.
  • Each live space includes security so one can control which users can view or edit the pages and any other objects associated with the live space. Users who are allowed to edit the pages can add or edit content enabling rapid knowledge transfer. Because each page is versioned, and the user can easily revert to a previous version, users can be a bit more relaxed with who is allowed to edit content.
  • Security can be set by assigning roles to portal users and groups. These roles apply to every object associated with the live space (pages, documents, and components).
  • Users can design a page simply by dragging different types of page components (for example an image or a table) onto the page and add text by typing in a rich text editor.
  • Access to each page is controlled by the associated live space security. Users who are allowed to edit the pages can add or edit content enabling rapid knowledge transfer. Because each page is versioned, and because it is so easy to edit anything, users are compelled to contribute, participate, and when necessary, correct others' contributions.
  • When a user views a page, actions can be performed that do not alter the actual contents of a given page. For example, one can add comments, attach documents, create new pages, and work with content in record lists and tables. Each time a user publishes a page or an object in page view a new version is created (versions are listed under Recent Changes). This allows a user to easily see what changes were made and revert to a previous version if necessary.
  • A data space defines a set of data, made up of records. A user can create a custom data space that stores data in the Pages repository, or points to an external system from which data is surfaced.
  • Each data space is based on a template that defines the configurable properties of the data space (for example, whether the data space relies on the native Pages repository or an external repository). A user can display data from an external data source in pages via SOAP. For example, a user might want to display customer support issues or sales information from a customer relationship management (CRM) system, display inventory information from an enterprise resource planning (ERP) system, or connect to a free web service on the internet. Each data space includes security to control which users can view or edit the records in the data space. Users who are allowed to edit the records can add or edit content enabling rapid knowledge transfer.
  • Security is set by assigning roles to portal users and groups. These roles apply to every object associated with the data space (records, documents, and components added to the data space or records in page view).
  • Data spaces enable a user to define data fields to fit the user's needs. For example, a user might want to create a data space to track job postings, marketing campaigns, or facilities requests. Data collected in a data space is stored in the Pages repository and is therefore editable. Blog data spaces, like custom data spaces, store data in the Pages repository and are therefore editable.
  • Data spaces enable a user to display content from an external RSS feed. For example, a user might want to display recent news articles discussing a product or company. Data spaces enable a user to surface data residing in external systems via SOAP-based web services. For example, a user might want to display sales information from a CRM system, or display inventory information from an ERP system, or connect to a free web service on the internet. In one embodiment, after a data space is created and its records have been fetched at least once (by a user viewing the data space), the records become part of the search collection and users can add components, text, and document attachments to the records. The cached records are updated when a record is viewed by a user.
  • A record is a group of related fields that store data about a subject or activity (for example, a record can be one row in a table or one entry in a blog). A collection of records is stored in a data space (which stores data in the native repository or points to an external repository of data). A user can search for records using the search box at the top of any table or record list. As you type, the list is dynamically filtered to display only those records that include your search text in one of the record fields. A user can add components, comments, or documents to a record by opening the record in page view and editing the record just like any other page. Records can be deleted in different ways depending on the interface that displays the records.
  • Embodiments of the present invention enable users to manage information stored in both native databases and external systems. In concert with the rich set of page components, data sources can let users create on-the-fly applications that surface critical business information such as sales leads from a Siebel CRM system, or manage lightweight data sets, such as a product feature list.
  • One embodiment of the present invention is a web-based application constructor for constructing a web display. The web-based application constructor can obtain data from heterogeneous data sources to produce the web display. A web display can contain page components and display the data from at least some of the heterogeneous data sources.
  • A versioning system can keep track of changes to page components to allow users to make changes without administrative approval. The versioning system can keep track of changes to page layout, searches, and text to allow users to make changes without administrative approval. A change control system can allow users to dynamically undo changes to page components while using the web-based application constructor.
  • The versioning system can store old versions of the web display and thus allow the users to roll back changes. For example, the system can store a history of old versions and when a user makes an error, the page can be rolled back to a previous version.
  • The page components can be elements constructed from data in the heterogeneous data sources. For example, the page components can expose data from ERP, Database or other sources.
  • The heterogeneous data source can include a relational database management system, a customer relationship management system, enterprise resource planning system and/or any other types of data sources.
  • The heterogeneous data sources can have Web Services schemas that allow the application constructor to produce a display of the data. The page components can contain interactive elements. In one embodiment, all page editing is versioned.
  • Whether a page component is displayed to a user can be controlled by roles and security. For example, some pages can have page components that are only viewable by users in a certain group or with a certain security level. Display and/or updates to page components can be controlled by using the URLs for the page components. The web-based application constructor can provide roles to users that can be used to limit access to applications.
  • The page layout can also be versioned. Versions of the page can be stored at a remote server. AJAX at a user browser can send version update information to the remote server. Page templates can be used to create the display. The page components can include rich text.
  • The page components can have their own URL so that they can be shared among applications. For example, a user can copy a page component into their own page since the system can use the page component's URL to copy it into a new display page. In this way, updates can be sent to multiple pages.
  • The page components can include a view of data in a list, a view of data in a record, a view of an ad-hoc application or other views. The display can be constructed from available applications, where available applications can be dragged and dropped into page components.
  • In one embodiment, at least one of the heterogeneous data sources is a searchable resource. When the display provides for a search field into the searchable resource, the result of a search can be shown in a page component of the display. The page components can be dragged and dropped to a new display. In one embodiment, the changes to the page component are not propagated back to the application data source propagated back to the application.
  • The web-based application constructor can provide roles to users that can be used to limit access to applications. The application constructor can convert at least one object from a heterogeneous data source into a page component. The system can allow for the construction of user interfaces to access different types of data.
  • Change control system can allow users to dynamically undo changes to page components while using the web-based application constructor.
  • All page editing can be versioned. The change control system can allow for a redo of changes. The versions can be time stamped and changes can be rolled back up. For example in one embodiment, users can rollback changes to a state as of a previous period of time. Changes can be dynamically made to page components, page layout, searches, and text while using the web-based application constructor.
  • In one embodiment, the web-based application constructor can allow users to annotate page components with comments visible in the web display.
  • In one embodiment, the page components can be identified by URLs and the annotations can be associated with the URL. In one embodiment, the annotations can receive user inputs from multiple pages and produce a common display. A web-based text editor can be used for the annotations.
  • One embodiment of the present invention includes an application constructor to convert at least one object from a heterogeneous data source into a page component.
  • In one embodiment, the system allows for the construction of user interfaces to access different types of data. Web service WSDL can be analyzed to determine user interface fields. An XML editor framework can analyze XML schema at the WSDL.
  • The page components are accessible by URLs. URLs can be used by a security system. Roles can be used to determine what page components are displayable to a user.
  • The URLs can be automatically created. All elements on a page can have their own URL.
  • An XML editor framework can be adapted to use web services schemas to automatically create user interfaces for inputting data in fields determined from the web service schemas. Page components can contain data that has been converted into a list format. Clicking on elements of the list can access additional details of the list. The list can be annotated.
  • The page display can have a nested layout. The nested layout can include rows and columns in a cell defined by rows and columns. Different rows can have different numbers of columns. The page components can be dragged and dropped so as to change the layout. New columns and/or rows can be created by the dragging and dropping.
  • Page editing can include:
      • Classic wiki-style page creation and editing;
      • Performed by typical end users as part of using the system;
      • Pages can be designed to evolve over time, by being edited by multiple users over multiple edit sessions (which can be concurrent); and
      • Example pages: product launch workspace, article on customer wiki pages, etc.
  • State and mode management can be done in multiple ways. In one embodiment, regardless of the shell applied to the given page/live space, users can specify a mode and a state for the page they are viewing or editing.
  • While in Read mode, users can create new pages. To create a new page, users can specify a page title, a URL for the page (this can be automatically generated by the form, but users can override the URL if they so desire), and a description for the page. Moreover, users can specify a layout for the page, and the Live Space in which the page will live. By default, pages can be placed in the current Live Space; users do have the opportunity, however, to place the page in another Live Space—either one that exists, or a new one they create on the fly.
  • Dojo can be used for all JavaScript operations on the client, primarily gathering DOM objects, updating styles on those objects, updating page modes and edit states, parts of drag-and-drop, rich-text editing, console logging, and so on.
  • Every document attached to a page has its own page/URL. When a user navigates to the document (via the Info panel, Organizer, etc.), the following operations can be performed: upload a new version of the document, delete a version of the document, delete all versions of the document, revert to a version of the document, and decorate the document. Decorating a given document-page is identical to decorating a record-page or recordlist-page. Like these other objects, only one page exists for any given document.
  • If a user wants to create a new version of a specific document, users can navigate to the document (document as page), and click Upload New Version. This allows users to upload a new version of the given document that perhaps has a different file name. Once this happens, the operative file name of the document changes to the file name of the latest uploaded document. This is important when it comes to figuring out whether or not to increment a given document, or create a new attachment when a user tries to do a simple file version task. The system need not be designed to look at old versions of a given document when figuring out whether or not to increment a document's version history.
  • Users can revert to any version of a given document. This can be a version uploaded before or after the version labeled as “current.” For example, a user can upload five versions of a document, and then decide to revert to version 3. At this point, all 5 versions still exist, but version 3 is the “current” version. Then, a user can choose to revert to an even earlier version, or back to the latest version. If a user reverts to a previous version, then uploads a new version, the version list is incremented by 1 (meaning the new version would be version 6 and versions 4 and 5 would remain). When figuring out whether or not to increment a document, Constructor looks at the “current” version, not the latest version.
  • Objects as Pages can be used to represent structured data, such as records, lists of records, documents, and so on, as pages to which unstructured content can be added. For example, Constructor allows displaying a record such as a Customer Bug as a page; users can then view this customer bug as a page, mark up the page with additional content (using page components and rich text); and comment on the page using Annotations. Because Objects as Pages are based on the Constructor page framework, normal page actions, such as document attachment and page versioning, can also be supported. In one example, there are three standard views for objects as pages:
      • Object as Page (Records and Documents);
      • Entry as Page (Records); and
      • Object List as Page (Records).
  • Certain types of objects can be viewed as pages. This can include records and documents attached to pages. This view depends on the given page to have embedded in it a page component that knows how to display the given object. For example, the standard Record Object as Page can use the Record Detail component; on the other hand, the standard Document Object as Page can use the Document Detail component. These components handle operations such as updating the object, and deleting the object to which they are bound. All of these pages support an operation currently called “Decoration.” Decoration is identical to page-editing, except that it is done in the context of an Object as Page. The distinction here is that there are certain modifications to the area into which users can add content.
  • Pages are designed to allow users to add net new objects to a collection. In one example, adding net new records to data sets can be supported. When users navigate to a given Entry as Page, the first thing they should see is a blank form (this is actually an empty Record Detail component). Else, they are navigating to an existing record, in which case they would actually be looking at an Object as Page. Entries as Pages support “decoration” in the same way that Objects as Pages support “decoration.”
  • These pages are designed to allow users to view multiple records in a given data set via this page construct. The default component used to display these records is the Data Table. Much like Objects as Pages and Entries as Pages, these pages can be “decorated” by users.
  • Each Object, such as Page, Entry as Page and Object List as Page can have its own unique URL. This can allow users to navigate to these views from outside of Constructor (which lets them do things like e-mail around links, etc.). When the name of the given underlying object changes, so can the URL, except in the case of documents, whose URLs are bound to IDs rather than user-specified names. URLs to records are also ID bound, but they do include the name of their owning record set, which could be updated by users.
  • Constructor need not create or store Objects as Pages until those pages are decorated and subsequently published by users. Also, these pages can be persisted when Annotations are added to a page (even if the page hasn't been decorated).
  • Every Object as Page can have one or more base components it uses to display the given object to which the page is bound. In the case of regular Objects as Pages, the default view can contain a Record Detail Component; in the case of document Objects as Pages, the default view can contain a Document Detail component, and so on. There are cases, however, where other components may be used (in the case of Applications, for example). These base components may differ slightly in functionality from their regular versions: for example, the normal Record Detail component that can be added to any page supports paging between records using an AJAX operation (the page doesn't refresh). In the case of the Object as Page version, paging between records actually navigates the user among each of the URLs for each of the records in the given record set. Some components in the system may only be available via Objects as Pages (such as the blog and document detail components).
  • Objects as Pages can be versioned just like any other page. In one embodiment, only decoration-level operations are tracked, and not changes to the underlying object.
  • Users can attach documents to Objects as Pages in the same way they can to regular pages. These documents need not be associated with the underlying data in any way. In one example, if a user attaches a document to a Record Object as Page, Constructor doesn't automatically add a File Attachment field to the underlying record.
  • Users can annotate Objects as Pages in the same way they annotate regular pages.
  • When decorating an Object as Page, there may be restrictions as to where users can add content. By default, Objects as Pages will have a primary page component at the top of the page, and then a blank content area beneath that. In one embodiment, users are only able to add and manage components within this content region. In one example, users cannot add new components to the left, to the right or above the Object as Page primary component.
  • Live Spaces can provide a natural way to group pages, and to provide for those pages a common access control list, which makes it easy for Live Space managers to decide who should be able to see and do what in a Live Space, and the pages contained therein.
  • Users can specify a page for a Live Space, which acts as the default page when anyone tries to navigate to the Live Space directly. For example, if a user types in a URL like http:// . . . /Is/foo, they are immediately navigated to the home page for the “foo” Live Space.
  • Users can view general properties for a given Live Space by launching the wizard for that Live Space. In one embodiment, this tab in the wizard only shows up after a Live Space has been created. This tab can include system information such as: date created, date modified, created by, and so on. None of these properties need be editable. Live Spaces can be represented in the system by a live space object, which can contain properties for all the configurable settings noted above. The live space object can be persisted in the repository as a node (and on the filesystem as an XML file). In the repository persistence implementation, the pages for a given live space can be represented as child nodes under the parent live space node. While in one embodiment, certain nodes under the live space (pages, documents) are versionable, the live space node need not be. Within the Constructor service tier, live space objects can be cached, thereby reducing the need to make a remote repository request every time a live space is requested. In terms of exposing the live space object through the UI (exposing properties like the live space name as text on the page, or editing live space properties via the editor), there are several mechanisms through which this can be surfaced. One is through Facelets and a live space “backing bean,” which allows properties on the live space to be rendered in the UI via certain expressions (EL) in the template's tags. The Live Space editor can update settings on the live space object by way of the DWR live spaceService, which can expose methods to the client tier (such as JavaScript) to create and update live space objects. Navigating to a Live Space by means of a URL can be handled by a “resource resolver” class, which will parse a URL, and from it, extract the Live Space name (what is typed into the URL field in the editor). From the Live Space name, one can look up the Live Space, get its home page, and render it.
  • Page Components can be UI elements which can be added to pages by users. Page components can be bound to back-end data provided by Constructor or a third-party data source, or can simply contain static content, or content keyed off of the preferences assigned to a given component. Out of the box, Constructor can ship with a number of page component types, a list from which users can pick to create new page component instances. These can include: Data Table, Image, Record List, Text, and so on.
  • Every component in Constructor can have a URL that can be used to access that component directly. In one embodiment, users can get access to these URLs by either (a) clicking on the component name in the component title bar (for components that have title bars), (b) by viewing the properties panel for a given component (for components that have wizards/editors), (c) by searching/finding the component in the Explorer panel and then navigating to the component or (d) by searching/finding the component in the Organizer and then navigating to it.
  • In one embodiment, when viewing a page component via a URL, there is a specific page component shell that wraps the given component. This can take two forms: (a) user-friendly and (b) portal-ready. In the case of (a), the shell simply displays the page component title and description within the shell; in the case of (b) the shell is completely blank and only displays the contents of the component (not even the title bar). The purpose of (b) is to allow displaying a single page component as a portlet in the portal, where one wants to let the portal govern things like toolbars, and so on.
  • Page components can be shared across pages.
  • Page components need not be versioned on their own, or saved on their own. Page components can be versioned and saved as part of a page save operation. A Data Table component can expose records in data spaces.
  • The Record List component is designed to allow viewing sizable data spaces in a compact, filterable UI. Once a data space is specified, the following features can be available:
  • Users can add comments, and engage in message-board style discussions, in the context of every page in the Constructor system. This can provide a simple way for users to provide structured feedback to the page. In addition, it enables things like commenting on blog posts in the context of blog data spaces.
  • The same applies to documents, except that instead of navigating to old versions of documents, users can download old versions of documents. Page editing can be equivalent to document uploads. When editing a page, users can have the option of either saving the given changes as a draft, or publishing their changes. When users save their changes as a draft, they effectively are not versioning the page, but instead are keeping their changes around for later review. Once a user is ready to submit their changes to the system, they can click Publish, at which point a new version of a page is created, and that version can be set as the “active” version. Any time a user navigates to a given page, they can effectively navigate to the “active” version. In one embodiment, the case of documents, there are two ways to add a new version: (a) users can upload to a page a document, and if that document has the same name as a document already attached to the given page, then that document is added as a new version of the existing attached document, or (b) users can upload to a specific document a new version, and even if the names are different, the new file is treated as a new version of that existing document.
  • Users can revert to any version of a page that exists in the system. After reverting to an old version of a page, say from version 10 to version 6, versions later than the now “active” version need not be deleted (versions 7-10 are not deleted). Reverting can be performed to an older version, or a newer version, given the relative position of the “active” version. Users can revert to a later version from a previous version. When users revert to an old version, and then publish that version (after perhaps making some changes), the new version is tacked on to the very end of the version history, and is marked “latest.” The same exact behavior applies to documents (except uploading replaces publishing).
  • Users can delete any given version of a page, or all versions of a page (which effectively happens when a page is deleted). When a given version is deleted, holes are left in the version history. This is to make clear to users that a given version, which may have had a specific purpose or meaning, is now gone. There need be no other way to see that a given version has been deleted.
  • Users can navigate and view the contents of a given version (via the Explorer panel). When viewing that version, they can click a button to revert to that version, or delete that version. There is no UI for immediately making changes to that version—i.e., that non-active version is read-only. In the case of documents, users can download any non-active version.
  • Customers can deploy Constructor in various ways, either by itself or together with a Portal server or another type of server. To be able to deploy Constructor behind a portal server, several features are offered, tackling things like navigation-level integration, portlet-level integration and gateway-level integration.
  • A navigation tag can be deployed into portal navigation components. In most cases, this tag will be deployed inside the out-of-the-box portal header, or a modified version of the out-of-the-box portal header. The portal has two types of navigation: pluggable navigation and tag-based navigation (Adaptive Tags). Via portal Experience Definitions, customers can create rules to determine which type of navigation to display on a given portal page. In the case of tag-based navigation, portlets can be used to render out the portal navigation scheme. In this case, the portal header can be a portlet (aka, a Web application that produces HTML), and is built out of HTML and XML tags. In the out-of-the-box portal header, there are some default tags: one to list out My Pages, one to list out Communities, and so on. These tags are primarily ‘pt:ptdata’ tags, which are then wrapped by ‘pt:plugnav’ tags for actually rendering out the data as HTML/CSS/JS. Constructor can ship an additional live spaces data tag that can be inserted into this portal header portlet to list out live spaces next to My Pages and Communities. This tag, when rendered out on the page via a UI tag, lists out all the live spaces to which a user has access. When a user clicks on one of these live space links, they can then be navigated to a gatewayed Constructor page (the home page for the given live space run through the portal gateway).
  • When viewing a Constructor page via the portal, it can be a requirement that the Constructor page be gatewayed. When attempting to view a Constructor page via the portal, the user's browser makes an HTTP request to the portal with a URL that the user wants to see. The portal then parses this URL and figures out that the user wants to see a specific portlet, the portal then makes an HTTP request for that Constructor page (which was specified via the URL), gets back the HTML/CSS/JS etc. from Constructor, “transforms” that markup (makes all of the URLs gatewayed URLs), and then finally returns that HTML to the user's browser. Gatewaying a page also allows the portal to scan the page and replace any Adaptive Tags with their corresponding HTML/CSS/JS (this is used to support the live spaces menu and injecting the portal header into the Constructor shell). User identity propagation can also be done via the gateway. When the portal makes a request to Constructor it can send along user information, which Constructor can then use to figure out whether or not a user should have access to a given resource.
  • By default, when viewing Constructor through the portal, and when the appropriate Experience Definition is set up, the portal header can automatically appear at the top of the Constructor page. This can be supported by a custom Constructor Adaptive Tag, which is embedded into the default Constructor shell. When the portal transforms the Constructor page, it can see this Adaptive Tag and insert the portal header HTML. As described above, this HTML can include a menu which lists out Live Spaces. Customers have the flexibility to modify their shell, and place this header insertion tag wherever they want.
  • Constructor can include a portlet template that can be deployed to the portal to allow users to create new portlets based off existing Constructor page components. When creating a new portlet, users choose the Constructor Page Component Wizard, wherein they can choose an existing Constructor page component to which they have access. Once they choose this page component and hit Finish, this choice is stored as an Administrative Preference for the new portlet instance, and whenever that portlet instance is displayed on a portal page, it can dynamically surface the given Constructor page component. There are security implications here: (a) a user cannot select a page component to which they do not have access, and (b) a user cannot view the contents of a Constructor portlet which contains a page component to which they do not have access. In the latter case, a friendly error message can be displayed. At any time, given appropriate portal access, users can go back and point at a different Constructor page component. There are no restrictions in place to prevent a user from deleting a Constructor page component being surfaced in the portal. Here, a friendly error message will again be displayed telling the user that the content no longer exists. In general, page components should “work” and look just like the page components do inside of Constructor.
  • Data spaces can allow Constructor users to create a full-blown UI for managing data. There can be a few data space templates that ship with Constructor, e.g., RSS, blogging, and so on. In addition, users can create a data space from scratch. Once a data space is created, users can access the data in the data space via a set of different URLs, each unique to the data space and the type of view on the data that URL provides.
  • Use Cases: users can create data spaces for tracking things like feature lists, to-dos, customer phone calls, project tasks, and so on. In addition, data spaces will prove valuable for blogging, and for keeping track of information published by other Web sites (via RSS). Data spaces can be important in that they let users add structured and unstructured content to each of the views they express. So, for example, for each feature listed in a feature list, one could attach rich text, documents, images, and even further, additional data spaces around a single feature.
  • To create a new data space, users can navigate to the Dashboard, and click the Create a data space link. This can pop up a wizard. The first step users must take is to specify a template for their Data Space. Out of the box, there are several templates: blog, custom, and RSS. In addition, customers can add new data space templates to this list, which key off data provided by external Web services. In total, there are three “types” or “sources” of data: Local (blogging, custom, etc.), RSS (only RSS), and External (all the Web service based data space templates). This partitioning is mainly an artifact of the server-side implementation of these data spaces, but also serves to help users decide the type of data space they want to create. In one embodiment, only Local data spaces are read/write; all others are read-only. Once a user picks a data space template, they are then navigated to a separate wizard, specific to that type of data space. The next few features outline those. Common to all data spaces, however, is the fact that each has a Title, a URL, and a Description. This can make it easy to find (and navigate to) the data space in the system once it has been created. Once one of those data spaces is created, the user can then navigate to either (a) the component where the data space will be surfaced, or (b) the List view for the data space. This navigation decision is based on where the data space was created from.
  • Once a user decides they want to create a custom data space, either to display this data space in its native UI, or via a page component, they can be taken to the Custom data space Configuration Wizard. In this wizard, users can specify a set of fields for the data space. Each of these fields has a set of properties: Field Title, Field Type, Display Order, Is the Title Field?, Is Required?, and in the case of a DropDown field, the options that show up in the DropDown menu. Users can specify any title for each of these fields; and users can specify the field type: Text, MultiLineText (shows up as an HTML textarea), RichText (shows up as a rich text field), DropDown (shows up as an HTML select menu with options), and DynamicDropDown (shows up as an HTML select menu with options). Users can go back at any time and modify each of these settings.
  • For a given securable container, such as (a) system, (b) live space or (c) data space, a given user can have one of many roles. The set of roles in Constructor can include: Guest, Reviewer, Creator, Publisher, Editor, and Administrator. A user having a given role can mean that user has a certain collection of privileges, which let them perform a certain set of actions within that given container. Moreover, having a certain role for a given container can also mean that a user can see certain data within the given container. For each of the containers described above, Constructor can ship a fixed set of roles a user can have. The roles for each container differ slightly, and are described below. It is worth noting that groups can also have roles, and that by being a member of a group that has a role, a user assumes that role.
  • Roles can be collections of privileges. Privileges can be hidden from end users. The roll-up of these privileges, however, can be exposed to users via roles. Therefore, when a user has a given role, they then can have a collection of privileges. Privileges help govern what a user can see and do in the system.
  • Constructor can let users define ACLs (access control lists) for live spaces and data spaces. ACLs help the system decide what a user can see or do for a given container (LS or DS). ACLs take on a very simple form: they are a list of principal/role pairs, where a principal is either a user or a group, and a role is one of the roles described above. Users can choose users and groups with the user and group selector, which can be populated with users and groups from the ALI database. The ACL UI can allow full CRUD operations on the control list.
  • Security evaluation can be done when a user tries to access a given resource or perform a given action. When this happens, several things can occur: (a) the user is in a role that has the ability to see the given resource, or perform the given action on the given resource; (b) the user is in a role that can see the resource, but cannot perform the given action on the resource; or (c) they cannot even see the resource to begin with. Because security is applied at the container level, security evaluation can be done against the ACL of either the object in question (if the object in question happens to be a container itself, like a live space), or a parent container of the object in question. If a user does not have the ability to perform an action, an exception propagates to the UI. This takes the form of an error page, which lists out why they cannot do what they are trying to do.
  • Constructor need not store information about users and groups, and can instead rely on a portal product to do so. Any time a user tries to do something in Constructor, their user identity can be retrieved from either the portal or other session, and mapped against the corresponding ACL (which would include a role that is mapped to a portal user or group they are in). Group membership evaluation can be done at runtime (but may be cached).
  • Whenever a container object is created, a default set of principals can be added to the ACL for that object. This default set can include: (a) the portal Administrators group, and (b) the principal who is creating the object. This default list can be extended/modified by customers via an unsupported feature known as security templates.
  • Whenever a user performs an auditable action (modify, create, etc.), that action can be stored with the given object. Through the UI, this action can then be displayed; e.g., Michael created this page. This can always display the appropriate name associated with the given user object in the portal. If the name changes on the portal object, the name in Constructor should update wherever that user performed an action.
  • The Action Pane can provide a base set of functionality that allows users to interact with content surrounding a given page (or record page). This can include: other pages (or record pages), documents, records, data spaces, and so on. Usually, a user will use the Action Pane when they want to navigate to another object in the system.
  • Embodiments of the present invention can include computer-based methods and systems which may be implemented using conventional general purpose or a specialized digital computer(s) or microprocessor(s), programmed according to the teachings of the present disclosure. Appropriate software coding can readily be prepared by programmers based on the teachings of the present disclosure.
  • Embodiments of the present invention can include a computer readable medium, such as computer readable storage medium. The computer readable storage medium can have stored instructions which can be used to program a computer to perform any of the features present herein. The storage medium can include, but is not limited to, any type of disk including floppy disks, optical discs, DVD, CD-ROMs, micro drive, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, flash memory or any media or device suitable for storing instructions and/or data. The present invention can include software for controlling both the hardware of a computer, such as general purpose/specialized computer(s) or microprocessor(s), and for enabling them to interact with a human user or other mechanism utilizing the results of the present invention. Such software may include, but is not limited to, device drivers, operating systems, execution environments/containers, and user applications.
  • Embodiments of the present invention can include providing code for implementing processes of the present invention. The providing can include providing code to a user in any manner. For example, the providing can include transmitting digital signals containing the code to a user; providing the code on a physical media to a user; or any other method of making the code available.
  • Embodiments of the present invention can include a computer-implemented method for transmitting the code which can be executed at a computer to perform any of the processes of embodiments of the present invention. The transmitting can include transfer through any portion of a network, such as the Internet; through wires, the atmosphere or space; or any other type of transmission. The transmitting can include initiating a transmission of code; or causing the code to pass into any region or country from another region or country. A transmission to a user can include any transmission received by the user in any region or country, regardless of the location from which the transmission is sent.
  • Embodiments of the present invention can include a signal containing code which can be executed at a computer to perform any of the processes of embodiments of the present invention. The signal can be transmitted through a network, such as the Internet; through wires, the atmosphere or space; or any other type of transmission. The entire signal need not be in transit at the same time. The signal can extend in time over the period of its transfer. The signal is not to be considered as a snapshot of what is currently in transit.
  • The foregoing description of preferred embodiments of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations will be apparent to one of ordinary skill in the relevant arts. For example, steps preformed in the embodiments of the invention disclosed can be performed in alternate orders, certain steps can be omitted, and additional steps can be added. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, thereby enabling others skilled in the art to understand the invention for various embodiments and with various modifications that are suited to the particular used contemplated. It is intended that the scope of the invention be defined by the claims and their equivalents.

Claims (20)

1. A method for extending ad hoc information around structured data, comprising:
creating a web interface for structured data;
combining the structured data through the web interface with unstructured data, wherein one or more users can collaborate to combine the structured data through the web interface with the unstructured data without administrative approval; and
producing groups of pages extending ad hoc information around the structured data, wherein versions of the groups of pages are tracked.
2. The method of claim 1, wherein producing groups of pages includes assembling one or more page components on a page.
3. The method of claim 2, wherein the one or more page components is a view of an ad-hoc application.
4. The method of claim 2, wherein each page component has its own URL.
5. The method of claim 1, wherein an active page represents an object as an individual page to which unstructured content can be added collaboratively by one or more users.
6. The method of claim 2, wherein whether a page component is displayed to a user is controlled by security.
7. The method of claim 1, wherein one or more users can revert the groups of pages to earlier versions.
8. The method of claim 1, wherein the combination of structured data through the web interface with unstructured data results in a data space.
9. The method of claim 1, wherein the groups of pages are in a live space.
10. The method of claim 1, further comprising creating a wiki for structured data.
11. A computer readable storage medium storing instructions for extending ad hoc information around structured data, the instructions comprising:
creating a web interface for structured data;
combining the structured data through the web interface with unstructured data, wherein one or more users can collaborate to combine the structured data through the web interface with the unstructured data without administrative approval; and
producing groups of pages extending ad hoc information around the structured data, wherein versions of the groups of pages are tracked.
12. The computer readable storage medium of claim 11, wherein producing groups of pages includes assembling one or more page components on a page.
13. The computer readable storage medium of claim 12, wherein the one or more page components is a view of an ad-hoc application.
14. The computer readable storage medium of claim 12, wherein each page component has its own URL.
15. The computer readable storage medium of claim 11, wherein an active page represents an object as an individual page to which unstructured content can be added collaboratively by one or more users.
16. The computer readable storage medium of claim 12, wherein whether a page component is displayed to a user is controlled by security.
17. The computer readable storage medium of claim 11, wherein one or more users can revert the groups of pages to earlier versions.
18. The computer readable storage medium of claim 11, wherein the combination of structured data through the web interface with unstructured data results in a data space.
19. The computer readable storage medium of claim 11, wherein the groups of pages are in a live space.
20. The computer readable storage medium of claim 11, further comprising creating a wiki for structured data.
US12/109,133 2007-04-27 2008-04-24 System and method for extending ad hoc information around structured data Abandoned US20090138792A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/109,133 US20090138792A1 (en) 2007-04-27 2008-04-24 System and method for extending ad hoc information around structured data

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US91462307P 2007-04-27 2007-04-27
US12/109,133 US20090138792A1 (en) 2007-04-27 2008-04-24 System and method for extending ad hoc information around structured data

Publications (1)

Publication Number Publication Date
US20090138792A1 true US20090138792A1 (en) 2009-05-28

Family

ID=40222379

Family Applications (15)

Application Number Title Priority Date Filing Date
US12/108,402 Abandoned US20090013246A1 (en) 2007-04-27 2008-04-23 Web based application constructor using extensibility points for page components, page layouts/templates, security roles, shells, and associating data spaces with templates
US12/108,314 Abandoned US20090024915A1 (en) 2007-04-27 2008-04-23 Web based application constructor using objects as pages
US12/108,280 Abandoned US20090013267A1 (en) 2007-04-27 2008-04-23 Constructor web-based change control system and method
US12/108,390 Active 2030-04-12 US9830309B2 (en) 2007-04-27 2008-04-23 Method for creating page components for a page wherein the display of a specific form of the requested page component is determined by the access of a particular URL
US12/108,372 Abandoned US20090019522A1 (en) 2007-04-27 2008-04-23 Web based application constructor using data spaces
US12/108,352 Abandoned US20090013245A1 (en) 2007-04-27 2008-04-23 Enterprise web application constructor xml editor framework
US12/108,301 Abandoned US20090031401A1 (en) 2007-04-27 2008-04-23 Annotations for enterprise web application constructor
US12/108,190 Active 2030-08-17 US8819542B2 (en) 2007-04-27 2008-04-23 Enterprise web application constructor system and method
US12/108,411 Abandoned US20090024939A1 (en) 2007-04-27 2008-04-23 Web based application constructor using querying across data
US12/109,133 Abandoned US20090138792A1 (en) 2007-04-27 2008-04-24 System and method for extending ad hoc information around structured data
US14/461,134 Active 2028-10-01 US9552341B2 (en) 2007-04-27 2014-08-15 Enterprise web application constructor system and method
US15/368,320 Active 2028-06-02 US10229097B2 (en) 2007-04-27 2016-12-02 Enterprise web application constructor system and method
US16/240,238 Active 2028-08-19 US11010541B2 (en) 2007-04-27 2019-01-04 Enterprise web application constructor system and method
US17/224,848 Active 2028-06-02 US11675968B2 (en) 2007-04-27 2021-04-07 Enterprise web application constructor system and method
US18/319,651 Pending US20230289513A1 (en) 2007-04-27 2023-05-18 Enterprise web application constructor system and method

Family Applications Before (9)

Application Number Title Priority Date Filing Date
US12/108,402 Abandoned US20090013246A1 (en) 2007-04-27 2008-04-23 Web based application constructor using extensibility points for page components, page layouts/templates, security roles, shells, and associating data spaces with templates
US12/108,314 Abandoned US20090024915A1 (en) 2007-04-27 2008-04-23 Web based application constructor using objects as pages
US12/108,280 Abandoned US20090013267A1 (en) 2007-04-27 2008-04-23 Constructor web-based change control system and method
US12/108,390 Active 2030-04-12 US9830309B2 (en) 2007-04-27 2008-04-23 Method for creating page components for a page wherein the display of a specific form of the requested page component is determined by the access of a particular URL
US12/108,372 Abandoned US20090019522A1 (en) 2007-04-27 2008-04-23 Web based application constructor using data spaces
US12/108,352 Abandoned US20090013245A1 (en) 2007-04-27 2008-04-23 Enterprise web application constructor xml editor framework
US12/108,301 Abandoned US20090031401A1 (en) 2007-04-27 2008-04-23 Annotations for enterprise web application constructor
US12/108,190 Active 2030-08-17 US8819542B2 (en) 2007-04-27 2008-04-23 Enterprise web application constructor system and method
US12/108,411 Abandoned US20090024939A1 (en) 2007-04-27 2008-04-23 Web based application constructor using querying across data

Family Applications After (5)

Application Number Title Priority Date Filing Date
US14/461,134 Active 2028-10-01 US9552341B2 (en) 2007-04-27 2014-08-15 Enterprise web application constructor system and method
US15/368,320 Active 2028-06-02 US10229097B2 (en) 2007-04-27 2016-12-02 Enterprise web application constructor system and method
US16/240,238 Active 2028-08-19 US11010541B2 (en) 2007-04-27 2019-01-04 Enterprise web application constructor system and method
US17/224,848 Active 2028-06-02 US11675968B2 (en) 2007-04-27 2021-04-07 Enterprise web application constructor system and method
US18/319,651 Pending US20230289513A1 (en) 2007-04-27 2023-05-18 Enterprise web application constructor system and method

Country Status (1)

Country Link
US (15) US20090013246A1 (en)

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080270915A1 (en) * 2007-04-30 2008-10-30 Avadis Tevanian Community-Based Security Information Generator
US20090013244A1 (en) * 2007-04-27 2009-01-08 Bea Systems, Inc. Enterprise web application constructor system and method
US20090031286A1 (en) * 2007-07-25 2009-01-29 Oracle International Corporation Device-based software authorizations for software asset management
US20090300345A1 (en) * 2008-05-29 2009-12-03 International Business Machines Corporation Concept for Client Identification and Authorization in an Asynchronous Request Dispatching Environmnet
US20090296942A1 (en) * 2008-05-29 2009-12-03 International Business Machines Corporation Concept for securing and validating client-side storage and distribution of asynchronous includes in an application server environment
US20110087604A1 (en) * 2009-10-09 2011-04-14 Oracle International Corporation Micro-blogging for enterprise resources planning (erp)
US20110087601A1 (en) * 2009-10-09 2011-04-14 Oracle International Corporation Methods and systems for providing a comprehensive view of it assets as self service inquiry/update transactions
US20120297007A1 (en) * 2011-05-20 2012-11-22 International Business Machines Corporation Multi-domain co-browsing utilizing localized state management
US20130085961A1 (en) * 2011-09-29 2013-04-04 Oracle International Corporation Enterprise context visualization
US20130198600A1 (en) * 2012-01-30 2013-08-01 Box, Inc. Extended applications of multimedia content previews in the cloud-based content management system
WO2013119416A1 (en) * 2012-02-09 2013-08-15 International Business Machines Corporation A system to view and manipulate artifacts at a temporal reference point
US20130254671A1 (en) * 2010-06-21 2013-09-26 Salesforce.Com, Inc System, method and computer program product for performing actions associated with a portal
US20140013247A1 (en) * 2012-07-03 2014-01-09 salesforce.com,inc. Systems and methods for providing a customized user interface for publishing into a feed
US20140040384A1 (en) * 2012-07-31 2014-02-06 Yakov Faitelson Email distribution list membership governance method and system
US8667140B1 (en) 2011-03-31 2014-03-04 Emc Corporation Distinguishing tenants in a multi-tenant cloud environment
US8751567B2 (en) 2012-02-09 2014-06-10 Oracle International Corporation Quantify and measure micro-blogging for enterprise resources planning (ERP)
US20140281850A1 (en) * 2013-03-14 2014-09-18 Citta LLC System and method of content stream utilization
US20150081808A1 (en) * 2013-09-17 2015-03-19 Amazon Technologies, Inc. Email webclient automatic failover
US20150106337A1 (en) * 2013-10-10 2015-04-16 Adobe Systems Incorporated Action records associated with editable content objects
US20150261799A1 (en) * 2014-03-14 2015-09-17 Siemens Aktiengesellschaft Systems, apparatus, and methods for tracking changes in data structures using nested signatures
US9323581B1 (en) * 2011-03-31 2016-04-26 Emc Corporation Space inheritance
US9892380B2 (en) 2012-09-28 2018-02-13 Oracle International Corporation Adaptive knowledge navigator
US10484449B2 (en) 2013-09-17 2019-11-19 Amazon Technologies, Inc. Email webclient notification queuing
US10970457B2 (en) 2017-11-22 2021-04-06 Citta LLC Collaboration mechanism
US11144431B2 (en) * 2020-01-30 2021-10-12 EMC IP Holding Company LLC Configuration-based code construct for restriction checks in component of a web application
US11210610B2 (en) 2011-10-26 2021-12-28 Box, Inc. Enhanced multimedia content preview rendering in a cloud content management system
US11392352B2 (en) * 2018-02-01 2022-07-19 Ricoh Company, Ltd. Guided web-application generation
US11416573B2 (en) * 2018-02-26 2022-08-16 Servicenow, Inc. Bundled scripts for web content delivery

Families Citing this family (284)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7779347B2 (en) * 2005-09-02 2010-08-17 Fourteen40, Inc. Systems and methods for collaboratively annotating electronic documents
TWI381278B (en) * 2006-04-07 2013-01-01 Infopower Corp Method for estabuishing links in web page and web page editing system thereof
US7860839B2 (en) * 2006-08-04 2010-12-28 Apple Inc. Application-based backup-restore of electronic information
US7853566B2 (en) * 2006-08-04 2010-12-14 Apple Inc. Navigation of electronic backups
US20080034004A1 (en) * 2006-08-04 2008-02-07 Pavel Cisler System for electronic backup
US8311988B2 (en) 2006-08-04 2012-11-13 Apple Inc. Consistent back up of electronic information
US8370853B2 (en) 2006-08-04 2013-02-05 Apple Inc. Event notification management
US20080034017A1 (en) * 2006-08-04 2008-02-07 Dominic Giampaolo Links to a common item in a data structure
US9009115B2 (en) * 2006-08-04 2015-04-14 Apple Inc. Restoring electronic information
US7962495B2 (en) 2006-11-20 2011-06-14 Palantir Technologies, Inc. Creating data in a data store using a dynamic ontology
US8515912B2 (en) 2010-07-15 2013-08-20 Palantir Technologies, Inc. Sharing and deconflicting data changes in a multimaster database system
US9092434B2 (en) * 2007-01-23 2015-07-28 Symantec Corporation Systems and methods for tagging emails by discussions
US8930331B2 (en) 2007-02-21 2015-01-06 Palantir Technologies Providing unique views of data based on changes or rules
US8086960B1 (en) * 2007-05-31 2011-12-27 Adobe Systems Incorporated Inline review tracking in documents
US8307004B2 (en) * 2007-06-08 2012-11-06 Apple Inc. Manipulating electronic backups
US8099392B2 (en) * 2007-06-08 2012-01-17 Apple Inc. Electronic backup of applications
US8010900B2 (en) 2007-06-08 2011-08-30 Apple Inc. User interface for electronic backup
US8725965B2 (en) * 2007-06-08 2014-05-13 Apple Inc. System setup for electronic backup
US8745523B2 (en) 2007-06-08 2014-06-03 Apple Inc. Deletion in electronic backups
US20080307017A1 (en) * 2007-06-08 2008-12-11 Apple Inc. Searching and Restoring of Backups
US9122762B2 (en) * 2007-07-18 2015-09-01 Ebay, Inc. Method and system to maintain a web page
US8484115B2 (en) 2007-10-03 2013-07-09 Palantir Technologies, Inc. Object-oriented time series generator
US8191002B2 (en) 2007-10-15 2012-05-29 International Business Machines Corporation Summarizing portlet usage in a portal page
US7904818B2 (en) * 2007-10-15 2011-03-08 International Business Machines Corporation Summarizing portlet usage captured responsive to trigger events in a portal page
US10460376B1 (en) 2007-11-28 2019-10-29 Wells Fargo Bank, N.A. System and method for data management and financial budgeting
US10269024B2 (en) 2008-02-08 2019-04-23 Outbrain Inc. Systems and methods for identifying and measuring trends in consumer content demand within vertically associated websites and related content
CN101572598B (en) * 2008-04-28 2013-03-06 国际商业机器公司 Method and device for reliable rapid integration
US9892028B1 (en) 2008-05-16 2018-02-13 On24, Inc. System and method for debugging of webcasting applications during live events
US10430491B1 (en) 2008-05-30 2019-10-01 On24, Inc. System and method for communication between rich internet applications
US8595241B2 (en) * 2008-06-22 2013-11-26 Newscred, Inc. System and method for augmenting digital media with custom content
US20100017385A1 (en) * 2008-07-16 2010-01-21 International Business Machines Creating and managing reference elements of deployable web archive files
US8910112B2 (en) * 2008-07-30 2014-12-09 Sap Ag Extended enterprise connector framework using direct web remoting (DWR)
US8645843B2 (en) * 2008-08-29 2014-02-04 International Business Machines Corporation Supporting role-based access control in component-based software systems
US8429194B2 (en) 2008-09-15 2013-04-23 Palantir Technologies, Inc. Document-based workflows
US20100070426A1 (en) 2008-09-15 2010-03-18 Palantir Technologies, Inc. Object modeling for exploring large data sets
US8572510B2 (en) * 2008-09-30 2013-10-29 Sap Ag Handling multiple dynamically-linked dropdowns in online applications
US9195525B2 (en) 2008-10-21 2015-11-24 Synactive, Inc. Method and apparatus for generating a web-based user interface
US10523767B2 (en) 2008-11-20 2019-12-31 Synactive, Inc. System and method for improved SAP communications
US9785914B2 (en) * 2008-12-08 2017-10-10 Adobe Systems Incorporated Collaborative review apparatus, systems, and methods
US8954488B2 (en) * 2009-01-21 2015-02-10 Microsoft Corporation Extensibility for web based diagram visualization
US9378011B2 (en) * 2009-03-19 2016-06-28 Microsoft Technology Licensing, Llc Network application versioning
JP5473363B2 (en) * 2009-03-26 2014-04-16 キヤノン株式会社 Information processing apparatus, control method, and control program
JP4656246B2 (en) * 2009-03-31 2011-03-23 ブラザー工業株式会社 COMMUNICATION DEVICE AND PROGRAM FOR FUNCTIONING COMMUNICATION DEVICE
TW201037640A (en) * 2009-04-03 2010-10-16 Bais Jumpton Culiural & Map Educational Co Ltd Auxiliary teaching system
US8312105B2 (en) * 2009-04-28 2012-11-13 International Business Machines Corporation Natural ordering in a graphical user interface
US20110040604A1 (en) * 2009-08-13 2011-02-17 Vertical Acuity, Inc. Systems and Methods for Providing Targeted Content
US9396485B2 (en) * 2009-12-24 2016-07-19 Outbrain Inc. Systems and methods for presenting content
US9189244B2 (en) * 2009-08-18 2015-11-17 Adobe Systems Incorporated Methods and systems for managing data service specifications
US8495048B2 (en) * 2009-08-26 2013-07-23 International Business Machines Applying user-generated deployment events to a grouping of deployable portlets
US8639622B1 (en) 2009-08-31 2014-01-28 Wells Fargo Bank, N.A. Budget management system and method
US9529517B2 (en) * 2009-10-13 2016-12-27 Google Inc. Movable information panels
US8438312B2 (en) 2009-10-23 2013-05-07 Moov Corporation Dynamically rehosting web content
US20110167403A1 (en) * 2009-12-04 2011-07-07 Jason Townes French Methods for platform-agnostic definitions and implementations of applications
US20110161091A1 (en) * 2009-12-24 2011-06-30 Vertical Acuity, Inc. Systems and Methods for Connecting Entities Through Content
US10607235B2 (en) * 2009-12-24 2020-03-31 Outbrain Inc. Systems and methods for curating content
US20110197137A1 (en) * 2009-12-24 2011-08-11 Vertical Acuity, Inc. Systems and Methods for Rating Content
US10713666B2 (en) 2009-12-24 2020-07-14 Outbrain Inc. Systems and methods for curating content
US9564075B2 (en) * 2009-12-30 2017-02-07 Cyweemotion Hk Limited Electronic control apparatus and method for responsively controlling media content displayed on portable electronic device
US9087134B2 (en) * 2009-12-31 2015-07-21 Cbs Interactive Inc. Systems and methods for decorating web pages
US9612708B2 (en) * 2010-02-03 2017-04-04 Benefitfocus.Com, Inc. Systems and methods for polymorphic content generation in a multi-application, multi-tenant environment
US20110202384A1 (en) * 2010-02-17 2011-08-18 Rabstejnek Wayne S Enterprise Rendering Platform
US9037790B2 (en) * 2010-03-05 2015-05-19 International Business Machines Corporation Systems, methods, and computer program products for providing high availability metadata about data
US8706812B2 (en) 2010-04-07 2014-04-22 On24, Inc. Communication console with component aggregation
US11438410B2 (en) 2010-04-07 2022-09-06 On24, Inc. Communication console with component aggregation
US8990427B2 (en) 2010-04-13 2015-03-24 Synactive, Inc. Method and apparatus for accessing an enterprise resource planning system via a mobile device
US11410129B2 (en) 2010-05-01 2022-08-09 Monday.com Ltd. Digital processing systems and methods for two-way syncing with third party applications in collaborative work systems
WO2021161104A1 (en) 2020-02-12 2021-08-19 Monday.Com Enhanced display features in collaborative network systems, methods, and devices
WO2021099839A1 (en) 2019-11-18 2021-05-27 Roy Mann Collaborative networking systems, methods, and devices
US8683359B2 (en) * 2010-05-18 2014-03-25 Sap Ag In-place user interface and dataflow modeling
US8434134B2 (en) 2010-05-26 2013-04-30 Google Inc. Providing an electronic document collection
US20110307810A1 (en) * 2010-06-11 2011-12-15 Isreal Hilerio List integration
US8434135B2 (en) * 2010-06-11 2013-04-30 Microsoft Corporation Creating and launching a web application with credentials
US8793650B2 (en) 2010-06-11 2014-07-29 Microsoft Corporation Dynamic web application notifications including task bar overlays
US8429546B2 (en) * 2010-06-11 2013-04-23 Microsoft Corporation Creating task sessions
US8863001B2 (en) * 2010-06-11 2014-10-14 Microsoft Corporation Web application home button
US8595551B2 (en) * 2010-06-11 2013-11-26 Microsoft Corporation Web application transitioning and transient web applications
US9164671B2 (en) 2010-06-11 2015-10-20 Microsoft Technology Licensing, Llc Web application navigation domains
US8671384B2 (en) * 2010-06-11 2014-03-11 Microsoft Corporation Web application pinning including task bar pinning
WO2012000117A1 (en) * 2010-06-30 2012-01-05 Tim Vasko System and method for an integraged workflow process, social, contact and web marketing solution
US8812734B2 (en) * 2010-09-01 2014-08-19 Microsoft Corporation Network feed content
EP2633428A1 (en) * 2010-10-30 2013-09-04 Hewlett-Packard Development Company, L.P. Optimizing hyper parameters of probabilistic model for mixed text-and-graphics layout template
TW201222415A (en) 2010-11-29 2012-06-01 Ibm Method and system for consistent web application presentation
US8819168B2 (en) * 2010-12-14 2014-08-26 Microsoft Corporation Link expansion service
US8984029B2 (en) 2011-01-14 2015-03-17 Apple Inc. File system management
US8943026B2 (en) 2011-01-14 2015-01-27 Apple Inc. Visual representation of a local backup
US20120246565A1 (en) * 2011-03-24 2012-09-27 Konica Minolta Laboratory U.S.A., Inc. Graphical user interface for displaying thumbnail images with filtering and editing functions
US9317861B2 (en) * 2011-03-30 2016-04-19 Information Resources, Inc. View-independent annotation of commercial data
US9600679B2 (en) * 2011-04-29 2017-03-21 Micro Focus Software Inc. Techniques for resource operation based on usage, sharing, and recommendations with modular authentication
US8799240B2 (en) 2011-06-23 2014-08-05 Palantir Technologies, Inc. System and method for investigating large amounts of data
US8732574B2 (en) 2011-08-25 2014-05-20 Palantir Technologies, Inc. System and method for parameterizing documents for automatic workflow generation
US8572500B2 (en) * 2011-09-09 2013-10-29 Microsoft Corporation Application screen design allowing interaction
US9465572B2 (en) 2011-11-09 2016-10-11 Microsoft Technology Licensing, Llc Dynamic server-side image sizing for fidelity improvements
US8671417B2 (en) 2011-12-12 2014-03-11 Microsoft Corporation Lightweight framework for web applications
US8856640B1 (en) 2012-01-20 2014-10-07 Google Inc. Method and apparatus for applying revision specific electronic signatures to an electronically stored document
US10789412B2 (en) 2012-02-20 2020-09-29 Wix.Com Ltd. System and method for extended dynamic layout
US8732201B2 (en) * 2012-02-28 2014-05-20 Software Ag Systems and/or methods for automatically deriving web service permissions based on XML structure permissions
IL225079B (en) * 2012-03-06 2018-12-31 Wix Com Ltd A method and system for master -page based integrated editing and dynamic layout activation
US9069627B2 (en) 2012-06-06 2015-06-30 Synactive, Inc. Method and apparatus for providing a dynamic execution environment in network communication between a client and a server
US20140026028A1 (en) * 2012-07-19 2014-01-23 International Business Machines Corporation Managing webpage edits
US9300745B2 (en) 2012-07-27 2016-03-29 Synactive, Inc. Dynamic execution environment in network communications
CN103581280B (en) * 2012-08-30 2017-02-15 网易传媒科技(北京)有限公司 Method and device for interface interaction based on micro blog platform
US20140068450A1 (en) * 2012-08-31 2014-03-06 Ebay Inc. Personalized Curation and Customized Social Interaction
US9785307B1 (en) * 2012-09-27 2017-10-10 Open Text Corporation Reorder and selection persistence of displayed objects
US9348677B2 (en) 2012-10-22 2016-05-24 Palantir Technologies Inc. System and method for batch evaluation programs
US9081975B2 (en) 2012-10-22 2015-07-14 Palantir Technologies, Inc. Sharing information between nexuses that use different classification schemes for information access control
US9104630B1 (en) * 2012-10-24 2015-08-11 Google Inc. Online account reset, rollback, and backup
US11308037B2 (en) 2012-10-30 2022-04-19 Google Llc Automatic collaboration
US9529916B1 (en) 2012-10-30 2016-12-27 Google Inc. Managing documents based on access context
US9501761B2 (en) 2012-11-05 2016-11-22 Palantir Technologies, Inc. System and method for sharing investigation results
US9524286B2 (en) * 2012-12-04 2016-12-20 Oracle International Corporation Persistent layer labels for a pivot table or cross-tabular report
US9495341B1 (en) 2012-12-18 2016-11-15 Google Inc. Fact correction and completion during document drafting
US9384285B1 (en) 2012-12-18 2016-07-05 Google Inc. Methods for identifying related documents
EP2765307A1 (en) 2013-02-07 2014-08-13 SSB Wind Systems GmbH & Co. KG Sensor system and method for monitoring and processing of blade sensor signals in a wind turbine
US9596279B2 (en) 2013-02-08 2017-03-14 Dell Products L.P. Cloud-based streaming data receiver and persister
US9191432B2 (en) 2013-02-11 2015-11-17 Dell Products L.P. SAAS network-based backup system
US9442993B2 (en) 2013-02-11 2016-09-13 Dell Products L.P. Metadata manager for analytics system
US9141680B2 (en) * 2013-02-11 2015-09-22 Dell Products L.P. Data consistency and rollback for cloud analytics
US20140237346A1 (en) * 2013-02-20 2014-08-21 Adobe Systems Inc. Method and apparatus for importing hyper text markup language (html) web projects into a web content management system
US11205036B2 (en) * 2013-03-11 2021-12-21 Oracle International Corporation Method and system for implementing contextual widgets
US9524273B2 (en) 2013-03-11 2016-12-20 Oracle International Corporation Method and system for generating a web page layout using nested drop zone widgets having different software functionalities
US10261757B2 (en) * 2013-03-13 2019-04-16 Northrop Grumman Systems Corporation System and method for automated web processing service workflow building and application creation
US8909656B2 (en) 2013-03-15 2014-12-09 Palantir Technologies Inc. Filter chains with associated multipath views for exploring large data sets
US9158534B2 (en) 2013-03-15 2015-10-13 Wolters Kluwer United States Inc. Smart endpoint architecture
US8868486B2 (en) 2013-03-15 2014-10-21 Palantir Technologies Inc. Time-sensitive cube
US8924388B2 (en) 2013-03-15 2014-12-30 Palantir Technologies Inc. Computer-implemented systems and methods for comparing and associating objects
US8799799B1 (en) 2013-05-07 2014-08-05 Palantir Technologies Inc. Interactive geospatial map
US9772753B2 (en) * 2013-06-07 2017-09-26 Microsoft Technology Licensing, Llc Displaying different views of an entity
CN103279559A (en) * 2013-06-13 2013-09-04 北京神鹰城讯科技有限公司 Rich text editing method and device based on Android system
US9916388B2 (en) * 2013-07-10 2018-03-13 Mh Sub I, Llc Simplified website creation, configuration, and customization system
US9495347B2 (en) * 2013-07-16 2016-11-15 Recommind, Inc. Systems and methods for extracting table information from documents
US9514113B1 (en) 2013-07-29 2016-12-06 Google Inc. Methods for automatic footnote generation
US9565152B2 (en) 2013-08-08 2017-02-07 Palantir Technologies Inc. Cable reader labeling
US9842113B1 (en) 2013-08-27 2017-12-12 Google Inc. Context-based file selection
US9740676B2 (en) 2013-09-20 2017-08-22 Oracle International Corporation Automatic column resizing
WO2015047241A1 (en) * 2013-09-25 2015-04-02 Schneider Electric Buildings Llc Alarm displaying method and apparatus
US9507609B2 (en) 2013-09-29 2016-11-29 Taplytics Inc. System and method for developing an application
US8938686B1 (en) 2013-10-03 2015-01-20 Palantir Technologies Inc. Systems and methods for analyzing performance of an entity
GB2519113A (en) * 2013-10-10 2015-04-15 Ibm Generation of combined documents from content and layout documents based on semantically neutral elements
US11429781B1 (en) 2013-10-22 2022-08-30 On24, Inc. System and method of annotating presentation timeline with questions, comments and notes using simple user inputs in mobile devices
CN105745644A (en) * 2013-11-01 2016-07-06 柯宝科技公司 Establishment of state representation of a web page represented in a web browser
US20150135110A1 (en) * 2013-11-09 2015-05-14 International Business Machines Corporation Utilizing object cloning to enable nested drag and drop
US8938679B1 (en) 2013-11-18 2015-01-20 Axure Software Solutions, Inc. Comment system for interactive graphical designs
US9105000B1 (en) 2013-12-10 2015-08-11 Palantir Technologies Inc. Aggregating data from a plurality of data sources
US9529791B1 (en) 2013-12-12 2016-12-27 Google Inc. Template and content aware document and template editing
US10579647B1 (en) 2013-12-16 2020-03-03 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US10304110B2 (en) * 2013-12-26 2019-05-28 Ebay Inc. Ticket listing triggered by URL links
US10789554B2 (en) 2014-01-08 2020-09-29 Stubhub, Inc. Validity determination of an event ticket and automatic population of admission information
US10325001B2 (en) * 2014-02-26 2019-06-18 International Business Machines Corporation Operating a portal environment
US9965449B2 (en) * 2014-03-17 2018-05-08 Ca, Inc. Providing product with integrated wiki module
EP3193261B1 (en) 2014-03-18 2020-11-04 smartwork solutions GmbH Method and system for editing virtual documents
US8924429B1 (en) 2014-03-18 2014-12-30 Palantir Technologies Inc. Determining and extracting changed data from a data source
US9836580B2 (en) 2014-03-21 2017-12-05 Palantir Technologies Inc. Provider portal
US9948700B2 (en) 2014-07-01 2018-04-17 Oracle International Corporation ADFDI support for custom attribute properties
US10127206B2 (en) * 2014-07-16 2018-11-13 Oracle International Corporation Dynamic column groups in excel
US9703763B1 (en) 2014-08-14 2017-07-11 Google Inc. Automatic document citations by utilizing copied content for candidate sources
US9398081B2 (en) * 2014-08-20 2016-07-19 Futurewei Technologies, Inc. Automating client development for network APIs
US10785325B1 (en) 2014-09-03 2020-09-22 On24, Inc. Audience binning system and method for webcasting and on-line presentations
US9454281B2 (en) 2014-09-03 2016-09-27 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US9767172B2 (en) 2014-10-03 2017-09-19 Palantir Technologies Inc. Data aggregation and analysis system
US9501851B2 (en) 2014-10-03 2016-11-22 Palantir Technologies Inc. Time-series analysis system
US9760240B2 (en) 2014-10-09 2017-09-12 Splunk Inc. Graphical user interface for static and adaptive thresholds
US9158811B1 (en) 2014-10-09 2015-10-13 Splunk, Inc. Incident review interface
US9210056B1 (en) 2014-10-09 2015-12-08 Splunk Inc. Service monitoring interface
US10417225B2 (en) 2015-09-18 2019-09-17 Splunk Inc. Entity detail monitoring console
US10474680B2 (en) 2014-10-09 2019-11-12 Splunk Inc. Automatic entity definitions
US10536353B2 (en) 2014-10-09 2020-01-14 Splunk Inc. Control interface for dynamic substitution of service monitoring dashboard source data
US11455590B2 (en) 2014-10-09 2022-09-27 Splunk Inc. Service monitoring adaptation for maintenance downtime
US9491059B2 (en) 2014-10-09 2016-11-08 Splunk Inc. Topology navigator for IT services
US11755559B1 (en) 2014-10-09 2023-09-12 Splunk Inc. Automatic entity control in a machine data driven service monitoring system
US9146962B1 (en) 2014-10-09 2015-09-29 Splunk, Inc. Identifying events using informational fields
US10417108B2 (en) 2015-09-18 2019-09-17 Splunk Inc. Portable control modules in a machine data driven service monitoring system
US9130832B1 (en) 2014-10-09 2015-09-08 Splunk, Inc. Creating entity definition from a file
US9146954B1 (en) 2014-10-09 2015-09-29 Splunk, Inc. Creating entity definition from a search result set
US11671312B2 (en) 2014-10-09 2023-06-06 Splunk Inc. Service detail monitoring console
US10305758B1 (en) 2014-10-09 2019-05-28 Splunk Inc. Service monitoring interface reflecting by-service mode
US10193775B2 (en) 2014-10-09 2019-01-29 Splunk Inc. Automatic event group action interface
US10505825B1 (en) 2014-10-09 2019-12-10 Splunk Inc. Automatic creation of related event groups for IT service monitoring
US11200130B2 (en) 2015-09-18 2021-12-14 Splunk Inc. Automatic entity control in a machine data driven service monitoring system
US11087263B2 (en) 2014-10-09 2021-08-10 Splunk Inc. System monitoring with key performance indicators from shared base search of machine data
US9128995B1 (en) 2014-10-09 2015-09-08 Splunk, Inc. Defining a graphical visualization along a time-based graph lane using key performance indicators derived from machine data
US10209956B2 (en) 2014-10-09 2019-02-19 Splunk Inc. Automatic event group actions
US10235638B2 (en) 2014-10-09 2019-03-19 Splunk Inc. Adaptive key performance indicator thresholds
US11501238B2 (en) 2014-10-09 2022-11-15 Splunk Inc. Per-entity breakdown of key performance indicators
US9984133B2 (en) 2014-10-16 2018-05-29 Palantir Technologies Inc. Schematic and database linking system
CN104376056B (en) * 2014-11-04 2018-04-27 广州华多网络科技有限公司 A kind of method and apparatus of data processing
EP3032441A2 (en) 2014-12-08 2016-06-15 Palantir Technologies, Inc. Distributed acoustic sensing data analysis system
US10063603B2 (en) * 2014-12-11 2018-08-28 Liveloop, Inc Method and system for concurrent collaborative undo operations in computer application software
US9965450B2 (en) * 2014-12-31 2018-05-08 Sap Portals Israel Ltd. Dynamic management of site components
US11302426B1 (en) 2015-01-02 2022-04-12 Palantir Technologies Inc. Unified data interface and system
US9967351B2 (en) 2015-01-31 2018-05-08 Splunk Inc. Automated service discovery in I.T. environments
US10198155B2 (en) 2015-01-31 2019-02-05 Splunk Inc. Interface for automated service discovery in I.T. environments
US10803106B1 (en) 2015-02-24 2020-10-13 Palantir Technologies Inc. System with methodology for dynamic modular ontology
US9891808B2 (en) 2015-03-16 2018-02-13 Palantir Technologies Inc. Interactive user interfaces for location-based data analysis
US10103953B1 (en) 2015-05-12 2018-10-16 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US10628834B1 (en) 2015-06-16 2020-04-21 Palantir Technologies Inc. Fraud lead detection system for efficiently processing database-stored data and automatically generating natural language explanatory information of system results for display in interactive user interfaces
US10048948B2 (en) 2015-07-06 2018-08-14 Oracle International Corporation Optimized retrieval of custom string resources
US9418337B1 (en) 2015-07-21 2016-08-16 Palantir Technologies Inc. Systems and models for data analytics
US10582001B2 (en) 2015-08-11 2020-03-03 Oracle International Corporation Asynchronous pre-caching of synchronously loaded resources
US9774994B2 (en) 2015-08-14 2017-09-26 Aeris Communications, Inc. System and method for monitoring devices relative to a user defined geographic area
US10437575B2 (en) 2015-08-14 2019-10-08 Aeris Communications, Inc. Aercloud application express and aercloud application express launcher
US10231084B2 (en) 2015-08-14 2019-03-12 Aeris Communications, Inc. System and method for monitoring devices relative to a learned geographic area
US10648823B2 (en) 2017-06-22 2020-05-12 Aeris Communications, Inc. Learning common routes and automatic geofencing in fleet management
US9600146B2 (en) 2015-08-17 2017-03-21 Palantir Technologies Inc. Interactive geospatial map
US10706434B1 (en) 2015-09-01 2020-07-07 Palantir Technologies Inc. Methods and systems for determining location information
US9984428B2 (en) 2015-09-04 2018-05-29 Palantir Technologies Inc. Systems and methods for structuring data from unstructured electronic data files
US9734138B2 (en) 2015-09-07 2017-08-15 Voicebox Technologies Corporation System and method of annotating utterances based on tags assigned by unmanaged crowds
US9401142B1 (en) 2015-09-07 2016-07-26 Voicebox Technologies Corporation System and method for validating natural language content using crowdsourced validation jobs
WO2017044415A1 (en) * 2015-09-07 2017-03-16 Voicebox Technologies Corporation System and method for eliciting open-ended natural language responses to questions to train natural language processors
US9448993B1 (en) 2015-09-07 2016-09-20 Voicebox Technologies Corporation System and method of recording utterances using unmanaged crowds for natural language processing
US9519766B1 (en) 2015-09-07 2016-12-13 Voicebox Technologies Corporation System and method of providing and validating enhanced CAPTCHAs
US10204077B2 (en) * 2015-09-21 2019-02-12 Facebook, Inc. Rich text editor
US10287855B2 (en) * 2015-10-28 2019-05-14 Baker Hughes, A Ge Company, Llc Automation of energy industry processes using stored standard best practices procedures
US9760556B1 (en) 2015-12-11 2017-09-12 Palantir Technologies Inc. Systems and methods for annotating and linking electronic documents
US9514414B1 (en) 2015-12-11 2016-12-06 Palantir Technologies Inc. Systems and methods for identifying and categorizing electronic documents through machine learning
US9542446B1 (en) 2015-12-17 2017-01-10 Palantir Technologies, Inc. Automatic generation of composite datasets based on hierarchical fields
US10089289B2 (en) 2015-12-29 2018-10-02 Palantir Technologies Inc. Real-time document annotation
US9996236B1 (en) 2015-12-29 2018-06-12 Palantir Technologies Inc. Simplified frontend processing and visualization of large datasets
US10452634B2 (en) 2016-02-01 2019-10-22 Microsoft Technology Licensing, Llc Provide consumer oriented data service
US10248722B2 (en) 2016-02-22 2019-04-02 Palantir Technologies Inc. Multi-language support for dynamic ontology
CN105843789A (en) * 2016-04-01 2016-08-10 乐视控股(北京)有限公司 Rich text monitoring method and device
US10467123B2 (en) 2016-05-09 2019-11-05 Oracle International Corporation Compression techniques for encoding stack trace information
US10719188B2 (en) 2016-07-21 2020-07-21 Palantir Technologies Inc. Cached database and synchronization system for providing dynamic linked panels in user interface
US10324609B2 (en) 2016-07-21 2019-06-18 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US10255051B2 (en) 2016-08-02 2019-04-09 Oracle International Corporation Generation of dynamic software models using input mapping with feature definitions
US10970465B2 (en) * 2016-08-24 2021-04-06 Micro Focus Llc Web page manipulation
US10942946B2 (en) 2016-09-26 2021-03-09 Splunk, Inc. Automatic triage model execution in machine data driven monitoring automation apparatus
US10942960B2 (en) 2016-09-26 2021-03-09 Splunk Inc. Automatic triage model execution in machine data driven monitoring automation apparatus with visualization
US10133588B1 (en) 2016-10-20 2018-11-20 Palantir Technologies Inc. Transforming instructions for collaborative updates
US10044836B2 (en) 2016-12-19 2018-08-07 Palantir Technologies Inc. Conducting investigations under limited connectivity
US10216811B1 (en) 2017-01-05 2019-02-26 Palantir Technologies Inc. Collaborating using different object models
US11074277B1 (en) 2017-05-01 2021-07-27 Palantir Technologies Inc. Secure resolution of canonical entities
US10735904B2 (en) 2017-06-22 2020-08-04 Aeris Communications, Inc. System and method for monitoring location and activity of devices
US11132636B2 (en) 2017-06-22 2021-09-28 Aeris Communications, Inc. System and method for monitoring and sharing location and activity of devices
US11627195B2 (en) 2017-06-22 2023-04-11 Aeris Communications, Inc. Issuing alerts for IoT devices
US10942947B2 (en) 2017-07-17 2021-03-09 Palantir Technologies Inc. Systems and methods for determining relationships between datasets
US11093518B1 (en) 2017-09-23 2021-08-17 Splunk Inc. Information technology networked entity monitoring with dynamic metric and threshold selection
US11106442B1 (en) 2017-09-23 2021-08-31 Splunk Inc. Information technology networked entity monitoring with metric selection prior to deployment
US11159397B2 (en) 2017-09-25 2021-10-26 Splunk Inc. Lower-tier application deployment for higher-tier system data monitoring
US11281723B2 (en) 2017-10-05 2022-03-22 On24, Inc. Widget recommendation for an online event using co-occurrence matrix
US11188822B2 (en) 2017-10-05 2021-11-30 On24, Inc. Attendee engagement determining system and method
US10956508B2 (en) 2017-11-10 2021-03-23 Palantir Technologies Inc. Systems and methods for creating and managing a data integration workspace containing automatically updated data models
US11061874B1 (en) 2017-12-14 2021-07-13 Palantir Technologies Inc. Systems and methods for resolving entity data across various data structures
US10853352B1 (en) 2017-12-21 2020-12-01 Palantir Technologies Inc. Structured data collection, presentation, validation and workflow management
CN108037974A (en) * 2017-12-22 2018-05-15 武汉楚鼎信息技术有限公司 A kind of exchange method and system and device in mobile terminal displaying long form
GB201800595D0 (en) 2018-01-15 2018-02-28 Palantir Technologies Inc Management of software bugs in a data processing system
US10824791B2 (en) * 2018-02-26 2020-11-03 Servicenow, Inc. System for building and modeling web pages
US11599369B1 (en) 2018-03-08 2023-03-07 Palantir Technologies Inc. Graphical user interface configuration system
US11048762B2 (en) 2018-03-16 2021-06-29 Open Text Holdings, Inc. User-defined automated document feature modeling, extraction and optimization
US10762142B2 (en) 2018-03-16 2020-09-01 Open Text Holdings, Inc. User-defined automated document feature extraction and optimization
US11061542B1 (en) 2018-06-01 2021-07-13 Palantir Technologies Inc. Systems and methods for determining and displaying optimal associations of data items
US11436359B2 (en) 2018-07-04 2022-09-06 Monday.com Ltd. System and method for managing permissions of users for a single data type column-oriented data structure
US11698890B2 (en) 2018-07-04 2023-07-11 Monday.com Ltd. System and method for generating a column-oriented data structure repository for columns of single data types
US11005851B2 (en) * 2018-08-09 2021-05-11 Camelot Uk Bidco Limited Retrieving digital content over a network
CN109040294B (en) * 2018-08-29 2021-09-17 广东电网有限责任公司 Heterogeneous system standardized access method and device for three-dimensional simulation monitoring
CN109271148B (en) * 2018-09-29 2022-03-01 中国建设银行股份有限公司 Mobile application generation method and device
JP6943830B2 (en) * 2018-10-19 2021-10-06 ファナック株式会社 Control devices, communication terminals, and control systems
US11238014B2 (en) 2018-12-04 2022-02-01 International Business Machines Corporation Distributed version control for tracking changes in web applications
US11610277B2 (en) 2019-01-25 2023-03-21 Open Text Holdings, Inc. Seamless electronic discovery system with an enterprise data portal
US11474796B1 (en) * 2019-07-09 2022-10-18 Elements Dev Corporation Build system for distributed applications
CN112230910B (en) * 2019-07-15 2023-09-15 腾讯科技(深圳)有限公司 Page generation method, device and equipment of embedded program and storage medium
CN112241505B (en) * 2019-07-18 2023-11-14 腾讯科技(深圳)有限公司 Page updating method, page updating device, medium and electronic equipment
US11392666B2 (en) 2019-09-13 2022-07-19 Redfast, Inc. Systems and methods for managing an online user experience
US11030556B1 (en) 2019-11-18 2021-06-08 Monday.Com Digital processing systems and methods for dynamic object display of tabular information in collaborative work systems
CN110989987B (en) * 2019-12-04 2024-03-01 北京小米移动软件有限公司 Portal webpage generation method and device, client, server and storage medium
US11023667B1 (en) * 2019-12-20 2021-06-01 Veeva Systems Inc. System and method for generating and managing pseudo data fields in CRM
US11249976B1 (en) 2020-02-18 2022-02-15 Wells Fargo Bank, N.A. Data structures for computationally efficient data promulgation among devices in decentralized networks
CN113342327A (en) * 2020-03-02 2021-09-03 中国科学院沈阳自动化研究所 Method for generating visual industrial configuration interactive graph
EP4143732A1 (en) 2020-05-01 2023-03-08 Monday.com Ltd. Digital processing systems and methods for enhanced collaborative workflow and networking systems, methods, and devices
US11829953B1 (en) 2020-05-01 2023-11-28 Monday.com Ltd. Digital processing systems and methods for managing sprints using linked electronic boards
US11277361B2 (en) 2020-05-03 2022-03-15 Monday.com Ltd. Digital processing systems and methods for variable hang-time for social layer messages in collaborative work systems
US11204975B1 (en) * 2020-08-10 2021-12-21 Coupang Corp. Program interface remote management and provisioning
US11397847B1 (en) 2021-01-14 2022-07-26 Monday.com Ltd. Digital processing systems and methods for display pane scroll locking during collaborative document editing in collaborative work systems
US11676072B1 (en) 2021-01-29 2023-06-13 Splunk Inc. Interface for incorporating user feedback into training of clustering model
CN112905280B (en) * 2021-02-07 2023-12-15 腾竞体育文化发展(上海)有限公司 Page display method, device, equipment and storage medium
US11893076B2 (en) * 2021-02-08 2024-02-06 Redfast, Inc. Systems and methods for managing an online user experience
US11243749B1 (en) 2021-03-24 2022-02-08 Bank Of America Corporation Systems and methods for assisted code development
US11556318B2 (en) 2021-03-24 2023-01-17 Bank Of America Corporation Systems and methods for assisted code development
US11842176B2 (en) * 2021-11-12 2023-12-12 Bank Of America Corporation System and method for performing parallel and distributed analysis of program code to generate dependency graphs for executing extract transform load transformations
CN113779483B (en) * 2021-11-12 2022-02-08 腾讯科技(深圳)有限公司 Page component generation method and device, storage medium and computer equipment
CN114417215A (en) * 2021-12-31 2022-04-29 天闻数媒科技(北京)有限公司 Designer and page design method
CN115357239A (en) * 2022-10-21 2022-11-18 智者四海(北京)技术有限公司 Method and device for quickly building operation activity page and electronic equipment
US11741071B1 (en) 2022-12-28 2023-08-29 Monday.com Ltd. Digital processing systems and methods for navigating and viewing displayed content
US11886683B1 (en) 2022-12-30 2024-01-30 Monday.com Ltd Digital processing systems and methods for presenting board graphics
US11893381B1 (en) 2023-02-21 2024-02-06 Monday.com Ltd Digital processing systems and methods for reducing file bundle sizes

Citations (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5088052A (en) * 1988-07-15 1992-02-11 Digital Equipment Corporation System for graphically representing and manipulating data stored in databases
US5873106A (en) * 1995-09-18 1999-02-16 Oracle Corporation Geometry management for displaying objects on a computer
US5983227A (en) * 1997-06-12 1999-11-09 Yahoo, Inc. Dynamic page generator
US6026433A (en) * 1997-03-17 2000-02-15 Silicon Graphics, Inc. Method of creating and editing a web site in a client-server environment using customizable web site templates
US6263328B1 (en) * 1999-04-09 2001-07-17 International Business Machines Corporation Object oriented query model and process for complex heterogeneous database queries
US20040006710A1 (en) * 2002-04-25 2004-01-08 Pollutro Dennis Vance Computer security system
US20040054967A1 (en) * 2002-09-17 2004-03-18 Brandenberger Sarah M. Published web page version tracking
US20040073565A1 (en) * 2000-10-31 2004-04-15 Kaufman Michael Philip System and method for generating automatic user interface for arbitrarily complex or large databases
US20040085316A1 (en) * 2002-10-30 2004-05-06 Web Information Technologies, Inc Interactive data visualization and charting framework with self-detection of data commonality
US20040148307A1 (en) * 1999-12-02 2004-07-29 Rempell Steven H Browser based web site generation tool and run time engine
US20040189703A1 (en) * 2003-03-28 2004-09-30 Microsoft Corporation Publishing interface for publishing content from a content-authoring application to a content server
US20050108211A1 (en) * 2003-11-18 2005-05-19 Oracle International Corporation, A California Corporation Method of and system for creating queries that operate on unstructured data stored in a database
US20050138614A1 (en) * 2003-12-19 2005-06-23 Fuji Xerox Co., Ltd Methods and systems for extending existing user interfaces
US20060004703A1 (en) * 2004-02-23 2006-01-05 Radar Networks, Inc. Semantic web portal and platform
US20060041589A1 (en) * 2004-08-23 2006-02-23 Fuji Xerox Co., Ltd. System and method for clipping, repurposing, and augmenting document content
US20060200748A1 (en) * 2005-03-03 2006-09-07 Michael Shenfield System and method for applying workflow of generic services' to component based applications for devices
US20060230021A1 (en) * 2004-03-15 2006-10-12 Yahoo! Inc. Integration of personalized portals with web content syndication
US20060259462A1 (en) * 2005-05-12 2006-11-16 Sybase, Inc. System and Methodology for Real-time Content Aggregation and Syndication
US20060294496A1 (en) * 2005-06-27 2006-12-28 Bea Systems, Inc. System and method for improved web portal design through control tree file creation
US20070011183A1 (en) * 2005-07-05 2007-01-11 Justin Langseth Analysis and transformation tools for structured and unstructured data
US20070011175A1 (en) * 2005-07-05 2007-01-11 Justin Langseth Schema and ETL tools for structured and unstructured data
US20070055926A1 (en) * 2005-09-02 2007-03-08 Fourteen40, Inc. Systems and methods for collaboratively annotating electronic documents
US20070061296A1 (en) * 2005-09-09 2007-03-15 Microsoft Corporation Annotating documents in a collaborative application with data in disparate information systems
US20070106647A1 (en) * 2005-10-31 2007-05-10 Schwalb Edward M Property tax and title chain document ordering system and method
US20070118844A1 (en) * 2005-11-23 2007-05-24 Jin Huang Designer and player for web services applications
US20070168380A1 (en) * 2006-01-17 2007-07-19 International Business Machines Corporation System and method for storing text annotations with associated type information in a structured data store
US20080010387A1 (en) * 2006-07-07 2008-01-10 Bryce Allen Curtis Method for defining a Wiki page layout using a Wiki page
US20080016105A1 (en) * 2006-06-19 2008-01-17 University Of Maryland, Baltimore County System for annotating digital images within a wiki environment over the world wide web
US20080040674A1 (en) * 2006-08-09 2008-02-14 Puneet K Gupta Folksonomy-Enhanced Enterprise-Centric Collaboration and Knowledge Management System
US20080071929A1 (en) * 2006-09-18 2008-03-20 Yann Emmanuel Motte Methods and apparatus for selection of information and web page generation
US20080091448A1 (en) * 2006-10-16 2008-04-17 Niheu Eric K System and method of integrating enterprise applications
US20080140766A1 (en) * 2006-12-06 2008-06-12 Microsoft Corporation Editing web pages via a web browser
US20080172372A1 (en) * 2007-01-17 2008-07-17 Google Inc. Expandable Homepage Modules
US20080222074A1 (en) * 2007-02-22 2008-09-11 Peter Lieberwirth Method or corresponding system employing templates for creating an organizational structure of knowledge
US20080270945A1 (en) * 2007-04-24 2008-10-30 Fatdoor, Inc. Interior spaces in a geo-spatial environment
US20090006360A1 (en) * 2007-06-28 2009-01-01 Oracle International Corporation System and method for applying ranking svm in query relaxation
US20090013244A1 (en) * 2007-04-27 2009-01-08 Bea Systems, Inc. Enterprise web application constructor system and method
US20090063953A1 (en) * 2005-02-01 2009-03-05 Google Inc. Collaborative Web Page Authoring
US7543267B2 (en) * 1998-12-31 2009-06-02 Microsoft Corporation Drag and drop creation and editing of a page incorporating scripts
US7555713B2 (en) * 2005-02-22 2009-06-30 George Liang Yang Writing and reading aid system
US7716634B2 (en) * 2006-01-19 2010-05-11 Medseek Inc. System and method for building and modifying software applications

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275829B1 (en) * 1997-11-25 2001-08-14 Microsoft Corporation Representing a graphic image on a web page with a thumbnail-sized image
US6128623A (en) * 1998-04-15 2000-10-03 Inktomi Corporation High performance object cache
US6289358B1 (en) * 1998-04-15 2001-09-11 Inktomi Corporation Delivering alternate versions of objects from an object cache
US6389460B1 (en) * 1998-05-13 2002-05-14 Compaq Computer Corporation Method and apparatus for efficient storage and retrieval of objects in and from an object storage device
US6631512B1 (en) * 1999-01-15 2003-10-07 Gillis E Onyeabor Method and system for database-driven, scalable web page development, deployment-download, and execution
US7607085B1 (en) * 1999-05-11 2009-10-20 Microsoft Corporation Client side localizations on the world wide web
US6327628B1 (en) * 2000-05-19 2001-12-04 Epicentric, Inc. Portal server that provides a customizable user Interface for access to computer networks
US6792475B1 (en) * 2000-06-23 2004-09-14 Microsoft Corporation System and method for facilitating the design of a website
US7000180B2 (en) * 2000-06-29 2006-02-14 Balthaser Online, Inc. Methods, systems, and processes for the design and creation of rich-media applications via the internet
US6766332B2 (en) * 2000-10-19 2004-07-20 Fuji Photo Film Co., Ltd. Electronic image display device and printing system therefor
US7197531B2 (en) * 2000-12-29 2007-03-27 Fotomedia Technologies, Llc Meta-application architecture for integrating photo-service websites for browser-enabled devices
US7428725B2 (en) * 2001-11-20 2008-09-23 Microsoft Corporation Inserting devices specific content
US7987421B1 (en) * 2002-01-30 2011-07-26 Boyd H Timothy Method and apparatus to dynamically provide web content resources in a portal
US7200801B2 (en) * 2002-05-17 2007-04-03 Sap Aktiengesellschaft Rich media information portals
US7249174B2 (en) 2002-06-12 2007-07-24 Bladelogic, Inc. Method and system for executing and undoing distributed server change operations
US20040103369A1 (en) * 2002-11-26 2004-05-27 Sonoco Development, Inc. Method and apparatus for displaying data in a web page
US7325197B1 (en) * 2003-06-16 2008-01-29 Microsoft Corporation Method and system for providing page control content
US7502834B2 (en) * 2003-09-30 2009-03-10 International Business Machines Corporation Autonomic content load balancing
US7987268B2 (en) * 2003-10-23 2011-07-26 International Business Machines Corporation Methods and systems for dynamically reconfigurable load balancing
JP4125249B2 (en) * 2004-01-30 2008-07-30 キヤノン株式会社 Information processing method, information processing apparatus, and computer-readable program
US7565615B2 (en) * 2004-02-27 2009-07-21 Sap Aktiengesellschaft Survey generation system
US8103957B2 (en) * 2004-04-08 2012-01-24 E-Locallink, Inc. Methods and systems for simplifying access to video content
US20050240869A1 (en) * 2004-04-23 2005-10-27 Kalev Leetaru Method and system for editable web browsing
US7617450B2 (en) * 2004-09-30 2009-11-10 Microsoft Corporation Method, system, and computer-readable medium for creating, inserting, and reusing document parts in an electronic document
US7489324B2 (en) * 2005-03-07 2009-02-10 Vistaprint Technologies Limited Automated image processing
US7861153B2 (en) * 2005-10-03 2010-12-28 Advisys, Inc. System and method for document construction
US20070112856A1 (en) * 2005-11-17 2007-05-17 Aaron Schram System and method for providing analytics for a communities framework
CN100535900C (en) * 2005-12-06 2009-09-02 国际商业机器公司 Method and system for rendering asynchronous portal page
WO2007066901A1 (en) * 2005-12-09 2007-06-14 Lg Electronics Inc. Method for managing and processing information of an object for presentation of multiple sources and apparatus for conducting said method
US20070209025A1 (en) * 2006-01-25 2007-09-06 Microsoft Corporation User interface for viewing images
US8510669B2 (en) * 2006-02-06 2013-08-13 Yahoo! Inc. Method and system for presenting photos on a website
US20070214239A1 (en) * 2006-03-10 2007-09-13 Mechkov Chavdar B Dynamically updated web page
US20080072139A1 (en) * 2006-08-20 2008-03-20 Robert Salinas Mobilizing Webpages by Selecting, Arranging, Adapting, Substituting and/or Supplementing Content for Mobile and/or other Electronic Devices; and Optimizing Content for Mobile and/or other Electronic Devices; and Enhancing Usability of Mobile Devices
US20080059877A1 (en) * 2006-08-29 2008-03-06 David Brookler Method for automatically adjusting the components of a screen region to maintain layout integrity in multiple languages
US8055759B2 (en) * 2006-09-18 2011-11-08 Tropos Networks, Inc. Determination of link qualities between an access point and a plurality of clients
US20080201118A1 (en) * 2007-02-16 2008-08-21 Fan Luo Modeling a web page on top of HTML elements level by encapsulating the details of HTML elements in a component, building a web page, a website and website syndication on browser-based user interface
US20080320384A1 (en) * 2007-06-25 2008-12-25 Ramesh Nagarajan Automated addition of images to text

Patent Citations (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5088052A (en) * 1988-07-15 1992-02-11 Digital Equipment Corporation System for graphically representing and manipulating data stored in databases
US5873106A (en) * 1995-09-18 1999-02-16 Oracle Corporation Geometry management for displaying objects on a computer
US6026433A (en) * 1997-03-17 2000-02-15 Silicon Graphics, Inc. Method of creating and editing a web site in a client-server environment using customizable web site templates
US5983227A (en) * 1997-06-12 1999-11-09 Yahoo, Inc. Dynamic page generator
US7543267B2 (en) * 1998-12-31 2009-06-02 Microsoft Corporation Drag and drop creation and editing of a page incorporating scripts
US6263328B1 (en) * 1999-04-09 2001-07-17 International Business Machines Corporation Object oriented query model and process for complex heterogeneous database queries
US20040148307A1 (en) * 1999-12-02 2004-07-29 Rempell Steven H Browser based web site generation tool and run time engine
US20040073565A1 (en) * 2000-10-31 2004-04-15 Kaufman Michael Philip System and method for generating automatic user interface for arbitrarily complex or large databases
US20040006710A1 (en) * 2002-04-25 2004-01-08 Pollutro Dennis Vance Computer security system
US20040054967A1 (en) * 2002-09-17 2004-03-18 Brandenberger Sarah M. Published web page version tracking
US20040085316A1 (en) * 2002-10-30 2004-05-06 Web Information Technologies, Inc Interactive data visualization and charting framework with self-detection of data commonality
US20040189703A1 (en) * 2003-03-28 2004-09-30 Microsoft Corporation Publishing interface for publishing content from a content-authoring application to a content server
US20050108211A1 (en) * 2003-11-18 2005-05-19 Oracle International Corporation, A California Corporation Method of and system for creating queries that operate on unstructured data stored in a database
US20050138614A1 (en) * 2003-12-19 2005-06-23 Fuji Xerox Co., Ltd Methods and systems for extending existing user interfaces
US20060004703A1 (en) * 2004-02-23 2006-01-05 Radar Networks, Inc. Semantic web portal and platform
US20060230021A1 (en) * 2004-03-15 2006-10-12 Yahoo! Inc. Integration of personalized portals with web content syndication
US20060041589A1 (en) * 2004-08-23 2006-02-23 Fuji Xerox Co., Ltd. System and method for clipping, repurposing, and augmenting document content
US20090063953A1 (en) * 2005-02-01 2009-03-05 Google Inc. Collaborative Web Page Authoring
US7555713B2 (en) * 2005-02-22 2009-06-30 George Liang Yang Writing and reading aid system
US20060200748A1 (en) * 2005-03-03 2006-09-07 Michael Shenfield System and method for applying workflow of generic services' to component based applications for devices
US20060259462A1 (en) * 2005-05-12 2006-11-16 Sybase, Inc. System and Methodology for Real-time Content Aggregation and Syndication
US20060294496A1 (en) * 2005-06-27 2006-12-28 Bea Systems, Inc. System and method for improved web portal design through control tree file creation
US20070011175A1 (en) * 2005-07-05 2007-01-11 Justin Langseth Schema and ETL tools for structured and unstructured data
US20070011183A1 (en) * 2005-07-05 2007-01-11 Justin Langseth Analysis and transformation tools for structured and unstructured data
US20070055926A1 (en) * 2005-09-02 2007-03-08 Fourteen40, Inc. Systems and methods for collaboratively annotating electronic documents
US20070061296A1 (en) * 2005-09-09 2007-03-15 Microsoft Corporation Annotating documents in a collaborative application with data in disparate information systems
US20070106647A1 (en) * 2005-10-31 2007-05-10 Schwalb Edward M Property tax and title chain document ordering system and method
US20070118844A1 (en) * 2005-11-23 2007-05-24 Jin Huang Designer and player for web services applications
US20070168380A1 (en) * 2006-01-17 2007-07-19 International Business Machines Corporation System and method for storing text annotations with associated type information in a structured data store
US7716634B2 (en) * 2006-01-19 2010-05-11 Medseek Inc. System and method for building and modifying software applications
US20080016105A1 (en) * 2006-06-19 2008-01-17 University Of Maryland, Baltimore County System for annotating digital images within a wiki environment over the world wide web
US20080010387A1 (en) * 2006-07-07 2008-01-10 Bryce Allen Curtis Method for defining a Wiki page layout using a Wiki page
US20080040674A1 (en) * 2006-08-09 2008-02-14 Puneet K Gupta Folksonomy-Enhanced Enterprise-Centric Collaboration and Knowledge Management System
US20080071929A1 (en) * 2006-09-18 2008-03-20 Yann Emmanuel Motte Methods and apparatus for selection of information and web page generation
US20080091448A1 (en) * 2006-10-16 2008-04-17 Niheu Eric K System and method of integrating enterprise applications
US20080140766A1 (en) * 2006-12-06 2008-06-12 Microsoft Corporation Editing web pages via a web browser
US20080172372A1 (en) * 2007-01-17 2008-07-17 Google Inc. Expandable Homepage Modules
US20080222074A1 (en) * 2007-02-22 2008-09-11 Peter Lieberwirth Method or corresponding system employing templates for creating an organizational structure of knowledge
US20080270945A1 (en) * 2007-04-24 2008-10-30 Fatdoor, Inc. Interior spaces in a geo-spatial environment
US20090013245A1 (en) * 2007-04-27 2009-01-08 Bea Systems, Inc. Enterprise web application constructor xml editor framework
US20090019357A1 (en) * 2007-04-27 2009-01-15 Bea Systems, Inc. Web based application constructor using page components accessible by url
US20090019522A1 (en) * 2007-04-27 2009-01-15 Bea Systems, Inc. Web based application constructor using data spaces
US20090024915A1 (en) * 2007-04-27 2009-01-22 Bea Systems, Inc. Web based application constructor using objects as pages
US20090024939A1 (en) * 2007-04-27 2009-01-22 Bea Systems, Inc. Web based application constructor using querying across data
US20090031401A1 (en) * 2007-04-27 2009-01-29 Bea Systems, Inc. Annotations for enterprise web application constructor
US20090013246A1 (en) * 2007-04-27 2009-01-08 Bea Systems, Inc. Web based application constructor using extensibility points for page components, page layouts/templates, security roles, shells, and associating data spaces with templates
US20090013267A1 (en) * 2007-04-27 2009-01-08 Bea Systems, Inc. Constructor web-based change control system and method
US20090013244A1 (en) * 2007-04-27 2009-01-08 Bea Systems, Inc. Enterprise web application constructor system and method
US20090006360A1 (en) * 2007-06-28 2009-01-01 Oracle International Corporation System and method for applying ranking svm in query relaxation

Cited By (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090019357A1 (en) * 2007-04-27 2009-01-15 Bea Systems, Inc. Web based application constructor using page components accessible by url
US20090013244A1 (en) * 2007-04-27 2009-01-08 Bea Systems, Inc. Enterprise web application constructor system and method
US9552341B2 (en) 2007-04-27 2017-01-24 Oracle International Corporation Enterprise web application constructor system and method
US11010541B2 (en) 2007-04-27 2021-05-18 Oracle International Corporation Enterprise web application constructor system and method
US10229097B2 (en) 2007-04-27 2019-03-12 Oracle International Corporation Enterprise web application constructor system and method
US11675968B2 (en) 2007-04-27 2023-06-13 Oracle Iniernational Corporation Enterprise web application constructor system and method
US9830309B2 (en) 2007-04-27 2017-11-28 Oracle International Corporation Method for creating page components for a page wherein the display of a specific form of the requested page component is determined by the access of a particular URL
US8819542B2 (en) 2007-04-27 2014-08-26 Oracle International Corporation Enterprise web application constructor system and method
US20080270915A1 (en) * 2007-04-30 2008-10-30 Avadis Tevanian Community-Based Security Information Generator
US20090031286A1 (en) * 2007-07-25 2009-01-29 Oracle International Corporation Device-based software authorizations for software asset management
US8407669B2 (en) 2007-07-25 2013-03-26 Oracle International Corporation Device based software authorizations for software asset management
US8140842B2 (en) * 2008-05-29 2012-03-20 International Business Machines Corporation Client identification and authorization in an asynchronous request dispatching environment
US20090296942A1 (en) * 2008-05-29 2009-12-03 International Business Machines Corporation Concept for securing and validating client-side storage and distribution of asynchronous includes in an application server environment
US20090300345A1 (en) * 2008-05-29 2009-12-03 International Business Machines Corporation Concept for Client Identification and Authorization in an Asynchronous Request Dispatching Environmnet
US9582776B2 (en) 2009-10-09 2017-02-28 Oracle International Corporation Methods and systems for providing a comprehensive view of it assets as self service inquiry/update transactions
US20110087604A1 (en) * 2009-10-09 2011-04-14 Oracle International Corporation Micro-blogging for enterprise resources planning (erp)
US20110087601A1 (en) * 2009-10-09 2011-04-14 Oracle International Corporation Methods and systems for providing a comprehensive view of it assets as self service inquiry/update transactions
US20130254671A1 (en) * 2010-06-21 2013-09-26 Salesforce.Com, Inc System, method and computer program product for performing actions associated with a portal
US8667140B1 (en) 2011-03-31 2014-03-04 Emc Corporation Distinguishing tenants in a multi-tenant cloud environment
US9323581B1 (en) * 2011-03-31 2016-04-26 Emc Corporation Space inheritance
US20120297007A1 (en) * 2011-05-20 2012-11-22 International Business Machines Corporation Multi-domain co-browsing utilizing localized state management
US9317615B2 (en) * 2011-05-20 2016-04-19 International Business Machines Corporation Multi-domain co-browsing utilizing localized state management
US20130085961A1 (en) * 2011-09-29 2013-04-04 Oracle International Corporation Enterprise context visualization
US11210610B2 (en) 2011-10-26 2021-12-28 Box, Inc. Enhanced multimedia content preview rendering in a cloud content management system
US20130198600A1 (en) * 2012-01-30 2013-08-01 Box, Inc. Extended applications of multimedia content previews in the cloud-based content management system
US11232481B2 (en) * 2012-01-30 2022-01-25 Box, Inc. Extended applications of multimedia content previews in the cloud-based content management system
US9311624B2 (en) 2012-02-09 2016-04-12 International Business Machines Corporation System to view and manipulate artifacts at a temporal reference point
US9311623B2 (en) 2012-02-09 2016-04-12 International Business Machines Corporation System to view and manipulate artifacts at a temporal reference point
GB2514950A (en) * 2012-02-09 2014-12-10 Ibm A system to view and manipulate artifacts at a temporal reference point
US8751567B2 (en) 2012-02-09 2014-06-10 Oracle International Corporation Quantify and measure micro-blogging for enterprise resources planning (ERP)
WO2013119416A1 (en) * 2012-02-09 2013-08-15 International Business Machines Corporation A system to view and manipulate artifacts at a temporal reference point
US20140013247A1 (en) * 2012-07-03 2014-01-09 salesforce.com,inc. Systems and methods for providing a customized user interface for publishing into a feed
US20140040384A1 (en) * 2012-07-31 2014-02-06 Yakov Faitelson Email distribution list membership governance method and system
US11151515B2 (en) * 2012-07-31 2021-10-19 Varonis Systems, Inc. Email distribution list membership governance method and system
US9892380B2 (en) 2012-09-28 2018-02-13 Oracle International Corporation Adaptive knowledge navigator
US20140281850A1 (en) * 2013-03-14 2014-09-18 Citta LLC System and method of content stream utilization
US9961027B2 (en) * 2013-09-17 2018-05-01 Amazon Technolgies, Inc. Email webclient automatic failover
US10484449B2 (en) 2013-09-17 2019-11-19 Amazon Technologies, Inc. Email webclient notification queuing
US20150081808A1 (en) * 2013-09-17 2015-03-19 Amazon Technologies, Inc. Email webclient automatic failover
US9530233B2 (en) * 2013-10-10 2016-12-27 Adobe Systems Incorporated Action records associated with editable content objects
US20150106337A1 (en) * 2013-10-10 2015-04-16 Adobe Systems Incorporated Action records associated with editable content objects
US20150261799A1 (en) * 2014-03-14 2015-09-17 Siemens Aktiengesellschaft Systems, apparatus, and methods for tracking changes in data structures using nested signatures
US10970457B2 (en) 2017-11-22 2021-04-06 Citta LLC Collaboration mechanism
US11392352B2 (en) * 2018-02-01 2022-07-19 Ricoh Company, Ltd. Guided web-application generation
US11416573B2 (en) * 2018-02-26 2022-08-16 Servicenow, Inc. Bundled scripts for web content delivery
US11144431B2 (en) * 2020-01-30 2021-10-12 EMC IP Holding Company LLC Configuration-based code construct for restriction checks in component of a web application

Also Published As

Publication number Publication date
US20190138582A1 (en) 2019-05-09
US20090031401A1 (en) 2009-01-29
US20090013245A1 (en) 2009-01-08
US11675968B2 (en) 2023-06-13
US9830309B2 (en) 2017-11-28
US20090019522A1 (en) 2009-01-15
US20090024915A1 (en) 2009-01-22
US20210224469A1 (en) 2021-07-22
US20170083498A1 (en) 2017-03-23
US20090013267A1 (en) 2009-01-08
US20230289513A1 (en) 2023-09-14
US20090019357A1 (en) 2009-01-15
US20150046786A1 (en) 2015-02-12
US10229097B2 (en) 2019-03-12
US11010541B2 (en) 2021-05-18
US20090013246A1 (en) 2009-01-08
US20090013244A1 (en) 2009-01-08
US8819542B2 (en) 2014-08-26
US20090024939A1 (en) 2009-01-22
US9552341B2 (en) 2017-01-24

Similar Documents

Publication Publication Date Title
US20090138792A1 (en) System and method for extending ad hoc information around structured data
US8788935B1 (en) Systems and methods for creating or updating an application using website content
KR101152988B1 (en) Contextual action publishing
US6996780B2 (en) Method and system for creating a place type to be used as a template for other places
KR101017923B1 (en) Collaborative web page authoring
JP5642984B2 (en) Discovery, organization and processing of trail-based data content
KR101143198B1 (en) System and method for unified navigation
US7739310B1 (en) Extensible portlet templates
US20020149618A1 (en) Method and system for creating a theme of a place to be used as a template for other places
US11822615B2 (en) Contextual editing in a page rendering system
US20110145689A1 (en) Named object view over multiple files
US10706033B2 (en) Content management system and method for managing ad-hoc collections of content
CA2654861A1 (en) Method for inheriting a wiki page layout for a wiki page
US20100037145A1 (en) Method and system for a personalized web page
US8117553B2 (en) Method and system to maintain a user interface context
JP4976083B2 (en) Information linkage program for information sharing system
Firmenich et al. Distributed Web browsing: supporting frequent uses and opportunistic requirements
Windischman et al. Professional Microsoft Office SharePoint Designer 2007
Hild et al. Beyond the Spreadsheet

Legal Events

Date Code Title Description
AS Assignment

Owner name: BEA SYSTEMS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CUDICH, MATIAS;MORAIS, STEPHAN DENNIS;REEL/FRAME:020928/0110

Effective date: 20080423

AS Assignment

Owner name: ORACLE INTERNATIONAL CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BEA SYSTEMS, INC.;REEL/FRAME:025986/0548

Effective date: 20110202

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION