WO2001081829A1 - Method and apparatus for processing jobs on an enterprise-wide computer system - Google Patents

Method and apparatus for processing jobs on an enterprise-wide computer system Download PDF

Info

Publication number
WO2001081829A1
WO2001081829A1 PCT/US2001/013842 US0113842W WO0181829A1 WO 2001081829 A1 WO2001081829 A1 WO 2001081829A1 US 0113842 W US0113842 W US 0113842W WO 0181829 A1 WO0181829 A1 WO 0181829A1
Authority
WO
WIPO (PCT)
Prior art keywords
job
user
server
repository
portal
Prior art date
Application number
PCT/US2001/013842
Other languages
French (fr)
Other versions
WO2001081829A9 (en
WO2001081829A8 (en
Inventor
Kathleen Riddell Polizzi
Chen Shuhong
Robert Mark Bick
Jeffrey Alan Ewry
Peter Alan Burton
Anthony John Murphy
Jackson Streetly Norris
Gail Helen Godbeer
Gadi Yedwab
William Hippenmeyer
Original Assignee
Brio Technology, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brio Technology, Inc. filed Critical Brio Technology, Inc.
Priority to AU2001261084A priority Critical patent/AU2001261084A1/en
Priority to US09/845,057 priority patent/US7266821B2/en
Publication of WO2001081829A1 publication Critical patent/WO2001081829A1/en
Publication of WO2001081829A8 publication Critical patent/WO2001081829A8/en
Publication of WO2001081829A9 publication Critical patent/WO2001081829A9/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/955Object-oriented
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/959Network
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Definitions

  • a manufacturing division of an enterprise may use one kind of computer system specifically designed to handle manufacturing data while the sales division of the same enterprise may use another kind of system for sales information.
  • the engineering division of the enterprise may use an entirely different computer system as well. Using different computer systems for different divisions of an enterprise makes sense because each kind of computer system will provide certain strengths that suit that division.
  • the computer system uses a portal architecture to allow a user to view a wide variety of content retrieved from a variety of different computer systems.
  • the computer system may also be referred to as a portal system.
  • the portal system is configured such that a plurality of users can access the system at the same time through a computer network such as the Internet.
  • the portal system may also be connected to one or more back-end databases that correspond to the different computer systems within the enterprise.
  • the portal system is scalable because many of its components are modular and can be readily duplicated as redundant processors. In this manner, small enterprises and large enterprises may be accommodated by different versions of the same portal system.
  • the portal system acts as a middle- ware program that converts the data and reports from the variety of back-end databases and presents the data to a user in a standardized format.
  • Data is provided to users by the portal system in a format that is readable by a browser program.
  • the user's learning curve for the portal is greatly reduced.
  • the user will be able to select reports and data for viewing by pointing at an item with his mouse and selecting a hyperlink.
  • the portal system may be configured to run predefined jobs to process data. These jobs are stored within the portal system in a computer memory device called a repository. These jobs can perform a variety of tasks such as retrieving data from a back-end database, preparing a report based upon retrieved data, processing data already resident within the portal system, or notifying a user when a particular condition occurs within the portal system. These jobs can be executed on a predefined schedule or on an ad-hoc basis at the request of a user. When a job is executed on a predefined schedule, the output report of the job will often be stored in the repository so that it can be retrieved at a later time.
  • the output report When a job is performed on an ad-hoc basis, the output report will generally be provided to the user immediately through his browser interface. If a job is of particular interest to a user, then the portal system allows a user to subscribe to the job. A subscription will send a notification to the user whenever the job is executed by the portal system. The portal system also allows a user to configure one or more exception conditions for a job that indicate when some element of the output report is outside of a predefined range. A user can subscribe to job exceptions and thus be notified when these exceptions occur.
  • the portal system presents data to a user in an object called a portal page.
  • the portal page is an object arranged in a format that is readable by a browser program.
  • the portal page is a highly configurable document that may be comprised of a plurality of modules called portal objects.
  • Each portal object may contain a set of links corresponding to output reports, jobs, or other objects stored within the repository. Thus, by clicking on one of the links in a portal object, the portal system will process the object corresponding to that link. If the link is directed to a job stored within the portal system, then clicking on that job will cause the job to be executed. If the link is directed to a browsable object stored within the repository, then that object will be displayed to the user.
  • a portal page may also include a display window that can display browsable objects to a user.
  • Another feature of the portal page is a dynamically updated portal object.
  • a dynamically updated portal object is an object that is updated on the user's portal page based upon data stored in the portal system. If a dynamically updated portal object is included within a user's portal page, the user may receive the latest information corresponding to that object by refreshing his portal page. For example, if the dynamically updated portal object is linked to the output report of a job, then the portal object will display the latest version of the output report to the user when the portal page is refreshed.
  • a dynamically updated portal object may also be hyperlinked to its corresponding object in the portal system such that a user may view, edit, or execute the corresponding object by clicking on the dynamically updated portal object at the user interface.
  • Each user ' s portal page may be customized to suit that user's specific needs.
  • a user may add or remove portal objects from his portal page at his discretion.
  • a user may also edit some portal objects in order to add links to reports or objects that the user is interested in.
  • Another way in which a user can customize his portal page is to add and modify "favorites" on the portal page.
  • a user's favorites is a set of links to objects stored in the repository, on an intranet, or on the Internet. These objects may be jobs, reports, or any other kind of data. By clicking one of these links, the corresponding object is presented in the display window.
  • the portal system may also be configured to conduct searches on behalf of a user.
  • the portal system provides the ability to search both structured (databases, XML, formatted text, etc.) and unstructured data (HTML files, web-based content, PDF files, etc.) at locations inside and outside the portal.
  • the portal system 120 also allows the user to configure the searches so that only certain objects, in certain locations are searched. By using these search parameters, a user can streamline a search to identify only highly relevant data. This increases the efficiency of the search and reduces the likelihood of identifying undesired results. If a user constructs a search that produces particularly relevant results, then the user may save those search parameters as a channel.
  • a list of channels stored by a user may be included in a user's portal page, allowing him access to search results by simply clicking on the appropriate channel link.
  • FIGURE 1 depicts a high level view of the portal system connected to a plurality of back-end database and to a plurality of users.
  • FIGURE 2 depicts a lower level view of the portal system including the various service agents.
  • FIGURE 3 depicts an example of the hierarchy of categories and objects residing in the repository.
  • FIGURE 4 depicts some of the categories of properties associated with jobs stored in the repository.
  • FIGURE 5 depicts some of the properties associated with schedules residing in the event server.
  • FIGURE 6 depicts some of the properties associated with each service agent residing in the portal.
  • FIGURE 7 depicts some of the properties associated with a repository, an authentication server, and a job server residing in the portal.
  • FIGURE 8 depicts some of the properties associated with a search server and a channel residing in the portal.
  • FIGURE 9 depicts some of the catego ⁇ es of properties associated with a crawler residing m the knowledge server of the portal
  • FIGURE 10 depicts a representative example of a portal page as seen by a user with a browser program.
  • FIGURE 11 depicts a representative example of an input form presented to a user du ⁇ ng the execution of a job.
  • the system is designed to connect a plurality of users to the portal system so that the users can access and process data that is stored therein.
  • the system may also be connected to one or more back-end databases so that a user can view, and process data that is stored therein.
  • a variety of back-end databases using different operating systems are connected to the portal system.
  • the portal system allows a user to access data from a wide variety of back-end databases with a single computer interface.
  • Another desc ⁇ bed aspect uses the portal system as a middle- ware program for converting a user's instructions into commands to retrieve and process data from the back-end databases.
  • Another desc ⁇ bed aspect uses the portal system to display the results of a back-end process to the user in a format that can be read by a standard browser program.
  • Another described aspect uses the portal system to process data that is stored in the portal system and provide output reports to a user.
  • the portal system thus provides a one- stop interface for accessing, processing, and providing a wide va ⁇ ety of data to a plurality of users.
  • the user interface may be based upon a standard browser program that is capable of reading Hypertext Markup Language (HTML).
  • HTML Hypertext Markup Language
  • the browser may also be capable of reading other web-based programs such as Java, XML, Macromedia Flash, or other languages.
  • FIGURE 1 depicts a high-level illustration of one embodiment of the portal system 120.
  • a plurality of users 100 are connected to a network interface 105 through a computer network 110.
  • the computer network 1 10 can take many forms including a direct connection, a local-area network, an enterprise intranet, a wireless network, the Internet, or any combination thereof.
  • the network interface 105 is connected to a portal system 120 through a web client 115.
  • a service broker 125 that controls access to the computer system and a plurality of service agents 130 that are configured to perform specific tasks within the portal system 120.
  • Also connected to the portal system 120 are several back-end databases 135, 140, 145, 150 in which data is stored.
  • FIGURE 1 is a block diagram that represents certain functional aspects of the invention as separate blocks. These functional blocks may be implemented on separate computer platforms or on the same computer platform.
  • each of the back-end databases 135, 140, 145, 150 may contain different kinds of data and may use different operating system platforms.
  • back- end database 135 could be a Unix-based system in which statistical process control information about a manufacturing facility is stored.
  • Back-end database 140 could be a PC- based database in which human resources data (employee payroll, headcount, organizational structure, etc.) is stored.
  • Back-end database 145 could be an Oracle-based system in which sales and inventory information is stored.
  • back-end database 150 could be a Windows NT server in which benefits and pension information is stored.
  • Different databases and platforms are sometimes used for different groups within an enterprise because each group has specialized needs that are best served by their respective back-end databases.
  • the embodiments disclosed herein address this difficulty by using the portal system 120 as a common interface between the various back-end databases 135, 140, 145 & 150 and a user 100.
  • data can be retrieved from the back-end databases and presented to the user in a standardized format through the web client 1 15.
  • a user 100 may request that the portal system 120 produce a graph illustrating the enterprise's manufacturing yield over the past year.
  • the portal system 120 Upon receiving the request, the portal system 120 would retrieve yield data from manufacturing back-end database 135 and process that data to generate a bar chart corresponding to the user's request.
  • This bar chart would then be presented to the user 100 through his browser program. That same user 100 may also request, during the same session, an update of the sales figures for the enterprise for the current month.
  • the portal system 120 would retrieve sales data from the sales back-end database 145, process that data, and generate a figure corresponding to the user's request. This data would then be presented to the user 100 through his browser program.
  • the portal system 120 has the ability to simultaneously perform each of these tasks and present this data to the user 100 with a single interface.
  • FIGURE 2 discloses another embodiment of the portal system 120.
  • FIGURE 2 a plurality of users 100 are connected to a network interface 105 through a computer network 110.
  • a web client 115 is resident on the network interface 105 that interfaces the users to a portal system 120.
  • three back-end databases 200, 205 and 210 that are connected to the portal system 120.
  • a service broker 125 and a plurality of service agents: an event server 215, an authentication server 220, a name server 225, a job server 230, a repository 235, and a knowledge server 240 that includes a search server 245 and a crawl server 250.
  • FIGURE 2 is a block diagram that represents certain functional aspects of the portal system 120 as separate blocks. These functional blocks may be implemented on separate computer platforms or on the same computer platform. The functions served by the service agents of FIGURE 2 are summarized below.
  • the service broker 125 serves two functions in the portal system. It controls access to the portal system 120 by users 100 and controls the disposition of jobs to the service agents within the portal system. By controlling the disposition of jobs, the service broker 125 ensures that jobs are processed in an orderly manner and that none of the service agents become overloaded.
  • the event server 215 schedules events, such as jobs, for processing in the portal system 120 on a predefined timetable.
  • the authentication server 220 is used to determine if a particular user should be granted access to the portal system 120. The permissions and group memberships for a particular user are also stored in the authentication server 220.
  • the name server 225 is the storage location for configuration information about all of the other service agents.
  • the job server 230 is used to execute jobs in the portal systeml20.
  • the job server 230 can retrieve data from a back-end database 200, 205 or 210 to be processed for a particular job.
  • Each job server 230 may be connected to at least one back- end database 200, 205 or 210 in order to retrieve data therefrom.
  • the job server 230 may also be a stand-alone unit which process jobs that do not retrieve data from any external sources.
  • the repository 235 is used as a storage device for all information that is to be stored in the portal system. All computer files that are stored in the repository 235 are called objects.
  • the knowledge server 250 provides the search and channel functions for the portal system 120.
  • the knowledge server 250 is comprised of two components: a search server 245 and a crawl server 250.
  • the crawl server 250 uses one or more crawlers to analyze and index specific information that is stored in the repository 235, a company intranet, or the Internet.
  • a crawler can be configured to search only in certain locations in the repository 235, a company intranet, or the Internet for information to be indexed.
  • the indices produced by the crawl server 245 are stored in the knowledge server 240 in files called information sources. Depending upon the settings of the crawl server 250, an information source will contain an index of objects found both within the portal system (i.e. in the repository 235), or outside the portal system (i.e. on an intranet or the Internet).
  • the crawl server 250 is capable of indexing structured and unstructured data.
  • the search server 245 uses the information sources produced by the crawl server 250 to conduct searches on behalf of a user.
  • the portal system 120 can include redundant service agents for processing user requests. In this manner, the portal system 120 is scalable to handle both a small enterprise with a small number of users and a large enterprise with many redundant service agents for processing requests from thousands of users.
  • One aspect of the portal system 120 utilizes the various service agents to process jobs for the benefit of users. Many of these jobs can retrieve data from the back-end databases 200, 205 & 210 and process that data to generate an output report. Jobs may also be used to process data that is resident within the portal system 120.
  • jobs could include a weekly report on manufacturing statistics for the enterprise, or a report describing the cu ⁇ ent status of the enterprises ' accounts receivable. Because these jobs utilize data that is retrieved directly from the back-end databases, the output reports generated by these jobs reflect an up-to-the-minute status of the corresponding aspect of the enterprise.
  • a job is stored in the repository 235 of the portal system 120. When a job is to be executed, it is retrieved from the repository and sent to an appropriate job server 230 for processing. At the job server 230, the job is executed. Sometimes, a job will require that certain data be retrieved from a back-end database 200, 205 or 210.
  • jobs are written in SQL language so as to facilitate the retrieval of data from the back-end databases.
  • the job will produce an output report.
  • This output report may be stored in the repository 235 after the job is complete.
  • An output report may also be provided directly to a user 100 through the web client 115.
  • Jobs may be processed by the portal system 120 on either an ad-hoc basis or on predetermined schedule. Jobs processed on an ad-hoc basis are usually executed at the request of a user 100 connected to the portal system 120.
  • the job is first retrieved from the repository 235 and sent to an appropriate job server 230 for processing.
  • the output report will be transmitted to the user 100 via the web client 115.
  • the output report may be stored in the repository 235 even though it was processed on an ad-hoc basis. Jobs may also be configured to run on a predetermined schedule. Information describing these schedules is stored in the event server 215.
  • the job When configuring a job to run on a predetermined schedule, the job must first be associated with a schedule in the event server 215. If there is not a pre-existing schedule in the event server 215 that matches the timetable for the job, then a new schedule can be created in the event server 215. When the designated time for a schedule a ⁇ ives, the event server 215 generates a list of the jobs that have been associated with that schedule and sends that list of jobs to the service broker 125 for execution. The service broker 125 then dispatches the jobs for execution on the appropriate job server 230. The output results for each of these jobs are then sent to the repository 235 for storage.
  • a user may subscribe to a particular object or category that is stored in the repository 235. Thus, if an object or category within the repository 235 is modified, then all of the subscribing users are notified of the change. Users may also subscribe to a job such that when a job is executed, the user will be notified. If a user subscribes to a job, then he will be notified of its execution regardless of whether the job was run on a pre-determined schedule, or on an ad-hoc basis. Users may receive notification in a variety of ways including e-mail or notification on the user's portal page. The portal system may also be configured to provide a copy of the job's output report as an attachment to the notification e-mail or as an automatic update to a user's portal page.
  • An exception is a condition that is tied to the results of a job.
  • An exception occurs when the output report of a job includes information that is outside of a predetermined range. Any number of exception conditions can be configured for a job. However, if any of them indicate that an exception condition exists, then the entire job will indicate that an exception condition exists. Only certain jobs within the portal system 120 can be configured to indicate an exception condition. Users can subscribe to exceptions in much the same way that they subscribe to a particular job. Thus, if the execution of a job produces an exception condition, then all of the subscribing users will be notified of the exception condition. Notification of exception conditions may also occur through e-mail or a user's portal page. A user may configure his portal page to provide a dynamically updated portal page which displays the status of an exception condition. This is called an exception dashboard.
  • a channel is an abstract of a search, which was constructed by a user, that has been stored in the repository for processing at a later date.
  • a channel is a search that produces a set of highly relevant results for a user.
  • a user can update the channel at any time to see if any other highly relevant documents have become available.
  • the parameters for constructing the search are highly configurable by the user, thus allowing him to construct a very efficient search.
  • the channel can be configured to search limited areas of the repository 235; a company's intranet, and the Internet for new information.
  • a user may share his channels with other users such that they can incorporate the channels into their portal pages.
  • a user's channels may be stored in the repository 235 with the user's other portal page data.
  • FIGURE 10 depicts a representative example of another aspect of the portal system 120 called a portal page 1000.
  • a portal page presents data to a user when he logs into the portal system 120. Because a portal page is presented to a user 100 through the web client 115, the data must be arranged in a format that is readable by a user's browser program.
  • FIGURE 10 a wide variety of data is presented to a user 100 in the form of portal objects.
  • a portal object is a modularized collection of links, graphics, or other data that may be presented to the user in a portal page 1000.
  • the portal objects depicted in FIGURE 10 include broadcast messages 1005, a company billboard 1010, a user's customized bookmarks 1015, an exceptions dashboard 1020, and a syndicated content object 1030.
  • a display window 1025 is a window in the portal page 1000 in which a user 100 may view browsable objects.
  • the display window 1025 may display a variety of objects from the repository (output reports, HTML objects, dashboards, etc.) or pages from the Internet.
  • a user can select content to be displayed in the display window 1025 by selecting an appropriate link in the portal page 1000.
  • the portal objects present in a user's portal page are highly configurable so that a user may customize his portal page 1000 to suit his particular needs.
  • Some portal objects can be configured such that they must appear on every user's portal page 1000. These portal object are called mandatory portal objects.
  • Mandatory portal objects may be used to ensure that all users 100 of the portal system 120 are presented with certain content whenever they use the portal system 120.
  • An example of such a mandatory portal object is the broadcast messages portal object 1005 in FIGURE 10.
  • Portal objects may also be configured such that a user 100 may remove the portal object from his portal page, but cannot modify the content of the portal object.
  • An example of this kind of portal object is the company billboard portal object 1010 of FIGURE 10. In FIGURE 10, it can be seen that a user 100 may remove the company billboard portal object 1010 by clicking the "X" icon 1008 in the upper right-hand corner of the object.
  • Portal objects may also be configured such that a user can both modify the content of the object, and remove the portal object from his portal page 1000.
  • An example of this kind of portal object is the "My Bookmarks" portal object 1015 of FIGURE 10.
  • FIGURE 10 it can be seen that a user 100 can remove the "My Bookmarks” portal object 1015 in its entirety by clicking the "X" icon 1008 in the upper right-hand corner of the object.
  • a user 100 can modify the content of his personal portal page 1000, by adding or removing certain portal objects or by modifying the content of certain portal objects.
  • the exception dashboard 1020 is fully configurable by a user 100, but may only be used to indicate when certain exception conditions have been met.
  • the exception dashboard 1020 is configured to display a traffic light that is green when no exceptions are present and red when exceptions have been found.
  • a user may add more than one indicator to the exception dashboard, such that there is a corresponding indicator for each exception condition that he has subscribed to.
  • a user 100 may also customize his personal portal page 1000 by using favorites and channels. If a user 100 identifies a certain object in the repository 235 that is particularly relevant to him, then that user may add the object to his Favorites. When an object is added to a user's favorites, a link corresponding to that object is added to that user's list of favorites. A user may view a list of his favorite objects by selecting the "Favorite Items" link 1075 in his personal portal window 1001. The user 100 may then view any of the listed objects in the display window 1025 by clicking on a corresponding link. A user 100 may also create a list of favorite categories in the repository by using the favorite categories link 1080 in his personal portal page 1000. In addition, a user may create a list of favorite channels by using the "my channels" link 1085 in his personal portal page.
  • FIGURE 11 depicts a representative example of another aspect of the portal system 120 called a Form.
  • Forms allow a user 100 to provide input to a job while a job server 230 is executing the job. Because a form is presented to a user 100 through the user's browser interface, the form should be in a format that can be read by a standard browser program. Languages, which can be used to create forms, include HTML, Java, Macromedia Flash and XML.
  • a user 100 is presented with four input fields which must be provided to the job before it can be executed: i) a sales region option 1 100, ii) a quarter option 1105, iii) a chart style option 11 10, and iv) a dimensions option 1115.
  • the sales region option 1100 and the chart style option 1110 are configured as drop-down menus from which a user may select.
  • the quarter option 1105 and the dimensions option 11 15 are configured as radio buttons from which a user may select.
  • a form may utilize a wide variety of other mechanisms to provide input to a job such as a blank text field or an image with selectable fields. Many different input mechanisms, which are known in the art of browser language programming, may be utilized here. After a user 100 has selected values corresponding to each of the input fields, the user 100 submits these values to the job server 230. In FIGURE 1 1, this may be accomplished by pressing the "RUN" button 1 120 at the bottom of the form.
  • a user 100 may also reset the input values that have been selected to the form's default values by pressing the "RESET” button 1 125 at the bottom of the form.
  • a user 100 can also save certain input settings as the user's default values by selecting the "SAVE AS MY DEFAULTS" option 1 130 in FIGURE 1 1.
  • these default values are stored with the user's profile in the portal system 120.
  • the form will utilize the user's default values instead of the system default values.
  • Each job in the repository 235 may be associated with one or more forms depending upon how much input is to be provided by the user 100.
  • the files conesponding to each form are stored in the repository 235.
  • the Service Agents controls access to the portal system 120 by a particular user 100.
  • the service broker 125 also provides session management services for users, and acts as a gateway to the other service agents within the portal system 120.
  • the service broker 125 dispatches user requests to an appropriate service agent with the help of the name server 225 For example, when a client requests to see files that are stored on the repository 235, the service broker 125 will first consult name server 225 to determine the location of the repository 235, and then dispatch the request to that location If the portal system 120 is configured to include redundant service agents, then the service broker 125 will dist ⁇ bute requests to those service agents in a round-robin manner Each portal system 120 will have only one name server 225 and one repository 235, but may have multiple service brokers 125
  • the service broker 125 provides location transparency so that users 100 are unaware of the actual location of the back-end servers 200, 205 & 210 or the service agents withm the portal system 120. Accordingly, a service agent or back-end database 200, 205 & 210 may be moved from one machine to another (possibly for performance reasons) without affecting the user's interface
  • the user only needs to log in to the correct service broker 125 in order to have access to all of the features of the portal system 120 This greatly simplifies the login procedure and the browser interface for a user
  • the service broker 125 also dist ⁇ butes work evenly among the service agents that support identical services For example, if two job servers 230 provide the same services, then one service broker 125 will dispatch work in balanced amounts between them This round-robm load balancing improves performance since two machines can process job server 230 requests in parallel Replication of a service agent also helps ensure fault tolerance If two different job servers 230 provide identical services and one of them is not available, then the portal system 120 will continue to operate properly, as the service
  • the name server 225 offers a directory lookup and initialization service for the other service agents installed in the portal system 120.
  • the name server 225 also manages configuration information about the installed service agents.
  • Each portal system 120 will have only one name server 225. Accordingly, it is useful to think of a portal domain 120 as the entity managed by a single name server 225.
  • the name server 225 stores metadata about the service agents in a Relational Database Management System (RDBMS).
  • RDBMS Relational Database Management System
  • the portal stores the RDBMS connectivity information for the name server 225 in a file stored in the repository 235.
  • Each service agent in the portal system 120 must contact the name server 225 to acquire its configuration information during startup. Accordingly, the name server 225 should be started before starting any of the other service agents in the portal system 120.
  • the name server 225 also maintains a configuration administrator account, which allows an Administrator to manage configuration data about the service agents.
  • FIGURE 3 depicts a representative embodiment of the repository 235 of the portal system 120.
  • the repository 235 is a computer memory storage device within the portal system 120.
  • a variety of computer files, known as objects 300 are stored in the repository 235.
  • Each of the objects 300 is assigned to a specific Category or Subcategory 305, 310, 315 within the repository 235.
  • Categories and Subcategories 305, 310, 315 in the repository 235 are similar to file system directories or folders.
  • Each category, subcategory, and object is defined with a set of properties. These properties include the name of the user who owns the object or category as well as permissions for the object or category. The permissions define which users can access a category or object.
  • a user or administrator can structure the categories such that users can find information in an intuitive manner.
  • the categories can also be a ⁇ anged in a manner that efficiently implements security measures for sensitive data.
  • An object can be any kind of computer file, including the following: 1)
  • Ordinary Files such as text documents, spreadsheets, presentation graphics. HTML files and other documents and executables from general office applications; 2) jobs - executable program files from applications such as Brio. ReportTM. Oracle Reports, SAP Reports, etc.; 3) Categories - user-defined groups of objects similar to file system directories or folders; 4) External links - a file which encapsulates an Internet URL as well as metadata describing the link; and 5 channels - software 'abstracts' of searches that can be readily fine-tuned by selecting documents from current search results.
  • Each object is assigned a property called a MIME type.
  • a MIME type is the Multipurpose Internet Mail Extension associated with an object. Essentially, the MIME type describes the format of the data on the object. The MIME type identifies which application or job server 230 should be used to open an object.
  • Each object placed in the repository for storage will be assigned a single MIME type.
  • the authentication server 220 is responsible for authenticating users who connect to the various service agents in the portal system 120. For example, when a user 100 logs into the portal system 120, the authentication server 220 checks the user's credentials and either allows or disallows the user to connect. In addition, the authentication server 220 identifies all of the properties and group memberships assigned to a particular user 100. Some of the properties that can be associated with a user 100 include a username, password, e-mail address, and permissions. The permissions associated with a user 100 define the ability of the user to read, write and execute objects stored in the repository 235. A Group is used to define permissions for a set of users, rather than individual users.
  • the authentication server 220 may be a server integrated into the portal system 120, or it may be an external system that is electrically connected to the portal system 120.
  • An external authentication server 220 is useful when an external system already exists that defines a set of users 100, passwords, and group memberships. Communication between an external authentication server 220 and a portal system 120 may be established by using a LDAP driver.
  • the portal system 120 enables a plurality of users to execute common jobs and to access the output reports of those jobs with a browser program interface.
  • the job server 230 executes external programs, such as SQR programs, in the portal system 120.
  • FIGURE 2 illustrates that the job server 230 is electrically connected to the service broker 125, the repository 235 and at least one back-end database 200, 205 or 210.
  • a user 100 transmits a request to the portal system 120 to execute a particular job
  • the job is sent from the repository 235 to the job server 230 for execution.
  • the job server executes the job and returns the resulting job output to the user 100.
  • the job server 230 stores job output in the repository 235 as an object.
  • the job server 230 can be configured to execute a variety of enterprise applications such as SQR Server and Oracle Reports. Furthermore, a plurality of job servers 230 can be installed in a portal system 120 to allow parallel execution of job requests. By storing the output reports from job servers 230 as an object in the repository 235, multiple users 100 can utilize dynamic open links to these objects within their personalized portal pages.
  • the event server 215 provides three services in the portal system 120: scheduling services, subscription services, and distribution/notification services.
  • the scheduling service dispatches pre-scheduled jobs for execution by one of the job servers 230.
  • the subscription service allows a user to subscribe to a particular job and receive job output when a job server 230 has executed the job.
  • the distribution/notification service notifies a user when relevant events occur such as completion of a job or identification of a particular exception.
  • the event server 215 provides three kinds of notifications to users: 1) Report
  • Completion - a user is notified when an SQR program or other job is executed, creating a new version of the job output; a user can subscribe to either scheduled or unscheduled jobs; 2) Changed Content in a category - a user is notified when the contents of a category or subcategory changes; and 3) New Versions of an object - a user is notified when a new version of an object is stored in the repository or when an object is updated. Notifications are provided to users in a variety or ways including e-mail, a link on the user's browser interface, or an icon that appears in the user's browser interface.
  • the knowledge server 240 provides full text searching and concept matching for documents located on Internet, intranet, and portal sites.
  • the knowledge server 240 is configured to conduct searches upon both structured data and unstructured data.
  • Structured data is data that is stored in a format that facilitates processing by a computer such as databases or structured filing systems like the repository 235.
  • Unstructured data includes information that is arranged in a format designed for review by humans such as news articles, press releases, or any documents posted on the Internet to be read by humans.
  • the knowledge server 240 can process structured and unstructured data from a variety of locations including the Internet; a company's intranet, and the portal repository 235. By using concept ranking algorithms and processes, the knowledge server 240 can qualitatively analyze structured and unstructured data and present only those items (structured or unstructured) which are most relevant to the user's search request.
  • the documents that can be searched by the knowledge server 240 include HTML documents, Microsoft documents (such as MS Word), PDF files, text files, Brio.QueryTM data files, and many others.
  • the knowledge server 240 has two components: a search server 245 and a crawl server 250. Each portal system 120 supports a single search server 245 and a single crawl server 250 that communicate with each other. These components are interrelated and cannot function without each other.
  • the crawl server 250 downloads documents from Internet, intranet, and portal sites and indexes them into a database called an information source. Documents must be indexed into information sources before they can be retrieved by a search. Crawlers, which are crawl server agents, can navigate the portal, an intranet, and the Internet, according to certain predefined crawler properties. When a crawler begins executing, it starts at the first URL and downloads the document. The crawler determines whether the document should be indexed based on the crawler properties and if so, it parses the document. If the document is an HTML file, the crawler will follow hyperlinks to other documents and download them. A crawler can be configured to gather documents from multiple URLs.
  • crawler properties for several Web sites. For example, it might be desirable to use a single crawler to index a number of news sites and update the same information source, News, daily at 6:00a.m. Conversely, if one wants to use different crawler Properties for different Web sites, then separate crawlers may be created to index the Web sites.
  • the crawl server shall be running in order for the crawlers to execute. If the crawl server is shut down, then all crawlers that are in progress will stop and crawlers scheduled in the future will not execute. Crawlers that are run interactively do not interfere with crawlers that are running based on a schedule. Hence, it is possible (though not useful) to run a crawler interactively while it is executing based on its schedule.
  • the crawl server 250 can index sites that are accessible through proxy server or sites that require authentication.
  • the crawl server 250 may include more than one crawler.
  • the document references and other metadata identified by a crawler are stored in information sources. Each crawler can be configured with certain parameters to control which documents to index into information sources.
  • the search server 245 manages full text searching of documents that have been indexed into information sources by the crawl server 250.
  • the search server uses a proprietary search engine which is commercially available.
  • the search server 245 may be configured to perform searches constructed by a user on an ad-hoc basis or to perform searches on a predefined schedule. These search results, particularly those of scheduled predefined searches, may be presented to the user on his or her personalized portal page or though portal objects.
  • More than one information source may be configured in the portal. If there is a reasonable partitioning of the data on the repository 235, it may be desirable to maintain multiple information sources corresponding to each of these partitions. Indexing documents into separate information sources can help users 100 narrow searches to a particular information source to get more precise results. When structuring a search, choosing to use only information sources that contain useful information can eliminate extraneous documents. The best number of information sources to be searched will depend on how much precision and flexibility the user wants in constructing his searches. Too many information sources will clutter the interface and may lead a user to simply select all information sources, negating the purpose of having separated them. An administrator can set information sources to remove old documents after a specified amount of time, or move them into a different information source.
  • the portal system 120 provides channels through which data can be dynamically provided to the user's personal portal pages or dashboards.
  • the portal system 120 allows a user 100 to organize content from the search server's information sources and the repository 235 in channels.
  • a channel is a vehicle for organizing search results.
  • a user can create and maintain channels for private use. For example, a user might search the company intranet and the Internet about the fishing industry in the Pacific Rim, then create a private channel called Fishing: Pacific Rim that will contain the query options specified in the search. Fishing: Pacific Rim will then appear on the left frame of this user's Personal tab and each time the user clicks on Pacific Rim, the web client runs the search and surfaces the results for that channel.
  • Users 100 with write permissions to a category can publish a channel that will reside in that category. Users 100 must have read permissions to the channels they are publishing. For example, a user 100 who is a sales manager can publish an HR Forms channel in a sales category to which she has write permission.
  • the characteristics and settings of the portal system 120 are defined by using Properties. Properties describe the characteristics and parameters of the service agents, jobs, schedules, and objects stored in the repository 235. The properties associated with each of these items are stored in a Relational Database. The Relational Database is administered by a Relational Database Management System (RDBMS). The properties associated with the different aspects of the portal system 120 are described below.
  • An executable program and its associated files stored in the repository 235 are known as a job.
  • a typical example of a job is any kind report program, including SQR programs and other report applications.
  • a job includes all of the information needed by a properly configured job server 230 to execute a specific report or program.
  • An SQR job is a report or program that is written in Structured Query Language along with its associated files.
  • a non-SQR job uses an application other than SQR such as Brio.ReportTM.
  • Such a job comprises the report or program to be executed (for example, an Oracle report or a Crystal report), the script, batch file, or executable used to run the report or program, and any associated files (for example, GIF files, Include files, and so on).
  • An SQR job may be either secure or nonsecure.
  • a SQR program is secure if it uses the SECURITY command.
  • FIGURE 4 depicts the hierarchical arrangement of the properties associated with a job.
  • the properties associated with each job are stored in a relational database including the following groups: General Properties 400, Advanced Properties 405, Associated
  • the General Properties 400 associated with a job include the name of the job, a brief description of what the job does, a user 100 who is identified as the owner of the job, an expiration date for the job, an auto-delete flag, the group to which the job has been assigned, and the keywords associated with the job.
  • the user 100 that is identified as the owner of the job will generally have full permissions to edit and delete the job.
  • the expiration date property is used to automatically delete the job after a specified period of time.
  • the group property gives members of the assigned group permissions to access or modify the job.
  • the keywords are used to make the job easier to find by a user 100 using the search feature of the portal.
  • the Advanced Properties 405 associated with a job include the MIME type, the security mode flag, the rating of the job, a browsable flag, an exception flag, a background mode flag, a prompt-for-database-login flag, and permissions.
  • the MIME type property indicates which program is used to open the job.
  • the security mode flag indicates whether the job has been configured as a secure SQR job.
  • the rating indicates whether the priority of the job output is Normal or High.
  • the browsable flag indicates whether a user 100 can see the job by using the browser user interface.
  • the exception flag indicates whether the job can report Exceptions.
  • Exceptions are conditions that appear in the output of a job that require some intervention or threshold to monitor.
  • Users 100 have the option to subscribe to an exception associated with a job. If a user 100 subscribes to an exception, then he/she will be notified, by e-mail or the exceptions dashboard, when an exception occurs during the processing of the job.
  • the background mode flag indicates that the job is to be executed in the background, thus allowing a user 100 to perform other tasks while waiting for the job to complete.
  • the prompt-for-database-login flag indicates that the user 100 will be prompted for a back-end database username and password when the job is executed.
  • the permissions indicate the kind of access to be given to the owner, the assigned group, or any other user 100.
  • the Associated Objects properties 410 identify a list of objects or files which are needed by the job to be executed correctly.
  • the Associated Objects include files required by the job at compile time, files required by the job at run time, and files required by the job when generating report output formats.
  • the ASK Properties 415 are used only for SQR jobs. These properties are used to prompt a user 100 to provide input at the time that a job is compiled.
  • the ASK Properties can be provided to the job in several different ways: user input, command-line arguments, or entries in an associated ASK file.
  • An ASK property may include either static parameters or dynamic parameters. With a static parameter, the web client form contains a blank field where the user either types in a value or accepts the default. With a dynamic parameter, the web client form contains a drop-down list of values obtained from the back- end database. The user 100 chooses one of these values by using the browser program.
  • ASK property will have several fields 445 including a prompt to be provided to the user, the default value of the input parameter, the name of a table to be used for a dynamic parameter, and a column name.
  • the INPUT Properties 420 are used to provide input to a job when it is executed.
  • An INPUT property may include text-field parameters, static-choice parameters or dynamic-choice parameters.
  • the web client form presents a text entry field with a default value. The user 100 may either type in a new value or accept the default entry.
  • For a static-choice parameter the web client form presents, at the time of job execution, a drop-down list, or a group of radio buttons showing a selection of values that has been assigned by the owner of the job.
  • For a dynamic-choice parameter the web client form presents, at the time of job execution, a drop-down list, or a group of radio buttons showing a selection of values obtained from the back-end database. The user 100 chooses one of these values at the time of job execution by using the browser program.
  • Each INPUT property will have several fields 450 including a prompt to be provided to the user, the type of input to be provided, and the default value of the input parameter.
  • the Output Properties 425 define the parameters which are to be associated with the output files generated by a job. Some of these parameters include an output- file displayable flag, an auto-delete flag, a propagate permissions flag, and permissions.
  • the output-file displayable flag indicates whether the web client can display the content of an HTML output file instead of merely display a link to it.
  • the auto-delete flag indicates whether the output file is to be automatically deleted after a pre-determined period of time.
  • the propagate permissions flag indicates whether the same permissions set for the job should be assigned to the output file.
  • the permissions define the ability of certain users to access, edit or delete the output file.
  • the Format Properties 430 define the format for the SQR job output. Format options include Hewlett Packard laser jet printer (.hp), line printer (.lp), postscript (.ps), comma-separated value (.csv), Adobe Acrobat (.pdf), and Brio. QueryTM data (.bqd). HTML output is always generated. If the job is a secure SQR job, then only HTML output type is available.
  • the Options Properties 435 define run-time parameters associated with a job.
  • the options properties 435 include the username and password needed to run the job, the command-line flags for the job, the application needed to run the job, and a compile flag indicating whether the job is to be compiled immediately or at a later time.
  • the Form Properties 440 define the Forms which are used during run-time to collect input for the job.
  • a form can consist of a simple HTML page that contains a form, or it can be a complex HTML page that invokes JavaScript or an applet.
  • the form can also be a customized Web-based parameter collection form that has been developed by the enterprise for use in its jobs.
  • the form is stored in the repository 235.
  • a user 100 can assign a form from the file system, or one that is already in the repository. Alternatively, a user 100 can choose to have the web client automatically generate a default Form.
  • the form properties 440 include an HTML Parameter Collection Form, a list of Files Required by the HTML Form, a Show Parameter List when Running the job flag, and a Save As My Defaults flag.
  • the HTML Parameter Collection Form describes the name of the form to be assigned to a particular job.
  • the list of Files Required by the HTML Form describes the supporting files, such as GIF images, used by the form for data collection.
  • the Show Parameter List when Running the job flag is used to enable a drop-down list of existing parameter lists when the user 100 is preparing to execute the job.
  • the Save As My Defaults flag is used to indicate that a checkbox should be provided to the user 100 when the job executes asking him/her if the input settings should be saved as default values.
  • FIGURE 5 illustrates the properties associated with a schedule stored in the event server. Jobs that are created in the portal system 120 can be set up to run on a predetermined schedule. To schedule a job, it must be associated with a Time Event 505, a
  • Time events 505 define the timetable for running a job. Because time events are not necessarily associated with a particular job, a user 100 can utilize each time event 505 to schedule multiple jobs. Typically, several standard time events 505 will be present in the portal system 120. This allows a user 100 to select a time event 505 which best matches his needs. Each time event 505 will have several properties 515 associated with it including a brief description, a creation date, an owner, a group, permissions, a start date and time, and a repeat interval. Parameter lists 510 define the compile-time and run-time values necessary to execute a job.
  • Each Parameter List 510 will have several properties 520 associated with it including: a parameter list name, a brief description, a job name, ASK Properties 415, INPUT Properties 420, an assigned owner and group, and permissions. Many of these properties are interrelated to the job properties illustrated in FIGURE 4 and previously discussed.
  • FIGURE 6 illustrates some of the common properties associated service agents in the portal system 120.
  • a list of installed service agents 600 is maintained in the Relational Database in the portal system 120.
  • Several properties are associated with each of the installed service agents, including the Name of the service agent 605, the Type of the service agent 610, the Host where the service agent resides 615, the Database Type 620 associated with service agent, and the Database Server 625 associated with the service agent.
  • a list of the different service agent types 630 is maintained in the Relational Database in the portal system 120.
  • the administrator must add a new service agent type or select from the list of available service agent Types 630.
  • FIGURE 6 Also depicted in FIGURE 6 is a list of the available service agent Hosts 635 which are resident on the portal system 120. Again, when a new service agent is installed on the portal system 120, the administrator must add a new service agent Host or select from the list of available service agent Hosts 635. More than one service agent type can be installed on a particular service agent host. For example, an authentication server 220 and a name server 225 may both be installed the same host computer. FIGURE 6 also illustrates that each service agent will be assigned a Database Type 620 and a Database Server 625. A list of the available service agent Types 640 and
  • Database Server Types 645 are maintained in the Relational Database in the portal system 120. Generally, only one Database Type 620 will be associated with a Database Server 625.
  • FIGURES 7 and 8 depict some of the properties associated with the specific service agents of the portal system 120.
  • Each repository 235 is assigned certain properties 700 including a name, a host, a database type, and a database server.
  • Each authentication server 220 is also be assigned certain properties 705 including a name, a host, a database type, a database server, a list of supported capabilities 710, and a table of drivers 715.
  • the capabilities 710 define whether the authentication server 220 may be used to create and modify users and groups for the portal system 120.
  • the table of drivers 715 defines the authentication drivers which may be utilized to authenticate users such as LDAP.
  • Each job server 230 is assigned certain properties which are illustrated in FIGURE 7.
  • each job server 230 is assigned a name, host, database type, and database sever.
  • each job server 230 is also assigned an Application 720, a Program 725, ajob server Class 730, and a SQR Server 735 if the job server will be used for SQL jobs.
  • the Application 720 is typically a third-party vendor application designed to run in the background. Application examples include Brio Technologies SQR, Oracle Reports, or public domain application shells such as PERL.
  • a Program 725 is typically a source used to drive a specific invocation of an application. For example, a user 100 might submit an SQR program that generates a sales report to an SQR application on a given host through a job server 230.
  • the Job Server Class 730 property identifies what kind of job server is installed and the SQR Server 735 defines what kind of SQR Server is installed (i.e. SQR V4 3 for Sun/Sola ⁇ s/ORACLE).
  • SQR V4 3 for Sun/Sola ⁇ s/ORACLE.
  • Each of the Application 720, Program 725, job server 730 and SQR Server 735 properties will have certain sub- properties assigned as well.
  • the search server 245 is assigned certain properties which are illustrated in
  • the search server 245 is assigned a name, host, database type, and database server.
  • each job server 230 is also assigned Search Engine Properties 800 and Information Sources 805.
  • the Search Engine Properties 800 describe the operating parameters for the search engine, including a Query Port value, an Index Port value, a Language, an Index Hyphenated Words flag, and Hyphen Character.
  • the Query Port value identifies that port which will handle simultaneous queries form a user.
  • the Index Port value identifies the port which receives indexing requests from the crawl server.
  • the Language specifies the language in which month names and abbreviations of month names appear.
  • the Index Hyphenated Words flag indicates whether the Search Engine indexes a hyphenated word as well as individual words.
  • the Information Sources properties 805 describe the names and properties of each Information Source that has been indexed by the crawl server. Some of the properties include a Name, a Description, a Number of Documents which may be stored in the Information Source, an Expiration Date, and an Expiration Action for the Information Source.
  • Each channel is assigned certain properties which are illustrated in FIGURE 8.
  • the General Properties 810 define the name of the channel, a brief description, the owner and group of the channel, and the expiration date of the channel.
  • the Advanced Properties 815 for each channel include a Browsable flag and Permissions. The Browsable flag indicates whether the channel is visible to the user 100 using the Browser interface.
  • the Query Properties 820 define the query to be provided by the channel to the search server.
  • the Information Sources 825 associated with a channel define which information sources which will be searched when a particular channel is executed.
  • FIGURE 9 depicts certain properties that are assigned to each crawler in the crawl server 250. These properties include General Properties 900, Schedule Properties 905, Limits 910, Directory Properties 915, Web Pages Properties 920, Proxy Properties 925, Authentication Properties 930, Cookies Properties 935, Protocol Properties 940, Date Format Properties 945, Text File Properties 950, and Status Properties 955. Each of these sets of properties is described below.
  • the General Properties 900 define the basic parameters to be used by each crawler in conducting its search. Included in these parameters are the name of the crawler the information sources to be searched by the crawler, a list of the URLs to crawl, a flag indicating whether the URLs are case sensitive, and a flag indicating whether the crawler should follow links to other sites.
  • the Schedule Properties 905 are used to define the schedule on which the crawler operates. Included within the Schedule Properties 905 are a schedule (as disclosed in figure 5, a start time, and a repeat interval.
  • the Limits 910 are used to prevent the crawler from infinitely indexing sites which have deep links. Some of the limits which may be defined for a crawler include a maximum depth which specifies how many levels of links a crawler may follow, a site duration which defines the number of hours a crawler should spend on any given site, a page delay which defines the number of seconds the crawler should wait after downloading a page before moving to the next link of set of links, and a page timeout which defines the number of seconds that the crawler will wait to receive data after requesting a page.
  • the Directory Properties 915 provide an Allowed field and a Disallowed field.
  • the allowed field defines a set of strings that must exist in a URL object for that object to be indexed.
  • the disallowed field defines a set of strings that must not be in the URL object in order for the object to be indexed these fields may be used to greatly limit the number of sites which are indexed in an information source.
  • Web Pages Properties 920 are used to exclude HTML and text files from being indexed in an information source based upon the content of the document and/or header. Using these properties, a user can specify those strings that must exist and/or those strings that must not exist. If either of these constraints, the HTML document will not be indexed.
  • HTML or text files must meet both constraints in order to be indexed in an information source. If a document meets both the must have constraint and the can't have constraint, then the can't have constraint takes precedence and the document will not be indexed. Accordingly, the web pages properties will include two fields: a Must Have Text field and a Cannot Have Text field. Other parameters may also be set to look for these strings in the headers or content only.
  • Proxy Properties 925 are used to define the proxy parameters if the portal is connected to the Internet through a proxy server.
  • the Proxy Properties 925 include the host address of the proxy server, the port on which the proxy server listens, and the user name and password for connecting to the proxy server.
  • the Authentication Properties 930 define how the crawler is to log into websites that require a login.
  • Three different types of login authentication methods are available: HTTP authentication, forms-based authentication, and cookie-based authentication.
  • Sites that display a dialog window requesting a user name and password are generally using http authentication.
  • a user name and password usually have to be provided so that the crawler can log into the website.
  • Sites that have a page containing a login form are usually forms-based authentication. These are fairly difficult to configure because there are many entries that can be defined on the form. Additional login information may need to be specified in the cookie tab. Accordingly, the Authentication Properties 930 will indicate which authentication protocol should be used for a site as well as user names and passwords necessary for logging in.
  • Cookies Properties 935 are used to specify additional login information as well as cookies that should be sent to a webserver.
  • the additional login information allows the crawler to log into a site in which a form requires more than just a user name and password. For example, if the form has an input field that specifies a users age, then age can be specified as additional login information. Therefore, the field's name and value should be added to the cookie as additional login information.
  • a form-based login will result in a cookie being submitted to a user's browser interface.
  • the cookie contains information about the user's login parameters insuring that the user and only that user see the content on that website.
  • the cookies properties 935 allows cookie-based login, or cookie spoofing.
  • a crawler can sometimes leap frog the login process all together and insure that the crawler appears logged in as soon as it arrives at the site.
  • the names and values of the cookies may be added to the cookies page of the crawler, thus allowing the crawler to login when it starts.
  • cookie- based authentication will work for only the duration that the cookie is valid.
  • the Protocol Properties 940 allow an administrator to specify the HTTP protocol version as either 1.1 or 1.0. An administrator is also allowed to specify whether secure sockets layer (SSL) is to be used in retrieving "https://" URLs.
  • the Date Format Properties 945 define the specific date format and language to use when displaying search results with the web client. Some of the date formats which may be utilized are listed below in table 1.
  • H - Hour as either a one- or two-digit number
  • N+ - Minute as either a one- or two-digit number
  • the Text File Properties 950 specify what extensions to treat as text files; for example, TXT, CSV, XML, and so on. Entering these extensions in the text file properties screen means that if the crawler finds a file with one of these extensions, it will treat the extension as a text file. MS and PDF files will automatically be treated as text files.
  • the Status Properties 955 displays information on how the crawler is currently performing. Some of the parameters identified as status properties include the number of seconds that the crawler has been running since the start of the current run, the number of pages that the crawler has downloaded since the start of the current run, the number of URLs that return error 404, and the number of pages that the crawler does not have authorization to access.
  • the Status Properties 955 allow an administrator to display the status of the last run, to put the crawler on hold, and to test the crawler.
  • the scheduled crawler state provides the crawler statistics regarding the last time that the crawler executed based on its schedule. If the crawler is currently executing, these statistics will be displayed. It does not provide statistics when the crawler was executed interactively.
  • a crawler When a crawler is placed on hold, the crawler will not be allowed to execute based on its schedule. However, the hold will not affect the ability to run the crawler interactively.
  • a crawler should be tested after creating it to verify it behaves as desired. By checking the logging information, and administrator or user 100 can see what documents are being downloaded and discarded. When testing a crawler, the documents are not indexed into information sources.
  • FIGURE 10 depicts a representative example of a portal page 1000 as seen from a user's browser program.
  • a portal page 1000 is a customized web page that presents data from the portal system 120 that is most relevant to a particular user.
  • a portal page 1000 is a user's primary interface to the data, reports and jobs that are resident in the portal system 120.
  • Each of the sets of data that are presented to a user at the portal page 1000 is called a portal object.
  • a portal page 1000 presents portal objects to a user 100 in a format that is readable by a standard browser program.
  • the user's default portal page 1000 is the first page he sees after logging into the portal system 120. The first time a user logs into the portal system 120, a portal page 1000 is automatically generated.
  • a user 100 can modify his respective copies of the portal page 1000, and can create additional ones.
  • Users can modify the content, layout, and colors of any of their portal pages 1000, as well as changing which portal page 1000 is the default page (the one that displays at the beginning of a portal session).
  • Users to whom permission is granted can publish their own portal pages for others to copy.
  • Users can add additional components to any of their portal pages 1000, or remove optional components.
  • a user can create and include on his portal page 1000 other content of interest to him, such as bookmarks, channels, and job output files displayed as portal objects.
  • the portal objects are generally arranged in three columns.
  • the left-most column 1001 is entitled “Personal” and contains a set of links which may be selected by the user with the browser program. These links allow the user to access certain "favorite” and "my” objects which have been previously defined.
  • the middle column 1002 includes four tabs at the top entitled “personalize,” “content,” “layout.” and “edit.” These tabs are used to customize the appearance of the user's personal portal page. Below these tabs are four portal objects entitled Broadcast Messages 1005, Company Billboard 1010, My Bookmarks 1015, and the Exceptions Dashboard 1020.
  • the right-most column 1003 includes one display window 1025, and another portal object entitled E-commerce Top stories 1030.
  • the Broadcast Messages portal object 1005 is configured as a mandatory portal object. Thus, it cannot be modified or removed by a user 100. Accordingly, the Broadcast Message portal object in FIGURE 10 does not include an "X" icon 1008 in the upper right hand comer which would allow a user to delete this portal object from their portal page 1000. Beneath the Broadcast Message portal object 1005, it the Company Billboard portal object 1010. The Company Billboard portal object 1010 is a preconfigured category which includes a list of links which may be accessed, but not edited by the user 100. By clicking on one of these links, a corresponding object will be displayed in the display window 1025 on the right-hand side of the portal page 1000.
  • the Personal Dashboard link in the Broadcast Messages category 1005 has been selected by a user; thus causing the Personal Dashboard portal object to be displayed in the display window 1025 of the portal page 1000. Because the Company Billboard 1010 has been set up as a preconfigured category, a user 100 cannot edit the links which are listed in this window. A user 100 does have the option of removing this portal object from his personalized portal page by selecting the "X" icon 1008 in the upper right hand corner of the Company Billboard portal object.
  • the My Bookmarks portal object 1015 is set up as a standard component which means that a user 100 has the ability to modify this portal object to include the content that he desires.
  • the My Bookmarks object are links to other objects within the repository 235 or to other sites on the Internet which the user 100 deems to be relevant. New bookmarks may be added to this category by the user 100 by pressing the "New Bookmark" link at the bottom of the My Bookmarks portal object 1010.
  • a user 100 can edit the bookmarks residing in this portal object by pressing the "Edit” button located at the top right-hand corner of the My Bookmarks portal object 1010.
  • Pressing the "Edit” button in the My Bookmarks portal object will cause an interactive form to be displayed in the display window 1025, thus allowing the user 100 to edit the content of the portal object.
  • a user can also delete the My Bookmarks window from the personalized portal page 1000 by selecting the "X" icon 1008 in the upper right hand corner of window.
  • the last window displayed in the middle column of the portal page 1000 is the Exceptions Dashboard 1020.
  • the exceptions dashboard 1020 is set up as a standard component which may be edited and configured by a user.
  • the exception dashboard 1020 is used to indicate when an exception condition has been found in a particular job processed in the portal system 120.
  • An exception condition is tied to the results of a job executed within the portal system 120. Only certain jobs within the portal system 120 can be configured .to indicate an exception condition.
  • a user 100 is required to subscribe to an exception associated with a job before he can be notified of the exception condition via his portal page 1000.
  • the exception dashboard window 1020 can be configured by a user to display an indicator when an exception condition is met by a particular job that was processed by the portal system 120.
  • the exception dashboard is configured to display a traffic light which is green when no exceptions are present and red when an exception condition was indicated by a job.
  • the right-most column of the portal page 1000 of FIGURE 10 includes a display window 1025 and another portal object entitled E-commerce Top Stories 1030.
  • the display window 1025 is used to display the objects and reports requested by a user 100 during a session.
  • the requested objects must be in a format that is capable of being read by a browser program in order to be displayed in a the display window 1025.
  • the personal dashboard portal object is being displayed in the display window 1025.
  • the portal object illustrated at the bottom of the right-most column 1003 of the portal page 1000 is a syndicated content portal entitled E-commerce Top stories 1030.
  • a syndicated content portal object is used to present dynamically updated content provided by a third party.
  • Third party content could include information such as a news-wire, a stock quote service, or a sports score reporting service.
  • the third party content that is provided in this window is a news-wire service related to E-commerce stories.
  • the personal dashboard is an object that can be personalized and configured by a user to display a variety of objects from the portal system 120 as well as content obtained from the Internet.
  • the user 100 has configured his personal dashboard to display two image bookmarks: the "Just-In-Time Sales Report” 1035 and the “Operations Dashboard” 1040. a chart entitled “Sales by Product Analysis” 1045, a set of current weather information 1050, and a continuously updating banner describing other information 1060.
  • the two image bookmarks are links to other objects which may be displayed in the display window 1025. Thus, by clicking on either of these icons, a corresponding object would then be displayed in the display window 1025.
  • the "Sales by Product Analysis" chart 1045 is a dynamically updated portal object that displays the results of a job that was recently executed by the portal. Every time that the corresponding job is executed, an output file would be generated which would then be displayed on the user's personal dashboard. Thus, by merely displaying the personal dashboard, a user may view an image of the most recent sales by product analysis, or any other job report.
  • This portal object may also be configured as an image bookmark so that a larger image of the graph will be displayed by clicking through.
  • the set of current weather information 1050 indicates that the personal dashboard may be configured to display information from the Internet as well as objects from the portal.
  • the continuously updating banner describing other information 1060 illustrates that any data may be configured to be displayed on the personal dashboard as long it is readable by a standard web browser.
  • the personal dashboard can display a variety of structured and unstructured data in a standardized format.
  • a user 100 can be connected to the portal system 120 by accessing a computer which is connected to the portal's network server 105. Initially, the user 100 sends a request to the network server 105 for access to the portal system 120. The user 100 is then prompted to provide a username and password for the portal system 120. This information is then passed from the web client 115, to the service broker 125 to the authentication server 220. At the authentication server, if the user 100 is identified as a valid user, then a session token is sent to the service broker 125 which grants the user 100 access to the portal system 120 for a period of time.
  • the authentication server 220 determines what level of access to be given a user 100 based upon his permissions. For example, a user 100 may only be given permission to view certain categories or objects in the repository 235. All other categories and objects in the repository are off-limits to the user. The service broker 215 would therefore bar the user from accessing any "off-limits" objects and categories and would only allow him to access permitted areas within the portal system 120.
  • the service broker 125 of the portal system 120 retrieves a set of metadata corresponding to the user's personal portal page 1000 from the repository. This metadata indicates which portal objects should also be retrieved from the repository 235 in order to populate the portal page 1000. After all of the portal objects have been retrieved from the repository, they are assembled into a format which can be read by a browser program. After this, the personalized portal page 1000 is transmitted to the appropriate user 100 through the network server 105. At the user's interface, his browser program will display the personalized portal page 1000 to the user.
  • the process of assembling a personalized portal page 1000 is repeated every time a user 100 refreshes his browser screen. Because each portal page 1000 is assembled on an ad-hoc basis using the most current versions of the portal objects in the repository 235, the data presented on a newly refreshed portal page 1000 will present the most recent data available in the portal system 1000.
  • a user 100 may select jobs to be processed by the portal system 120 by performing the following steps. First, a user will select a link or object on his personalized portal page 1000 which corresponds to a job. For example, in FIGURE 10, a user 100 may select the first link in the company billboard portal object 1010. Or, a user 100 may select the "Just-in-Time Sales Report" image bookmark 1035 in the personal dashboard. Either of these selections will transmit a request to the portal system 120 to execute a job and return the results to the user 100. Referring again to FIGURE 2, when the request to execute a job is received by the service broker 125, it is first determined if the user has permissions to execute this job. This is done by polling the authentication server 220 to create a user context for the job.
  • the user context will include the user's username, group information, default category, and default permissions. If the user 100 is found to have appropriate permissions for the job, then the job will be retrieved from the repository 235 and sent to the service broker 125. The service broker will then dispatch the job (along with the user context) to an appropriate job server 230 for processing. Generally, the job will be dispatched asynchronously so that the service broker 125 is freed up to perform other tasks while the job is executing. It should be noted that a job will often include several objects necessary for the execution of the program other than the executable file. These objects may include metadata corresponding to the job, forms objects, and INPUT objects. The job server 230 uses all of these objects to execute the job request.
  • a job may require a fresh set of data to be retrieved from a back-end database 200, 205, or 210. If this is the situation, then the job will be dispatched to a job server 230 that is connected to an appropriate back-end database. After the data is retrieved from a back-end database, it is processed by the job server 230 and an output report is prepared. In many instances, the output report will have to be transformed into a format that is appropriate for storage and/or presentation to the user. This process is performed by the job server 230. After the output reports have been converted into the appropriate format, then the job server analyzes the job metadata to determine if there are any subscriptions or notifications which need to be fulfilled. The job server 230 will also test the output report to determine if any exception conditions are present.
  • the job server 230 will utilize the job metadata to determine if any of the exception conditions have been met. If so, appropriate notifications will be sent to the subscribing users via e-mail or portal object update (such as notification on a dynamic portal object). In addition, the job server 230 will assign user and group permissions to the output report. These permissions define the users and groups that can access and view the output report. The output report will then be transmitted to the service broker 125 so that it can be forwarded to the user who requested it. The output report will generally be displayed in the display window 1025 of the user's personalized portal page. A copy of the output report may also be stored in the repository 235.
  • Another condition that may be encountered by the job server 230 during the execution of a job is the requirement of input for the job.
  • the input can be provided by an INPUT object associated with the job in the repository (see item 420 of FIGURE 4).
  • the input must be provided by the user 100 as the job executes.
  • an ASK form associated with the job will be used to solicit input from the user 100.
  • an ASK form will be transmitted to the service broker 125 by the job server 230.
  • the ASK form will then be presented to the user 100 at the user's browser interface.
  • the portal system 120 may construct an ad-hoc input form which can be presented to the user. After the user 100 has made his input selections on the form, the input data is transmitted to the job server 230 through the service broker 125. The input data is then utilized by the job server 230 to complete the execution of the job.
  • Another feature of the portal system is the creation of secure bursted output reports. These output reports contain embedded permission markings which restrict the ability of some users and groups to view some portions of an output report. Thus, when a user with limited permissions views a secure bursted output report, he will see only those sections which he has been given permission to see.
  • the secure bursted output report feature works best when the output report has been bursted into multiple files with each file containing one or more HTML pages. When an output report is created in the job server, each file is tagged with a set of user and group permissions defining the ability of certain users and groups to access all of the HTML pages in the file.
  • a master file containing a plurality of containers is also generated. Each container is used as a reference to one of the bursted files. Thus, by assembling all of the bursted files into the master file, a complete output report may be generated. Accordingly, an output report with multiple containers, each of which having different levels of permissions, yields the most flexibility.
  • the user To retrieve a secure bursted output report from the repository, the user must first have logged into the portal system 120.
  • the process of logging into the portal establishes a user context which contains, among other things, the username, user permissions and group information.
  • the portal system 120 uses the following steps to determine which parts of a bursted secure job output to provide to a user. First, when a user requests a secure bursted output report, the normal permission checking is done to determine if the user has the appropriate permissions to read the master output report.
  • the repository checks the permissions for each container in the master output report. If the user has appropriate permissions for the container, then the special tags that were assigned to each file when the output was created are checked. If the user name is in the list in the tags or the user is a member of one of the groups listed in the tags, then this container is added to the set of containers to be returned as part of the master output report. If the user does not have appropriate permissions, then the container is not added to the set of containers to return. No errors are returned from this step. The fact that a user cannot see a particular container is not necessarily an error but a function of the way the secure bursted output program operates. After this process is finished and a list of viewable containers in the secure bursted output report is determined, the contents of each approved container are retrieved from the repository and are presented to the user.
  • jobs may be associated with certain time events. These time events control when jobs run. Jobs which can be associated with time events include batch jobs that are to be processed in the job servers, searches to be conducted in the knowledge server, or retrieving channels from the repository for processing in the knowledge server.
  • the event server 215 starts, it builds an ordered list of time events that are known to the system. The time events are ordered by the next time that they are scheduled to run. Each time event may have one or more jobs scheduled against it.
  • the job information includes data about the job properties and distribution/notification information. The data necessary to build this list is retrieved from the database that contains the event server 215 metadata. Once the ordered list is generated, the event server 215 calculates the amount of time until the first time event is scheduled to run and goes to sleep for this amount of time.
  • the following steps are performed when the event server 215 awakens and collects the set of jobs associated with the time event scheduled to run at that time. These actions are performed for each scheduled job.
  • the event server 215 sends a transaction to the repository 235 to retrieve ajob that is to be run. If the job is no longer in the repository 235, then the event server 235 will remove the scheduled job from the event server 235 metadata and move on to the next scheduled job.
  • the event server 235 sends a transaction to the authentication server 220 to get information about the user 100 that scheduled the job. That information includes the username, group information, default folder and default permissions. This information is used to create a user context. This user context is used when sending the job to the appropriate job server 230 for execution.
  • the event server 235 will make it appear that the user 100 that scheduled the job is the user 100 that is running the job through the scheduler. Third, the event server 235 sets the parameter values for the job with the parameter values that were input by the user 100 when the job was scheduled. This would include both ASK and INPUT values for SQR jobs and input values for generic jobs. Fourth, the event server 235 sends the job to the service broker 125. The service broker 125 will route the job to an appropriate job server 230 for execution.
  • the command that is used to send the job to the job server 230, via the service broker 125, is a command that will cause the job to run asynchronously.
  • the command also contains distribution information that allows the job server 230 to distribute output reports and send email notifications when the job is completed.
  • a job runs asynchronously in the job server 230
  • a unique thread is created to run the job and control returns to the event server 215.
  • This mechanism allows the event server 235 to send numerous scheduled jobs to the service broker 125 for execution without waiting for previous jobs to finish.
  • the event server 235 supports a user configurable concept called retry processing. If the event server 235 fails to send the job to the job server 230, one of two things happens. If retry processing has been disabled, an error notification will be sent to the email address specified when the job was scheduled. No attempt will be made rerun the job. If retry processing is enabled, then an email will be sent informing the user that the job could not be sent to the job server 230 and it is being resubmitted.
  • the job is then added to a retry queue so the event server 235 can try to run it later.
  • Jobs that are placed in the retry queue are retried using the following algorithm. Each job will be retried until they run successfully or until the event server 235 is stopped. When ajob is retried, it follows the five steps outlined above. When ajob is first placed in the retry queue it is set to run 10 minutes after the time it is placed in the queue. After each attempt to run the job, if it fails, it is resubmitted to the retry queue with an additional 10-minute wait time added until the next retry. In other words, jobs submitted to the retry queue will be retried first in 10 minutes, then 20 minutes, then 30 minutes, etc. all the wait up to 120 minutes. After the retry period hits 120 minutes it stays there. Thus, if a job that is retried after 120 minutes and fails, it will be retried in another 120 minutes. The 120-minute maximum delay is user configurable.
  • a sweeper thread is started that looks through the metadata about time events and scheduled jobs.
  • the sweeper thread looks for scheduled jobs that should have run in the past but didn't. This would include jobs that were queued up or in the retry queue when the event server 235 was stopped. When such a job is found it is retried using the five steps described above.

Abstract

Disclosed is a portal computer system (120) and method which provides for dynamic objects on a personal portal page and a job factory for dynamically running scheduled jobs which can be accessed by one or more users. Also described are dynamic objects and search inputs and results on the personal portal page.

Description

METHOD AND APPARATUS FOR PROCESSING JOBS ON AN ENTERPRISE-WIDE COMPUTER SYSTEM BACKGROUND
Many businesses and other enterprises use a variety of computer systems that are specially adapted for certain purposes. For example, a manufacturing division of an enterprise may use one kind of computer system specifically designed to handle manufacturing data while the sales division of the same enterprise may use another kind of system for sales information. The engineering division of the enterprise may use an entirely different computer system as well. Using different computer systems for different divisions of an enterprise makes sense because each kind of computer system will provide certain strengths that suit that division.
Although different divisions within an enterprise may use different computer systems, there are advantages to sharing data across an entire enterprise. For example, an individual in the sales division may need to know the current inventory levels for a product in the manufacturing division to determine what price should be set for the product. One solution to this problem is to provide hard copies of reports from different divisions of an enterprise to certain key individuals in the enterprise. This procedure is disadvantageous because it can overwhelm an individual with much more information than the individual needs and because the data in the hard copies of the report can be out of date by the time that the individual reviews it. Another solution to this problem is to use emulator computers that allow an individual to use a single computer to access more than one computer system. This procedure is also disadvantageous because the individual is required to learn a new interface and a new computer language for each computer system that he is to access. Thus, there is a need for an enterprise-wide computer system that can connect to a variety of computer systems, retrieve data from these systems, and present data to an individual in a standardized, easy-to-learn format.
SUMMARY
Disclosed herein is an enterprise-wide computer system designed to be connected to a variety of different computers systems within the enterprise. The computer system uses a portal architecture to allow a user to view a wide variety of content retrieved from a variety of different computer systems. The computer system may also be referred to as a portal system. The portal system is configured such that a plurality of users can access the system at the same time through a computer network such as the Internet. The portal system may also be connected to one or more back-end databases that correspond to the different computer systems within the enterprise. The portal system is scalable because many of its components are modular and can be readily duplicated as redundant processors. In this manner, small enterprises and large enterprises may be accommodated by different versions of the same portal system. In one aspect, the portal system acts as a middle- ware program that converts the data and reports from the variety of back-end databases and presents the data to a user in a standardized format. Data is provided to users by the portal system in a format that is readable by a browser program. Thus, by allowing a user to use a standard browser program as a user interface, the user's learning curve for the portal is greatly reduced. In particular, the user will be able to select reports and data for viewing by pointing at an item with his mouse and selecting a hyperlink.
In addition to converting data from back-end databases into a standardized format for a user, the portal system may be configured to run predefined jobs to process data. These jobs are stored within the portal system in a computer memory device called a repository. These jobs can perform a variety of tasks such as retrieving data from a back-end database, preparing a report based upon retrieved data, processing data already resident within the portal system, or notifying a user when a particular condition occurs within the portal system. These jobs can be executed on a predefined schedule or on an ad-hoc basis at the request of a user. When a job is executed on a predefined schedule, the output report of the job will often be stored in the repository so that it can be retrieved at a later time. When a job is performed on an ad-hoc basis, the output report will generally be provided to the user immediately through his browser interface. If a job is of particular interest to a user, then the portal system allows a user to subscribe to the job. A subscription will send a notification to the user whenever the job is executed by the portal system. The portal system also allows a user to configure one or more exception conditions for a job that indicate when some element of the output report is outside of a predefined range. A user can subscribe to job exceptions and thus be notified when these exceptions occur.
The portal system presents data to a user in an object called a portal page. The portal page is an object arranged in a format that is readable by a browser program. The portal page is a highly configurable document that may be comprised of a plurality of modules called portal objects. Each portal object may contain a set of links corresponding to output reports, jobs, or other objects stored within the repository. Thus, by clicking on one of the links in a portal object, the portal system will process the object corresponding to that link. If the link is directed to a job stored within the portal system, then clicking on that job will cause the job to be executed. If the link is directed to a browsable object stored within the repository, then that object will be displayed to the user. A portal page may also include a display window that can display browsable objects to a user. Another feature of the portal page is a dynamically updated portal object. A dynamically updated portal object is an object that is updated on the user's portal page based upon data stored in the portal system. If a dynamically updated portal object is included within a user's portal page, the user may receive the latest information corresponding to that object by refreshing his portal page. For example, if the dynamically updated portal object is linked to the output report of a job, then the portal object will display the latest version of the output report to the user when the portal page is refreshed. A dynamically updated portal object may also be hyperlinked to its corresponding object in the portal system such that a user may view, edit, or execute the corresponding object by clicking on the dynamically updated portal object at the user interface.
Each user's portal page may be customized to suit that user's specific needs. A user may add or remove portal objects from his portal page at his discretion. A user may also edit some portal objects in order to add links to reports or objects that the user is interested in. Another way in which a user can customize his portal page is to add and modify "favorites" on the portal page. A user's favorites is a set of links to objects stored in the repository, on an intranet, or on the Internet. These objects may be jobs, reports, or any other kind of data. By clicking one of these links, the corresponding object is presented in the display window.
The portal system may also be configured to conduct searches on behalf of a user. The portal system provides the ability to search both structured (databases, XML, formatted text, etc.) and unstructured data (HTML files, web-based content, PDF files, etc.) at locations inside and outside the portal. The portal system 120 also allows the user to configure the searches so that only certain objects, in certain locations are searched. By using these search parameters, a user can streamline a search to identify only highly relevant data. This increases the efficiency of the search and reduces the likelihood of identifying undesired results. If a user constructs a search that produces particularly relevant results, then the user may save those search parameters as a channel. The user can return to this channel at a later date to conduct the same search to see if any new objects have been identified. A list of channels stored by a user may be included in a user's portal page, allowing him access to search results by simply clicking on the appropriate channel link.
DESCRIPTION OF THE DRAWINGS
FIGURE 1 depicts a high level view of the portal system connected to a plurality of back-end database and to a plurality of users.
FIGURE 2 depicts a lower level view of the portal system including the various service agents.
FIGURE 3 depicts an example of the hierarchy of categories and objects residing in the repository.
FIGURE 4 depicts some of the categories of properties associated with jobs stored in the repository.
FIGURE 5 depicts some of the properties associated with schedules residing in the event server.
FIGURE 6 depicts some of the properties associated with each service agent residing in the portal.
FIGURE 7 depicts some of the properties associated with a repository, an authentication server, and a job server residing in the portal.
FIGURE 8 depicts some of the properties associated with a search server and a channel residing in the portal. FIGURE 9 depicts some of the categoπes of properties associated with a crawler residing m the knowledge server of the portal
FIGURE 10 depicts a representative example of a portal page as seen by a user with a browser program.
FIGURE 11 depicts a representative example of an input form presented to a user duπng the execution of a job.
DETAILED DESCRIPTION
Disclosed herein is a method and apparatus for implementing an enterprise- wide portal system. The system is designed to connect a plurality of users to the portal system so that the users can access and process data that is stored therein. The system may also be connected to one or more back-end databases so that a user can view, and process data that is stored therein. In one embodiment of the portal, a variety of back-end databases using different operating systems are connected to the portal system. In this manner, the portal system allows a user to access data from a wide variety of back-end databases with a single computer interface. Another descπbed aspect uses the portal system as a middle- ware program for converting a user's instructions into commands to retrieve and process data from the back-end databases. Another descπbed aspect uses the portal system to display the results of a back-end process to the user in a format that can be read by a standard browser program. Another described aspect uses the portal system to process data that is stored in the portal system and provide output reports to a user. The portal system thus provides a one- stop interface for accessing, processing, and providing a wide vaπety of data to a plurality of users. In order to simplify the access to the computer system, the user interface may be based upon a standard browser program that is capable of reading Hypertext Markup Language (HTML). The browser may also be capable of reading other web-based programs such as Java, XML, Macromedia Flash, or other languages. By using a standardized browser program as a user interface to the computer system, the user is presented with a familiar format in which a user can point and click on hypertext links to navigate through the portal system and provide instructions to the portal system.
FIGURE 1 depicts a high-level illustration of one embodiment of the portal system 120. In FIGURE 1, a plurality of users 100 are connected to a network interface 105 through a computer network 110. The computer network 1 10 can take many forms including a direct connection, a local-area network, an enterprise intranet, a wireless network, the Internet, or any combination thereof. The network interface 105 is connected to a portal system 120 through a web client 115. Within the portal system 120 are a service broker 125 that controls access to the computer system and a plurality of service agents 130 that are configured to perform specific tasks within the portal system 120. Also connected to the portal system 120 are several back-end databases 135, 140, 145, 150 in which data is stored. It should be noted that FIGURE 1 is a block diagram that represents certain functional aspects of the invention as separate blocks. These functional blocks may be implemented on separate computer platforms or on the same computer platform.
In FIGURE 1, each of the back-end databases 135, 140, 145, 150 may contain different kinds of data and may use different operating system platforms. For example, back- end database 135 could be a Unix-based system in which statistical process control information about a manufacturing facility is stored. Back-end database 140 could be a PC- based database in which human resources data (employee payroll, headcount, organizational structure, etc.) is stored. Back-end database 145 could be an Oracle-based system in which sales and inventory information is stored. Lastly, back-end database 150 could be a Windows NT server in which benefits and pension information is stored. Different databases and platforms are sometimes used for different groups within an enterprise because each group has specialized needs that are best served by their respective back-end databases. Using different databases and platforms within the same enterprise, however, makes the combination and comparison of data from different groups difficult. The embodiments disclosed herein address this difficulty by using the portal system 120 as a common interface between the various back-end databases 135, 140, 145 & 150 and a user 100. By using the portal system 120 as a common interface, data can be retrieved from the back-end databases and presented to the user in a standardized format through the web client 1 15. For example, a user 100 may request that the portal system 120 produce a graph illustrating the enterprise's manufacturing yield over the past year. Upon receiving the request, the portal system 120 would retrieve yield data from manufacturing back-end database 135 and process that data to generate a bar chart corresponding to the user's request. This bar chart would then be presented to the user 100 through his browser program. That same user 100 may also request, during the same session, an update of the sales figures for the enterprise for the current month. The portal system 120 would retrieve sales data from the sales back-end database 145, process that data, and generate a figure corresponding to the user's request. This data would then be presented to the user 100 through his browser program. The portal system 120 has the ability to simultaneously perform each of these tasks and present this data to the user 100 with a single interface.
FIGURE 2 discloses another embodiment of the portal system 120. In
FIGURE 2, a plurality of users 100 are connected to a network interface 105 through a computer network 110. A web client 115 is resident on the network interface 105 that interfaces the users to a portal system 120. Also illustrated in FIGURE 2 are three back-end databases 200, 205 and 210 that are connected to the portal system 120. Within the portal system 120 are a service broker 125 and a plurality of service agents: an event server 215, an authentication server 220, a name server 225, a job server 230, a repository 235, and a knowledge server 240 that includes a search server 245 and a crawl server 250. It should be noted that FIGURE 2 is a block diagram that represents certain functional aspects of the portal system 120 as separate blocks. These functional blocks may be implemented on separate computer platforms or on the same computer platform. The functions served by the service agents of FIGURE 2 are summarized below.
The service broker 125 serves two functions in the portal system. It controls access to the portal system 120 by users 100 and controls the disposition of jobs to the service agents within the portal system. By controlling the disposition of jobs, the service broker 125 ensures that jobs are processed in an orderly manner and that none of the service agents become overloaded. The event server 215 schedules events, such as jobs, for processing in the portal system 120 on a predefined timetable. The authentication server 220 is used to determine if a particular user should be granted access to the portal system 120. The permissions and group memberships for a particular user are also stored in the authentication server 220. The name server 225 is the storage location for configuration information about all of the other service agents. For example, if the service broker 125 needs to know the location of a specific job server 230, then the name server 225 will provide that information to the service broker 125. The job server 230 is used to execute jobs in the portal systeml20. In addition, the job server 230 can retrieve data from a back-end database 200, 205 or 210 to be processed for a particular job. Each job server 230 may be connected to at least one back- end database 200, 205 or 210 in order to retrieve data therefrom. The job server 230 may also be a stand-alone unit which process jobs that do not retrieve data from any external sources. The repository 235 is used as a storage device for all information that is to be stored in the portal system. All computer files that are stored in the repository 235 are called objects. These objects may include HTML files, job output reports, executable job files (SQL, etc.), image files, etc. Objects that are stored in the repository 235 are arranged in a hierarchy called categories. Within each category, both objects and subcategories may be stored. Categories are thus organized in a tree system much like the file system on a standard computer. In addition, each object in the repository may include more than one version. Versioning can be used to accomplish a variety of objectives including setting multiple security levels for different versions of an object, and allowing a user to see a modification history of an object. The knowledge server 250 provides the search and channel functions for the portal system 120. The knowledge server 250 is comprised of two components: a search server 245 and a crawl server 250. The crawl server 250 uses one or more crawlers to analyze and index specific information that is stored in the repository 235, a company intranet, or the Internet. A crawler can be configured to search only in certain locations in the repository 235, a company intranet, or the Internet for information to be indexed. The indices produced by the crawl server 245 are stored in the knowledge server 240 in files called information sources. Depending upon the settings of the crawl server 250, an information source will contain an index of objects found both within the portal system (i.e. in the repository 235), or outside the portal system (i.e. on an intranet or the Internet). The crawl server 250 is capable of indexing structured and unstructured data. The search server 245 uses the information sources produced by the crawl server 250 to conduct searches on behalf of a user. Because the information sources will generally correspond to specialized topics, a user may increase the efficiency of a search by selecting only those information sources that are relevant to his search. The portal system 120 can include redundant service agents for processing user requests. In this manner, the portal system 120 is scalable to handle both a small enterprise with a small number of users and a large enterprise with many redundant service agents for processing requests from thousands of users. One aspect of the portal system 120 utilizes the various service agents to process jobs for the benefit of users. Many of these jobs can retrieve data from the back-end databases 200, 205 & 210 and process that data to generate an output report. Jobs may also be used to process data that is resident within the portal system 120. For example, jobs could include a weekly report on manufacturing statistics for the enterprise, or a report describing the cuπent status of the enterprises' accounts receivable. Because these jobs utilize data that is retrieved directly from the back-end databases, the output reports generated by these jobs reflect an up-to-the-minute status of the corresponding aspect of the enterprise. Generally, a job is stored in the repository 235 of the portal system 120. When a job is to be executed, it is retrieved from the repository and sent to an appropriate job server 230 for processing. At the job server 230, the job is executed. Sometimes, a job will require that certain data be retrieved from a back-end database 200, 205 or 210. In many instances, jobs are written in SQL language so as to facilitate the retrieval of data from the back-end databases. After data is retrieved from a back-end database 200, 205 or 210 and processed by the job, the job will produce an output report. This output report may be stored in the repository 235 after the job is complete. An output report may also be provided directly to a user 100 through the web client 115.
Jobs may be processed by the portal system 120 on either an ad-hoc basis or on predetermined schedule. Jobs processed on an ad-hoc basis are usually executed at the request of a user 100 connected to the portal system 120. When a job is processed on ad-hoc basis, the job is first retrieved from the repository 235 and sent to an appropriate job server 230 for processing. After processing, the output report will be transmitted to the user 100 via the web client 115. The output report may be stored in the repository 235 even though it was processed on an ad-hoc basis. Jobs may also be configured to run on a predetermined schedule. Information describing these schedules is stored in the event server 215. When configuring a job to run on a predetermined schedule, the job must first be associated with a schedule in the event server 215. If there is not a pre-existing schedule in the event server 215 that matches the timetable for the job, then a new schedule can be created in the event server 215. When the designated time for a schedule aπives, the event server 215 generates a list of the jobs that have been associated with that schedule and sends that list of jobs to the service broker 125 for execution. The service broker 125 then dispatches the jobs for execution on the appropriate job server 230. The output results for each of these jobs are then sent to the repository 235 for storage.
Another aspect of the portal system 120 relates to subscriptions. A user may subscribe to a particular object or category that is stored in the repository 235. Thus, if an object or category within the repository 235 is modified, then all of the subscribing users are notified of the change. Users may also subscribe to a job such that when a job is executed, the user will be notified. If a user subscribes to a job, then he will be notified of its execution regardless of whether the job was run on a pre-determined schedule, or on an ad-hoc basis. Users may receive notification in a variety of ways including e-mail or notification on the user's portal page. The portal system may also be configured to provide a copy of the job's output report as an attachment to the notification e-mail or as an automatic update to a user's portal page.
Another aspect of the portal system 120 relates to the use of exceptions. An exception is a condition that is tied to the results of a job. An exception occurs when the output report of a job includes information that is outside of a predetermined range. Any number of exception conditions can be configured for a job. However, if any of them indicate that an exception condition exists, then the entire job will indicate that an exception condition exists. Only certain jobs within the portal system 120 can be configured to indicate an exception condition. Users can subscribe to exceptions in much the same way that they subscribe to a particular job. Thus, if the execution of a job produces an exception condition, then all of the subscribing users will be notified of the exception condition. Notification of exception conditions may also occur through e-mail or a user's portal page. A user may configure his portal page to provide a dynamically updated portal page which displays the status of an exception condition. This is called an exception dashboard.
Yet another aspect of the portal system 120 relates to the use of channels. A channel is an abstract of a search, which was constructed by a user, that has been stored in the repository for processing at a later date. Generally, a channel is a search that produces a set of highly relevant results for a user. A user can update the channel at any time to see if any other highly relevant documents have become available. The parameters for constructing the search are highly configurable by the user, thus allowing him to construct a very efficient search. In particular, the channel can be configured to search limited areas of the repository 235; a company's intranet, and the Internet for new information. A user may share his channels with other users such that they can incorporate the channels into their portal pages.
A user's channels may be stored in the repository 235 with the user's other portal page data.
FIGURE 10 depicts a representative example of another aspect of the portal system 120 called a portal page 1000. A portal page presents data to a user when he logs into the portal system 120. Because a portal page is presented to a user 100 through the web client 115, the data must be arranged in a format that is readable by a user's browser program. In FIGURE 10, a wide variety of data is presented to a user 100 in the form of portal objects. A portal object is a modularized collection of links, graphics, or other data that may be presented to the user in a portal page 1000. The portal objects depicted in FIGURE 10 include broadcast messages 1005, a company billboard 1010, a user's customized bookmarks 1015, an exceptions dashboard 1020, and a syndicated content object 1030. Also present in the portal page 1000 of FIGURE 10 is a display window 1025. A display window 1025 is a window in the portal page 1000 in which a user 100 may view browsable objects. The display window 1025 may display a variety of objects from the repository (output reports, HTML objects, dashboards, etc.) or pages from the Internet. A user can select content to be displayed in the display window 1025 by selecting an appropriate link in the portal page 1000. The portal objects present in a user's portal page are highly configurable so that a user may customize his portal page 1000 to suit his particular needs. Some portal objects can be configured such that they must appear on every user's portal page 1000. These portal object are called mandatory portal objects. Mandatory portal objects may be used to ensure that all users 100 of the portal system 120 are presented with certain content whenever they use the portal system 120. An example of such a mandatory portal object is the broadcast messages portal object 1005 in FIGURE 10. Portal objects may also be configured such that a user 100 may remove the portal object from his portal page, but cannot modify the content of the portal object. An example of this kind of portal object is the company billboard portal object 1010 of FIGURE 10. In FIGURE 10, it can be seen that a user 100 may remove the company billboard portal object 1010 by clicking the "X" icon 1008 in the upper right-hand corner of the object. It can also be seen that the user does not have the ability to modify the content of the company billboard 1010 because an "EDIT" icon is not present in the upper right-hand corner of the object. Portal objects may also be configured such that a user can both modify the content of the object, and remove the portal object from his portal page 1000. An example of this kind of portal object is the "My Bookmarks" portal object 1015 of FIGURE 10. In FIGURE 10, it can be seen that a user 100 can remove the "My Bookmarks" portal object 1015 in its entirety by clicking the "X" icon 1008 in the upper right-hand corner of the object. It can also be seen that the user can modify the content of the "My Bookmarks" portal object 1015 by clicking either of the "EDIT" icon in the upper right-hand corner of the object or the "New Bookmark" link at the bottom of the object. Thus, a user 100 can customize the content of his personal portal page 1000, by adding or removing certain portal objects or by modifying the content of certain portal objects.
Another aspect of the portal page 1000 is an exception dashboard 1020. The exception dashboard is fully configurable by a user 100, but may only be used to indicate when certain exception conditions have been met. In FIGURE 10, the exception dashboard 1020 is configured to display a traffic light that is green when no exceptions are present and red when exceptions have been found. A user may add more than one indicator to the exception dashboard, such that there is a corresponding indicator for each exception condition that he has subscribed to.
A user 100 may also customize his personal portal page 1000 by using favorites and channels. If a user 100 identifies a certain object in the repository 235 that is particularly relevant to him, then that user may add the object to his Favorites. When an object is added to a user's favorites, a link corresponding to that object is added to that user's list of favorites. A user may view a list of his favorite objects by selecting the "Favorite Items" link 1075 in his personal portal window 1001. The user 100 may then view any of the listed objects in the display window 1025 by clicking on a corresponding link. A user 100 may also create a list of favorite categories in the repository by using the favorite categories link 1080 in his personal portal page 1000. In addition, a user may create a list of favorite channels by using the "my channels" link 1085 in his personal portal page.
FIGURE 11 depicts a representative example of another aspect of the portal system 120 called a Form. Forms allow a user 100 to provide input to a job while a job server 230 is executing the job. Because a form is presented to a user 100 through the user's browser interface, the form should be in a format that can be read by a standard browser program. Languages, which can be used to create forms, include HTML, Java, Macromedia Flash and XML. In FIGURE 11, a user 100 is presented with four input fields which must be provided to the job before it can be executed: i) a sales region option 1 100, ii) a quarter option 1105, iii) a chart style option 11 10, and iv) a dimensions option 1115. The sales region option 1100 and the chart style option 1110 are configured as drop-down menus from which a user may select. The quarter option 1105 and the dimensions option 11 15 are configured as radio buttons from which a user may select. A form may utilize a wide variety of other mechanisms to provide input to a job such as a blank text field or an image with selectable fields. Many different input mechanisms, which are known in the art of browser language programming, may be utilized here. After a user 100 has selected values corresponding to each of the input fields, the user 100 submits these values to the job server 230. In FIGURE 1 1, this may be accomplished by pressing the "RUN" button 1 120 at the bottom of the form. A user 100 may also reset the input values that have been selected to the form's default values by pressing the "RESET" button 1 125 at the bottom of the form. A user 100 can also save certain input settings as the user's default values by selecting the "SAVE AS MY DEFAULTS" option 1 130 in FIGURE 1 1. When a user 100 saves certain input values as default values, these default values are stored with the user's profile in the portal system 120. Thus, if the form is presented to the same user at a later time, the form will utilize the user's default values instead of the system default values. Each job in the repository 235 may be associated with one or more forms depending upon how much input is to be provided by the user 100. The files conesponding to each form are stored in the repository 235.
The Service Agents As stated above, the service broker 125 controls access to the portal system 120 by a particular user 100. The service broker 125 also provides session management services for users, and acts as a gateway to the other service agents within the portal system 120. The service broker 125 dispatches user requests to an appropriate service agent with the help of the name server 225 For example, when a client requests to see files that are stored on the repository 235, the service broker 125 will first consult name server 225 to determine the location of the repository 235, and then dispatch the request to that location If the portal system 120 is configured to include redundant service agents, then the service broker 125 will distπbute requests to those service agents in a round-robin manner Each portal system 120 will have only one name server 225 and one repository 235, but may have multiple service brokers 125
The service broker 125 provides location transparency so that users 100 are unaware of the actual location of the back-end servers 200, 205 & 210 or the service agents withm the portal system 120. Accordingly, a service agent or back-end database 200, 205 & 210 may be moved from one machine to another (possibly for performance reasons) without affecting the user's interface The user only needs to log in to the correct service broker 125 in order to have access to all of the features of the portal system 120 This greatly simplifies the login procedure and the browser interface for a user The service broker 125 also distπbutes work evenly among the service agents that support identical services For example, if two job servers 230 provide the same services, then one service broker 125 will dispatch work in balanced amounts between them This round-robm load balancing improves performance since two machines can process job server 230 requests in parallel Replication of a service agent also helps ensure fault tolerance If two different job servers 230 provide identical services and one of them is not available, then the portal system 120 will continue to operate properly, as the service broker 125 dispatches requests only to the currently operational job servers 230. Of course, if all of the job servers 230 are non-operational, then job server requests will fail.
The name server 225 offers a directory lookup and initialization service for the other service agents installed in the portal system 120. The name server 225 also manages configuration information about the installed service agents. Each portal system 120 will have only one name server 225. Accordingly, it is useful to think of a portal domain 120 as the entity managed by a single name server 225. The name server 225 stores metadata about the service agents in a Relational Database Management System (RDBMS). As part of the installation process, the portal stores the RDBMS connectivity information for the name server 225 in a file stored in the repository 235. Each service agent in the portal system 120 must contact the name server 225 to acquire its configuration information during startup. Accordingly, the name server 225 should be started before starting any of the other service agents in the portal system 120. The name server 225 also maintains a configuration administrator account, which allows an Administrator to manage configuration data about the service agents.
FIGURE 3 depicts a representative embodiment of the repository 235 of the portal system 120. The repository 235 is a computer memory storage device within the portal system 120. In FIGURE 3, a variety of computer files, known as objects 300, are stored in the repository 235. Each of the objects 300 is assigned to a specific Category or Subcategory 305, 310, 315 within the repository 235. Categories and Subcategories 305, 310, 315 in the repository 235 are similar to file system directories or folders. Each category, subcategory, and object is defined with a set of properties. These properties include the name of the user who owns the object or category as well as permissions for the object or category. The permissions define which users can access a category or object. This is especially important if certain objects contain confidential information that only a few users should see. Accordingly, a user or administrator can structure the categories such that users can find information in an intuitive manner. The categories can also be aπanged in a manner that efficiently implements security measures for sensitive data.
An object can be any kind of computer file, including the following: 1)
Ordinary Files - such as text documents, spreadsheets, presentation graphics. HTML files and other documents and executables from general office applications; 2) jobs - executable program files from applications such as Brio. Report™. Oracle Reports, SAP Reports, etc.; 3) Categories - user-defined groups of objects similar to file system directories or folders; 4) External links - a file which encapsulates an Internet URL as well as metadata describing the link; and 5 channels - software 'abstracts' of searches that can be readily fine-tuned by selecting documents from current search results. Each object is assigned a property called a MIME type. A MIME type is the Multipurpose Internet Mail Extension associated with an object. Essentially, the MIME type describes the format of the data on the object. The MIME type identifies which application or job server 230 should be used to open an object.
Each object placed in the repository for storage will be assigned a single MIME type.
To provide for system security an authentication server 220 is provided. The authentication server 220 is responsible for authenticating users who connect to the various service agents in the portal system 120. For example, when a user 100 logs into the portal system 120, the authentication server 220 checks the user's credentials and either allows or disallows the user to connect. In addition, the authentication server 220 identifies all of the properties and group memberships assigned to a particular user 100. Some of the properties that can be associated with a user 100 include a username, password, e-mail address, and permissions. The permissions associated with a user 100 define the ability of the user to read, write and execute objects stored in the repository 235. A Group is used to define permissions for a set of users, rather than individual users. Accordingly, all the members of a particular group will be given similar permissions for a set of objects. The authentication server 220 may be a server integrated into the portal system 120, or it may be an external system that is electrically connected to the portal system 120. An external authentication server 220 is useful when an external system already exists that defines a set of users 100, passwords, and group memberships. Communication between an external authentication server 220 and a portal system 120 may be established by using a LDAP driver.
By providing a job server 230, the portal system 120 enables a plurality of users to execute common jobs and to access the output reports of those jobs with a browser program interface. The job server 230 executes external programs, such as SQR programs, in the portal system 120. FIGURE 2 illustrates that the job server 230 is electrically connected to the service broker 125, the repository 235 and at least one back-end database 200, 205 or 210. When a user 100 transmits a request to the portal system 120 to execute a particular job, the job is sent from the repository 235 to the job server 230 for execution. The job server executes the job and returns the resulting job output to the user 100. In addition, the job server 230 stores job output in the repository 235 as an object. The job server 230 can be configured to execute a variety of enterprise applications such as SQR Server and Oracle Reports. Furthermore, a plurality of job servers 230 can be installed in a portal system 120 to allow parallel execution of job requests. By storing the output reports from job servers 230 as an object in the repository 235, multiple users 100 can utilize dynamic open links to these objects within their personalized portal pages.
The event server 215 provides three services in the portal system 120: scheduling services, subscription services, and distribution/notification services. The scheduling service dispatches pre-scheduled jobs for execution by one of the job servers 230. The subscription service allows a user to subscribe to a particular job and receive job output when a job server 230 has executed the job. The distribution/notification service notifies a user when relevant events occur such as completion of a job or identification of a particular exception. The event server 215 provides three kinds of notifications to users: 1) Report
Completion - a user is notified when an SQR program or other job is executed, creating a new version of the job output; a user can subscribe to either scheduled or unscheduled jobs; 2) Changed Content in a category - a user is notified when the contents of a category or subcategory changes; and 3) New Versions of an object - a user is notified when a new version of an object is stored in the repository or when an object is updated. Notifications are provided to users in a variety or ways including e-mail, a link on the user's browser interface, or an icon that appears in the user's browser interface.
Another tool for personalizing a user's portal page is the knowledge server 240, which is an optional component that adds 'search' features to the portal system 120. The knowledge server 240 provides full text searching and concept matching for documents located on Internet, intranet, and portal sites. The knowledge server 240 is configured to conduct searches upon both structured data and unstructured data. Structured data is data that is stored in a format that facilitates processing by a computer such as databases or structured filing systems like the repository 235. Unstructured data includes information that is arranged in a format designed for review by humans such as news articles, press releases, or any documents posted on the Internet to be read by humans. The knowledge server 240 can process structured and unstructured data from a variety of locations including the Internet; a company's intranet, and the portal repository 235. By using concept ranking algorithms and processes, the knowledge server 240 can qualitatively analyze structured and unstructured data and present only those items (structured or unstructured) which are most relevant to the user's search request. The documents that can be searched by the knowledge server 240 include HTML documents, Microsoft documents (such as MS Word), PDF files, text files, Brio.Query™ data files, and many others. The knowledge server 240 has two components: a search server 245 and a crawl server 250. Each portal system 120 supports a single search server 245 and a single crawl server 250 that communicate with each other. These components are interrelated and cannot function without each other.
The crawl server 250 downloads documents from Internet, intranet, and portal sites and indexes them into a database called an information source. Documents must be indexed into information sources before they can be retrieved by a search. Crawlers, which are crawl server agents, can navigate the portal, an intranet, and the Internet, according to certain predefined crawler properties. When a crawler begins executing, it starts at the first URL and downloads the document. The crawler determines whether the document should be indexed based on the crawler properties and if so, it parses the document. If the document is an HTML file, the crawler will follow hyperlinks to other documents and download them. A crawler can be configured to gather documents from multiple URLs. If it is desired to use the same crawler properties for several Web sites, then an administrator can create a single crawler to crawl these Web sites. For example, it might be desirable to use a single crawler to index a number of news sites and update the same information source, News, daily at 6:00a.m. Conversely, if one wants to use different crawler Properties for different Web sites, then separate crawlers may be created to index the Web sites.
The crawl server shall be running in order for the crawlers to execute. If the crawl server is shut down, then all crawlers that are in progress will stop and crawlers scheduled in the future will not execute. Crawlers that are run interactively do not interfere with crawlers that are running based on a schedule. Hence, it is possible (though not useful) to run a crawler interactively while it is executing based on its schedule. The crawl server 250 can index sites that are accessible through proxy server or sites that require authentication. The crawl server 250 may include more than one crawler. The document references and other metadata identified by a crawler are stored in information sources. Each crawler can be configured with certain parameters to control which documents to index into information sources.
The search server 245 manages full text searching of documents that have been indexed into information sources by the crawl server 250. In one embodiment, the search server uses a proprietary search engine which is commercially available. The search server 245 may be configured to perform searches constructed by a user on an ad-hoc basis or to perform searches on a predefined schedule. These search results, particularly those of scheduled predefined searches, may be presented to the user on his or her personalized portal page or though portal objects.
More than one information source may be configured in the portal. If there is a reasonable partitioning of the data on the repository 235, it may be desirable to maintain multiple information sources corresponding to each of these partitions. Indexing documents into separate information sources can help users 100 narrow searches to a particular information source to get more precise results. When structuring a search, choosing to use only information sources that contain useful information can eliminate extraneous documents. The best number of information sources to be searched will depend on how much precision and flexibility the user wants in constructing his searches. Too many information sources will clutter the interface and may lead a user to simply select all information sources, negating the purpose of having separated them. An administrator can set information sources to remove old documents after a specified amount of time, or move them into a different information source.
The portal system 120 provides channels through which data can be dynamically provided to the user's personal portal pages or dashboards. The portal system 120 allows a user 100 to organize content from the search server's information sources and the repository 235 in channels. A channel is a vehicle for organizing search results. A user can create and maintain channels for private use. For example, a user might search the company intranet and the Internet about the fishing industry in the Pacific Rim, then create a private channel called Fishing: Pacific Rim that will contain the query options specified in the search. Fishing: Pacific Rim will then appear on the left frame of this user's Personal tab and each time the user clicks on Pacific Rim, the web client runs the search and surfaces the results for that channel. Should the user 100 want to, she can retrain the channel to surface only results about fishing in Vietnam and call the retrained channel Fishing: Vietnam. Users 100 with write permissions to a category can publish a channel that will reside in that category. Users 100 must have read permissions to the channels they are publishing. For example, a user 100 who is a sales manager can publish an HR Forms channel in a sales category to which she has write permission.
The Properties of the Portal System
The characteristics and settings of the portal system 120 are defined by using Properties. Properties describe the characteristics and parameters of the service agents, jobs, schedules, and objects stored in the repository 235. The properties associated with each of these items are stored in a Relational Database. The Relational Database is administered by a Relational Database Management System (RDBMS). The properties associated with the different aspects of the portal system 120 are described below. An executable program and its associated files stored in the repository 235 are known as a job. A typical example of a job is any kind report program, including SQR programs and other report applications. A job includes all of the information needed by a properly configured job server 230 to execute a specific report or program. There are two kinds of jobs which may be processed by the portal system 120: SQR jobs and non-SQR jobs.
An SQR job is a report or program that is written in Structured Query Language along with its associated files. A non-SQR job uses an application other than SQR such as Brio.Report™. Such a job comprises the report or program to be executed (for example, an Oracle report or a Crystal report), the script, batch file, or executable used to run the report or program, and any associated files (for example, GIF files, Include files, and so on). An SQR job may be either secure or nonsecure. A SQR program is secure if it uses the SECURITY command.
FIGURE 4 depicts the hierarchical arrangement of the properties associated with a job. The properties associated with each job are stored in a relational database including the following groups: General Properties 400, Advanced Properties 405, Associated
Object 410, ASK Properties 415, INPUT Properties 420, Output Properties 425, Format Properties 430, Options Properties 435, and Associated Forms 440. The General Properties 400 associated with a job include the name of the job, a brief description of what the job does, a user 100 who is identified as the owner of the job, an expiration date for the job, an auto-delete flag, the group to which the job has been assigned, and the keywords associated with the job. The user 100 that is identified as the owner of the job will generally have full permissions to edit and delete the job. The expiration date property is used to automatically delete the job after a specified period of time. The group property gives members of the assigned group permissions to access or modify the job. The keywords are used to make the job easier to find by a user 100 using the search feature of the portal. The Advanced Properties 405 associated with a job include the MIME type, the security mode flag, the rating of the job, a browsable flag, an exception flag, a background mode flag, a prompt-for-database-login flag, and permissions. The MIME type property indicates which program is used to open the job. The security mode flag indicates whether the job has been configured as a secure SQR job. The rating indicates whether the priority of the job output is Normal or High. The browsable flag indicates whether a user 100 can see the job by using the browser user interface. The exception flag indicates whether the job can report Exceptions. Exceptions are conditions that appear in the output of a job that require some intervention or threshold to monitor. Users 100 have the option to subscribe to an exception associated with a job. If a user 100 subscribes to an exception, then he/she will be notified, by e-mail or the exceptions dashboard, when an exception occurs during the processing of the job. The background mode flag indicates that the job is to be executed in the background, thus allowing a user 100 to perform other tasks while waiting for the job to complete. The prompt-for-database-login flag indicates that the user 100 will be prompted for a back-end database username and password when the job is executed. Lastly, the permissions indicate the kind of access to be given to the owner, the assigned group, or any other user 100.
The Associated Objects properties 410 identify a list of objects or files which are needed by the job to be executed correctly. The Associated Objects include files required by the job at compile time, files required by the job at run time, and files required by the job when generating report output formats.
The ASK Properties 415 are used only for SQR jobs. These properties are used to prompt a user 100 to provide input at the time that a job is compiled. The ASK Properties can be provided to the job in several different ways: user input, command-line arguments, or entries in an associated ASK file. An ASK property may include either static parameters or dynamic parameters. With a static parameter, the web client form contains a blank field where the user either types in a value or accepts the default. With a dynamic parameter, the web client form contains a drop-down list of values obtained from the back- end database. The user 100 chooses one of these values by using the browser program. Each
ASK property will have several fields 445 including a prompt to be provided to the user, the default value of the input parameter, the name of a table to be used for a dynamic parameter, and a column name.
The INPUT Properties 420 are used to provide input to a job when it is executed. An INPUT property may include text-field parameters, static-choice parameters or dynamic-choice parameters. For text-field parameters, the web client form presents a text entry field with a default value. The user 100 may either type in a new value or accept the default entry. For a static-choice parameter, the web client form presents, at the time of job execution, a drop-down list, or a group of radio buttons showing a selection of values that has been assigned by the owner of the job. For a dynamic-choice parameter, the web client form presents, at the time of job execution, a drop-down list, or a group of radio buttons showing a selection of values obtained from the back-end database. The user 100 chooses one of these values at the time of job execution by using the browser program. Each INPUT property will have several fields 450 including a prompt to be provided to the user, the type of input to be provided, and the default value of the input parameter.
The Output Properties 425 define the parameters which are to be associated with the output files generated by a job. Some of these parameters include an output- file displayable flag, an auto-delete flag, a propagate permissions flag, and permissions. The output-file displayable flag indicates whether the web client can display the content of an HTML output file instead of merely display a link to it. The auto-delete flag indicates whether the output file is to be automatically deleted after a pre-determined period of time. The propagate permissions flag indicates whether the same permissions set for the job should be assigned to the output file. The permissions define the ability of certain users to access, edit or delete the output file.
The Format Properties 430 define the format for the SQR job output. Format options include Hewlett Packard laser jet printer (.hp), line printer (.lp), postscript (.ps), comma-separated value (.csv), Adobe Acrobat (.pdf), and Brio. Query™ data (.bqd). HTML output is always generated. If the job is a secure SQR job, then only HTML output type is available.
The Options Properties 435 define run-time parameters associated with a job. The options properties 435 include the username and password needed to run the job, the command-line flags for the job, the application needed to run the job, and a compile flag indicating whether the job is to be compiled immediately or at a later time.
The Form Properties 440 define the Forms which are used during run-time to collect input for the job. A form can consist of a simple HTML page that contains a form, or it can be a complex HTML page that invokes JavaScript or an applet. The form can also be a customized Web-based parameter collection form that has been developed by the enterprise for use in its jobs. When a form has been associated with a particular job, the form is stored in the repository 235. A user 100 can assign a form from the file system, or one that is already in the repository. Alternatively, a user 100 can choose to have the web client automatically generate a default Form. The form properties 440 include an HTML Parameter Collection Form, a list of Files Required by the HTML Form, a Show Parameter List when Running the job flag, and a Save As My Defaults flag. The HTML Parameter Collection Form describes the name of the form to be assigned to a particular job. The list of Files Required by the HTML Form describes the supporting files, such as GIF images, used by the form for data collection. The Show Parameter List when Running the job flag is used to enable a drop-down list of existing parameter lists when the user 100 is preparing to execute the job. The Save As My Defaults flag is used to indicate that a checkbox should be provided to the user 100 when the job executes asking him/her if the input settings should be saved as default values.
FIGURE 5 illustrates the properties associated with a schedule stored in the event server. Jobs that are created in the portal system 120 can be set up to run on a predetermined schedule. To schedule a job, it must be associated with a Time Event 505, a
Parameter List 515, and a Schedule 500. Time events 505 define the timetable for running a job. Because time events are not necessarily associated with a particular job, a user 100 can utilize each time event 505 to schedule multiple jobs. Typically, several standard time events 505 will be present in the portal system 120. This allows a user 100 to select a time event 505 which best matches his needs. Each time event 505 will have several properties 515 associated with it including a brief description, a creation date, an owner, a group, permissions, a start date and time, and a repeat interval. Parameter lists 510 define the compile-time and run-time values necessary to execute a job. Each Parameter List 510 will have several properties 520 associated with it including: a parameter list name, a brief description, a job name, ASK Properties 415, INPUT Properties 420, an assigned owner and group, and permissions. Many of these properties are interrelated to the job properties illustrated in FIGURE 4 and previously discussed.
FIGURE 6 illustrates some of the common properties associated service agents in the portal system 120. In FIGURE 6, a list of installed service agents 600 is maintained in the Relational Database in the portal system 120. Several properties are associated with each of the installed service agents, including the Name of the service agent 605, the Type of the service agent 610, the Host where the service agent resides 615, the Database Type 620 associated with service agent, and the Database Server 625 associated with the service agent. As seen in FIGURE 6, a list of the different service agent types 630 is maintained in the Relational Database in the portal system 120. Thus, when a service agent is installed on the portal system 120, the administrator must add a new service agent type or select from the list of available service agent Types 630. Also depicted in FIGURE 6 is a list of the available service agent Hosts 635 which are resident on the portal system 120. Again, when a new service agent is installed on the portal system 120, the administrator must add a new service agent Host or select from the list of available service agent Hosts 635. More than one service agent type can be installed on a particular service agent host. For example, an authentication server 220 and a name server 225 may both be installed the same host computer. FIGURE 6 also illustrates that each service agent will be assigned a Database Type 620 and a Database Server 625. A list of the available service agent Types 640 and
Database Server Types 645 are maintained in the Relational Database in the portal system 120. Generally, only one Database Type 620 will be associated with a Database Server 625.
FIGURES 7 and 8 depict some of the properties associated with the specific service agents of the portal system 120. Each repository 235 is assigned certain properties 700 including a name, a host, a database type, and a database server. Each authentication server 220 is also be assigned certain properties 705 including a name, a host, a database type, a database server, a list of supported capabilities 710, and a table of drivers 715. The capabilities 710 define whether the authentication server 220 may be used to create and modify users and groups for the portal system 120. The table of drivers 715 defines the authentication drivers which may be utilized to authenticate users such as LDAP. Each job server 230 is assigned certain properties which are illustrated in FIGURE 7. As with all other service agents, each job server 230 is assigned a name, host, database type, and database sever. In addition, each job server 230 is also assigned an Application 720, a Program 725, ajob server Class 730, and a SQR Server 735 if the job server will be used for SQL jobs. The Application 720 is typically a third-party vendor application designed to run in the background. Application examples include Brio Technologies SQR, Oracle Reports, or public domain application shells such as PERL. A Program 725 is typically a source used to drive a specific invocation of an application. For example, a user 100 might submit an SQR program that generates a sales report to an SQR application on a given host through a job server 230. The Job Server Class 730 property identifies what kind of job server is installed and the SQR Server 735 defines what kind of SQR Server is installed (i.e. SQR V4 3 for Sun/Solaπs/ORACLE). Each of the Application 720, Program 725, job server 730 and SQR Server 735 properties will have certain sub- properties assigned as well.
The search server 245 is assigned certain properties which are illustrated in
FIGURE 8. As with all other service agents, the search server 245 is assigned a name, host, database type, and database server. In addition, each job server 230 is also assigned Search Engine Properties 800 and Information Sources 805. The Search Engine Properties 800 describe the operating parameters for the search engine, including a Query Port value, an Index Port value, a Language, an Index Hyphenated Words flag, and Hyphen Character. The
Query Port value identifies that port which will handle simultaneous queries form a user. The Index Port value identifies the port which receives indexing requests from the crawl server. The Language specifies the language in which month names and abbreviations of month names appear. The Index Hyphenated Words flag indicates whether the Search Engine indexes a hyphenated word as well as individual words. The Information Sources properties 805 describe the names and properties of each Information Source that has been indexed by the crawl server. Some of the properties include a Name, a Description, a Number of Documents which may be stored in the Information Source, an Expiration Date, and an Expiration Action for the Information Source.
Each channel is assigned certain properties which are illustrated in FIGURE 8.
Some of these properties include a set of General Properties 810, Advanced Properties 815, Query Properties 820, and Information Sources 825. The General Properties 810 define the name of the channel, a brief description, the owner and group of the channel, and the expiration date of the channel. The Advanced Properties 815 for each channel include a Browsable flag and Permissions. The Browsable flag indicates whether the channel is visible to the user 100 using the Browser interface. The Query Properties 820 define the query to be provided by the channel to the search server. These properties include the Query Phrase, the minimum relevancy for the search, the document types to be identified, a test to determine if the query had been modified in the past, a test to determine if any exception items are present, a test to determine if any high priority documents are present, and a delete training history flag. Also included are settings determining how search results should be sorted (i.e. by relevancy or last-modified date) and a display document summary flag. The Information Sources 825 associated with a channel define which information sources which will be searched when a particular channel is executed.
FIGURE 9 depicts certain properties that are assigned to each crawler in the crawl server 250. These properties include General Properties 900, Schedule Properties 905, Limits 910, Directory Properties 915, Web Pages Properties 920, Proxy Properties 925, Authentication Properties 930, Cookies Properties 935, Protocol Properties 940, Date Format Properties 945, Text File Properties 950, and Status Properties 955. Each of these sets of properties is described below.
The General Properties 900 define the basic parameters to be used by each crawler in conducting its search. Included in these parameters are the name of the crawler the information sources to be searched by the crawler, a list of the URLs to crawl, a flag indicating whether the URLs are case sensitive, and a flag indicating whether the crawler should follow links to other sites.
The Schedule Properties 905 are used to define the schedule on which the crawler operates. Included within the Schedule Properties 905 are a schedule (as disclosed in figure 5, a start time, and a repeat interval.
The Limits 910 are used to prevent the crawler from infinitely indexing sites which have deep links. Some of the limits which may be defined for a crawler include a maximum depth which specifies how many levels of links a crawler may follow, a site duration which defines the number of hours a crawler should spend on any given site, a page delay which defines the number of seconds the crawler should wait after downloading a page before moving to the next link of set of links, and a page timeout which defines the number of seconds that the crawler will wait to receive data after requesting a page.
The Directory Properties 915 provide an Allowed field and a Disallowed field. The allowed field defines a set of strings that must exist in a URL object for that object to be indexed. The disallowed field defines a set of strings that must not be in the URL object in order for the object to be indexed these fields may be used to greatly limit the number of sites which are indexed in an information source. Web Pages Properties 920 are used to exclude HTML and text files from being indexed in an information source based upon the content of the document and/or header. Using these properties, a user can specify those strings that must exist and/or those strings that must not exist. If either of these constraints, the HTML document will not be indexed. For example, if a user does not want any HTML or text files to be indexed that contain the phrase "living abroad," the term "living abroad" is added as a Cannot Have Text string. Or, if a user desires to index only all the HTML or text files that contain the phrase "electronic filing," then the term "electronic filing" would be added as a Must Have Text string. HTML or text files must meet both constraints in order to be indexed in an information source. If a document meets both the must have constraint and the can't have constraint, then the can't have constraint takes precedence and the document will not be indexed. Accordingly, the web pages properties will include two fields: a Must Have Text field and a Cannot Have Text field. Other parameters may also be set to look for these strings in the headers or content only.
Proxy Properties 925 are used to define the proxy parameters if the portal is connected to the Internet through a proxy server. The Proxy Properties 925 include the host address of the proxy server, the port on which the proxy server listens, and the user name and password for connecting to the proxy server.
The Authentication Properties 930 define how the crawler is to log into websites that require a login. Three different types of login authentication methods are available: HTTP authentication, forms-based authentication, and cookie-based authentication. Sites that display a dialog window requesting a user name and password are generally using http authentication. A user name and password usually have to be provided so that the crawler can log into the website. Sites that have a page containing a login form are usually forms-based authentication. These are fairly difficult to configure because there are many entries that can be defined on the form. Additional login information may need to be specified in the cookie tab. Accordingly, the Authentication Properties 930 will indicate which authentication protocol should be used for a site as well as user names and passwords necessary for logging in.
Cookies Properties 935 are used to specify additional login information as well as cookies that should be sent to a webserver. The additional login information allows the crawler to log into a site in which a form requires more than just a user name and password. For example, if the form has an input field that specifies a users age, then age can be specified as additional login information. Therefore, the field's name and value should be added to the cookie as additional login information. Often a form-based login will result in a cookie being submitted to a user's browser interface. The cookie contains information about the user's login parameters insuring that the user and only that user see the content on that website. The cookies properties 935 allows cookie-based login, or cookie spoofing. Using this method, a crawler can sometimes leap frog the login process all together and insure that the crawler appears logged in as soon as it arrives at the site. Once the names and values of the cookies have been determined, they may be added to the cookies page of the crawler, thus allowing the crawler to login when it starts. Of course, if the cookie expires then cookie- based authentication will work for only the duration that the cookie is valid.
The Protocol Properties 940 allow an administrator to specify the HTTP protocol version as either 1.1 or 1.0. An administrator is also allowed to specify whether secure sockets layer (SSL) is to be used in retrieving "https://" URLs. The Date Format Properties 945 define the specific date format and language to use when displaying search results with the web client. Some of the date formats which may be utilized are listed below in table 1.
Table 1
YYYY - Year as 4 digits; 1999, 2000
MM - Month as a numeric two digit number; 01, 12
SHORTMONTH - Abbreviation for the month; Jan, Sep
LONGMONTH - Long month format; January, September
DD - Day as a two-digit number; 08, 31
D+ - Day as either a one or two digit number; 8, 31
HH - Hour as a two-digit number; 01, 10
H - Hour as either a one- or two-digit number; 1, 10
NN - Minute as a two-digit number
N+ - Minute as either a one- or two-digit number
SS - Second as a two-digit number
S+ - Second as either a one- or two-digit number
ZZZ - Time Zone; GMT, EST, PST
The Text File Properties 950 specify what extensions to treat as text files; for example, TXT, CSV, XML, and so on. Entering these extensions in the text file properties screen means that if the crawler finds a file with one of these extensions, it will treat the extension as a text file. MS and PDF files will automatically be treated as text files.
The Status Properties 955 displays information on how the crawler is currently performing. Some of the parameters identified as status properties include the number of seconds that the crawler has been running since the start of the current run, the number of pages that the crawler has downloaded since the start of the current run, the number of URLs that return error 404, and the number of pages that the crawler does not have authorization to access. The Status Properties 955 allow an administrator to display the status of the last run, to put the crawler on hold, and to test the crawler. The scheduled crawler state provides the crawler statistics regarding the last time that the crawler executed based on its schedule. If the crawler is currently executing, these statistics will be displayed. It does not provide statistics when the crawler was executed interactively. When a crawler is placed on hold, the crawler will not be allowed to execute based on its schedule. However, the hold will not affect the ability to run the crawler interactively. A crawler should be tested after creating it to verify it behaves as desired. By checking the logging information, and administrator or user 100 can see what documents are being downloaded and discarded. When testing a crawler, the documents are not indexed into information sources.
The Portal Page
FIGURE 10 depicts a representative example of a portal page 1000 as seen from a user's browser program. A portal page 1000 is a customized web page that presents data from the portal system 120 that is most relevant to a particular user. A portal page 1000 is a user's primary interface to the data, reports and jobs that are resident in the portal system 120. Each of the sets of data that are presented to a user at the portal page 1000 is called a portal object. A portal page 1000 presents portal objects to a user 100 in a format that is readable by a standard browser program. The user's default portal page 1000 is the first page he sees after logging into the portal system 120. The first time a user logs into the portal system 120, a portal page 1000 is automatically generated. Thereafter, a user 100 can modify his respective copies of the portal page 1000, and can create additional ones. Users can modify the content, layout, and colors of any of their portal pages 1000, as well as changing which portal page 1000 is the default page (the one that displays at the beginning of a portal session). Users to whom permission is granted can publish their own portal pages for others to copy. Users can add additional components to any of their portal pages 1000, or remove optional components. In addition to using pre-conflgured content provided by the administrator, a user can create and include on his portal page 1000 other content of interest to him, such as bookmarks, channels, and job output files displayed as portal objects.
In FIGURE 10, the portal objects are generally arranged in three columns. The left-most column 1001 is entitled "Personal" and contains a set of links which may be selected by the user with the browser program. These links allow the user to access certain "favorite" and "my" objects which have been previously defined. The middle column 1002 includes four tabs at the top entitled "personalize," "content," "layout." and "edit." These tabs are used to customize the appearance of the user's personal portal page. Below these tabs are four portal objects entitled Broadcast Messages 1005, Company Billboard 1010, My Bookmarks 1015, and the Exceptions Dashboard 1020. The right-most column 1003 includes one display window 1025, and another portal object entitled E-commerce Top Stories 1030.
Each of these portal objects is described below.
In FIGURE 10, the Broadcast Messages portal object 1005 is configured as a mandatory portal object. Thus, it cannot be modified or removed by a user 100. Accordingly, the Broadcast Message portal object in FIGURE 10 does not include an "X" icon 1008 in the upper right hand comer which would allow a user to delete this portal object from their portal page 1000. Beneath the Broadcast Message portal object 1005, it the Company Billboard portal object 1010. The Company Billboard portal object 1010 is a preconfigured category which includes a list of links which may be accessed, but not edited by the user 100. By clicking on one of these links, a corresponding object will be displayed in the display window 1025 on the right-hand side of the portal page 1000. In the example of FIGURE 10, the Personal Dashboard link in the Broadcast Messages category 1005 has been selected by a user; thus causing the Personal Dashboard portal object to be displayed in the display window 1025 of the portal page 1000. Because the Company Billboard 1010 has been set up as a preconfigured category, a user 100 cannot edit the links which are listed in this window. A user 100 does have the option of removing this portal object from his personalized portal page by selecting the "X" icon 1008 in the upper right hand corner of the Company Billboard portal object.
Below the Company Billboard 1010 is the My Bookmarks portal object 1015. The My Bookmarks portal object 1015 is set up as a standard component which means that a user 100 has the ability to modify this portal object to include the content that he desires. Within the My Bookmarks object are links to other objects within the repository 235 or to other sites on the Internet which the user 100 deems to be relevant. New bookmarks may be added to this category by the user 100 by pressing the "New Bookmark" link at the bottom of the My Bookmarks portal object 1010. In addition, a user 100 can edit the bookmarks residing in this portal object by pressing the "Edit" button located at the top right-hand corner of the My Bookmarks portal object 1010. Pressing the "Edit" button in the My Bookmarks portal object will cause an interactive form to be displayed in the display window 1025, thus allowing the user 100 to edit the content of the portal object. A user can also delete the My Bookmarks window from the personalized portal page 1000 by selecting the "X" icon 1008 in the upper right hand corner of window.
The last window displayed in the middle column of the portal page 1000 is the Exceptions Dashboard 1020. The exceptions dashboard 1020 is set up as a standard component which may be edited and configured by a user. The exception dashboard 1020 is used to indicate when an exception condition has been found in a particular job processed in the portal system 120. An exception condition is tied to the results of a job executed within the portal system 120. Only certain jobs within the portal system 120 can be configured .to indicate an exception condition. In addition, a user 100 is required to subscribe to an exception associated with a job before he can be notified of the exception condition via his portal page 1000. The exception dashboard window 1020 can be configured by a user to display an indicator when an exception condition is met by a particular job that was processed by the portal system 120. In FIGURE 10, the exception dashboard is configured to display a traffic light which is green when no exceptions are present and red when an exception condition was indicated by a job.
The right-most column of the portal page 1000 of FIGURE 10 includes a display window 1025 and another portal object entitled E-commerce Top Stories 1030. The display window 1025 is used to display the objects and reports requested by a user 100 during a session. Generally, the requested objects must be in a format that is capable of being read by a browser program in order to be displayed in a the display window 1025. In FIGURE 10, the personal dashboard portal object is being displayed in the display window 1025.
The portal object illustrated at the bottom of the right-most column 1003 of the portal page 1000 is a syndicated content portal entitled E-commerce Top Stories 1030. A syndicated content portal object is used to present dynamically updated content provided by a third party. Third party content could include information such as a news-wire, a stock quote service, or a sports score reporting service. In FIGURE 10, the third party content that is provided in this window is a news-wire service related to E-commerce stories.
The personal dashboard is an object that can be personalized and configured by a user to display a variety of objects from the portal system 120 as well as content obtained from the Internet. For example, in FIGURE 10, the user 100 has configured his personal dashboard to display two image bookmarks: the "Just-In-Time Sales Report" 1035 and the "Operations Dashboard" 1040. a chart entitled "Sales by Product Analysis" 1045, a set of current weather information 1050, and a continuously updating banner describing other information 1060. The two image bookmarks are links to other objects which may be displayed in the display window 1025. Thus, by clicking on either of these icons, a corresponding object would then be displayed in the display window 1025. The "Sales by Product Analysis" chart 1045 is a dynamically updated portal object that displays the results of a job that was recently executed by the portal. Every time that the corresponding job is executed, an output file would be generated which would then be displayed on the user's personal dashboard. Thus, by merely displaying the personal dashboard, a user may view an image of the most recent sales by product analysis, or any other job report. This portal object may also be configured as an image bookmark so that a larger image of the graph will be displayed by clicking through. The set of current weather information 1050 indicates that the personal dashboard may be configured to display information from the Internet as well as objects from the portal. Lastly, the continuously updating banner describing other information 1060 illustrates that any data may be configured to be displayed on the personal dashboard as long it is readable by a standard web browser. Thus, the personal dashboard can display a variety of structured and unstructured data in a standardized format. The Portal Processes
The login process for a user can be described by referencing FIGURE 2. A user 100 can be connected to the portal system 120 by accessing a computer which is connected to the portal's network server 105. Initially, the user 100 sends a request to the network server 105 for access to the portal system 120. The user 100 is then prompted to provide a username and password for the portal system 120. This information is then passed from the web client 115, to the service broker 125 to the authentication server 220. At the authentication server, if the user 100 is identified as a valid user, then a session token is sent to the service broker 125 which grants the user 100 access to the portal system 120 for a period of time. If no activity is detected by the service broker 125 for a certain period of time, then the user's session is closed and he will be forced to log in again. Information about the user's group affiliation and system permissions are also stored in the authentication server 220. Thus, the authentication server 220 determines what level of access to be given a user 100 based upon his permissions. For example, a user 100 may only be given permission to view certain categories or objects in the repository 235. All other categories and objects in the repository are off-limits to the user. The service broker 215 would therefore bar the user from accessing any "off-limits" objects and categories and would only allow him to access permitted areas within the portal system 120.
After a user 100 logs in to the system, he will first be presented with his personalized portal page 1000 on his browser software. The process by which this is accomplished is described below. After a session is established at the service broker 125 of the portal system 120, the service broker retrieves a set of metadata corresponding to the user's personal portal page 1000 from the repository. This metadata indicates which portal objects should also be retrieved from the repository 235 in order to populate the portal page 1000. After all of the portal objects have been retrieved from the repository, they are assembled into a format which can be read by a browser program. After this, the personalized portal page 1000 is transmitted to the appropriate user 100 through the network server 105. At the user's interface, his browser program will display the personalized portal page 1000 to the user. The process of assembling a personalized portal page 1000 is repeated every time a user 100 refreshes his browser screen. Because each portal page 1000 is assembled on an ad-hoc basis using the most current versions of the portal objects in the repository 235, the data presented on a newly refreshed portal page 1000 will present the most recent data available in the portal system 1000.
A user 100 may select jobs to be processed by the portal system 120 by performing the following steps. First, a user will select a link or object on his personalized portal page 1000 which corresponds to a job. For example, in FIGURE 10, a user 100 may select the first link in the company billboard portal object 1010. Or, a user 100 may select the "Just-in-Time Sales Report" image bookmark 1035 in the personal dashboard. Either of these selections will transmit a request to the portal system 120 to execute a job and return the results to the user 100. Referring again to FIGURE 2, when the request to execute a job is received by the service broker 125, it is first determined if the user has permissions to execute this job. This is done by polling the authentication server 220 to create a user context for the job. The user context will include the user's username, group information, default category, and default permissions. If the user 100 is found to have appropriate permissions for the job, then the job will be retrieved from the repository 235 and sent to the service broker 125. The service broker will then dispatch the job (along with the user context) to an appropriate job server 230 for processing. Generally, the job will be dispatched asynchronously so that the service broker 125 is freed up to perform other tasks while the job is executing. It should be noted that a job will often include several objects necessary for the execution of the program other than the executable file. These objects may include metadata corresponding to the job, forms objects, and INPUT objects. The job server 230 uses all of these objects to execute the job request.
A job may require a fresh set of data to be retrieved from a back-end database 200, 205, or 210. If this is the situation, then the job will be dispatched to a job server 230 that is connected to an appropriate back-end database. After the data is retrieved from a back-end database, it is processed by the job server 230 and an output report is prepared. In many instances, the output report will have to be transformed into a format that is appropriate for storage and/or presentation to the user. This process is performed by the job server 230. After the output reports have been converted into the appropriate format, then the job server analyzes the job metadata to determine if there are any subscriptions or notifications which need to be fulfilled. The job server 230 will also test the output report to determine if any exception conditions are present. The job server 230 will utilize the job metadata to determine if any of the exception conditions have been met. If so, appropriate notifications will be sent to the subscribing users via e-mail or portal object update (such as notification on a dynamic portal object). In addition, the job server 230 will assign user and group permissions to the output report. These permissions define the users and groups that can access and view the output report. The output report will then be transmitted to the service broker 125 so that it can be forwarded to the user who requested it. The output report will generally be displayed in the display window 1025 of the user's personalized portal page. A copy of the output report may also be stored in the repository 235.
Another condition that may be encountered by the job server 230 during the execution of a job is the requirement of input for the job. In some instances, the input can be provided by an INPUT object associated with the job in the repository (see item 420 of FIGURE 4). In other instances, the input must be provided by the user 100 as the job executes. In this situation, an ASK form associated with the job will be used to solicit input from the user 100. When a job server 230 requires input, an ASK form will be transmitted to the service broker 125 by the job server 230. The ASK form will then be presented to the user 100 at the user's browser interface. If a job requires input from a user, and there is no corresponding ASK form, then the portal system 120 may construct an ad-hoc input form which can be presented to the user. After the user 100 has made his input selections on the form, the input data is transmitted to the job server 230 through the service broker 125. The input data is then utilized by the job server 230 to complete the execution of the job.
Another feature of the portal system is the creation of secure bursted output reports. These output reports contain embedded permission markings which restrict the ability of some users and groups to view some portions of an output report. Thus, when a user with limited permissions views a secure bursted output report, he will see only those sections which he has been given permission to see. The secure bursted output report feature works best when the output report has been bursted into multiple files with each file containing one or more HTML pages. When an output report is created in the job server, each file is tagged with a set of user and group permissions defining the ability of certain users and groups to access all of the HTML pages in the file. A master file containing a plurality of containers is also generated. Each container is used as a reference to one of the bursted files. Thus, by assembling all of the bursted files into the master file, a complete output report may be generated. Accordingly, an output report with multiple containers, each of which having different levels of permissions, yields the most flexibility.
To retrieve a secure bursted output report from the repository, the user must first have logged into the portal system 120. The process of logging into the portal establishes a user context which contains, among other things, the username, user permissions and group information. After a user is logged in, the portal system 120 uses the following steps to determine which parts of a bursted secure job output to provide to a user. First, when a user requests a secure bursted output report, the normal permission checking is done to determine if the user has the appropriate permissions to read the master output report.
If the user does not have appropriate permissions, then an error message is returned to the user and the retrieval process is ended. Second, the repository checks the permissions for each container in the master output report. If the user has appropriate permissions for the container, then the special tags that were assigned to each file when the output was created are checked. If the user name is in the list in the tags or the user is a member of one of the groups listed in the tags, then this container is added to the set of containers to be returned as part of the master output report. If the user does not have appropriate permissions, then the container is not added to the set of containers to return. No errors are returned from this step. The fact that a user cannot see a particular container is not necessarily an error but a function of the way the secure bursted output program operates. After this process is finished and a list of viewable containers in the secure bursted output report is determined, the contents of each approved container are retrieved from the repository and are presented to the user.
In the event server 215, jobs may be associated with certain time events. These time events control when jobs run. Jobs which can be associated with time events include batch jobs that are to be processed in the job servers, searches to be conducted in the knowledge server, or retrieving channels from the repository for processing in the knowledge server. When the event server 215 starts, it builds an ordered list of time events that are known to the system. The time events are ordered by the next time that they are scheduled to run. Each time event may have one or more jobs scheduled against it. The job information includes data about the job properties and distribution/notification information. The data necessary to build this list is retrieved from the database that contains the event server 215 metadata. Once the ordered list is generated, the event server 215 calculates the amount of time until the first time event is scheduled to run and goes to sleep for this amount of time.
The following steps are performed when the event server 215 awakens and collects the set of jobs associated with the time event scheduled to run at that time. These actions are performed for each scheduled job. First, the event server 215 sends a transaction to the repository 235 to retrieve ajob that is to be run. If the job is no longer in the repository 235, then the event server 235 will remove the scheduled job from the event server 235 metadata and move on to the next scheduled job. Second, the event server 235 sends a transaction to the authentication server 220 to get information about the user 100 that scheduled the job. That information includes the username, group information, default folder and default permissions. This information is used to create a user context. This user context is used when sending the job to the appropriate job server 230 for execution. The event server 235 will make it appear that the user 100 that scheduled the job is the user 100 that is running the job through the scheduler. Third, the event server 235 sets the parameter values for the job with the parameter values that were input by the user 100 when the job was scheduled. This would include both ASK and INPUT values for SQR jobs and input values for generic jobs. Fourth, the event server 235 sends the job to the service broker 125. The service broker 125 will route the job to an appropriate job server 230 for execution. The command that is used to send the job to the job server 230, via the service broker 125, is a command that will cause the job to run asynchronously. The command also contains distribution information that allows the job server 230 to distribute output reports and send email notifications when the job is completed. When ajob runs asynchronously in the job server 230, a unique thread is created to run the job and control returns to the event server 215. This mechanism allows the event server 235 to send numerous scheduled jobs to the service broker 125 for execution without waiting for previous jobs to finish. The event server 235 supports a user configurable concept called retry processing. If the event server 235 fails to send the job to the job server 230, one of two things happens. If retry processing has been disabled, an error notification will be sent to the email address specified when the job was scheduled. No attempt will be made rerun the job. If retry processing is enabled, then an email will be sent informing the user that the job could not be sent to the job server 230 and it is being resubmitted. The job is then added to a retry queue so the event server 235 can try to run it later. Fifth, when control is returned to the event server 235, the metadata for the scheduled job is updated to reflect the time it was run and the number of times it has run is incremented.
Jobs that are placed in the retry queue are retried using the following algorithm. Each job will be retried until they run successfully or until the event server 235 is stopped. When ajob is retried, it follows the five steps outlined above. When ajob is first placed in the retry queue it is set to run 10 minutes after the time it is placed in the queue. After each attempt to run the job, if it fails, it is resubmitted to the retry queue with an additional 10-minute wait time added until the next retry. In other words, jobs submitted to the retry queue will be retried first in 10 minutes, then 20 minutes, then 30 minutes, etc. all the wait up to 120 minutes. After the retry period hits 120 minutes it stays there. Thus, if a job that is retried after 120 minutes and fails, it will be retried in another 120 minutes. The 120-minute maximum delay is user configurable.
When the event server 235 is first started, a sweeper thread is started that looks through the metadata about time events and scheduled jobs. The sweeper thread looks for scheduled jobs that should have run in the past but didn't. This would include jobs that were queued up or in the retry queue when the event server 235 was stopped. When such a job is found it is retried using the five steps described above.
Although the portal system has been described in this specification by way of description, examples and drawings, it should be noted that various changes and modifications may be apparent to those skilled in the art. In particular, many modifications in the structure and operation of the hardware and software may be made in the implementation of the embodiments described above. Any such changes and modifications should be construed as being included within the scope of the inventors' original conception, unless they depart from the scope of the invention as defined by the claims.

Claims

CLAIMS:What is claimed is:
1. A computer system configured to communicate with a plurality of users through a network interface, wherein at least one of the plurality of users communicates with the network interface through a computer network, the computer system comprising:
a service broker electrically connected to the network interface, the service broker controlling a level of access to the computer system by a user;
an authentication server electrically connected to the service broker, the authentication server configured to determine a level of access to be granted to a user based upon data stored therein;
a repository electrically connected to the service broker, the repository comprising a computer memory encoded with a plurality of objects including at least one job which may be accessed by the users;
ajob server electrically connected to the service broker, the job server configured to execute ajob stored within the repository and produce an output report, the job server also configured to transmit an output report to the network interface for transmission to the user; and
an event server electrically connected to the service broker, the event server comprising a computer memory encoded with instructions for dispatching ajob for processing on the job server according to a predefined schedule.
2. A computer system according to claim 1, wherein the computer memory of the repository is further encoded with job properties corresponding to said at least one job, wherein said job properties define a set of input data be provided to a corresponding job server when the job is executed, and wherein the job server is configured to process the set of input data with the job when the job is executed
3. A computer system according to claim 1, wherein the computer memory of the repository is further encoded with job properties corresponding to said at least one job, wherein said job properties define a list of users to be notified when the job is executed, and wherein the job server is configured to process said job properties and provide notification to the list of users when the job is executed
4 A computer system according to claim 1 , wherein the computer memory of the repository is further encoded with job properties corresponding to said at least one job, wherein said job properties define an exception condition and a list of users subscribing to the exception condition, and wherein the job server is configured to compare said exception condition to the output report to determine the existence of an exception, and to provide notification to the list of users subscribing to the exception condition if the exception condition exists when the job is executed
5 A computer system electπcally connected to at least one back-end database, the computer system configured to communicate with at least one user through a network interface, wherein said least one user communicates with the network interface through a computer network, the computer system compπsing
a service broker electncally connected to the network interface, the service broker controlling a level of access to the computer system by a user, an authentication server electπcally connected to the service broker, the authentication server configured to determine a level of access to be granted to a user based upon data stored therein;
a repository electrically connected to the service broker, the repository comprising a computer memory encoded with a plurality of objects including at least one job which may be accessed by the users;
ajob server electπcally connected to the service broker and to said at least one back-end database, the job server configured to execute ajob which retπeves and processes data from the back-end database, the job server also configured to transmit an output report to the network interface for transmission to the user; and
an event server electrically connected to the service broker, the event server comprising a computer memory encoded with instructions for dispatching ajob for processing on the job server according to a predefined schedule.
6. A computer system according to claim 5, wherein the computer memory of the repository is further encoded with job properties corresponding to said at least one job, wherein said job properties define a set of input data be provided to a corresponding job server when the job is executed; and wherein the job server is configured to process the set of input data with the job when the job is executed.
7. A computer system according to claim 5, wherein the computer memory of the repository is further encoded with job properties corresponding to said at least one job, wherein said job properties define a list of users to be notified when the job is executed; and wherein the job server is configured to process said job properties and provide notification to the list of users when the job is executed.
8. A computer system according to claim 5, wherein the computer memory of the repository is further encoded with job properties corresponding to said at least one job, wherein said job properties define an exception condition and a list of users subscribing to the exception condition, and wherein the job server is configured to compare said exception condition to the output report to determine the existence of an exception, and to provide notification to the list of users subscribing to the exception condition if the exception condition exists when the job is executed.
9. A computer system configured to communicate with at least one user through a network interface, wherein said at least one user communicates with the network interface through a computer network, the computer system comprising:
a service broker electrically connected to the network interface, the service broker controlling a level of access to the computer system by a user;
an authentication server electrically connected to the service broker, the authentication server configured to determine a level of access to be granted to a user based upon data stored therein;
a repository electrically connected to the service broker, the repository comprising a computer memory encoded with a plurality of objects including at least one job which may be accessed by the users and wherein the computer memory of the repository is further encoded with job properties corresponding to said at least one job, wherein the job properties define an input forms be provided to a corresponding job server when the job is executed;
ajob server electrically connected to the service broker, the job server configured to execute ajob stored within the repository, and wherein the job server is configured to provide a corresponding input form to a user; and wherein the job server also configured to receive input from a user based upon the user form, the job server also configured to process the input from the user with the job to produce an output report, the job server also configured to transmit the output report to the network interface for transmission to the user.
10. A computer system according to claim 9, wherein the computer memory of the repository is further encoded with job properties defining a list of users to be notified when the job is executed; and wherein the job server is configured to process said job properties and provide notification to the list of users when the job is executed.
11. A computer system according to claim 9, wherein the computer memory of the repository is further encoded with job properties defining an exception condition and a list of users subscribing to the exception condition, and wherein the job server is configured to compare said exception condition to the output report to determine the existence of an exception, and to provide notification to the list of users subscribing to the exception condition if the exception condition exists when the job is executed.
12. A computer system configured to communicate with at least one user through a network interface, wherein said at least one user communicates with the network interface through a computer network, the computer system comprising:
a service broker electrically connected to the network interface, the service broker controlling a level of access to the computer system by a user and adapted to receive a request from a user for ajob report; an authentication server electrically connected to the service broker, the authentication server configured to determine a level of access to be granted to a user based upon data stored therein;
a repository electrically connected to the service broker, the repository comprising a computer memory encoded with a plurality of objects including at least one output report corresponding to a job and at least one portal page corresponding to a user, wherein the portal page includes a display window and a dynamically updated portal object associated with an output report stored in the repository;
wherein the computer memory of the repository is further encoded with instructions for providing said at least one portal page to a corresponding user; and
ajob server electrically connected to the service broker and to the repository, the job server configured to execute ajob stored within the repository and produce an output report, the job server also configured to store the output report in the repository.
13. A method of processing ajob in a computer system comprising a service broker, a repository including computer memory, an authentication server, and ajob server, the computer system configured for communication with at least one user through a network interface, the method comprising:
retrieving a personalized portal page corresponding to a user from the repository, wherein the personalized portal page includes a display window and at least one portal object, wherein the portal object includes a link corresponding to a job stored in the repository;
transmitting the personalized portal page to the user; receiving a request from the user to execute ajob stored in the repository;
retrieving the requested job from the repository;
dispatching the requested job for processing on a corresponding job server;
processing the requested job in the job server so as to produce an output report corresponding to the requested job;
converting the output report into a format readable by a browser program;
transmitting the portal page to the user with the converted output report displayed in the display window of the portal page.
14. A method of conducting a search in a computer system comprising a service broker, a repository, an authentication server, and a knowledge server including a search server, a crawl server, and a computer memory encoded with a set of crawler parameters defining a first set of objects to be indexed by the crawler server wherein the first set of objects includes structured data objects and unstructured data objects, wherein the computer system is configured for communication with at least one user through a network interface, the method comprising:
processing each object within the first set of objects with the crawler server to generate index data;
storing index data corresponding to the first set of objects in an information source within the computer memory of the knowledge server;
receiving a request for access to the computer system from a user connected to the computer system with a browser program; transmitting the user's request for access from the service broker to the authentication server to determine a level of access to be given to the user;
generating a session token corresponding to the user's request for access and transmitting the session token to the service broker from the authentication server;
providing a level of access to the computer system for the user based upon the session token;
retrieving a personalized portal page corresponding to the user from the repository, wherein the personalized portal page includes a display window and a portal object, wherein the portal object includes an input field for receiving at least one search term from the user;
transmitting the personalized portal page to the user;
receiving a search request from the user wherein the search request includes at least one search term provided by the user;
processing the search request and the information source with the search server so as to generate a search result comprised of a second set of objects corresponding to the search request;
converting the search result into a format readable by a browser program;
transmitting the personalized portal page to the user with the converted search result displayed in the display window of the portal page.
15. A method of updating a channel in a computer system comprising a service broker, a repository including a first computer memory encoded with a set of channel parameters, an authentication server, and a knowledge server including a search server, a crawl server, and a second computer memory encoded with a set of crawler parameters defining a first set of objects to be indexed by the crawler server wherein the first set of objects includes structured data objects and unstructured data objects, wherein the computer system is configured for communication with at least one user through a network interface, the method comprising:
processing each object within the first set of objects with the crawler server to generate index data;
storing index data corresponding to the first set of objects in an information source within the computer memory of the knowledge server;
receiving a request for access to the computer system from a user connected to the computer system with a browser program;
transmitting the user's request for access from the service broker to the authentication server to determine a level of access to be given to the user;
generating a session token corresponding to the user's request for access and transmitting the session token to the service broker from the authentication server;
providing a level of access to the computer system for the user based upon the session token;
retrieving a personalized portal page corresponding to the user from the repository, wherein the personalized portal page includes a display window and a portal object, wherein the portal object includes a link corresponding to a channel;
transmitting the personalized portal page to the user; receiving a request from the user to display a channel;
retrieving a set of channel parameters from the repository corresponding to the user's request;
processing the set of channel parameters and the information source with the search server so as to generate a search result comprised of a second set of objects corresponding to the channel request;
converting the search result into a format readable by a browser program;
transmitting the personalized portal page to the user with the converted search result displayed in the display window of the portal page.
PCT/US2001/013842 2000-04-27 2001-04-27 Method and apparatus for processing jobs on an enterprise-wide computer system WO2001081829A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
AU2001261084A AU2001261084A1 (en) 2000-04-27 2001-04-27 Method and apparatus for processing jobs on an enterprise-wide computer system
US09/845,057 US7266821B2 (en) 2000-04-27 2001-04-27 Method and apparatus for processing jobs on an enterprise-wide computer system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US20009000P 2000-04-27 2000-04-27
US60/200,090 2000-04-27

Publications (3)

Publication Number Publication Date
WO2001081829A1 true WO2001081829A1 (en) 2001-11-01
WO2001081829A8 WO2001081829A8 (en) 2002-02-21
WO2001081829A9 WO2001081829A9 (en) 2003-01-30

Family

ID=22740286

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/013842 WO2001081829A1 (en) 2000-04-27 2001-04-27 Method and apparatus for processing jobs on an enterprise-wide computer system

Country Status (3)

Country Link
US (4) US7266821B2 (en)
AU (1) AU2001261084A1 (en)
WO (1) WO2001081829A1 (en)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003058371A2 (en) * 2002-01-08 2003-07-17 Sap Aktiengesellschaft Facilitating improved workflow
EP1333386A1 (en) * 2002-01-08 2003-08-06 Sap Ag Providing web page for executing tasks by user, with data object
WO2004051507A1 (en) 2002-12-02 2004-06-17 Sap Ag Portal based desktop
US7127473B2 (en) 2002-05-17 2006-10-24 Sap Aktiengesellschaft Methods and systems for providing supplemental contextual content
US7200801B2 (en) 2002-05-17 2007-04-03 Sap Aktiengesellschaft Rich media information portals
US7305436B2 (en) 2002-05-17 2007-12-04 Sap Aktiengesellschaft User collaboration through discussion forums
US7321887B2 (en) 2002-09-30 2008-01-22 Sap Aktiengesellschaft Enriching information streams with contextual content
US7346668B2 (en) 2002-05-17 2008-03-18 Sap Aktiengesellschaft Dynamic presentation of personalized content
US7370276B2 (en) 2002-05-17 2008-05-06 Sap Aktiengesellschaft Interface for collecting user preferences
US8302012B2 (en) 2002-12-02 2012-10-30 Sap Aktiengesellschaft Providing status of portal content
EP2698753A1 (en) * 2012-08-16 2014-02-19 Corporación Medichem, S.L. Data management system for generating a report document by linking technical data to intellectual property rights data
WO2014043175A2 (en) 2012-09-11 2014-03-20 Jadhav Ajay Platform agnostic modular framework
US10610624B2 (en) 2013-03-14 2020-04-07 Smith & Nephew, Inc. Reduced pressure therapy blockage detection
US10639502B2 (en) 2010-10-12 2020-05-05 Smith & Nephew, Inc. Medical device
US11315681B2 (en) 2015-10-07 2022-04-26 Smith & Nephew, Inc. Reduced pressure therapy device operation and authorization monitoring
US11369730B2 (en) 2016-09-29 2022-06-28 Smith & Nephew, Inc. Construction and protection of components in negative pressure wound therapy systems
US11602461B2 (en) 2016-05-13 2023-03-14 Smith & Nephew, Inc. Automatic wound coupling detection in negative pressure wound therapy systems
US11712508B2 (en) 2017-07-10 2023-08-01 Smith & Nephew, Inc. Systems and methods for directly interacting with communications module of wound therapy apparatus
US11793924B2 (en) 2018-12-19 2023-10-24 T.J.Smith And Nephew, Limited Systems and methods for delivering prescribed wound therapy

Families Citing this family (518)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US6324685B1 (en) 1998-03-18 2001-11-27 Becomm Corporation Applet server that provides applets in various forms
US20020103728A1 (en) * 1998-04-01 2002-08-01 Naghshineh Steve F. Bill of lading transmission and processing system for less than a load carriers
US6757681B1 (en) * 1998-06-02 2004-06-29 International Business Machines Corporation Method and system for providing performance data
US7966078B2 (en) 1999-02-01 2011-06-21 Steven Hoffberg Network media appliance system and method
US7421648B1 (en) 1999-05-21 2008-09-02 E-Numerate Solutions, Inc. Reusable data markup language
US9262383B2 (en) 1999-05-21 2016-02-16 E-Numerate Solutions, Inc. System, method, and computer program product for processing a markup document
US9268748B2 (en) 1999-05-21 2016-02-23 E-Numerate Solutions, Inc. System, method, and computer program product for outputting markup language documents
US6920608B1 (en) * 1999-05-21 2005-07-19 E Numerate Solutions, Inc. Chart view for reusable data markup language
US9262384B2 (en) 1999-05-21 2016-02-16 E-Numerate Solutions, Inc. Markup language system, method, and computer program product
US7249328B1 (en) * 1999-05-21 2007-07-24 E-Numerate Solutions, Inc. Tree view for reusable data markup language
US6385604B1 (en) * 1999-08-04 2002-05-07 Hyperroll, Israel Limited Relational database management system having integrated non-relational multi-dimensional data store of aggregated data elements
US6408292B1 (en) 1999-08-04 2002-06-18 Hyperroll, Israel, Ltd. Method of and system for managing multi-dimensional databases using modular-arithmetic based address data mapping processes on integer-encoded business dimensions
US7110973B1 (en) * 1999-09-29 2006-09-19 Charles Schwab & Co., Inc. Method of processing customer transactions
US6581039B2 (en) * 1999-11-23 2003-06-17 Accenture Llp Report searching in a merger and acquisition environment
US8606588B1 (en) 1999-11-23 2013-12-10 Accenture Global Services Limited Merger and acquisition knowledgebase
WO2001052027A1 (en) * 2000-01-13 2001-07-19 Access Co., Ltd. Computer system and power saving control method therefor
US6886005B2 (en) * 2000-02-17 2005-04-26 E-Numerate Solutions, Inc. RDL search engine
US20020029207A1 (en) 2000-02-28 2002-03-07 Hyperroll, Inc. Data aggregation server for managing a multi-dimensional database and database management system having data aggregation server integrated therein
US7703131B1 (en) * 2000-03-01 2010-04-20 Microsoft Corporation Secured distributed impersonation
US7266821B2 (en) * 2000-04-27 2007-09-04 Hyperion Solutions Corporation Method and apparatus for processing jobs on an enterprise-wide computer system
US6532427B1 (en) * 2000-05-10 2003-03-11 Texas Instruments Incorporated Web-based mining of statistical data
US20020087577A1 (en) * 2000-05-31 2002-07-04 Manjunath Bangalore S. Database building method for multimedia contents
KR100460276B1 (en) * 2000-06-10 2004-12-04 유미특허법인 An internet service apparatus and service method
US20020194267A1 (en) * 2000-06-23 2002-12-19 Daniel Flesner Portal server that provides modification of user interfaces for access to computer networks
US7200666B1 (en) 2000-07-07 2007-04-03 International Business Machines Corporation Live connection enhancement for data source interface
US7359951B2 (en) 2000-08-08 2008-04-15 Aol Llc, A Delaware Limited Liability Company Displaying search results
US7007008B2 (en) 2000-08-08 2006-02-28 America Online, Inc. Category searching
US6832258B1 (en) * 2000-08-11 2004-12-14 Svenska Bredbandsbolaget Kapacitet Ab System in a broadband network
EP1325469A4 (en) * 2000-09-15 2006-11-29 Invensys Sys Inc A method and system for animating graphical user interface elements via manufacturing/process control portal server
US8281001B2 (en) * 2000-09-19 2012-10-02 Harman International Industries, Incorporated Device-to-device network
US8122236B2 (en) 2001-10-24 2012-02-21 Aol Inc. Method of disseminating advertisements using an embedded media player page
WO2002047467A2 (en) 2000-10-24 2002-06-20 Singingfish.Com, Inc. Method of sizing an embedded media player page
US20040030683A1 (en) * 2000-11-21 2004-02-12 Evans Philip Clark System and process for mediated crawling
US7925967B2 (en) 2000-11-21 2011-04-12 Aol Inc. Metadata quality improvement
US20060047781A1 (en) * 2000-11-22 2006-03-02 Ed Anuff Method and system for providing remote portal service modules
US7213249B2 (en) 2000-12-22 2007-05-01 Oracle International Corporation Blocking cache flush requests until completing current pending requests in a local server and remote server
US7937655B2 (en) 2000-12-22 2011-05-03 Oracle International Corporation Workflows with associated processes
US7711818B2 (en) 2000-12-22 2010-05-04 Oracle International Corporation Support for multiple data stores
US7349912B2 (en) 2000-12-22 2008-03-25 Oracle International Corporation Runtime modification of entries in an identity system
US7802174B2 (en) 2000-12-22 2010-09-21 Oracle International Corporation Domain based workflows
US7581011B2 (en) 2000-12-22 2009-08-25 Oracle International Corporation Template based workflow definition
US7363339B2 (en) * 2000-12-22 2008-04-22 Oracle International Corporation Determining group membership
US7085834B2 (en) 2000-12-22 2006-08-01 Oracle International Corporation Determining a user's groups
US8015600B2 (en) 2000-12-22 2011-09-06 Oracle International Corporation Employing electronic certificate workflows
US9600842B2 (en) * 2001-01-24 2017-03-21 E-Numerate Solutions, Inc. RDX enhancement of system and method for implementing reusable data markup language (RDL)
US8121871B2 (en) 2001-01-26 2012-02-21 Genworth Financial, Inc. System, method and software application for accessing and processing information
US20020143736A1 (en) * 2001-01-30 2002-10-03 Cdcom, Inc. Data mining page and image archive files
US7581230B2 (en) * 2001-02-06 2009-08-25 Siebel Systems, Inc. Adaptive communication application programming interface
US8700499B2 (en) * 2001-02-08 2014-04-15 The Boeing Company Apparatus and method for controlling inventory
US20110029584A1 (en) * 2001-02-08 2011-02-03 The Boeing Company Apparatus, method and computer program product for transferring an electronic file
GB2372118A (en) * 2001-02-09 2002-08-14 Amino Holdings Ltd System commands carried in tags in markup language documents
US7953636B2 (en) * 2001-02-21 2011-05-31 Genworth Financial, Inc. System and method for providing customized sales-related data over a network
US7174363B1 (en) * 2001-02-22 2007-02-06 Charles Schwab & Co., Inc. Distributed computing system architecture
US6775700B2 (en) * 2001-03-27 2004-08-10 Intel Corporation System and method for common information model object manager proxy interface and management
US20030206192A1 (en) * 2001-03-31 2003-11-06 Mingte Chen Asynchronous message push to web browser
US8601492B2 (en) * 2001-03-31 2013-12-03 Siebel Systems, Inc. User interface for multi-channel communication
JP2002304313A (en) * 2001-04-05 2002-10-18 Canon Inc Information storage system and information management system
US7159207B2 (en) * 2001-04-09 2007-01-02 Sun Microsystems, Inc. Method and apparatus for accessing related computer objects
US7237257B1 (en) * 2001-04-11 2007-06-26 Aol Llc Leveraging a persistent connection to access a secured service
US20020161903A1 (en) * 2001-04-30 2002-10-31 Besaw Lawrence M. System for secure access to information provided by a web application
US7627588B1 (en) 2001-05-07 2009-12-01 Ixreveal, Inc. System and method for concept based analysis of unstructured data
US7194483B1 (en) * 2001-05-07 2007-03-20 Intelligenxia, Inc. Method, system, and computer program product for concept-based multi-dimensional analysis of unstructured information
USRE46973E1 (en) 2001-05-07 2018-07-31 Ureveal, Inc. Method, system, and computer program product for concept-based multi-dimensional analysis of unstructured information
US8868659B2 (en) * 2001-05-15 2014-10-21 Avaya Inc. Method and apparatus for automatic notification and response
US7023301B2 (en) * 2001-05-16 2006-04-04 Matsushita Electric Industrial Co., Ltd. Laminated filter with a single shield conductor, integrated device, and communication apparatus
US8019807B2 (en) * 2001-05-23 2011-09-13 Wireless Enterprise Solutions Technology Limited Method and system for communication between computer systems
JP2002351707A (en) * 2001-05-29 2002-12-06 Fujitsu Ltd Portal site providing program
US20020180789A1 (en) * 2001-06-01 2002-12-05 Gregory Guttmann Framework for developing web-based and email-based collaborative programs
US7493397B1 (en) * 2001-06-06 2009-02-17 Microsoft Corporation Providing remote processing services over a distributed communications network
US20020194226A1 (en) * 2001-06-15 2002-12-19 Dinesh Sheth Internet information aggregation system using programmatic data extraction
US6990498B2 (en) * 2001-06-15 2006-01-24 Sony Corporation Dynamic graphical index of website content
US7120928B2 (en) * 2001-06-15 2006-10-10 Dinesh Sheth Secure selective sharing of account information on an internet information aggregation system
US7293014B2 (en) * 2001-06-18 2007-11-06 Siebel Systems, Inc. System and method to enable searching across multiple databases and files using a single search
US7213013B1 (en) * 2001-06-18 2007-05-01 Siebel Systems, Inc. Method, apparatus, and system for remote client search indexing
US7464072B1 (en) 2001-06-18 2008-12-09 Siebel Systems, Inc. Method, apparatus, and system for searching based on search visibility rules
US7546287B2 (en) * 2001-06-18 2009-06-09 Siebel Systems, Inc. System and method to search a database for records matching user-selected search criteria and to maintain persistency of the matched records
US7509671B1 (en) * 2001-06-20 2009-03-24 Microstrategy Incorporated Systems and methods for assigning priority to jobs in a reporting system
WO2003003248A1 (en) * 2001-06-26 2003-01-09 Sealedmedia Limited Search engine and digital rights management
US7017183B1 (en) * 2001-06-29 2006-03-21 Plumtree Software, Inc. System and method for administering security in a corporate portal
WO2003009164A2 (en) * 2001-07-16 2003-01-30 America Online Incorporated Method and apparatus for calendaring reminders
US7379977B2 (en) * 2001-07-24 2008-05-27 Steve Walrath System and method for display of multiple electronic pages
US8407353B2 (en) * 2001-09-17 2013-03-26 Open Text S.A. Method and system for sharing different web components between different web sites in a portal framework
US8606916B2 (en) 2001-09-17 2013-12-10 Open Text S.A. Graphical user interface for performing administration on web components of web sites in a portal framework
US7346843B2 (en) 2001-09-18 2008-03-18 International Business Machines Corporation Low-latency, incremental rendering in a content framework
US6961936B2 (en) * 2001-09-20 2005-11-01 Hewlett-Packard Development Company, L.P. Apparatus and method for controlling stored jobs
EP1298515A3 (en) * 2001-09-26 2004-02-04 Siemens Aktiengesellschaft Method for controlling access to resources of a data processing system
US20030069950A1 (en) * 2001-10-04 2003-04-10 Adc Broadband Access Systems Inc. Configuration server updating
US6882706B2 (en) * 2001-10-23 2005-04-19 Microsoft Corp. Method and system of providing emergency data
US20030079051A1 (en) * 2001-10-24 2003-04-24 Dean Moses Method and system for the internationalization of computer programs employing graphical user interface
AU2002336667B2 (en) * 2001-10-24 2007-06-21 Oracle International Corporation Data synchronization
US8091042B2 (en) 2001-11-15 2012-01-03 Siebel Systems, Inc. Apparatus and method for displaying selectable icons in a toolbar for a user interface
US7225256B2 (en) 2001-11-30 2007-05-29 Oracle International Corporation Impersonation in an access system
US8037091B2 (en) 2001-12-20 2011-10-11 Unoweb Inc. Method of using a code to track user access to content
US20030120560A1 (en) * 2001-12-20 2003-06-26 John Almeida Method for creating and maintaning worldwide e-commerce
US20030126192A1 (en) * 2001-12-27 2003-07-03 Andreas Magnussen Protocol processing
US7412374B1 (en) 2002-01-30 2008-08-12 Novell, Inc. Method to dynamically determine a user's language for a network
US7890639B1 (en) 2002-01-30 2011-02-15 Novell, Inc. Method and apparatus for controlling access to portal content from outside the portal
US7987421B1 (en) 2002-01-30 2011-07-26 Boyd H Timothy Method and apparatus to dynamically provide web content resources in a portal
US6952691B2 (en) * 2002-02-01 2005-10-04 International Business Machines Corporation Method and system for searching a multi-lingual database
US7093004B2 (en) * 2002-02-04 2006-08-15 Datasynapse, Inc. Using execution statistics to select tasks for redundant assignment in a distributed computing platform
SE0200418D0 (en) * 2002-02-13 2002-02-13 Ericsson Telefon Ab L M A method and apparatus for computer load sharing and data distribution
DE10206903A1 (en) * 2002-02-19 2003-09-04 Siemens Ag Software application, software architecture and method for creating software applications, especially for MES systems
US7318234B1 (en) * 2002-02-19 2008-01-08 Microsoft Corporation Request persistence during session authentication
US7996492B2 (en) * 2002-02-20 2011-08-09 Hewlett-Packard Development Company, L.P. System for providing information regarding network resources
US8589413B1 (en) 2002-03-01 2013-11-19 Ixreveal, Inc. Concept-based method and system for dynamically analyzing results from search engines
US7260617B2 (en) * 2002-03-04 2007-08-21 International Business Machines Corporation Method, system, and article of manufacture for implementing security features at a portal server
US20030224788A1 (en) * 2002-03-05 2003-12-04 Cisco Technology, Inc. Mobile IP roaming between internal and external networks
US8090828B2 (en) * 2002-03-05 2012-01-03 Cisco Technology, Inc. Method and apparatus for reusing DHCP addresses in home addresses of mobile IP clients
US7461169B2 (en) * 2002-03-05 2008-12-02 Cisco Technology, Inc. DHCP based home address management of mobile IP clients
US7447162B1 (en) 2002-03-05 2008-11-04 Cisco Technology, Inc. Methods and apparatus for anchoring of mobile nodes using DNS
US20030182364A1 (en) * 2002-03-14 2003-09-25 Openwave Systems Inc. Method and apparatus for requesting and performing batched operations for web services
US20050183024A1 (en) * 2002-03-19 2005-08-18 Henrik Andersson Architecture and method for integrating and presenting medical information
US7447991B2 (en) * 2002-04-01 2008-11-04 Hewlett-Packard Development Company, L.P. Document agents
US7058666B1 (en) * 2002-05-02 2006-06-06 Taiwan Semiconductor Manufacturing Company, Ltd. Automatic database monitoring system
US7548957B1 (en) 2002-05-07 2009-06-16 Oracle International Corporation Method and mechanism for a portal website architecture
US7277924B1 (en) 2002-05-07 2007-10-02 Oracle International Corporation Method and mechanism for a portal website architecture
US6947929B2 (en) * 2002-05-10 2005-09-20 International Business Machines Corporation Systems, methods and computer program products to determine useful relationships and dimensions of a database
US7447687B2 (en) 2002-05-10 2008-11-04 International Business Machines Corporation Methods to browse database query information
US7216163B2 (en) 2002-05-15 2007-05-08 Oracle International Corporation Method and apparatus for provisioning tasks using a provisioning bridge server
US7840658B2 (en) 2002-05-15 2010-11-23 Oracle International Corporation Employing job code attributes in provisioning
US20030225722A1 (en) * 2002-05-30 2003-12-04 International Business Machines Corporation Method and apparatus for providing multiple views of virtual documents
US20030226103A1 (en) * 2002-06-04 2003-12-04 Roman Hayer Linking to a page
US7113941B2 (en) * 2002-06-05 2006-09-26 Sap Aktiengesellschaft Database access mechanisms for a computer user interface
US20030236729A1 (en) * 2002-06-21 2003-12-25 Kenneth Epstein Systems and methods of directing, customizing, exchanging, negotiating, trading and provisioning of information, goods and services to information users
US20040003081A1 (en) * 2002-06-26 2004-01-01 Microsoft Corporation System and method for providing program credentials
US20040006763A1 (en) * 2002-06-28 2004-01-08 Van De Vanter Michael L. Undo/redo technique with insertion point state handling for token-oriented representation of program code
US7228496B2 (en) * 2002-07-09 2007-06-05 Kabushiki Kaisha Toshiba Document editing method, document editing system, server apparatus, and document editing program
US20040012626A1 (en) * 2002-07-22 2004-01-22 Brookins Timothy J. Method for creating configurable and customizable web user interfaces
JP4133068B2 (en) * 2002-07-23 2008-08-13 株式会社日立製作所 Computer system
US8812640B2 (en) * 2002-08-06 2014-08-19 Sheng Tai (Ted) Tsao Method and system for providing multi-layers item list in browsers with supporting of concurrent multiple users
US8631142B2 (en) * 2002-08-07 2014-01-14 International Business Machines Corporation Inserting targeted content into a portlet content stream
JP2004070836A (en) * 2002-08-08 2004-03-04 Hitachi Ltd Method and system for generating portal entry image plane
CA2402761A1 (en) * 2002-09-10 2004-03-10 Conceptis Technologies Inc. Web engine
US7236977B1 (en) 2002-09-20 2007-06-26 Novell, Inc. Method for dynamically distributing items for changes based on group membership
CA2406569C (en) * 2002-10-04 2011-03-22 Ibm Canada Limited-Ibm Canada Limitee Method and apparatus for enabling associated portlets of a web portal to collaborate for synchronized content display
US7584208B2 (en) * 2002-11-20 2009-09-01 Radar Networks, Inc. Methods and systems for managing offers and requests in a network
US7640267B2 (en) 2002-11-20 2009-12-29 Radar Networks, Inc. Methods and systems for managing entities in a computing device using semantic objects
US7308648B1 (en) * 2002-11-27 2007-12-11 Microsoft Corporation Method, system, and computer-readable medium for filtering harmful HTML in an electronic document
US8001463B2 (en) * 2002-12-02 2011-08-16 Oracle International Corporation Web page communications using parameters and events
US7676542B2 (en) * 2002-12-02 2010-03-09 Sap Ag Establishing a collaboration environment
US7412532B2 (en) * 2002-12-13 2008-08-12 Aol Llc, A Deleware Limited Liability Company Multimedia scheduler
US7716167B2 (en) * 2002-12-18 2010-05-11 International Business Machines Corporation System and method for automatically building an OLAP model in a relational database
US7636719B2 (en) 2002-12-19 2009-12-22 Microsoft Corporation Contact schema
US7240298B2 (en) 2002-12-19 2007-07-03 Microsoft Corporation Contact page
US7313760B2 (en) * 2002-12-19 2007-12-25 Microsoft Corporation Contact picker
US7418663B2 (en) 2002-12-19 2008-08-26 Microsoft Corporation Contact picker interface
US8510682B2 (en) * 2002-12-20 2013-08-13 Sap Ag Unifying navigation model
US7310677B1 (en) * 2002-12-20 2007-12-18 Sap Portals Israel Ltd. Resolver service for making decisions at run-time in a componentized system
US7634737B2 (en) * 2002-12-23 2009-12-15 Sap Ag Defining a resource template for locating relevant resources
US20040123246A1 (en) * 2002-12-23 2004-06-24 Ju Wu Apparatus and method for creating new reports from discrete reports
US7711694B2 (en) * 2002-12-23 2010-05-04 Sap Ag System and methods for user-customizable enterprise workflow management
US8195631B2 (en) * 2002-12-23 2012-06-05 Sap Ag Resource finder tool
US20040122693A1 (en) * 2002-12-23 2004-06-24 Michael Hatscher Community builder
US7849175B2 (en) * 2002-12-23 2010-12-07 Sap Ag Control center pages
US7349949B1 (en) * 2002-12-26 2008-03-25 International Business Machines Corporation System and method for facilitating development of a customizable portlet
US7949937B2 (en) * 2002-12-31 2011-05-24 Business Objects Software Ltd Apparatus and method for delivering portions of reports
US20050262047A1 (en) * 2002-12-31 2005-11-24 Ju Wu Apparatus and method for inserting portions of reports into electronic documents
US7953694B2 (en) * 2003-01-13 2011-05-31 International Business Machines Corporation Method, system, and program for specifying multidimensional calculations for a relational OLAP engine
US7660843B1 (en) 2003-01-21 2010-02-09 Novell, Inc. Method and apparatus for dynamically delivering a gadget
US7591000B2 (en) * 2003-02-14 2009-09-15 Oracle International Corporation System and method for hierarchical role-based entitlements
US8831966B2 (en) * 2003-02-14 2014-09-09 Oracle International Corporation Method for delegated administration
US7653930B2 (en) * 2003-02-14 2010-01-26 Bea Systems, Inc. Method for role and resource policy management optimization
US6917975B2 (en) * 2003-02-14 2005-07-12 Bea Systems, Inc. Method for role and resource policy management
US20040230679A1 (en) * 2003-02-28 2004-11-18 Bales Christopher E. Systems and methods for portal and web server administration
US7461337B2 (en) * 2003-03-12 2008-12-02 International Business Machines Corporation Exception markup documents
US7895191B2 (en) 2003-04-09 2011-02-22 International Business Machines Corporation Improving performance of database queries
US7814413B2 (en) * 2003-04-17 2010-10-12 Oracle International Corporation System and method for controlling web pages
US7386783B2 (en) * 2003-04-28 2008-06-10 International Business Machines Corporation Method, system and program product for controlling web content usage
US20040230600A1 (en) * 2003-05-01 2004-11-18 Lockheed Martin Corporation Method and apparatus for rapidly prototyping status display
US20040225883A1 (en) * 2003-05-07 2004-11-11 Weller Michael K. Method and apparatus providing multiple single levels of security for distributed processing in communication systems
US7146563B2 (en) * 2003-05-29 2006-12-05 International Business Machines Corporation Maintaining screen and form state in portlets
US7854009B2 (en) * 2003-06-12 2010-12-14 International Business Machines Corporation Method of securing access to IP LANs
US7325197B1 (en) * 2003-06-16 2008-01-29 Microsoft Corporation Method and system for providing page control content
US7325196B1 (en) * 2003-06-16 2008-01-29 Microsoft Corporation Method and system for manipulating page control content
US7636786B2 (en) * 2003-06-19 2009-12-22 International Business Machines Corporation Facilitating access to a resource of an on-line service
US20070130132A1 (en) * 2003-06-30 2007-06-07 Business Objects Apparatus and method for personalized data delivery
US7523200B2 (en) * 2003-07-02 2009-04-21 International Business Machines Corporation Dynamic access decision information module
US8136025B1 (en) 2003-07-03 2012-03-13 Google Inc. Assigning document identification tags
US8042112B1 (en) 2003-07-03 2011-10-18 Google Inc. Scheduler for search engine crawler
US7725452B1 (en) 2003-07-03 2010-05-25 Google Inc. Scheduler for search engine crawler
EP1652117A4 (en) * 2003-07-11 2010-07-28 Computer Ass Think Inc Event processor for job scheduling and management
WO2005008466A1 (en) * 2003-07-11 2005-01-27 Computer Associates Think, Inc. Trigger support for a bi-directional broker
US7890540B2 (en) * 2003-07-22 2011-02-15 Sap Ag Browsing meta data for an enterprise service framework
US7315851B2 (en) * 2003-07-25 2008-01-01 Macronix International Co., Ltd. Methods for creating control charts using a computer system
US20050038867A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation Method, system and program product for integrating web services on a client
US7567979B2 (en) * 2003-08-15 2009-07-28 Microsoft Corporation Expression-based web logger for usage and navigational behavior tracking
US7523401B1 (en) 2003-09-03 2009-04-21 Theoris Software, Llc System and method for providing a browser-based user interface
US20080086716A1 (en) * 2003-09-04 2008-04-10 Lockheed Martin Corporation Method and apparatus for information display with intermediate datasource access
US20050065774A1 (en) * 2003-09-20 2005-03-24 International Business Machines Corporation Method of self enhancement of search results through analysis of system logs
US8014997B2 (en) * 2003-09-20 2011-09-06 International Business Machines Corporation Method of search content enhancement
US7895234B2 (en) * 2003-09-22 2011-02-22 Rockwell Automation Technologies, Inc. Systems and methods for sharing portal configurations
US7904487B2 (en) 2003-10-09 2011-03-08 Oracle International Corporation Translating data access requests
US7882132B2 (en) 2003-10-09 2011-02-01 Oracle International Corporation Support for RDBMS in LDAP system
US7549125B2 (en) 2003-10-23 2009-06-16 Microsoft Corporation Information picker
JP4603256B2 (en) * 2003-12-01 2010-12-22 日本電気株式会社 User authentication system
CA2550113A1 (en) * 2003-12-19 2005-07-14 Business Objects, S.A. Using data filter to deliver personalized data from a shared document
US9053149B2 (en) 2003-12-23 2015-06-09 Open Text S.A. Method and system to provide composite view of components
US8676837B2 (en) 2003-12-31 2014-03-18 Google Inc. Systems and methods for personalizing aggregated news content
US8126865B1 (en) 2003-12-31 2012-02-28 Google Inc. Systems and methods for syndicating and hosting customized news content
US8442331B2 (en) 2004-02-15 2013-05-14 Google Inc. Capturing text from rendered documents using supplemental information
US7707039B2 (en) 2004-02-15 2010-04-27 Exbiblio B.V. Automatic modification of web pages
US20050198567A1 (en) * 2004-01-29 2005-09-08 Vermeulen Bert M. Web navigation method and system
US20060282494A1 (en) * 2004-02-11 2006-12-14 Caleb Sima Interactive web crawling
US7765597B2 (en) * 2004-02-11 2010-07-27 Hewlett-Packard Development Company, L.P. Integrated crawling and auditing of web applications and web content
WO2005077118A2 (en) * 2004-02-11 2005-08-25 Spi Dynamics, Inc. System and method for testing web applications with recursive discovery and analysis
US7376739B2 (en) * 2004-02-11 2008-05-20 International Business Machines Corporation Persistence of inter-application communication patterns and behavior under user control
US20060053097A1 (en) * 2004-04-01 2006-03-09 King Martin T Searching and accessing documents on private networks for use with captures from rendered documents
US20060041484A1 (en) * 2004-04-01 2006-02-23 King Martin T Methods and systems for initiating application processes by data capture from rendered documents
US10635723B2 (en) 2004-02-15 2020-04-28 Google Llc Search engines and systems with handheld document data capture devices
US20060104515A1 (en) * 2004-07-19 2006-05-18 King Martin T Automatic modification of WEB pages
US7812860B2 (en) * 2004-04-01 2010-10-12 Exbiblio B.V. Handheld device for capturing text from both a document printed on paper and a document displayed on a dynamic display device
US7953759B2 (en) 2004-02-17 2011-05-31 Microsoft Corporation Simplifying application access to schematized contact data
US7788578B1 (en) * 2004-02-18 2010-08-31 Microsoft Corporation System and method for a tool pane within a markup language document
US7433876B2 (en) 2004-02-23 2008-10-07 Radar Networks, Inc. Semantic web portal and platform
EP1720116A4 (en) * 2004-02-23 2014-01-08 Nec Corp Device, method, and program for writing data for mobile terminal memory
US7499965B1 (en) * 2004-02-25 2009-03-03 University Of Hawai'i Software agent for locating and analyzing virtual communities on the world wide web
US7451194B2 (en) * 2004-03-04 2008-11-11 International Business Machines Corporation Timely update of information displayed within a portal
US7976539B2 (en) 2004-03-05 2011-07-12 Hansen Medical, Inc. System and method for denaturing and fixing collagenous tissue
US20060100610A1 (en) 2004-03-05 2006-05-11 Wallace Daniel T Methods using a robotic catheter system
US8595146B1 (en) 2004-03-15 2013-11-26 Aol Inc. Social networking permissions
US7734731B2 (en) 2004-03-18 2010-06-08 Avaya Inc. Method and apparatus for a publish-subscribe system with third party subscription delivery
US8595214B1 (en) * 2004-03-31 2013-11-26 Google Inc. Systems and methods for article location and retrieval
US20060098900A1 (en) 2004-09-27 2006-05-11 King Martin T Secure data gathering from rendered documents
US20080313172A1 (en) * 2004-12-03 2008-12-18 King Martin T Determining actions involving captured information and electronic content associated with rendered documents
US9143638B2 (en) 2004-04-01 2015-09-22 Google Inc. Data capture from rendered documents using handheld device
US8081849B2 (en) * 2004-12-03 2011-12-20 Google Inc. Portable scanning and memory device
US7990556B2 (en) * 2004-12-03 2011-08-02 Google Inc. Association of a portable scanner with input/output and storage devices
US9116890B2 (en) 2004-04-01 2015-08-25 Google Inc. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
US7894670B2 (en) 2004-04-01 2011-02-22 Exbiblio B.V. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
US8146156B2 (en) 2004-04-01 2012-03-27 Google Inc. Archive of text captures from rendered documents
WO2008028674A2 (en) 2006-09-08 2008-03-13 Exbiblio B.V. Optical scanners, such as hand-held optical scanners
US20070300142A1 (en) * 2005-04-01 2007-12-27 King Martin T Contextual dynamic advertising based upon captured rendered text
US20060081714A1 (en) 2004-08-23 2006-04-20 King Martin T Portable scanning device
US9008447B2 (en) 2004-04-01 2015-04-14 Google Inc. Method and system for character recognition
US20050223081A1 (en) * 2004-04-05 2005-10-06 Mcmahan Paul F Portal including detachable and reattachable portlets
US7774601B2 (en) * 2004-04-06 2010-08-10 Bea Systems, Inc. Method for delegated administration
US8713418B2 (en) * 2004-04-12 2014-04-29 Google Inc. Adding value to a rendered document
US7386572B2 (en) * 2004-04-14 2008-06-10 Nancy Kramer System and method for a modular user controlled search engine
US20080140626A1 (en) * 2004-04-15 2008-06-12 Jeffery Wilson Method for enabling dynamic websites to be indexed within search engines
US8489624B2 (en) * 2004-05-17 2013-07-16 Google, Inc. Processing techniques for text capture from a rendered document
US8620083B2 (en) 2004-12-03 2013-12-31 Google Inc. Method and system for character recognition
US8874504B2 (en) 2004-12-03 2014-10-28 Google Inc. Processing techniques for visual capture data from a rendered document
US7890604B2 (en) 2004-05-07 2011-02-15 Microsoft Corproation Client-side callbacks to server events
US20050249172A1 (en) * 2004-05-07 2005-11-10 Malik Dale W System to provide direction information to mobile communication devices
US20050250483A1 (en) * 2004-05-07 2005-11-10 Malik Dale W Caller look-up system
GB0410724D0 (en) * 2004-05-13 2004-06-16 Watkins Daniel R Authorisation system
US9026578B2 (en) 2004-05-14 2015-05-05 Microsoft Corporation Systems and methods for persisting data between web pages
US7401128B1 (en) * 2004-05-20 2008-07-15 Sun Microsystems, Inc. Method and apparatus for managing user defined portal channels
US8572221B2 (en) 2004-05-26 2013-10-29 Facebook, Inc. System and method for managing an online social network
US8145629B2 (en) * 2004-05-28 2012-03-27 International Business Machines Corporation Method and system for business reporting
US7774378B2 (en) * 2004-06-04 2010-08-10 Icentera Corporation System and method for providing intelligence centers
US7707143B2 (en) 2004-06-14 2010-04-27 International Business Machines Corporation Systems, methods, and computer program products that automatically discover metadata objects and generate multidimensional models
US7523413B2 (en) * 2004-06-14 2009-04-21 At&T Intellectual Property I, L.P. Organizing session applications
US20050278439A1 (en) * 2004-06-14 2005-12-15 Ludmila Cherkasova System and method for evaluating capacity of a heterogeneous media server configuration for supporting an expected workload
US20050278261A1 (en) * 2004-06-14 2005-12-15 Richard Omanson Navigational controls for a presentation system
US8532282B2 (en) * 2004-06-14 2013-09-10 At&T Intellectual Property I, L.P. Tracking user operations
US20050278655A1 (en) * 2004-06-14 2005-12-15 Sims Lisa K Multiple application viewing
US7574657B2 (en) * 2004-06-14 2009-08-11 At&T Intellectual Property I, L.P. Administration manager
US7590945B2 (en) * 2004-06-14 2009-09-15 At&T Intellectual Property I, L.P. Viewing applications from inactive sessions
US7607090B2 (en) * 2004-06-14 2009-10-20 At&T Intellectual Property I, L.P. Frameless data presentation
US20050278650A1 (en) * 2004-06-14 2005-12-15 Sims Lisa K Floating user interface
EP1781087A4 (en) * 2004-06-21 2009-12-02 Equestron Llc Method and apparatus for evaluating animals' health and performance
US7480663B2 (en) * 2004-06-22 2009-01-20 International Business Machines Corporation Model based optimization with focus regions
US20050283494A1 (en) * 2004-06-22 2005-12-22 International Business Machines Corporation Visualizing and manipulating multidimensional OLAP models graphically
US8131674B2 (en) 2004-06-25 2012-03-06 Apple Inc. Methods and systems for managing data
US8302020B2 (en) 2004-06-25 2012-10-30 Apple Inc. Widget authoring and editing environment
US7693856B2 (en) * 2004-06-25 2010-04-06 Apple Inc. Methods and systems for managing data
US7730012B2 (en) * 2004-06-25 2010-06-01 Apple Inc. Methods and systems for managing data
US7490295B2 (en) 2004-06-25 2009-02-10 Apple Inc. Layer for accessing user interface elements
US7814426B2 (en) * 2004-06-30 2010-10-12 Sap Aktiengesellschaft Reusable component in a collaboration workspace
US7596571B2 (en) * 2004-06-30 2009-09-29 Technorati, Inc. Ecosystem method of aggregation and search and related techniques
US7475354B2 (en) * 2004-07-09 2009-01-06 International Business Machines Corporation Method for generating a portal page
US8346620B2 (en) * 2004-07-19 2013-01-01 Google Inc. Automatic modification of web pages
US7984443B2 (en) 2004-07-22 2011-07-19 Computer Associates Think, Inc. System and method for normalizing job properties
US8427667B2 (en) * 2004-07-22 2013-04-23 Ca, Inc. System and method for filtering jobs
US9600216B2 (en) * 2004-07-22 2017-03-21 Ca, Inc. System and method for managing jobs in heterogeneous environments
US8028285B2 (en) * 2004-07-22 2011-09-27 Computer Associates Think, Inc. Heterogeneous job dashboard
US7886296B2 (en) 2004-07-22 2011-02-08 Computer Associates Think, Inc. System and method for providing alerts for heterogeneous jobs
US7552401B2 (en) * 2004-08-13 2009-06-23 International Business Machines Corporation Detachable and reattachable portal pages
US7546370B1 (en) * 2004-08-18 2009-06-09 Google Inc. Search engine with multiple crawlers sharing cookies
US7987172B1 (en) 2004-08-30 2011-07-26 Google Inc. Minimizing visibility of stale content in web searching including revising web crawl intervals of documents
US8171474B2 (en) * 2004-10-01 2012-05-01 Serguei Mankovski System and method for managing, scheduling, controlling and monitoring execution of jobs by a job scheduler utilizing a publish/subscription interface
US9471332B2 (en) * 2004-10-19 2016-10-18 International Business Machines Corporation Selecting graphical component types at runtime
US7574712B2 (en) * 2004-11-22 2009-08-11 Bea Systems, Inc. User interface for configuring web services for remote portlets
US7788340B2 (en) * 2004-11-22 2010-08-31 Bea Systems Inc. System and method for event based interportlet communications
US7502853B2 (en) * 2004-11-22 2009-03-10 Bea Systems, Inc. System and method for improved remote portlet communications
US20060161672A1 (en) * 2004-11-22 2006-07-20 Bea Systems, Inc. System and method for improved interportlet communications
US7418410B2 (en) 2005-01-07 2008-08-26 Nicholas Caiafa Methods and apparatus for anonymously requesting bids from a customer specified quantity of local vendors with automatic geographic expansion
US7421716B1 (en) * 2005-02-09 2008-09-02 Cerylion, Inc. System and method for providing composite applications
US7421702B1 (en) * 2005-02-09 2008-09-02 Cerylion, Inc. User-driven, service oriented software application model
US20060212579A1 (en) * 2005-03-15 2006-09-21 Enreach Technology, Inc. Method and system of providing a personal audio/video broadcasting architecture
US20060212534A1 (en) * 2005-03-15 2006-09-21 Enreach Technology, Inc. Method and system of providing a personal audio/video broadcasting architecture
US20060212580A1 (en) * 2005-03-15 2006-09-21 Enreach Technology, Inc. Method and system of providing a personal audio/video broadcasting architecture
US20060212578A1 (en) * 2005-03-15 2006-09-21 Enreach Technology, Inc. Method and system of providing a personal audio/video broadcasting architecture
US20060224628A1 (en) * 2005-03-29 2006-10-05 Bea Systems, Inc. Modeling for data services
GB0507801D0 (en) * 2005-04-19 2005-05-25 Ibm A system for processing a request to a portlet
US8386459B1 (en) 2005-04-25 2013-02-26 Google Inc. Scheduling a recrawl
US8666964B1 (en) * 2005-04-25 2014-03-04 Google Inc. Managing items in crawl schedule
US20060259494A1 (en) * 2005-05-13 2006-11-16 Microsoft Corporation System and method for simultaneous search service and email search
US7958446B2 (en) * 2005-05-17 2011-06-07 Yahoo! Inc. Systems and methods for language translation in network browsing applications
US9582602B2 (en) * 2005-05-17 2017-02-28 Excalibur Ip, Llc Systems and methods for improving access to syndication feeds in network browsing applications
US20070174286A1 (en) * 2005-05-17 2007-07-26 Yahoo!, Inc. Systems and methods for providing features and user interface in network browsing applications
US7908606B2 (en) * 2005-05-20 2011-03-15 Unisys Corporation Usage metering system
US8527540B2 (en) * 2005-05-24 2013-09-03 Business Objects Software Ltd. Augmenting a report with metadata for export to a non-report document
US20060271509A1 (en) * 2005-05-24 2006-11-30 Ju Wu Apparatus and method for augmenting a report with parameter binding metadata
US20060271929A1 (en) * 2005-05-27 2006-11-30 Computer Associates Think, Inc. Method and system for providing job forecasting in a computer system
US7509315B1 (en) 2005-06-24 2009-03-24 Google Inc. Managing URLs
US7619761B2 (en) * 2005-06-30 2009-11-17 Microsoft Corporation Extensible and distributed job execution service in a server farm
US7849048B2 (en) 2005-07-05 2010-12-07 Clarabridge, Inc. System and method of making unstructured data available to structured data analysis tools
US7849049B2 (en) 2005-07-05 2010-12-07 Clarabridge, Inc. Schema and ETL tools for structured and unstructured data
US20070027841A1 (en) * 2005-07-26 2007-02-01 Williams Michael G Messaging middleware dynamic, continuous search and response agent system
US7877750B2 (en) * 2005-07-27 2011-01-25 Sap Ag Scheduled job execution management
US20080228695A1 (en) * 2005-08-01 2008-09-18 Technorati, Inc. Techniques for analyzing and presenting information in an event-based data aggregation system
US8027976B1 (en) * 2005-08-23 2011-09-27 Oracle International Corporation Enterprise content search through searchable links
US8250051B2 (en) * 2005-08-26 2012-08-21 Harris Corporation System, program product, and methods to enhance media content management
US8176408B2 (en) * 2005-09-12 2012-05-08 Microsoft Corporation Modularized web provisioning
US7752205B2 (en) 2005-09-26 2010-07-06 Bea Systems, Inc. Method and system for interacting with a virtual content repository
US7483893B2 (en) * 2005-09-26 2009-01-27 Bae Systems, Inc. System and method for lightweight loading for managing content
US7818344B2 (en) * 2005-09-26 2010-10-19 Bea Systems, Inc. System and method for providing nested types for content management
US7953734B2 (en) 2005-09-26 2011-05-31 Oracle International Corporation System and method for providing SPI extensions for content management system
US20070073784A1 (en) * 2005-09-26 2007-03-29 Bea Systems, Inc. System and method for type inheritance for content management
US20070073674A1 (en) * 2005-09-26 2007-03-29 Bea Systems, Inc. System and method for providing federated events for content management systems
US20070073673A1 (en) * 2005-09-26 2007-03-29 Bea Systems, Inc. System and method for content management security
US7917537B2 (en) * 2005-09-26 2011-03-29 Oracle International Corporation System and method for providing link property types for content management
US7752556B2 (en) 2005-10-27 2010-07-06 Apple Inc. Workflow widgets
US8065680B2 (en) * 2005-11-15 2011-11-22 Yahoo! Inc. Data gateway for jobs management based on a persistent job table and a server table
US7707514B2 (en) 2005-11-18 2010-04-27 Apple Inc. Management of user interface elements in a display environment
US20070136201A1 (en) * 2005-12-12 2007-06-14 Google Inc. Customized container document modules using preferences
US8185819B2 (en) 2005-12-12 2012-05-22 Google Inc. Module specification for a module to be incorporated into a container document
US7814475B2 (en) * 2005-12-28 2010-10-12 Sap Portals Israel Ltd. Generating and deploying client-side rendered components
US7925649B2 (en) 2005-12-30 2011-04-12 Google Inc. Method, system, and graphical user interface for alerting a computer user to new results for a prior search
US7676485B2 (en) 2006-01-20 2010-03-09 Ixreveal, Inc. Method and computer program product for converting ontologies into concept semantic networks
US8280961B2 (en) * 2006-02-09 2012-10-02 Cisco Technology, Inc. Method and system for providing a camp-on service for a network service
US7599861B2 (en) 2006-03-02 2009-10-06 Convergys Customer Management Group, Inc. System and method for closed loop decisionmaking in an automated care system
US20070220035A1 (en) * 2006-03-17 2007-09-20 Filip Misovski Generating user interface using metadata
US8146100B2 (en) 2006-03-21 2012-03-27 Sap Ag System and method for event-based information flow in software development processes
US8190625B1 (en) 2006-03-29 2012-05-29 A9.Com, Inc. Method and system for robust hyperlinking
US20070233672A1 (en) * 2006-03-30 2007-10-04 Coveo Inc. Personalizing search results from search engines
US20070271229A1 (en) * 2006-05-17 2007-11-22 Jauder Ho System and method for data searching among multiple enterprise applications
US8379830B1 (en) 2006-05-22 2013-02-19 Convergys Customer Management Delaware Llc System and method for automated customer service with contingent live interaction
US7809663B1 (en) 2006-05-22 2010-10-05 Convergys Cmg Utah, Inc. System and method for supporting the utilization of machine language
US9443022B2 (en) 2006-06-05 2016-09-13 Google Inc. Method, system, and graphical user interface for providing personalized recommendations of popular search queries
US8898264B1 (en) * 2006-06-22 2014-11-25 Emc Corporation Linking business objects and documents
US7761558B1 (en) * 2006-06-30 2010-07-20 Google Inc. Determining a number of users behind a set of one or more internet protocol (IP) addresses
US8560956B2 (en) * 2006-07-07 2013-10-15 International Business Machines Corporation Processing model of an application wiki
US8775930B2 (en) * 2006-07-07 2014-07-08 International Business Machines Corporation Generic frequency weighted visualization component
US20080010609A1 (en) * 2006-07-07 2008-01-10 Bryce Allen Curtis Method for extending the capabilities of a Wiki environment
US8196039B2 (en) * 2006-07-07 2012-06-05 International Business Machines Corporation Relevant term extraction and classification for Wiki content
US8219900B2 (en) * 2006-07-07 2012-07-10 International Business Machines Corporation Programmatically hiding and displaying Wiki page layout sections
US9633356B2 (en) 2006-07-20 2017-04-25 Aol Inc. Targeted advertising for playlists based upon search queries
US8468217B2 (en) * 2006-07-26 2013-06-18 International Business Machines Corporation Maintaining portlet data currency while minimizing latency
US20080027982A1 (en) * 2006-07-27 2008-01-31 Ebay Inc. Indefinite caching expiration techniques
US8185830B2 (en) 2006-08-07 2012-05-22 Google Inc. Configuring a content document for users and user groups
US20090037935A1 (en) * 2006-08-07 2009-02-05 Shoumen Saha Updating The Configuration of Container Documents
US8954861B1 (en) * 2006-08-07 2015-02-10 Google Inc. Administrator configurable gadget directory for personalized start pages
US8407250B2 (en) 2006-08-07 2013-03-26 Google Inc. Distribution of content document to varying users with security customization and scalability
WO2008021832A2 (en) * 2006-08-09 2008-02-21 Radar Networks, Inc. Harvesting data from page
US9754039B2 (en) * 2006-09-12 2017-09-05 International Business Machines Corporation Dynamic context-sensitive integration of content into a web portal application
US20080072334A1 (en) * 2006-09-18 2008-03-20 Todd Bailey System and method for electronic collaboration
US20080077609A1 (en) * 2006-09-21 2008-03-27 Sap Portals Israel Ltd. System and methods for context based navigation
US8463852B2 (en) * 2006-10-06 2013-06-11 Oracle International Corporation Groupware portlets for integrating a portal with groupware systems
WO2008045792A2 (en) * 2006-10-06 2008-04-17 Technorati, Inc. Methods and apparatus for conversational advertising
US7783689B2 (en) * 2006-10-26 2010-08-24 Microsoft Corporation On-site search engine for the World Wide Web
WO2008064934A1 (en) * 2006-11-30 2008-06-05 International Business Machines Corporation Method, system and computer program for downloading information based on a snapshot approach
US8156507B2 (en) * 2006-12-08 2012-04-10 Microsoft Corporation User mode file system serialization and reliability
US20090234814A1 (en) * 2006-12-12 2009-09-17 Marco Boerries Configuring a search engine results page with environment-specific information
US8140566B2 (en) * 2006-12-12 2012-03-20 Yahoo! Inc. Open framework for integrating, associating, and interacting with content objects including automatic feed creation
US20090240564A1 (en) * 2006-12-12 2009-09-24 Marco Boerries Open framework for integrating, associating, and interacting with content objects including advertisement and content personalization
US7756903B2 (en) * 2006-12-12 2010-07-13 Yahoo! Inc. Configuring a search engine results page with environment-specific information
US7886042B2 (en) * 2006-12-19 2011-02-08 Yahoo! Inc. Dynamically constrained, forward scheduling over uncertain workloads
US8086637B1 (en) 2006-12-22 2011-12-27 Emc Corporation Access control for business process data
US8700715B1 (en) 2006-12-28 2014-04-15 Perftech, Inc. System, method and computer readable medium for processing unsolicited electronic mail
CN101236513B (en) * 2007-01-30 2012-07-18 阿里巴巴集团控股有限公司 Distributed task system and distributed task management process
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
US20080263142A1 (en) * 2007-04-20 2008-10-23 Computer Associates Think, Inc. Meta Data Driven User Interface System and Method
US20080263018A1 (en) * 2007-04-20 2008-10-23 Computer Associates Think, Inc. Method and System for Mapping Business Objects to Relational Database Tables
US20080270915A1 (en) * 2007-04-30 2008-10-30 Avadis Tevanian Community-Based Security Information Generator
US20080288347A1 (en) * 2007-05-18 2008-11-20 Technorati, Inc. Advertising keyword selection based on real-time data
US20080301685A1 (en) * 2007-05-31 2008-12-04 Novell, Inc. Identity-aware scheduler service
US8954871B2 (en) 2007-07-18 2015-02-10 Apple Inc. User-centric widgets and dashboards
US9298417B1 (en) * 2007-07-25 2016-03-29 Emc Corporation Systems and methods for facilitating management of data
US20090063448A1 (en) * 2007-08-29 2009-03-05 Microsoft Corporation Aggregated Search Results for Local and Remote Services
US20090076887A1 (en) * 2007-09-16 2009-03-19 Nova Spivack System And Method Of Collecting Market-Related Data Via A Web-Based Networking Environment
US20090106307A1 (en) * 2007-10-18 2009-04-23 Nova Spivack System of a knowledge management and networking environment and method for providing advanced functions therefor
US8914774B1 (en) 2007-11-15 2014-12-16 Appcelerator, Inc. System and method for tagging code to determine where the code runs
US8954989B1 (en) 2007-11-19 2015-02-10 Appcelerator, Inc. Flexible, event-driven JavaScript server architecture
US8260845B1 (en) 2007-11-21 2012-09-04 Appcelerator, Inc. System and method for auto-generating JavaScript proxies and meta-proxies
US8719451B1 (en) 2007-11-23 2014-05-06 Appcelerator, Inc. System and method for on-the-fly, post-processing document object model manipulation
US8566807B1 (en) 2007-11-23 2013-10-22 Appcelerator, Inc. System and method for accessibility of document object model and JavaScript by other platforms
US20090144627A1 (en) * 2007-11-30 2009-06-04 International Business Machines Corporation Autonomic workspace establishment through social network discovered relationships
US20090144637A1 (en) * 2007-11-30 2009-06-04 International Business Machines Corporation Autonomic workspace establishment through directory discovered relationships
US8819539B1 (en) 2007-12-03 2014-08-26 Appcelerator, Inc. On-the-fly rewriting of uniform resource locators in a web-page
US8756579B1 (en) 2007-12-03 2014-06-17 Appcelerator, Inc. Client-side and server-side unified validation
US8806431B1 (en) 2007-12-03 2014-08-12 Appecelerator, Inc. Aspect oriented programming
US8938491B1 (en) 2007-12-04 2015-01-20 Appcelerator, Inc. System and method for secure binding of client calls and server functions
US8527860B1 (en) 2007-12-04 2013-09-03 Appcelerator, Inc. System and method for exposing the dynamic web server-side
US7958232B1 (en) * 2007-12-05 2011-06-07 Appcelerator, Inc. Dashboard for on-the-fly AJAX monitoring
US8285813B1 (en) 2007-12-05 2012-10-09 Appcelerator, Inc. System and method for emulating different user agents on a server
US8639743B1 (en) 2007-12-05 2014-01-28 Appcelerator, Inc. System and method for on-the-fly rewriting of JavaScript
US8335982B1 (en) * 2007-12-05 2012-12-18 Appcelerator, Inc. System and method for binding a document object model through JavaScript callbacks
US9338597B2 (en) 2007-12-06 2016-05-10 Suhayya Abu-Hakima Alert broadcasting to unconfigured communications devices
US8051057B2 (en) * 2007-12-06 2011-11-01 Suhayya Abu-Hakima Processing of network content and services for mobile or fixed devices
US9215217B2 (en) 2008-12-05 2015-12-15 Suhayya Abu-Hakima and Kenneth E. Grigg Auto-discovery of diverse communications devices for alert broadcasting
US8001582B2 (en) * 2008-01-18 2011-08-16 Microsoft Corporation Cross-network reputation for online services
US7536637B1 (en) * 2008-02-07 2009-05-19 International Business Machines Corporation Method and system for the utilization of collaborative and social tagging for adaptation in web portals
US8930946B1 (en) * 2008-02-14 2015-01-06 Google Inc. Leasing prioritized tasks
US8312054B2 (en) * 2008-02-20 2012-11-13 Deva Industries, Inc. Data management system, method, and software
JP5123690B2 (en) * 2008-02-27 2013-01-23 キヤノン株式会社 Screen data processing apparatus, screen data processing method, and computer program
US20090240699A1 (en) * 2008-03-18 2009-09-24 Morgan Christopher B Integration for intelligence data systems
US8291079B1 (en) 2008-06-04 2012-10-16 Appcelerator, Inc. System and method for developing, deploying, managing and monitoring a web application in a single environment
US8880678B1 (en) 2008-06-05 2014-11-04 Appcelerator, Inc. System and method for managing and monitoring a web application using multiple cloud providers
CN101615116B (en) * 2008-06-23 2012-12-12 成都市华为赛门铁克科技有限公司 Method, device and system for acquiring interface
US20090327907A1 (en) * 2008-06-30 2009-12-31 Microsoft Corporation Integrating character-based profiles within a social network
US20090327906A1 (en) * 2008-06-30 2009-12-31 Microsoft Corporation Supporting brand assets in a social networking service
US20100004975A1 (en) * 2008-07-03 2010-01-07 Scott White System and method for leveraging proximity data in a web-based socially-enabled knowledge networking environment
US8286171B2 (en) * 2008-07-21 2012-10-09 Workshare Technology, Inc. Methods and systems to fingerprint textual information using word runs
US8381124B2 (en) * 2008-07-30 2013-02-19 The Regents Of The University Of California Single select clinical informatics
CA2732645A1 (en) * 2008-07-31 2010-02-04 Juma Technology Corp. Publish and subscribe method for real-time event monitoring in a system for managing a plurality of disparate networks
US7596620B1 (en) 2008-11-04 2009-09-29 Aptana, Inc. System and method for developing, deploying, managing and monitoring a web application in a single environment
US8555080B2 (en) * 2008-09-11 2013-10-08 Workshare Technology, Inc. Methods and systems for protect agents using distributed lightweight fingerprints
US8185897B2 (en) * 2008-09-30 2012-05-22 Verizon Patent And Licensing Inc. Task management system
US9582596B2 (en) * 2008-10-29 2017-02-28 International Business Machines Corporation Preventing not found error (404) responses on dynamically loaded missing images
US20100107091A1 (en) * 2008-10-29 2010-04-29 International Business Machines Corporation Publishing requests for dynamically loaded missing images
WO2010059747A2 (en) 2008-11-18 2010-05-27 Workshare Technology, Inc. Methods and systems for exact data match filtering
US8406456B2 (en) 2008-11-20 2013-03-26 Workshare Technology, Inc. Methods and systems for image fingerprinting
US8266477B2 (en) * 2009-01-09 2012-09-11 Ca, Inc. System and method for modifying execution of scripts for a job scheduler using deontic logic
DE202010018601U1 (en) 2009-02-18 2018-04-30 Google LLC (n.d.Ges.d. Staates Delaware) Automatically collecting information, such as gathering information using a document recognizing device
CN102349087B (en) 2009-03-12 2015-05-06 谷歌公司 Automatically providing content associated with captured information, such as information captured in real-time
US8447066B2 (en) 2009-03-12 2013-05-21 Google Inc. Performing actions based on capturing information from rendered documents, such as documents under copyright
US9245243B2 (en) 2009-04-14 2016-01-26 Ureveal, Inc. Concept-based analysis of structured and unstructured data using concept inheritance
US9037567B2 (en) * 2009-04-15 2015-05-19 Vcvc Iii Llc Generating user-customized search results and building a semantics-enhanced search engine
US8862579B2 (en) * 2009-04-15 2014-10-14 Vcvc Iii Llc Search and search optimization using a pattern of a location identifier
US8200617B2 (en) * 2009-04-15 2012-06-12 Evri, Inc. Automatic mapping of a location identifier pattern of an object to a semantic type using object metadata
US10628847B2 (en) * 2009-04-15 2020-04-21 Fiver Llc Search-enhanced semantic advertising
US9691059B1 (en) * 2009-07-17 2017-06-27 United Services Automobile Association (Usaa) Systems and methods for transactions using an ATM/credit/debit card and a second communications channel to an account holder's bank
WO2011017084A2 (en) * 2009-07-27 2011-02-10 Workshare Technology, Inc. Methods and systems for comparing presentation slide decks
US10579957B1 (en) 2009-07-31 2020-03-03 Inmar Supply Chain Solutions, LLC System and method for storing and displaying returned goods information
US8977969B2 (en) 2009-11-02 2015-03-10 International Business Machines Corporation Dynamic web portal page
US9886681B2 (en) * 2009-11-24 2018-02-06 International Business Machines Corporation Creating an aggregate report of a presence of a user on a network
US8751587B2 (en) * 2009-11-25 2014-06-10 Red Hat, Inc. Real-time web applications
US8689234B2 (en) 2009-11-25 2014-04-01 Red Hat, Inc. Providing real-time widgets in a web application framework
US8683357B2 (en) * 2009-11-25 2014-03-25 Red Hat, Inc. Providing real time web application framework socket
US9081799B2 (en) 2009-12-04 2015-07-14 Google Inc. Using gestalt information to identify locations in printed information
US9323784B2 (en) 2009-12-09 2016-04-26 Google Inc. Image search using text-based elements within the contents of images
US8645232B1 (en) 2009-12-31 2014-02-04 Inmar, Inc. System and method for threshold billing for returned goods
US20110202384A1 (en) * 2010-02-17 2011-08-18 Rabstejnek Wayne S Enterprise Rendering Platform
US20110239109A1 (en) * 2010-03-24 2011-09-29 Mark Nixon Methods and apparatus to display process data
US9122764B2 (en) 2010-03-24 2015-09-01 Fisher-Rosemount Systems, Inc. Methods and apparatus to access process data stored on a server
IL207123A (en) * 2010-07-21 2015-04-30 Verint Systems Ltd System, product and method for unification of user identifiers in web harvesting
US8473953B2 (en) * 2010-07-21 2013-06-25 International Business Machines Corporation Batching transactions to apply to a database
US8843832B2 (en) * 2010-07-23 2014-09-23 Reh Hat, Inc. Architecture, system and method for a real-time collaboration interface
US20120030612A1 (en) * 2010-07-30 2012-02-02 Sap Ag Dynamic property attributes
EP2616969A2 (en) 2010-09-18 2013-07-24 Oracle International Corporation Enterprise application workcenter
US8442982B2 (en) * 2010-11-05 2013-05-14 Apple Inc. Extended database search
US9552431B2 (en) * 2010-11-24 2017-01-24 Visa International Service Association Unified online content manager apparatuses, methods, and systems
US10783326B2 (en) 2013-03-14 2020-09-22 Workshare, Ltd. System for tracking changes in a collaborative document editing environment
US11030163B2 (en) 2011-11-29 2021-06-08 Workshare, Ltd. System for tracking and displaying changes in a set of related electronic documents
US8635295B2 (en) 2010-11-29 2014-01-21 Workshare Technology, Inc. Methods and systems for monitoring documents exchanged over email applications
US9043799B1 (en) 2010-12-30 2015-05-26 Iqnavigator, Inc. Managing access to a shared resource by tracking active requestor job requests
US9071567B2 (en) 2011-01-31 2015-06-30 Oracle International Corporation Workspace-aware social networks in an enterprise
US8621462B2 (en) 2011-03-07 2013-12-31 International Business Machines Corporation Autonomic customization of properties of a virtual appliance in a computer system
US20120233141A1 (en) * 2011-03-09 2012-09-13 Mckesson Financial Holdings Apparatus, method and computer-readable storage medium for searching patient studies
US8849748B2 (en) * 2011-05-16 2014-09-30 Post Pro Finance Co., Inc. System and method for tracking progress of media processing jobs
US10574729B2 (en) 2011-06-08 2020-02-25 Workshare Ltd. System and method for cross platform document sharing
US10880359B2 (en) 2011-12-21 2020-12-29 Workshare, Ltd. System and method for cross platform document sharing
US9613340B2 (en) 2011-06-14 2017-04-04 Workshare Ltd. Method and system for shared document approval
US9170990B2 (en) 2013-03-14 2015-10-27 Workshare Limited Method and system for document retrieval with selective document comparison
US9948676B2 (en) 2013-07-25 2018-04-17 Workshare, Ltd. System and method for securing documents prior to transmission
US10963584B2 (en) 2011-06-08 2021-03-30 Workshare Ltd. Method and system for collaborative editing of a remotely stored document
US9058362B2 (en) 2011-07-26 2015-06-16 24/7 Customer, Inc. Method and apparatus for predictive enrichment of search in an enterprise
JP5754301B2 (en) * 2011-08-25 2015-07-29 日本電気株式会社 Transaction concurrency control system, transaction concurrency control method, and program
US10083247B2 (en) 2011-10-01 2018-09-25 Oracle International Corporation Generating state-driven role-based landing pages
EP2581842A1 (en) * 2011-10-13 2013-04-17 Gface GmbH Method for creating a keyword-based user-personalized webpage
IL216059A (en) * 2011-10-31 2016-11-30 Verint Systems Ltd System and method for target profiling using social network analysis
US9424281B2 (en) * 2012-03-01 2016-08-23 Magnum Software Development Limited Systems and methods for document and material management
US10372741B2 (en) 2012-03-02 2019-08-06 Clarabridge, Inc. Apparatus for automatic theme detection from unstructured data
US9020888B1 (en) 2012-04-04 2015-04-28 Nectar Services Corp. Data replicating systems and data replication methods
US20130326392A1 (en) * 2012-05-30 2013-12-05 Research In Motion Limited Portable electronic device including a placeholder for an entry field and method of controlling same
US9405602B1 (en) 2012-06-25 2016-08-02 Google Inc. Method for application notification and tasking
US9762465B2 (en) * 2012-08-20 2017-09-12 Lg Electronics Inc. Method and apparatus for transmitting a response to a command in wireless communication system
JP2014052967A (en) * 2012-09-10 2014-03-20 Ricoh Co Ltd Information processing apparatus, program, and system
US9600351B2 (en) 2012-12-14 2017-03-21 Microsoft Technology Licensing, Llc Inversion-of-control component service models for virtual environments
US11567907B2 (en) 2013-03-14 2023-01-31 Workshare, Ltd. Method and system for comparing document versions encoded in a hierarchical representation
KR101782704B1 (en) 2013-03-15 2017-09-27 뷰라웍스, 엘엘씨 Knowledge capture and discovery system
JP6157181B2 (en) * 2013-04-02 2017-07-05 キヤノン株式会社 Server system, control method thereof, and program thereof
US10216842B2 (en) * 2013-06-03 2019-02-26 Google Llc Method for clustering results from a same channel
US10911492B2 (en) 2013-07-25 2021-02-02 Workshare Ltd. System and method for securing documents prior to transmission
EP3044694A4 (en) * 2013-09-13 2017-09-27 Unicom Systems Inc. Distributed data system with document management and access control
US9548894B2 (en) * 2014-06-06 2017-01-17 Yokogawa Electric Corporation Proximity based cross-screen experience App framework for use between an industrial automation console server and smart mobile devices
US20160028856A1 (en) * 2014-07-24 2016-01-28 Miiicasa Taiwan Inc. Method, system and apparatus for providing services across networks
US10257184B1 (en) * 2014-09-29 2019-04-09 Amazon Technologies, Inc. Assigning policies for accessing multiple computing resource services
US11768994B1 (en) * 2014-12-16 2023-09-26 EMC IP Holding Company LLC Methods, systems, and computer readable mediums for generating a curated user interface (UI) marker
US10133723B2 (en) 2014-12-29 2018-11-20 Workshare Ltd. System and method for determining document version geneology
US11182551B2 (en) 2014-12-29 2021-11-23 Workshare Ltd. System and method for determining document version geneology
US20160283285A1 (en) * 2015-03-23 2016-09-29 International Business Machines Corporation Synchronizing control and output of computing tasks
US10268449B1 (en) * 2015-06-25 2019-04-23 EMC IP Holding Company LLC Natural order in API calls
JP2017016446A (en) * 2015-07-02 2017-01-19 富士ゼロックス株式会社 Information processor and information processing program
US11763013B2 (en) 2015-08-07 2023-09-19 Workshare, Ltd. Transaction document management system and method
US10416842B1 (en) * 2015-09-22 2019-09-17 The Mathworks, Inc. Clarity in model-based design
US11070592B2 (en) * 2015-10-28 2021-07-20 Qomplx, Inc. System and method for self-adjusting cybersecurity analysis and score generation
US10659366B1 (en) * 2015-11-04 2020-05-19 Amazon Technologies, Inc. Load balancer metadata forwarding on secure connections
US10235781B2 (en) 2016-01-15 2019-03-19 Oracle International Corporation Visualization of provenance data
RU2639943C2 (en) * 2016-06-02 2017-12-25 Общество с ограниченной ответственностью "ТатАСУ" Information system of automated generation of statistic reports
US10372484B2 (en) * 2016-06-27 2019-08-06 Microsoft Technology Licensing, Llc Secured computing system
US11057288B2 (en) 2016-09-15 2021-07-06 Sap Se Tracking of document status through multiple computer networks
US10788972B2 (en) 2017-10-02 2020-09-29 Fisher-Rosemount Systems, Inc. Systems and methods for automatically populating a display area with historized process parameters
US10509805B2 (en) 2018-03-13 2019-12-17 deFacto Global, Inc. Systems, methods, and devices for generation of analytical data reports using dynamically generated queries of a structured tabular cube
US11386342B2 (en) * 2018-04-20 2022-07-12 H2O.Ai Inc. Model interpretation
US11567787B2 (en) * 2018-09-29 2023-01-31 Or-Ment Llc User interface collaboration advisor
US11257069B2 (en) * 2018-12-06 2022-02-22 Wells Fargo Bank, N.A. Systems and methods for an all-in-one mobile wallet with administrator portal
TWI714480B (en) * 2020-03-19 2020-12-21 索爾智慧機械有限公司 Data display method of pull cap installation tool test instrument
EP3985669A1 (en) * 2020-10-16 2022-04-20 Moodagent A/S Methods and systems for automatically matching audio content with visual input
US11829369B2 (en) * 2020-12-28 2023-11-28 Nasdaq Technology Ab Data extraction with user-configurable extract templates
US11880707B2 (en) * 2021-04-21 2024-01-23 Dell Products, L.P. Modeling, persisting, and presenting job reports in a storage system management application
US11416291B1 (en) * 2021-07-08 2022-08-16 metacluster lt, UAB Database server management for proxy scraping jobs
US20230055618A1 (en) * 2021-08-21 2023-02-23 Artema Labs, Inc Systems and Methods for Management of Token Interactions
US11645231B1 (en) * 2022-04-24 2023-05-09 Morgan Stanley Services Group Inc. Data indexing for distributed query execution and aggregation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998057276A1 (en) * 1997-06-12 1998-12-17 Yahoo, Inc. Dynamic page generator
WO1999016198A1 (en) * 1997-09-26 1999-04-01 Comber Curtis T Integrated interface for real time web based viewing of telecommunications network call traffic

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3809504C1 (en) * 1988-03-22 1989-09-21 Bruker - Franzen Analytik Gmbh, 2800 Bremen, De
US6020208A (en) * 1994-05-27 2000-02-01 Baylor College Of Medicine Systems for surface-enhanced affinity capture for desorption and detection of analytes
WO1995000914A1 (en) * 1993-06-28 1995-01-05 Scott & White Memorial Hospital And Scott, Sherwood And Brindley Foundation Electronic medical record using text database
US5862325A (en) * 1996-02-29 1999-01-19 Intermind Corporation Computer-based communication system and method using metadata defining a control structure
US6032144A (en) 1996-05-29 2000-02-29 Lucent Technologies Inc. Optimization of queries using relational algebraic theta-semijoin operator
US5872970A (en) * 1996-06-28 1999-02-16 Mciworldcom, Inc. Integrated cross-platform batch management system
US6205579B1 (en) * 1996-10-28 2001-03-20 Altera Corporation Method for providing remote software technical support
US5893905A (en) * 1996-12-24 1999-04-13 Mci Communications Corporation Automated SLA performance analysis monitor with impact alerts on downstream jobs
US5884299A (en) * 1997-02-06 1999-03-16 Ncr Corporation Optimization of SQL queries involving aggregate expressions using a plurality of local and global aggregation operations
US6205469B1 (en) * 1997-05-27 2001-03-20 Yahoo! Inc. Method for client-server communications through a minimal interface
US5926818A (en) * 1997-06-30 1999-07-20 International Business Machines Corporation Relational database implementation of a multi-dimensional database
US7058600B1 (en) * 1997-09-26 2006-06-06 Mci, Inc. Integrated proxy interface for web based data management reports
US5991756A (en) 1997-11-03 1999-11-23 Yahoo, Inc. Information retrieval from hierarchical compound documents
US6247047B1 (en) * 1997-11-18 2001-06-12 Control Commerce, Llc Method and apparatus for facilitating computer network transactions
US6078926A (en) * 1997-12-18 2000-06-20 Persistence Software, Inc. Method and apparatus for performing multi-class object fetch in a database management system
WO1999057658A1 (en) 1998-05-01 1999-11-11 Information Advantage System and method for updating a multi-dimensional database
US6212524B1 (en) * 1998-05-06 2001-04-03 E.Piphany, Inc. Method and apparatus for creating and populating a datamart
US6334146B1 (en) * 1998-06-05 2001-12-25 I2 Technologies Us, Inc. System and method for remotely accessing data
WO2000020982A1 (en) 1998-10-02 2000-04-13 Ncr Corporation Sql-based analytic algorithms
US6802042B2 (en) * 1999-06-01 2004-10-05 Yodlee.Com, Inc. Method and apparatus for providing calculated and solution-oriented personalized summary-reports to a user through a single user-interface
US7386586B1 (en) * 1998-12-22 2008-06-10 Computer Associates Think, Inc. System for scheduling and monitoring computer processes
US6381579B1 (en) * 1998-12-23 2002-04-30 International Business Machines Corporation System and method to provide secure navigation to resources on the internet
US6453339B1 (en) * 1999-01-20 2002-09-17 Computer Associates Think, Inc. System and method of presenting channelized data
US6199099B1 (en) * 1999-03-05 2001-03-06 Ac Properties B.V. System, method and article of manufacture for a mobile communication network utilizing a distributed communication network
US7082422B1 (en) * 1999-03-23 2006-07-25 Microstrategy, Incorporated System and method for automatic transmission of audible on-line analytical processing system report output
US6401077B1 (en) * 1999-05-28 2002-06-04 Network Commerce, Inc. Method and system for providing additional behavior through a web page
US6526438B1 (en) * 1999-07-12 2003-02-25 Divine, Inc. Method for distributing information to subscribers over a network
US6636242B2 (en) * 1999-08-31 2003-10-21 Accenture Llp View configurer in a presentation services patterns environment
US6748555B1 (en) * 1999-09-09 2004-06-08 Microsoft Corporation Object-based software management
US20020023108A1 (en) * 1999-09-09 2002-02-21 Neil Daswani Automatic web form interaction proxy
US6571285B1 (en) * 1999-12-23 2003-05-27 Accenture Llp Providing an integrated service assurance environment for a network
US6697865B1 (en) * 2000-01-04 2004-02-24 E.Piphany, Inc. Managing relationships of parties interacting on a network
US7039714B1 (en) * 2000-01-19 2006-05-02 International Business Machines Corporation Method of enabling an intermediary server to impersonate a client user's identity to a plurality of authentication domains
US7266821B2 (en) * 2000-04-27 2007-09-04 Hyperion Solutions Corporation Method and apparatus for processing jobs on an enterprise-wide computer system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998057276A1 (en) * 1997-06-12 1998-12-17 Yahoo, Inc. Dynamic page generator
WO1999016198A1 (en) * 1997-09-26 1999-04-01 Comber Curtis T Integrated interface for real time web based viewing of telecommunications network call traffic

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
CARICKHOFF R: "A New Face For OLAP", INTERNET SYSTEMS, January 1997 (1997-01-01), pages 1 - 10, XP002193805, Retrieved from the Internet <URL:http://www.dbmsmag.com/9701i08.html> [retrieved on 20020312] *
EWBANK K: "Reports cracked report generators", DEVELOPER NETWORK JOURNAL, NOV.-DEC. 1999, MATT PUBLISHING, UK, no. 15, pages 26 - 27, 29 - 32, XP008000316, ISSN: 1462-5954 *
KIEKEBUSCH M ET AL: "Automatic Report Generator Paranal Observatory", ADVANCED TELESCOPE AND INSTRUMENTATION CONTROL SOFTWARE, MUNICH, GERMANY, 29-30 MARCH 2000, vol. 4009, Proceedings of the SPIE - The International Society for Optical Engineering, 2000, SPIE-Int. Soc. Opt. Eng, USA, pages 308 - 316, XP002193806, ISSN: 0277-786X *
SLOMKA P J ET AL: "Java-based PACS and reporting system for nuclear medicine", MEDICAL IMAGING 2000: PACS DESIGN AND EVALUATION: ENGINEERING AND CLINICAL ISSUES, SAN DIEGO, CA, USA, 15-17 FEB. 2000, vol. 3980, Proceedings of the SPIE - The International Society for Optical Engineering, 2000, SPIE-Int. Soc. Opt. Eng, USA, pages 235 - 241, XP002193807, ISSN: 0277-786X *
WHITEHEAD N: "A new era of information sharing", ENTERPRISE MIDDLEWARE, MAY 1998, XEPHON, UK, pages 26 - 30, XP008000218 *
YEDWAB G: "L'EVOLUTION DES GENERATEURS DE RAPPORTS", GENIE LOGICIEL, GENIE INDUSTRIEL MULTIMEDIA, PARIS, FR, no. 45, September 1997 (1997-09-01), pages 43 - 49, XP001051865, ISSN: 1265-1397 *

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7403989B2 (en) 2002-01-08 2008-07-22 Sap Ag Facilitating improved workflow
EP1333386A1 (en) * 2002-01-08 2003-08-06 Sap Ag Providing web page for executing tasks by user, with data object
EP1367513A2 (en) * 2002-01-08 2003-12-03 Sap Ag Improved workflow system
WO2003058371A2 (en) * 2002-01-08 2003-07-17 Sap Aktiengesellschaft Facilitating improved workflow
WO2003058371A3 (en) * 2002-01-08 2004-09-30 Sap Ag Facilitating improved workflow
EP1367513A3 (en) * 2002-01-08 2004-12-01 Sap Ag Improved workflow system
US7127473B2 (en) 2002-05-17 2006-10-24 Sap Aktiengesellschaft Methods and systems for providing supplemental contextual content
US7200801B2 (en) 2002-05-17 2007-04-03 Sap Aktiengesellschaft Rich media information portals
US7305436B2 (en) 2002-05-17 2007-12-04 Sap Aktiengesellschaft User collaboration through discussion forums
US7346668B2 (en) 2002-05-17 2008-03-18 Sap Aktiengesellschaft Dynamic presentation of personalized content
US7370276B2 (en) 2002-05-17 2008-05-06 Sap Aktiengesellschaft Interface for collecting user preferences
US7321887B2 (en) 2002-09-30 2008-01-22 Sap Aktiengesellschaft Enriching information streams with contextual content
US8302012B2 (en) 2002-12-02 2012-10-30 Sap Aktiengesellschaft Providing status of portal content
US8028237B2 (en) 2002-12-02 2011-09-27 Sap Aktiengesellschaft Portal-based desktop
WO2004051507A1 (en) 2002-12-02 2004-06-17 Sap Ag Portal based desktop
US11565134B2 (en) 2010-10-12 2023-01-31 Smith & Nephew, Inc. Medical device
US10639502B2 (en) 2010-10-12 2020-05-05 Smith & Nephew, Inc. Medical device
EP2698753A1 (en) * 2012-08-16 2014-02-19 Corporación Medichem, S.L. Data management system for generating a report document by linking technical data to intellectual property rights data
WO2014043175A2 (en) 2012-09-11 2014-03-20 Jadhav Ajay Platform agnostic modular framework
EP2895960A4 (en) * 2012-09-11 2016-05-25 Ajay Jadhav Platform agnostic modular framework
US10536558B2 (en) 2012-09-11 2020-01-14 Ajay JADHAV Platform agnostic modular framework
US10905806B2 (en) 2013-03-14 2021-02-02 Smith & Nephew, Inc. Reduced pressure wound therapy control and data communication
US10610624B2 (en) 2013-03-14 2020-04-07 Smith & Nephew, Inc. Reduced pressure therapy blockage detection
US11633533B2 (en) 2013-03-14 2023-04-25 Smith & Nephew, Inc. Control architecture for reduced pressure wound therapy apparatus
US11315681B2 (en) 2015-10-07 2022-04-26 Smith & Nephew, Inc. Reduced pressure therapy device operation and authorization monitoring
US11783943B2 (en) 2015-10-07 2023-10-10 Smith & Nephew, Inc. Reduced pressure therapy device operation and authorization monitoring
US11602461B2 (en) 2016-05-13 2023-03-14 Smith & Nephew, Inc. Automatic wound coupling detection in negative pressure wound therapy systems
US11369730B2 (en) 2016-09-29 2022-06-28 Smith & Nephew, Inc. Construction and protection of components in negative pressure wound therapy systems
US11712508B2 (en) 2017-07-10 2023-08-01 Smith & Nephew, Inc. Systems and methods for directly interacting with communications module of wound therapy apparatus
US11793924B2 (en) 2018-12-19 2023-10-24 T.J.Smith And Nephew, Limited Systems and methods for delivering prescribed wound therapy

Also Published As

Publication number Publication date
US6832263B2 (en) 2004-12-14
US7266821B2 (en) 2007-09-04
WO2001081829A9 (en) 2003-01-30
US20080034369A1 (en) 2008-02-07
US6643661B2 (en) 2003-11-04
US20020052954A1 (en) 2002-05-02
AU2001261084A1 (en) 2001-11-07
US8261271B2 (en) 2012-09-04
WO2001081829A8 (en) 2002-02-21
US20020023122A1 (en) 2002-02-21
US20020023158A1 (en) 2002-02-21

Similar Documents

Publication Publication Date Title
US7266821B2 (en) Method and apparatus for processing jobs on an enterprise-wide computer system
US10592705B2 (en) System and method for network user interface report formatting
US8607138B2 (en) System and method for OLAP report generation with spreadsheet report within the network user interface
US8140563B2 (en) Searching in a computer network
US7840600B1 (en) Systems and methods for interactively creating, customizing, and executing reports over the internet
CA2313556C (en) Generating a graphical user interface from a command syntax for managing multiple computer systems as one computer system
US7013306B1 (en) XML input definition table for transforming XML data to internal format
US9092137B2 (en) Customization of client-server interaction in an internet application
US6453339B1 (en) System and method of presenting channelized data
US6745238B1 (en) Self service system for web site publishing
US6708173B1 (en) Method and apparatus for multiple application trace streams
US7379965B2 (en) System and method for searching data partially displayed on a user interface
US20040030697A1 (en) System and method for online feedback
US20050210379A1 (en) Internet-based system for dynamically creating and delivering customized content within remote web pages
US20020026441A1 (en) System and method for integrating multiple applications
JP2004133886A (en) Use of extensible markup language in system and method for influencing position on search result list generated by computer network search engine
US6295531B1 (en) Cool ICE data wizard
WO2000043917A9 (en) System and method of presenting channelized data
US7158967B1 (en) XML output definition table for transferring internal data into XML document
US20040088174A1 (en) System and method for distributed querying and presentation or information from heterogeneous data sources
US8429609B2 (en) Method and system for web-based enterprise change and configuration management reports
US6721722B1 (en) Cool ice data wizard calculation service
US7315868B1 (en) XML element to source mapping tree
US7191167B1 (en) Step to save current table for later use
US7197499B2 (en) Cool ice data wizard security service

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
AK Designated states

Kind code of ref document: C1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: C1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

CFP Corrected version of a pamphlet front page
CR1 Correction of entry in section i
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
COP Corrected version of pamphlet

Free format text: PUBLISHED INTERNATIONAL SEARCH REPORT (2 PAGES) REPLACED BY CORRECT INTERNATIONAL SEARCH REPORT (6 PAGES)

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP