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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction 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/0486—Drag-and-drop
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/106—Display of layout of documents; Previewing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/123—Storage facilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/137—Hierarchical processing, e.g. outlines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/174—Form filling; Merging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/37—Compiler construction; Parser generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/121—Frame memory handling using a cache memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/403—Arrangements 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
- 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.
- 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.
- Embodiments of the present invention relate to a seamless, collaborative environment for creating applications, consuming information, and contributing content.
- 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.
-
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. - 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. Thebrowser 200,client tier 204, theweb tier 208, theservice tier 214, thefile system 224,content service 226, and relationaldatabase 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, thepage service 212 provides a remote interface for performing create, remove, update, and delete (CRUD) operations on a page. Thepage 216 can be instantiated on theservice tier 214. Thepage manager 218 controls CRUD operations performed on apage 216. A page includes alayout 220 and one ormore components 222. Additional content for pages is accessed from thefile system 224, acontent service 226, and/or a relationaldatabase 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 assembleportal page 300 to be displayed to a user, first a request is made fromgateway 304 to aportal navigation header 310. Then a live space tag is processed out of the header, by passing the tag through the gateway to the livespaces list service 308. In one embodiment, abuilder 306 then returns a list of live spaces in a SOAP envelope through thegateway 304 to theportal 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 ofbuilder 306. In a further alternative embodiment, BEA Aqualogic® Pages is used instead ofbuilder 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 throughgateway 404. In this embodiment, a portal 402 is being used. The gateway then retrieves the content from thebuilder page 406. The gateway then processes the portalnavigation header portlet 408. The gateway then returns thebuilder page 406 with theheader portlet 408 to be displayed to the user. In an alternative embodiment, a portal 402 is not used. In an alternative embodiment thebuilder page 406 is a page created by BEA Aqualogic® Pages. In an alternative embodiment, thebuilder 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. Instep 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. Instep 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. Instep 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 inStep 510, then go to step 516 and build the page object graph from backend objects. From eitherStep 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, butversion 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 beversion 6 andversions - 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.
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)
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)
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)
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)
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 |
-
2008
- 2008-04-23 US US12/108,402 patent/US20090013246A1/en not_active Abandoned
- 2008-04-23 US US12/108,314 patent/US20090024915A1/en not_active Abandoned
- 2008-04-23 US US12/108,280 patent/US20090013267A1/en not_active Abandoned
- 2008-04-23 US US12/108,390 patent/US9830309B2/en active Active
- 2008-04-23 US US12/108,372 patent/US20090019522A1/en not_active Abandoned
- 2008-04-23 US US12/108,352 patent/US20090013245A1/en not_active Abandoned
- 2008-04-23 US US12/108,301 patent/US20090031401A1/en not_active Abandoned
- 2008-04-23 US US12/108,190 patent/US8819542B2/en active Active
- 2008-04-23 US US12/108,411 patent/US20090024939A1/en not_active Abandoned
- 2008-04-24 US US12/109,133 patent/US20090138792A1/en not_active Abandoned
-
2014
- 2014-08-15 US US14/461,134 patent/US9552341B2/en active Active
-
2016
- 2016-12-02 US US15/368,320 patent/US10229097B2/en active Active
-
2019
- 2019-01-04 US US16/240,238 patent/US11010541B2/en active Active
-
2021
- 2021-04-07 US US17/224,848 patent/US11675968B2/en active Active
-
2023
- 2023-05-18 US US18/319,651 patent/US20230289513A1/en active Pending
Patent Citations (49)
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)
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 |