WO2002025854A9 - System and method for portal infrastructure tracking - Google Patents
System and method for portal infrastructure trackingInfo
- Publication number
- WO2002025854A9 WO2002025854A9 PCT/US2001/029581 US0129581W WO0225854A9 WO 2002025854 A9 WO2002025854 A9 WO 2002025854A9 US 0129581 W US0129581 W US 0129581W WO 0225854 A9 WO0225854 A9 WO 0225854A9
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- location
- data
- code
- record
- parameters
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/029—Firewall traversal, e.g. tunnelling or, creating pinholes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Definitions
- the present invention relates to data transmission between computer systems where the systems are separated by a firewall, and more particularly to the use of hypertext transfer protocol and extensible markup language for the data transmission without a logon across the firewall.
- the invention provides a system and method for data record transmission.
- the system and method comprises transmitting, from a first location to a second location, a request for unsent data records, the request including information to identify a last received record.
- the system and method also comprises transmitting, from the second location to the first location, at least one previously unsent data record with associated record identifier.
- the system and method comprises updating, at the first location, an identifier of the last received record, wherein a network firewall denying unrestricted access separates the first location and second location.
- the invention provides a system and method for data extraction to support data reporting.
- the system and method comprises presenting a plurality of data extraction templates, with associated parameters.
- the system and method also comprises receiving parameters for a particular data extraction template using hypertext transport protocol and extensible markup language.
- the system and method also comprises extracting data corresponding to the parameters.
- the system and method comprises generating a document using the data.
- FIG. 1 illustrates one embodiment of a system according to the instant invention
- FIG. 2 illustrates one embodiment of a method according to the instant invention
- FIG. 3 illustrates one embodiment of a method according to the instant invention. It is understood that the drawings are for illustration only and are not limiting.
- a system 100 includes a plurality of distributed computers, (including servers or clients) 102, 104, 106, 108, 110, 112, and 114.
- the distributed computers are interconnected by local area networks 120, wide area networks, or the Internet 122.
- Some of the distributed computers have a firewall 130, 132, 134, 136, and 138 to control or restrict access.
- firewalls including hardware based, software based and a combination of both hardware and software.
- Some of the computers may be part of a particular organization or network 140 that has a firewall 136 to protect the entire network, as well as a firewall 130 to protect individual assets 106.
- the distributed computers also generally include central processor(s), volatile and nonvolatile memory, input/output devices, displays, removable and fixed storage media and various communication and network interface devices, such as modem, Ethernet, wireless etc.
- computer 102 performs functions of monitor and data collection.
- computer 102 is a subscriber.
- One of the functions of computer 102 is to collect statistics and data from the various other computers (104, 106, 108, 110, 112, 114).
- other computers 104, 106, 108, 110, 112 and 114 are publishers. Much of the data stored on the other computers is time sensitive and confidential, and the statistics are constantly changing. Therefore computer 102 needs to get data or snapshots of the statistics at particular times.
- an operator at computer 102 can log onto each of the other computers and extract the desired data or statistics. However, where the other computer is located behind a firewall, the operator must have access rights to that computer. Providing large numbers of access rights to multiple different computer operators may not be particularly desirable.
- the instant invention provides systems and methods for query of the data or statistics residing on other computers without requiring higher level access to the other computers.
- An Example of a Portal Infrastructure Tracking Component The portal infrastructure tracking component running on computer 102 monitors a distributed group of web servers. Data collection, transmission and report generation are specific areas of interest. Data Collection & Transmission
- one problem is to collect data from web servers (104, 106, 108, 110, 112 and 114), which are located in many different places, in an environment where there are multiple firewalls preventing easy access between computers. It is important that computer 102 receives a data record exactly once from any of the web servers. However, there may be limited or no control over the operators of the web servers that are monitored by computer 102. This is particularly important, as some portal content is sourced externally. Normally such a feed would require counters to be maintained on both ends of the link, to ensure that all data is sent exactly once, but the nature of the content providers makes this difficult.
- the data include event data relating to users accessing assets (documents) on web servers, and the creation and modification of the assets themselves. In one technique, this data on the web servers is ordered.
- system 100 has two types of participants, multiple "publishers” and a "subscriber".
- all the web servers and content providers (104, 106, 108, 110, 112, and 114) are publishers and the tracking computer 102 is the subscriber.
- the publishers produce data with defined ordering characteristics. Assets of the publishers have, or are assigned, a unique numeric ID. For example, more recent assets have higher ID numbers, and no ID number is used more than once by any publisher. In the case of event data, this is gathered from the web server access log files, and each record in the file is treated as a message, with the message physical address in the file being it's ID.
- Each publisher implements the publisher end of the interface. However, there is no persistent state associated with each publisher. Additionally, the publishers do not know who is subscribing to the data or where they all are in consuming the data.
- the subscriber maintains a record of the ID number of the last message it successfully received. When the subscriber needs to get an update from a particular publisher, the subscriber connects to the particular publisher and passes this ID number to the publisher. The particular publisher receives this ID number and then sends all previously unsent records with a higher ID number than the value received from the subscriber. This is possible when the records are ordered by ID number, and the publisher sends the ID number with the data in each record. After receiving an update, the subscriber stores the most recent ID number for that particular publisher in a database transaction with the record data.
- the publisher pushes or continues to send data indefinitely, “sleeping" when there is no more data. As more data becomes available the publisher immediately sends data to the connected subscriber.
- each publisher maintains the data and the subscriber requests or pulls data from the publisher. If for any reason the subscriber looses some data (say that it restores its database from a backup) then the "most recently received ID number" will be automatically wound back because it too is stored in the database. When the subscriber reconnects with the publisher, this earlier ID number is sent and the publisher re-sends any records after that point. As there is no state on the publishers there is no reconciliation problem, this makes failure modes much simpler than with other publish/subscribe protocols.
- the method is implemented using extensible markup language (XML) with hypertext transport protocol (HTTP). Both are industry standards, and an important characteristic of this combination is that it allows operation over a firewall, without requiring a logon of the accessed computer system. In this manner, computer 102 of system 100 collects data from other computers in an environment that is otherwise somewhat hostile to access using other protocols.
- XML extensible markup language
- HTTP hypertext transport protocol
- XML provides a method for putting structured data in a text file.
- Structured data includes such things as spreadsheets, address books, configuration parameters, financial transactions, technical drawings, etc.
- Use of a text format allows a user to look at or use the data without the program that produced it.
- XML is a set of rules, guidelines, or conventions, for designing text formats for such data, in a way that produces files that are easy to generate and read (by a computer), that are unambiguous, and that avoid common pitfalls, such as lack of extensibility, lack of support for internationalization/localization, and platform-dependency.
- XML looks a bit like HTML but is not HTML.
- HTML XML makes use of tags (words bracketed by ' ⁇ ' and '>') and attributes (of the form name- 'value"), but while HTML specifies what each tag & attribute means (and often how the text between them will look in a browser), XML uses the tags only to delimit pieces of data, and leaves the interpretation of the data completely to the application that reads it. In other words, if you see " ⁇ p>" in an XML file, don't assume it is a paragraph. Depending on the context, it may be a price, a parameter, a person, etc.
- XML is text that is not intended to be read by humans. As text files, it intended to be read by a computer, although it allows experts (such as programmers) to more easily debug applications, and in emergencies, they can use a simple text editor to fix a broken XML file. However, the rules for XML files are more strict than for HTML. A forgotten tag, or an attribute without quotes makes the file unusable, while in HTML such practice is often explicitly allowed, or at least tolerated. It is written in the official XML specification: applications are not allowed to try to second-guess the creator of a broken XML file; if the file is broken, an application has to stop right there and issue an error.
- XML is a family of technologies. There is XML 1.0, the specification that defines what "tags” and “attributes” are, but around XML 1.0, there is a growing set of optional modules that provide sets of tags & attributes, or guidelines for specific tasks. There is, e.g., Xlink (still in development as of November 1999), which describes a standard way to add hyperlinks to an XML file. XPointer & XFragments (also still being developed) are syntaxes for pointing to parts of an XML document.
- XPointer is a bit like a URL, but instead of pointing to documents on the Web, it points to pieces of data inside an XML file.
- CSS the style sheet language, is applicable to XML as it is to HTML.
- XSL autumn 1999
- XSLT a transformation language that is often useful outside XSL as well, for rearranging, adding or deleting tags & attributes.
- the DOM is a standard set of function calls for manipulating XML (and HTML) files from a programming language.
- XML Namespaces is a specification that describes how you can associate a URL with every single tag and attribute in an XML document.
- XML Schemas 1 and 2 help developers to precisely define their own XML-based formats. There are several more modules and tools available or under development.
- XML is verbose. Since XML is a text format, and it uses tags to delimit the data, XML files are nearly always larger than comparable binary formats. That was a conscious decision by the XML developers. The advantages of a text format are evident and the disadvantages can usually be compensated at a different level.
- communication protocols such as modem protocols and HTTP/1.1 (the core protocol of the Web) can compress data on the fly, thus saving bandwidth as effectively as a binary format.
- HTTP is a communication standard, and the following edited extract of Request for Comment (RFC) 2068 is a summary from "http://www.w3.org/” to assist those with less understanding.
- the Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information systems. HTTP has been in use by the World-Wide Web global information initiative since 1990. The first version of HTTP, referred to as HTTP/0.9, was a simple protocol for raw data transfer across the Internet. HTTP/ 1.0, as defined by RFC 1945, improved the protocol by allowing messages to be in the format of MIME-like messages, containing metainformation about the data transfened and modifiers on the request/response semantics.
- HTTP/1.0 does not sufficiently take into consideration the effects of hierarchical proxies, caching, the need for persistent connections, and virtual hosts.
- HTTP/1.0 does not sufficiently take into consideration the effects of hierarchical proxies, caching, the need for persistent connections, and virtual hosts.
- HTTP/1.0 has necessitated a protocol version change in order for two communicating applications to determine each other's true capabilities.
- RFC 2068 defines the protocol refened to as "HTTP/1.1". This protocol includes more stringent requirements than HTTP/1.0 in order to ensure reliable implementation of its features. Practical information systems require more functionality than simple retrieval, including search, front-end update, and annotation.
- HTTP allows an open-ended set of methods that indicate the purpose of a request. It builds on the discipline of reference provided by the Uniform Resource Identifier (URI), as a location (URL) or name (URN), for indicating the resource to which a method is to be applied. Messages are passed in a format similar to that used by Internet mail as defined by the Multipurpose Internet Mail Extensions (MIME).
- URI Uniform Resource Identifier
- URL location
- UPN name
- HTTP is also used as a generic protocol for communication between user agents and proxies/gateways to other Internet systems, including those supported by the SMTP, NNTP, FTP, Gopher, and WAIS protocols. In this way, HTTP allows basic hypermedia access to resources available from diverse applications.
- a publisher (104, 106, 108, 110, 112,
- system 100 listens on one of the network connections 120, 122 for a connection from subscriber 102.
- the publisher continues to listen for a connection. If there is a connection, then at step 206, the publisher listens for a request from a subscriber. The request will include the last received record identifier that the subscriber holds in their files, and the last received record identifier is maintained by the subscriber. The publisher maintains a similar list of data record identifiers, with associated data records. In this manner, the publisher can compare the subscriber's last received record identifier with the records held by the publisher to determine whether there are any unsent data records.
- the publisher determines whether there is unsent data to send.
- step 210 the publisher waits or sleeps for some period of time.
- the publisher reads one batch of messages, starting with the oldest unsent batch of messages as indicated by the data identification.
- the subscriber receives that record and record identifier and updates the last received record identifier.
- the publisher After sending a message and associated identifier, at step 214, the publisher determines whether the connection between the publisher and subscriber is lost.
- connection is lost, then at step 202, the publisher listens for a connection from the subscriber.
- step 208 the publisher determines whether there is unsent data to send. This process continues until terminated.
- the instant invention also includes a distributed reporting tool.
- Reporting consists of two quite separate tasks: data extraction, and data presentation. As these are quite different problems, they require different skills to design. However, known reporting tools tend to merge these into one task.
- reports include multiple sections, which are independent of each other in content. Additionally, reports may contain some sections also found in other reports. The combination of these report sections is therefore a presentation (formatting) issue.
- One embodiment of the instant invention includes the idea of a "reportlet".
- a reportlet extracts the data for one report section.
- the primary task for a reportlet is the data extraction.
- Presentation itself is not a task of a reportlet.
- the output of a reportlet is a dialect of XML, which simply describes the structure of the data.
- Reportlets operate over HTTP and take their parameters using the standard HTTP parameter passing mechanism.
- the parameters for reportlets are defined in such a way that it is possible to identify parameters taken by two reportlets, which are semantically equivalent.
- the presentation is done using standard tools, such as based on XSLT. This means that the reportlets can be used to produce significantly different results (tables vs graphs for example) simply by applying different XSL style sheets.
- the reportlets operate over HTTP, and thus they can be located anywhere. This also means that the reportlets need not be connected to a database, and can get data from any source. For example, reportlets can be written which show the current free space available on server file systems and databases. A tracking report engine can then execute these reportlets on all machines in a production cluster and produce a single report showing data for the whole cluster. Accordingly, in one embodiment, the instant invention provides total absence of server side persistent state relating to client subscriptions, with resulting desirable failure mode characteristics. This includes use of web standards to enable distributed data gathering and reporting.
- computer 102 of system 100 gets report components. These components include elements such as a list of reportlets 320, style definitions 322, bound parameters 324 and free parameters 326.
- the components (320, 322, 324, 326) may reside on computer 102, or they may reside on other computers (104, 106, 108, 110, 112, 114).
- computer 102 processes a report header.
- computer 102 calls one of the reportlets, which includes a reportlet and style sheet processor.
- computer 102 determines whether there are additional reportlets. If there are additional reportlets, then at step 306, computer 102 calls another one of the reportlets. If there are no additional reportlets, then at step 310, computer 102 processes the report trailer, and at step 312 displays the report, a
- Any SQML server can contain QueryGram contexts, if required in addition to normal SQML contexts.
- the server is a publisher.
- QueryGram context may also be accessed as a regular SQML context if required.
- context new SQMLContext("event”, “Events QueryGram”,
- context.setQueryGram (item, 20, 30000, 10000); context.addltem(item); context.addltem(new SQMLItem("eventTime", “Time of the event”,
- the SQMLServlet class provides all the necessary functionality to service queries as they arrive.
- An Example Client "Querygram” The implementation of a QueryGram client is very similar to a normal SQML client. In this example the client is a subscriber.
- QueryGram requests are identified with a context name, and you can specify which fields you require using the wanted()method as before.
- queryGram()method must be called, passing the integer ID of the most recently received QueryGram. All QueryGrams with a higher id than this will then be returned in ID sequence.
- Tracking QueryGram Example The Tracking service provides a QueryGram interface to provide notifications of events. As with the normal SQML example we need to sub class SQMLQueryProxy: class QueryGramProxy extends SQMLQueryProxy
- EventRequest "event”
- Example Server and Example Client describe the essential aspects of one embodiment of the invention.
- the example of a total system which is provided below, illustrates other embodiments of the invention in a larger system context.
- Tracking The Tracking & Reporting component of the Portal Infrastructure implements a number of SQML interfaces.
- the examples below describe the various interfaces and their use, but before describing the interfaces in detail we will describe the tracking application particularly with respect to its needs from content providers.
- the tracking system monitors activity on web based portals. There are 2 parts to the process with respect to any given content provider. Firstly there is the tracking of events, or user activity on the site. Secondly, there is a need to find out what asset any particular URL refers to and to map those assets on to Tracking's unified asset model.
- Content Providers, Portals and Users Tracking is a multiple system tracking and reporting service. This means that activity is tracked across multiple systems and activity for a single user on several systems can be reported on together.
- Tracking also understands the idea of a portal, as an intermediary between the user and the content provider which acts as an aggregator. Tracking is currently linked to the CRD user account system, and so only systems which use CRD for account maintenance can be easily tracked.
- the Asset Model It is important to understand that each content provider maintains, identifies and classifies its assets in its own way.
- the object of the Tracking & Reporting system is to provide an integrated reporting environment where user activity may be tracked across portals and content providers. It is therefore necessary to name assets and classifications in a globally unique way. This is done by prefixing some system specific name with the domain name of the content provider, so a Morgan Markets asset might be called www.morganmarkets.com/asset/12345 and a JPM Portal asset could be portal.jpmorgan.com/asset/567.
- Globally Unique Identifiers are unique, however there is a convention that assets are called domain/asset/id, classifications are domain/class/id and classification types are domain/classtype/id.
- An asset may be assigned one or more classifications, which help to describe the asset. Examples of classifications might be United Kingdom, US Dollars or North America.
- Reports can be produced based upon asset classifications, so one might produce a report detailing all assets associated with North America. Classifications are hierarchical, so US Dollars might be a child of United States so a query for all assets associated with United States would include all assets classified as US Dollars.
- Classifications all have exactly one classification type. Examples of classification types are Country, Currency and Country Group.
- Tracking has 2 collection interfaces, the first collects data about events in the systems monitored. The second is the asset lookup interface, which tracking uses to find out about assets for which events have been received.
- the first is a web server log file reader, which processes the standard log file produced by a web server.
- the second is an API which an application can call to record trackable events.
- An API approach is preferable because the application knows when a business event has taken place and can usually identify the exact asset which is being accessed.
- the first design rule of tracking interfaces is that tracking is not a mission critical application. This means that if for any reason there is a system failure which makes tracking user activity impossible that this should not interfere with the underlying application. No user should be refused any service on the grounds that the delivery of that service cannot be tracked.
- the second design rule is that content systems should not be required to maintain any state relating to tracking interfaces.
- the event capture API works by creating a file on the content providers local system. This file is then read by a remote log reader in the same way as web server log files.
- Event Capture The job of the event interface is to collect raw event data as quickly as possible, it should not be doing any complex processing. That said, there is a large volume of uninteresting data in web server logs, and the log reader discards inelevant data wherever it can.
- the Event API works by writing a log file on the content system's local disk. This file is then read by a special version of the log reader which is also used to process web server logs.
- the log reader works as a CGI application, running on a web server on the system being monitored. The reader is given the name of the log file to read and the point to which it has already processed the file by the Tracking server. It then processes the file and sends back one record per asset access.
- the assets are identified by a modified form of URL called a MUURL.
- This is like a URL except that the protocol element (http://, https:// etc.) is stripped off and any unnecessary parameters may also be stripped off.
- An MUURL therefore looks like a domain name, followed by a slash and some string which can be used to identify assets within that domain.
- a single URL does not always map onto a single asset, and each asset does not always have a single URL.
- Assets are identified by a globally unique identifier (GUID).
- GUID globally unique identifier
- the application When using the event logging API the application is required to provide the GUID for the asset being accessed.
- this When processing a webserver log file, if it is possible to deduce the asset's GUID then this is indicated by prefixing the GUID with a slash character and providing it as the MUURL. If this is not possible then the asset lookup interface is called by tracking later with the MUURL and the time of the event, it must then return a GUID from these two pieces of data, using whatever asset databases it requires.
- Event API works by writing a special log file on a local disk of the content system servers. A log reader then reads this data and sends it back to the tracking server.
- the Event API interface is defined in terms of the format of the file, tracking then also provides a set of bindings to facilitate the creation of this file.
- Event Log File Format The event API log file consists of newline terminated records each containing tab separated fields. Each record (line) records one event. The fields for each record are as follows:
- the tracking provided API bindings ensure that the generated file is conectly named and written sequentially. If an application generates the file directly it must ensure that if several processes write to the file that the data is written correctly. In particular it is essential that if two processes write to the file simultaneously that the data is not interleaved and that only whole records (lines) are written.
- Event Log File Naming and Handling The event log file must have a name which contains no dot characters. This name must be suffixed with a dot and the date in the form YYYYMMDD. The application should periodically (normally daily) create a new log file with a new date suffix. The old files must remain in place for at least 48 hours, after which they may be archived or deleted.
- the log file reader will automatically detect the creation of a new file and begin reading it, after which the old file will not normally be re-read. It is therefore important that only one file be appended to at any one time. If it is necessary to create multiple files simultaneously then these must be named differently and each must be suffixed with the current date.
- Java API The Java Event API is part of the tracking public API (package com.jpmorgan.portalinfra.tracking) and is distributed as part of tracking.jar.
- the API has a threaded model which attempts to ensure that the application calling the API is not blocked on any internal activity such as writing the log file.
- the application thread calling the API simply places the logged data on an in memory queue, a separate thread is responsible for actually writing out the data.
- the log file name give is automatically suffixed with the cunent date, users of the Java API need not worry about rolling the log file, although archiving and deleting old files is the responsibility of the calling application.
- TrackingEventManager is the class which handles the actual writing of the log file. It is a singleton, and has a getINstance() method. It also has a setLogFileName(String name) method which enables you to set the name of the log file. This should be a full path name ending with a name containing no dot characters. The, cunent date will be appended to the given name automatically.
- TrackingEventManager tern TrackingEventManager.getlnstance(); tem.setLogFileName(System.getProperty("PORTALINFRA_ ROOT_DIR”) + "eventLogs/testLog”);
- LoggableTrackingEvent myTrackingEvent new
- LoggableTrackingServletEvent class which can initialize itself from a
- TrackingEventManager tern TrackingEventManager.getlnstance()
- Example Log Reader The log reader interface is implemented as a C++ application. There are a number of classes which implement the basic log reader functionality and one class which is responsible for parsing the log file. This class must be modified for each system to be monitored. We will illustrate the implementation of a log reader with the Morgan Markets log file reader.
- the abstract base class TtrkGenericLogParser implements the bulk of the parser, this must be sub-classed and the method processLine must be defined. Aside from the constructor and destructor (which may be empty) this is all that needs to be implemented. We begin by including the necessary headers and defining a few constants and the constructor/destructor:
- the GID for any assets begins with the domain name of the provider, for
- processLine method This is passed the line to be parsed, together with the file name, inode number, seek address and line number of the data, which must be passed back to the tracking server if an event is to be recorded from this log file entry.
- eventType is always
- TtrkEventType eventType TtrkGenericLogParser::DISPLAY; const char *target;
- processLine() In order to record an event, processLine() must call the logAccess() method defined in TtrkGenericLogParser. If for any reason the parser wished to discard the cunent line, it simply returns without calling this method.
- the parser first checks to see if the line is the format header which the web server usually writes as the first line in the file. If so then this is discarded. Next it calls tokeniseLine() which breaks up a line on white space, respecting quotes and fills in an anay of char pointers to point to each word in the line. The return value is the number of words detected.
- tokenCnt tokenizeLine(line, token, 128); if(tokenCnt<7)
- tokenCnt tokenizeLine(asset, token, 128); if(tokenCnt<3) ⁇ strstream msg;
- the THttpURL class is defined in the tracking interface library, and represents a URL. It provides a number of methods to access the various fields of a URL including any GET parameters.
- the methods uriFile() and uriPath() return the last element of the URL file path and all but the last element of the file path respectively. Within Morgan Markets the last file name element before the file name represents the research area.
- a URL with a get parameter called z is used to access an asset by its Morgan Markets unique identifier.
- the URL is of this form we can immediately generate the GID for the asset, which saves a call to the Asset Lookup interface later.
- a complete resolution of the GID is indicated by returning a MUURL which begins with a slash character.
- refererUrl newUrl.toLoggerString(myDomain); The other portal values are then checked, note that we must check both the long and short names.
- the httpUrl. removeAHParams() method ensures that when the url is constructed by the toLoggerString method that these are not included. if(stripParams) httpUrl.removeAIIParamsO;
- TtrkGenericLogParser is the abstract super class for log parser implementations. It defines a number of utility methods for use by concrete implementations. These utility methods are declared as follows:
- TtrkEventType eventType time_t parseStdWebLogDate(const char 'date); int tokenizeLine(char 'line, char 'tokensQ, int cnt);
- Tokens are separated by white space and may be quoted with double quote characters. All token separaters and quotes are removed, the a ⁇ ay tokens is filled in with addresses of the first cnt tokens. The number of tokens detected is returned. logAccess((7) - Sends an event message to the tracking server, the following parameters are required:
- ThttpURL represents a URL and defines a number of public methods as follows:
- THttpURL(url String) The constructor takes the string representation of a URL and initializes the class.
- This method constructs the string representation of the given URL as a MUURL suitable for passing to the tracking server.
- a MUURL has no protocol element, and should have all extraneous elements removed.
- the optional domain parameter will be used to fill in the domain for a relative URL.
- Some or all of the parameters may be removed from the MUURL representation. removeAllParams() - Marks all parameters to be excluded from the MUURL form when toLoggerString is subsequently called. getParamByName(name) - Returns the value of the given parameter, or NULL if not present. Using the example above getPramByName("mode") would return the string "header”. getParamByNameAndRemove(name) - Returns the value of the given parameter and marks it to be excluded from the MUURL form when toLoggerString is subsequently called. getParamAt(idx) - Returns the value of the parameter at index position idx.
- protocol() Returns the protocol element of the URL. In the example above this would be the value http:// host() - Returns the host element of the URL. In the example above this would be the value example.jpmorgan.com port() - Returns the port element of the URL. In the example above this would be the value NULL. Note that this method does not substitute known port assignments by the value of the protocol. uriPath() - Returns the path element of the URL.
- the Asset Lookup interface provides a way for the tracking system to find out about assets from the system being monitored. This is implemented as an SQML server.
- a single URL does not always map onto a single asset, and each asset does not always have a single URL.
- the first step in processing an event is to uniquely identify the assets involved. It is sometimes possible for the log reader to deduce the globally unique identifier (GUID) for an asset just from the information in the log file, and if this is possible it does so. If this is not possible then the asset lookup interface is called with the MUURL and the time of the event, it must return a GUID from these two pieces of data, using whatever asset databases it requires.
- GUID globally unique identifier
- GUID Once a GUID has been obtained for an event the tracking system looks to see if it already knows about this asset. If it does not then another call is made to the asset lookup interface to get the necessary details for the asset.
- the asset lookup interface also provides interfaces for the tracking system to discover the details (name, description and type) for a classification and the name and description of a classification type.
- the asset lookup interface is implemented as an SQML server. This server must implement the following SQML query contexts:
- the asset context is a QueryGram, which may be used to actively tell tracking about new assets as they are published.
- the other contexts are used by tracking to discover details of assets it has seen events for from the Log Reader interface.
- the tracking server will only call these interfaces for assets which it has no record of. If the content provider system updates assets then the QueryGram interface must be used to notify tracking when an update occurs, otherwise updates will not be detected by tracking.
- the Morgan Markets asset lookup interface is an example of the complex form of an SQML server.
- the Morgan Markets asset database is a Sybase data server, however some of the URLs used to access assets do not map directly on to database tables.
- the asset QueryGram is implemented as a simple SQML QueryGram, with a database table as the data source. All of the other contexts require some special processing. Additionally the actual access to the database is exclusively through Sybase stored procedures.
- the class MorganMarketsSQMLServlet contains the main SQMLServlet declaration which defines the required query contexts. This class uses the Portal Iffrastructure Database class to encapsulate database access, and requires a "pool name" to get the DB connection details from a properties file.
- the init method begins by declaring some variables and calling the usual SQML super class initialization methods.
- SQMLBaseltem.STRING SQMLBaseltem.STRING
- addContext(assetldContext) The classRelations context is implemented as a standard SQMLContext which uses a stored procedure to answer actual queries.
- getSQMLContext method which is provided by SQMLServlet to create this context and pass the usual parameters.
- the stored procedure takes a single class ID produces a result set containing att keyname and att_keyname_parent. It is defined as follows:
- SQMLPrefixItem is used to define the items for this query because the values passed to and returned by the query have a fixed prefix by comparison to the values used by the stored procedure. For example the GUID www.morganmarkets.com/class/100000789 is identified in the database as a row with a value of 100000789. SQMLPrefixItem takes an additional parameter which is the prefix which should be stripped from selection criteria values and added to results. context.addltem(new SQMLPrefixltemfguid", "Guid”,
- context setQueryGram(item, 20, 30000, 50); makes this a QueryGram context.
- the parameters mean that at most 20 rows will be returned on each call, the server will sleep for 30 seconds (30000 milliseconds) when there is no more data, and will sleep for at least 50 milliseconds after each batch.
- context getSQMLContextrezet
- a Custom Context The assetld context is implemented as a custom context because some URL's require database lookups and some do not. Furthermore depending on the URL the actual DB query varies. This could probably have been implemented as a single Sybase Stored Procedure but this is unnatural and would be inefficient.
- the class MorganMarketsAssetldContext defines the custom context, which is actually a trivial class returning instances of The class MorganMarketsAssetldQuery, which implements the actual lookup logic.
- a query context object The purpose of a query context object is to hold any parameters required by the context (such as a database connection pool name) and to act as a factory class for query objects to answer queries as they arrive.
- the SQML server is a sub class of HttpServlet, and is multi threaded. It is therefore important that the context class ensures that each query object is thread safe. In this example this means ensuring that each query object has its own database connection.
- the getQuery method therefore constructs a new Database object for each query, the same log object is shared as this is a synchronized class.
- public class MorganMarketsAssetldContext extends
- poolName_ poolName
- IdentifyAssetSQMLQuery handles the SQML query interface, and sets up the following protected member variables before calling IdentifyAssetSQMLQuery:
- a helper method protected String getParam(String name) is also provided which returns the value for a given parameter name, or NULL if not present.
- the query class begins by defining the constructor, which is quite straight forward. Note that the domain name for Morgan Markets is hard coded here, as this class is specific to that system. public class MorganMarketsAssetldQuery extends IdentifyAssetSQMLQuery
- the real work takes place in the processAssetldQuery method, which begins by checking for the trivial case that the MUURL given is a fully resolved asset ID, of the form /asset/xxxxx. This is necessary because a reference to a Morgan Markets URL might appear in the log file from another system. This URL might be in the fully resolved format but the log reader for that system cannot know that, and neither does tracking, so such URLs will be passed to the Morgan Markets asset lookup interface for resolution.
- the local variable assetld is used to indicate the result of the query. protected boolean processAssetldQuery(StringBuffer output) throws Exception
- the next step is to identify the file name and research area, which are the last two elements of the filename part of a Morgan Markets URL. We do not try to explain or justify the structure of Morgan Markets URLs here, but these two elements are used to identify assets. else
- i ur .lastlndexOfC/ 1
- j uri_.lastlndexOf(T, i-1 );
- ⁇ assetld getAssetByAttr(val,accessTime_);
- assetld "/area/" + target + 7" + file
- getAssetByAttr finds assets based upon attributes and an access time.
- the database_ member is a Portal Infrastructure Database object which wraps a JDBC connection and handles deadlock retries. The style of use is the same as for a raw JDBC connection.
- the stored procedure portalGetAssetByAttr executes the necessary database query.
Abstract
Description
Claims
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU9118001A AU9118001A (en) | 2000-09-20 | 2001-09-20 | System and method for portal infrastructure tracking |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US23387100P | 2000-09-20 | 2000-09-20 | |
US60/233,871 | 2000-09-20 | ||
US09/956,287 | 2001-09-18 | ||
US09/956,287 US7246263B2 (en) | 2000-09-20 | 2001-09-19 | System and method for portal infrastructure tracking |
Publications (3)
Publication Number | Publication Date |
---|---|
WO2002025854A2 WO2002025854A2 (en) | 2002-03-28 |
WO2002025854A3 WO2002025854A3 (en) | 2002-07-04 |
WO2002025854A9 true WO2002025854A9 (en) | 2004-04-22 |
Family
ID=26927318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2001/029581 WO2002025854A2 (en) | 2000-09-20 | 2001-09-20 | System and method for portal infrastructure tracking |
Country Status (3)
Country | Link |
---|---|
US (1) | US7246263B2 (en) |
AU (1) | AU9118001A (en) |
WO (1) | WO2002025854A2 (en) |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002037386A1 (en) | 2000-11-06 | 2002-05-10 | First Usa Bank, N.A. | System and method for selectable funding of electronic transactions |
US20060047781A1 (en) * | 2000-11-22 | 2006-03-02 | Ed Anuff | Method and system for providing remote portal service modules |
US6791581B2 (en) * | 2001-01-31 | 2004-09-14 | Microsoft Corporation | Methods and systems for synchronizing skin properties |
US7266839B2 (en) | 2001-07-12 | 2007-09-04 | J P Morgan Chase Bank | System and method for providing discriminated content to network users |
US7987246B2 (en) | 2002-05-23 | 2011-07-26 | Jpmorgan Chase Bank | Method and system for client browser update |
US7506048B1 (en) * | 2002-06-05 | 2009-03-17 | Ricoh Co. Ltd. | Method and system for monitoring network connected devices and displaying device status |
US8037299B2 (en) * | 2002-06-18 | 2011-10-11 | Ericsson Ab | Domain-less service selection |
JP4229013B2 (en) * | 2003-09-01 | 2009-02-25 | 株式会社デンソー | AC generator |
US20050256809A1 (en) * | 2004-05-14 | 2005-11-17 | Pasha Sadri | Systems and methods for providing notification and feedback based on electronic payment transactions |
US20060136555A1 (en) * | 2004-05-21 | 2006-06-22 | Bea Systems, Inc. | Secure service oriented architecture |
US7653008B2 (en) | 2004-05-21 | 2010-01-26 | Bea Systems, Inc. | Dynamically configurable service oriented architecture |
US8615601B2 (en) * | 2004-05-21 | 2013-12-24 | Oracle International Corporation | Liquid computing |
US7774485B2 (en) | 2004-05-21 | 2010-08-10 | Bea Systems, Inc. | Dynamic service composition and orchestration |
US20060031355A1 (en) * | 2004-05-21 | 2006-02-09 | Bea Systems, Inc. | Programmable service oriented architecture |
WO2006009879A2 (en) | 2004-06-18 | 2006-01-26 | Washington Mutual, Inc. | System for automatically transferring account information, such as information regarding a financial servicees account |
US20060262087A1 (en) * | 2005-05-23 | 2006-11-23 | Xerox Corporation | Unified status support over USB and HTTP |
US7623711B2 (en) * | 2005-06-30 | 2009-11-24 | Ricoh Co., Ltd. | White space graphs and trees for content-adaptive scaling of document images |
US20070027915A1 (en) * | 2005-07-29 | 2007-02-01 | Morris Robert P | Method and system for processing a workflow using a publish-subscribe protocol |
US20070156835A1 (en) * | 2005-12-30 | 2007-07-05 | Sebastian Pulkowski | Exchanging data between enterprise computing systems and service provider systems |
US20070208702A1 (en) * | 2006-03-02 | 2007-09-06 | Morris Robert P | Method and system for delivering published information associated with a tuple using a pub/sub protocol |
US8055544B2 (en) * | 2006-06-02 | 2011-11-08 | Cobalt Group, Inc. | Source- and venue-specific inventory data processing and identification system |
US8024712B1 (en) * | 2006-09-29 | 2011-09-20 | Emc Corporation | Collecting application logs |
US8254396B2 (en) * | 2006-10-13 | 2012-08-28 | Cisco Technology, Inc. | Fast border gateway protocol synchronization |
US20080270546A1 (en) * | 2007-04-30 | 2008-10-30 | Morris Robert P | Methods And Systems For Communicating Task Information |
WO2008146341A1 (en) * | 2007-05-25 | 2008-12-04 | Fujitsu Limited | Workflow diagram generator, workflow diagram generating device, and workflow diagram generating method |
US20080309665A1 (en) * | 2007-06-13 | 2008-12-18 | 3D Systems, Inc., A California Corporation | Distributed rapid prototyping |
US8365065B2 (en) * | 2007-12-07 | 2013-01-29 | Roche Diagnostics Operations, Inc. | Method and system for creating user-defined outputs |
US20100010320A1 (en) * | 2008-07-07 | 2010-01-14 | Perkins David G | Mobile medical workstation and a temporarily associating mobile computing device |
US8051159B2 (en) * | 2008-10-01 | 2011-11-01 | The Cobalt Group, Inc. | Systems and methods for configuring a network of affiliated websites |
US8438310B2 (en) * | 2008-10-01 | 2013-05-07 | Adp Dealer Services, Inc. | Systems and methods for configuring a website having a plurality of operational modes |
US7870253B2 (en) * | 2008-10-01 | 2011-01-11 | The Cobalt Group, Inc. | Systems and methods for aggregating user profile information in a network of affiliated websites |
US10482475B2 (en) | 2011-02-10 | 2019-11-19 | Adp Dealer Services, Inc. | Systems and methods for providing targeted advertising |
US11080734B2 (en) | 2013-03-15 | 2021-08-03 | Cdk Global, Llc | Pricing system for identifying prices for vehicles offered by vehicle dealerships and other entities |
EP2975854B1 (en) * | 2013-03-15 | 2019-09-18 | Panasonic Intellectual Property Management Co., Ltd. | Content distribution method, content distribution system, source device, and sink device |
GB2519118A (en) * | 2013-10-10 | 2015-04-15 | Ibm | Web page reload |
US9830368B1 (en) * | 2014-08-05 | 2017-11-28 | Glassbeam, Inc. | Asynchronous parallel processing of log data |
US10789080B2 (en) * | 2015-07-17 | 2020-09-29 | Microsoft Technology Licensing, Llc | Multi-tier customizable portal deployment system |
US10853769B2 (en) | 2016-04-21 | 2020-12-01 | Cdk Global Llc | Scheduling an automobile service appointment in a dealer service bay based on diagnostic trouble codes and service bay attributes |
US10332068B2 (en) | 2016-04-21 | 2019-06-25 | Cdk Global, Llc | Systems and methods for stocking an automobile |
US10867285B2 (en) | 2016-04-21 | 2020-12-15 | Cdk Global, Llc | Automatic automobile repair service scheduling based on diagnostic trouble codes and service center attributes |
US10326858B2 (en) | 2017-05-23 | 2019-06-18 | Cdk Global, Llc | System and method for dynamically generating personalized websites |
US11190608B2 (en) | 2018-03-21 | 2021-11-30 | Cdk Global Llc | Systems and methods for an automotive commerce exchange |
US11501351B2 (en) | 2018-03-21 | 2022-11-15 | Cdk Global, Llc | Servers, systems, and methods for single sign-on of an automotive commerce exchange |
US11080105B1 (en) | 2020-11-18 | 2021-08-03 | Cdk Global, Llc | Systems, methods, and apparatuses for routing API calls |
US11514021B2 (en) | 2021-01-22 | 2022-11-29 | Cdk Global, Llc | Systems, methods, and apparatuses for scanning a legacy database |
US11803535B2 (en) | 2021-05-24 | 2023-10-31 | Cdk Global, Llc | Systems, methods, and apparatuses for simultaneously running parallel databases |
Family Cites Families (183)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BE787377A (en) | 1971-08-09 | 1973-02-09 | Waterbury Nelson J | SECURITY CARDS AND SYSTEM FOR USING SUCH CARDS |
US3938091A (en) * | 1972-03-17 | 1976-02-10 | Atalla Technovations Company | Personal verification system |
US4321672A (en) * | 1979-11-26 | 1982-03-23 | Braun Edward L | Financial data processing system |
US4965825A (en) | 1981-11-03 | 1990-10-23 | The Personalized Mass Media Corporation | Signal processing apparatus and methods |
US4630108A (en) * | 1984-03-26 | 1986-12-16 | A. C. Nielsen Company | Preprogrammed over-the-air marketing research system |
US4567359A (en) * | 1984-05-24 | 1986-01-28 | Lockwood Lawrence B | Automatic information, goods and services dispensing system |
US5309355A (en) | 1984-05-24 | 1994-05-03 | Lockwood Lawrence B | Automated sales system |
US4882675A (en) | 1984-11-26 | 1989-11-21 | Steven Nichtberger | Paperless system for distributing, redeeming and clearing merchandise coupons |
US4633397A (en) | 1984-12-24 | 1986-12-30 | Richard Macco | Union member accounts management system |
JPS629470A (en) * | 1985-07-05 | 1987-01-17 | Casio Comput Co Ltd | Identity collation system for individual identification card |
US4713761A (en) | 1985-07-18 | 1987-12-15 | Pitney Bowes, Inc. | System for centralized processing of accounting and payment functions |
US4695880A (en) | 1985-07-30 | 1987-09-22 | Postron Corp. | Electronic information dissemination system |
US4745468B1 (en) | 1986-03-10 | 1991-06-11 | System for evaluation and recording of responses to broadcast transmissions | |
US4926255A (en) | 1986-03-10 | 1990-05-15 | Kohorn H Von | System for evaluation of response to broadcast transmissions |
US4823264A (en) | 1986-05-27 | 1989-04-18 | Deming Gilbert R | Electronic funds transfer system |
US4696491A (en) | 1986-06-19 | 1987-09-29 | Stenger Barbara J | Information reference book and indexing system |
US4725719A (en) * | 1986-07-21 | 1988-02-16 | First City National Bank Of Austin | Restricted purpose, commercial, monetary regulation method |
US4799156A (en) * | 1986-10-01 | 1989-01-17 | Strategic Processing Corporation | Interactive market management system |
US6195644B1 (en) * | 1987-07-08 | 2001-02-27 | Stuart S. Bowie | Computer program and system for credit card companies for recording and processing bonus credits issued to card users |
US5084816A (en) * | 1987-11-25 | 1992-01-28 | Bell Communications Research, Inc. | Real time fault tolerant transaction processing system |
US5485370A (en) * | 1988-05-05 | 1996-01-16 | Transaction Technology, Inc. | Home services delivery system with intelligent terminal emulator |
US4964043A (en) | 1988-06-13 | 1990-10-16 | Galvin Thomas M | System for visualizing, identifying and ordering gearing configurations |
US5117355A (en) | 1989-01-27 | 1992-05-26 | Mccarthy Patrick D | Centralized consumer cash valve accumulation system for multiple merchants |
US5202826A (en) * | 1989-01-27 | 1993-04-13 | Mccarthy Patrick D | Centralized consumer cash value accumulation system for multiple merchants |
US4941090A (en) | 1989-01-27 | 1990-07-10 | Mccarthy Patrick D | Centralized consumer cash value accumulation system for multiple merchants |
US4992940A (en) * | 1989-03-13 | 1991-02-12 | H-Renee, Incorporated | System and method for automated selection of equipment for purchase through input of user desired specifications |
US5016270A (en) | 1989-04-03 | 1991-05-14 | First Data Resources Inc. | Expanded telephone data organization system |
US5201010A (en) * | 1989-05-01 | 1993-04-06 | Credit Verification Corporation | Method and system for building a database and performing marketing based upon prior shopping history |
US5621812A (en) | 1989-05-01 | 1997-04-15 | Credit Verification Corporation | Method and system for building a database for use with selective incentive marketing in response to customer shopping histories |
US5560008A (en) | 1989-05-15 | 1996-09-24 | International Business Machines Corporation | Remote authentication and authorization in a distributed data processing system |
US5235509A (en) | 1989-06-28 | 1993-08-10 | Management Information Support, Inc. | Customer self-ordering system using information displayed on a screen |
US5187790A (en) | 1989-06-29 | 1993-02-16 | Digital Equipment Corporation | Server impersonation of client processes in an object based computer operating system |
US5189606A (en) * | 1989-08-30 | 1993-02-23 | The United States Of America As Represented By The Secretary Of The Air Force | Totally integrated construction cost estimating, analysis, and reporting system |
US5157717A (en) | 1989-11-03 | 1992-10-20 | National Transaction Network, Inc. | Portable automated teller machine |
US5050207A (en) | 1989-11-03 | 1991-09-17 | National Transaction Network, Inc. | Portable automated teller machine |
US5220501A (en) | 1989-12-08 | 1993-06-15 | Online Resources, Ltd. | Method and system for remote delivery of retail banking services |
US5870724A (en) * | 1989-12-08 | 1999-02-09 | Online Resources & Communications Corporation | Targeting advertising in a home retail banking delivery service |
JPH03180968A (en) | 1989-12-08 | 1991-08-06 | Hitachi Ltd | Data base retrieving method and formated document outputting method using the retrieving method |
US5231571A (en) * | 1990-08-14 | 1993-07-27 | Personal Financial Assistant, Inc. | Personal financial assistant computer method |
US5317683A (en) | 1990-09-10 | 1994-05-31 | International Business Machines Corporation | Method and apparatus for automated meeting agenda generation in a data processing system |
US5351186A (en) | 1991-01-16 | 1994-09-27 | Bullock Communications, Inc. | System and method for obtaining information concerning a product or a service |
US5634101A (en) | 1991-05-31 | 1997-05-27 | R. Alan Blau & Associates, Co. | Method and apparatus for obtaining consumer information |
US5537473A (en) | 1991-07-08 | 1996-07-16 | Amstrad Public Limited Company | Video recorder system |
US5383113A (en) * | 1991-07-25 | 1995-01-17 | Checkfree Corporation | System and method for electronically providing customer services including payment of bills, financial analysis and loans |
US5644493A (en) | 1991-08-30 | 1997-07-01 | Nsk Ltd. | Production information processing system |
US5265033A (en) | 1991-09-23 | 1993-11-23 | Atm Communications International, Inc. | ATM/POS based electronic mail system |
US5473143A (en) | 1991-09-23 | 1995-12-05 | Atm Communications International, Inc. | ATM/POS based electronic mail system |
US5557518A (en) | 1994-04-28 | 1996-09-17 | Citibank, N.A. | Trusted agents for open electronic commerce |
US5381332A (en) * | 1991-12-09 | 1995-01-10 | Motorola, Inc. | Project management system with automated schedule and cost integration |
US5467269A (en) | 1991-12-20 | 1995-11-14 | J. B. Laughrey, Inc. | Method and means for telephonically crediting customers with rebates and refunds |
US5640577A (en) | 1991-12-30 | 1997-06-17 | Davox Corporation | Data processing system with automated at least partial forms completion |
US5297026A (en) * | 1992-01-03 | 1994-03-22 | Frank Hoffman | System for promoting account activity |
JP2659896B2 (en) | 1992-04-29 | 1997-09-30 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Structured document copy management method and structured document copy management device |
US5241594A (en) | 1992-06-02 | 1993-08-31 | Hughes Aircraft Company | One-time logon means and methods for distributed computing systems |
DE69332633T2 (en) | 1992-07-20 | 2003-11-06 | Compaq Computer Corp | Procedure and system for discovering aliases based on certification |
US5598557A (en) * | 1992-09-22 | 1997-01-28 | Caere Corporation | Apparatus and method for retrieving and grouping images representing text files based on the relevance of key words extracted from a selected file to the text files |
GB9226475D0 (en) | 1992-12-18 | 1993-02-10 | Cambridge Display Tech Ltd | Chromophoric polymeric compositions |
US5557334A (en) | 1993-01-12 | 1996-09-17 | Visual Automation Systems, Inc. | Apparatus for tracking the flow of video signals by incorporating patterns of machine readable signals which will appear at predetermined locations of a television picture |
US5450134A (en) | 1993-01-12 | 1995-09-12 | Visual Automation Systems, Inc. | Video facility management system for encoding and decoding video signals to facilitate identification of the video signals |
US5602936A (en) * | 1993-01-21 | 1997-02-11 | Greenway Corporation | Method of and apparatus for document data recapture |
US5594837A (en) * | 1993-01-29 | 1997-01-14 | Noyes; Dallas B. | Method for representation of knowledge in a computer as a network database system |
US5420405A (en) | 1993-02-26 | 1995-05-30 | Chasek; Norman E. | Secure, automated transaction system that supports an electronic currency operating in mixed debit & credit modes |
US5412708A (en) | 1993-03-12 | 1995-05-02 | Katz; Ronald A. | Videophone system for scrutiny monitoring with computer control |
US5386551A (en) * | 1993-04-16 | 1995-01-31 | Storage Technology Corporation | Deferred resource recovery |
AU677393B2 (en) | 1993-07-08 | 1997-04-24 | E-Talk Corporation | Method and system for transferring calls and call-related data between a plurality of call centres |
US5570465A (en) | 1993-07-22 | 1996-10-29 | Tsakanikas; Peter J. | Apparatus, method and system for printing of legal currency and negotiable instruments |
US5551021A (en) | 1993-07-30 | 1996-08-27 | Olympus Optical Co., Ltd. | Image storing managing apparatus and method for retreiving and displaying merchandise and customer specific sales information |
US5666493A (en) | 1993-08-24 | 1997-09-09 | Lykes Bros., Inc. | System for managing customer orders and method of implementation |
US5621789A (en) | 1993-09-01 | 1997-04-15 | Teknekron Infoswitch Corporation | Method and system for integrating a plurality of call center agent performance enhancement modules |
US5590199A (en) | 1993-10-12 | 1996-12-31 | The Mitre Corporation | Electronic information network user authentication and authorization system |
US5465206B1 (en) | 1993-11-01 | 1998-04-21 | Visa Int Service Ass | Electronic bill pay system |
US5611052A (en) * | 1993-11-01 | 1997-03-11 | The Golden 1 Credit Union | Lender direct credit evaluation and loan processing system |
US5473732A (en) | 1993-11-02 | 1995-12-05 | Chang; Hou-Mei H. | Relational artificial intelligence system |
JP3367675B2 (en) * | 1993-12-16 | 2003-01-14 | オープン マーケット インコーポレイテッド | Open network sales system and method for real-time approval of transaction transactions |
US5446740A (en) | 1993-12-17 | 1995-08-29 | Empire Blue Cross/Blue Shield | Method of and apparatus for processing data at a remote workstation |
US5880769A (en) * | 1994-01-19 | 1999-03-09 | Smarttv Co. | Interactive smart card system for integrating the provision of remote and local services |
US5715298A (en) * | 1996-05-16 | 1998-02-03 | Telepay | Automated interactive bill payment system using debit cards |
US5570295A (en) | 1994-03-18 | 1996-10-29 | Lucent Technologies Inc. | System and method of capturing encoded data transmitted over a communications network in a video system |
US5537314A (en) | 1994-04-18 | 1996-07-16 | First Marketrust Intl. | Referral recognition system for an incentive award program |
US5500513A (en) | 1994-05-11 | 1996-03-19 | Visa International | Automated purchasing control system |
US5704366A (en) * | 1994-05-23 | 1998-01-06 | Enact Health Management Systems | System for monitoring and reporting medical measurements |
US6182052B1 (en) * | 1994-06-06 | 2001-01-30 | Huntington Bancshares Incorporated | Communications network interface for user friendly interactive access to online services |
US5513102A (en) | 1994-06-28 | 1996-04-30 | Auriemma Consulting Group, Inc. | Data processing methods of implementing an award to an authorized user of a credit card |
US5603025A (en) * | 1994-07-29 | 1997-02-11 | Borland International, Inc. | Methods for hypertext reporting in a relational database management system |
US5592378A (en) * | 1994-08-19 | 1997-01-07 | Andersen Consulting Llp | Computerized order entry system and method |
US5604490A (en) * | 1994-09-09 | 1997-02-18 | International Business Machines Corporation | Method and system for providing a user access to multiple secured subsystems |
US5583778A (en) | 1994-09-21 | 1996-12-10 | Instasearch Corp. | Computer method for collecting on judgments |
US5511117A (en) | 1994-09-26 | 1996-04-23 | Zazzera; Andre C. | Integrated voice and business transaction reporting for telephone call centers |
US5544086A (en) | 1994-09-30 | 1996-08-06 | Electronic Payment Services, Inc. | Information consolidation within a transaction network |
US5715314A (en) * | 1994-10-24 | 1998-02-03 | Open Market, Inc. | Network sales system |
US6181837B1 (en) | 1994-11-18 | 2001-01-30 | The Chase Manhattan Bank, N.A. | Electronic check image storage and retrieval system |
US5857079A (en) * | 1994-12-23 | 1999-01-05 | Lucent Technologies Inc. | Smart card for automatic financial records |
US5755770A (en) * | 1995-01-31 | 1998-05-26 | Boston Scientific Corporatiion | Endovascular aortic graft |
US6058378A (en) * | 1995-02-22 | 2000-05-02 | Citibank, N.A. | Electronic delivery system and method for integrating global financial services |
US5546452A (en) | 1995-03-02 | 1996-08-13 | Geotel Communications Corp. | Communications system using a central controller to control at least one network and agent system |
US5625767A (en) | 1995-03-13 | 1997-04-29 | Bartell; Brian | Method and system for two-dimensional visualization of an information taxonomy and of text documents based on topical content of the documents |
US5689100A (en) | 1995-03-21 | 1997-11-18 | Martiz, Inc. | Debit card system and method for implementing incentive award program |
US5727163A (en) * | 1995-03-30 | 1998-03-10 | Amazon.Com, Inc. | Secure method for communicating credit card data when placing an order on a non-secure network |
US5715399A (en) * | 1995-03-30 | 1998-02-03 | Amazon.Com, Inc. | Secure method and system for communicating a list of credit card numbers over a non-secure network |
US5590197A (en) | 1995-04-04 | 1996-12-31 | V-One Corporation | Electronic payment system and method |
US5677955A (en) | 1995-04-07 | 1997-10-14 | Financial Services Technology Consortium | Electronic funds transfer instruments |
US5734838A (en) * | 1995-05-04 | 1998-03-31 | American Savings Bank, F.A. | Database computer architecture for managing an incentive award program and checking float of funds at time of purchase |
US5675637A (en) | 1995-05-16 | 1997-10-07 | Inventions, Inc. | Method for automatically obtaining and presenting data from multiple data sources |
US5682524A (en) | 1995-05-26 | 1997-10-28 | Starfish Software, Inc. | Databank system with methods for efficiently storing non-uniform data records |
US5657383A (en) | 1995-06-06 | 1997-08-12 | Lucent Technologies Inc. | Flexible customer controlled telecommunications handling |
US6026429A (en) * | 1995-06-07 | 2000-02-15 | America Online, Inc. | Seamless integration of internet resources |
US5664115A (en) | 1995-06-07 | 1997-09-02 | Fraser; Richard | Interactive computer system to match buyers and sellers of real estate, businesses and other property using the internet |
US5692132A (en) | 1995-06-07 | 1997-11-25 | Mastercard International, Inc. | System and method for conducting cashless transactions on a computer network |
US5710886A (en) * | 1995-06-16 | 1998-01-20 | Sellectsoft, L.C. | Electric couponing method and apparatus |
US5703344A (en) | 1995-06-30 | 1997-12-30 | Visa International Service Association | Electronic funds confirmation at point of transaction |
US5871398A (en) * | 1995-06-30 | 1999-02-16 | Walker Asset Management Limited Partnership | Off-line remote system for lotteries and games of skill |
US5659165A (en) | 1995-07-24 | 1997-08-19 | Citibank. N.A. | Customer-directed, automated process for transferring funds between accounts via a communications network |
US5870725A (en) * | 1995-08-11 | 1999-02-09 | Wachovia Corporation | High volume financial image media creation and display system and method |
US5710887A (en) * | 1995-08-29 | 1998-01-20 | Broadvision | Computer system and method for electronic commerce |
US5721914A (en) * | 1995-09-14 | 1998-02-24 | Mci Corporation | System and method for hierarchical data distribution |
US5884032A (en) * | 1995-09-25 | 1999-03-16 | The New Brunswick Telephone Company, Limited | System for coordinating communications via customer contact channel changing system using call centre for setting up the call between customer and an available help agent |
US5715450A (en) * | 1995-09-27 | 1998-02-03 | Siebel Systems, Inc. | Method of selecting and presenting data from a database using a query language to a user of a computer system |
US5699528A (en) | 1995-10-31 | 1997-12-16 | Mastercard International, Inc. | System and method for bill delivery and payment over a communications network |
US5715402A (en) * | 1995-11-09 | 1998-02-03 | Spot Metals Online | Method and system for matching sellers and buyers of spot metals |
DE69635264T2 (en) * | 1995-12-08 | 2006-07-20 | Nippon Telegraph And Telephone Corp. | Method and apparatus for communication with packet encryption |
US5671285A (en) | 1995-12-13 | 1997-09-23 | Newman; Bruce D. | Secure communication system |
US5870718A (en) * | 1996-02-26 | 1999-02-09 | Spector; Donald | Computer-printer terminal for producing composite greeting and gift certificate card |
US5873096A (en) * | 1997-10-08 | 1999-02-16 | Siebel Systems, Inc. | Method of maintaining a network of partially replicated database system |
US5842196A (en) * | 1996-04-03 | 1998-11-24 | Sybase, Inc. | Database system with improved methods for updating records |
US6014645A (en) * | 1996-04-19 | 2000-01-11 | Block Financial Corporation | Real-time financial card application system |
US6032147A (en) * | 1996-04-24 | 2000-02-29 | Linguateq, Inc. | Method and apparatus for rationalizing different data formats in a data management system |
US5768528A (en) * | 1996-05-24 | 1998-06-16 | V-Cast, Inc. | Client-server system for delivery of online information |
US6014638A (en) * | 1996-05-29 | 2000-01-11 | America Online, Inc. | System for customizing computer displays in accordance with user preferences |
US5889863A (en) * | 1996-06-17 | 1999-03-30 | Verifone, Inc. | System, method and article of manufacture for remote virtual point of sale processing utilizing a multichannel, extensible, flexible architecture |
US6006227A (en) * | 1996-06-28 | 1999-12-21 | Yale University | Document stream operating system |
US6052710A (en) * | 1996-06-28 | 2000-04-18 | Microsoft Corporation | System and method for making function calls over a distributed network |
US5884288A (en) * | 1996-07-01 | 1999-03-16 | Sun Microsystems, Inc. | Method and system for electronic bill payment |
US5862223A (en) * | 1996-07-24 | 1999-01-19 | Walker Asset Management Limited Partnership | Method and apparatus for a cryptographically-assisted commercial network system designed to facilitate and support expert-based commerce |
US5884270A (en) * | 1996-09-06 | 1999-03-16 | Walker Asset Management Limited Partnership | Method and system for facilitating an employment search incorporating user-controlled anonymous communications |
US5884272A (en) * | 1996-09-06 | 1999-03-16 | Walker Asset Management Limited Partnership | Method and system for establishing and maintaining user-controlled anonymous communications |
US6189029B1 (en) * | 1996-09-20 | 2001-02-13 | Silicon Graphics, Inc. | Web survey tool builder and result compiler |
US6061503A (en) * | 1996-11-06 | 2000-05-09 | Zenith Electronics Corporation | Method for resolving conflicts among time-based data |
US5884274A (en) * | 1996-11-15 | 1999-03-16 | Walker Asset Management Limited Partnership | System and method for generating and executing insurance policies for foreign exchange losses |
US5995965A (en) * | 1996-11-18 | 1999-11-30 | Humetrix, Inc. | System and method for remotely accessing user data records |
US6012088A (en) * | 1996-12-10 | 2000-01-04 | International Business Machines Corporation | Automatic configuration for internet access device |
US6014641A (en) * | 1996-12-11 | 2000-01-11 | Walker Asset Management Limited Partnership | Method and apparatus for providing open-ended subscriptions to commodity items normally available only through term-based subscriptions |
US6012983A (en) * | 1996-12-30 | 2000-01-11 | Walker Asset Management Limited Partnership | Automated play gaming device |
US6182225B1 (en) * | 1997-02-03 | 2001-01-30 | Canon Kabushiki Kaisha | Network data base control device and method thereof |
US5864830A (en) * | 1997-02-13 | 1999-01-26 | Armetta; David | Data processing method of configuring and monitoring a satellite spending card linked to a host credit card |
US6064987A (en) * | 1997-03-21 | 2000-05-16 | Walker Digital, Llc | Method and apparatus for providing and processing installment plans at a terminal |
US6010404A (en) * | 1997-04-03 | 2000-01-04 | Walker Asset Management Limited Partnership | Method and apparatus for using a player input code to affect a gambling outcome |
US6014439A (en) * | 1997-04-08 | 2000-01-11 | Walker Asset Management Limited Partnership | Method and apparatus for entertaining callers in a queue |
US6014636A (en) * | 1997-05-06 | 2000-01-11 | Lucent Technologies Inc. | Point of sale method and system |
US6061686A (en) * | 1997-06-26 | 2000-05-09 | Digital Equipment Corporation | Updating a copy of a remote document stored in a local computer system |
US6032150A (en) * | 1997-08-25 | 2000-02-29 | Planetweb, Inc. | Secure graphical objects in web documents with a program applet placed to present further information upon selected conditions |
US6018718A (en) * | 1997-08-28 | 2000-01-25 | Walker Asset Management Limited Partnership | Method and system for processing customized reward offers |
US5883810A (en) * | 1997-09-24 | 1999-03-16 | Microsoft Corporation | Electronic online commerce card with transactionproxy number for online transactions |
US6018714A (en) * | 1997-11-08 | 2000-01-25 | Ip Value, Llc | Method of protecting against a change in value of intellectual property, and product providing such protection |
US6016494A (en) * | 1997-11-21 | 2000-01-18 | International Business Machines Corporation | Expanding web documents by merging with linked documents |
US6014635A (en) * | 1997-12-08 | 2000-01-11 | Shc Direct, Inc. | System and method for providing a discount credit transaction network |
US6038552A (en) * | 1997-12-10 | 2000-03-14 | The Chase Manhattan Bank | Method and apparatus to process combined credit and debit card transactions |
US6038547A (en) * | 1998-01-07 | 2000-03-14 | Casto; Robin L. | Construction tracking and payment method and system |
US6170011B1 (en) * | 1998-09-11 | 2001-01-02 | Genesys Telecommunications Laboratories, Inc. | Method and apparatus for determining and initiating interaction directionality within a multimedia communication center |
US6178511B1 (en) * | 1998-04-30 | 2001-01-23 | International Business Machines Corporation | Coordinating user target logons in a single sign-on (SSO) environment |
US6182142B1 (en) * | 1998-07-10 | 2001-01-30 | Encommerce, Inc. | Distributed access management of information resources |
US6343279B1 (en) * | 1998-08-26 | 2002-01-29 | American Management Systems, Inc. | System integrating credit card transactions into a financial management system |
US6607136B1 (en) * | 1998-09-16 | 2003-08-19 | Beepcard Inc. | Physical presence digital authentication system |
US6574675B1 (en) * | 1998-09-25 | 2003-06-03 | Netscape Communications Corporation | Simple workflow access protocol |
US6502135B1 (en) * | 1998-10-30 | 2002-12-31 | Science Applications International Corporation | Agile network protocol for secure communications with assured system availability |
US6032134A (en) * | 1998-11-18 | 2000-02-29 | Weissman; Steven I. | Credit card billing system for identifying expenditures on a credit card account |
US6202005B1 (en) * | 1999-02-05 | 2001-03-13 | First Data Corporation | System for selectively printing messages and adding inserts to merchant statements |
US6510523B1 (en) * | 1999-02-22 | 2003-01-21 | Sun Microsystems Inc. | Method and system for providing limited access privileges with an untrusted terminal |
US6349336B1 (en) * | 1999-04-26 | 2002-02-19 | Hewlett-Packard Company | Agent/proxy connection control across a firewall |
US6345261B1 (en) * | 1999-09-21 | 2002-02-05 | Stockback Holdings, Inc. | Customer loyalty investment program |
US6687222B1 (en) * | 1999-07-02 | 2004-02-03 | Cisco Technology, Inc. | Backup service managers for providing reliable network services in a distributed environment |
AU2001227908A1 (en) * | 2000-01-12 | 2001-07-24 | Coverdell And Company | Method and system for providing insurance policy incentive rewards |
US20020010668A1 (en) * | 2000-01-27 | 2002-01-24 | Travis Roger M. | Online merchandising and marketing system |
US6820088B1 (en) * | 2000-04-10 | 2004-11-16 | Research In Motion Limited | System and method for synchronizing data records between multiple databases |
US6805288B2 (en) * | 2000-05-15 | 2004-10-19 | Larry Routhenstein | Method for generating customer secure card numbers subject to use restrictions by an electronic card |
US6185242B1 (en) * | 2000-05-24 | 2001-02-06 | South Carolina Systems, Inc. | Integral side wall and tap hole cover for an eccentric bottom tap (EBT) electric furnace |
US20020007313A1 (en) * | 2000-07-12 | 2002-01-17 | Khanh Mai | Credit system |
JP2002032340A (en) * | 2000-07-14 | 2002-01-31 | Nec Corp | System and method for single sign-on web site and recording medium |
CN1388946A (en) * | 2000-07-19 | 2003-01-01 | 金榮浣 | System and method for cardless secure credit transaction processing |
US20020019938A1 (en) * | 2000-08-04 | 2002-02-14 | Aarons Michael Thomas | Method and apparatus for secure identification for networked environments |
US6856970B1 (en) * | 2000-09-26 | 2005-02-15 | Bottomline Technologies | Electronic financial transaction system |
US20030018915A1 (en) * | 2001-07-19 | 2003-01-23 | Louis Stoll | Method and system for user authentication and authorization of services |
GB2378010A (en) * | 2001-07-27 | 2003-01-29 | Hewlett Packard Co | Mulit-Domain authorisation and authentication |
US6748211B1 (en) * | 2002-05-22 | 2004-06-08 | Motorola, Inc. | Device and method for transmitting a message from a client device to a service center |
-
2001
- 2001-09-19 US US09/956,287 patent/US7246263B2/en not_active Expired - Lifetime
- 2001-09-20 WO PCT/US2001/029581 patent/WO2002025854A2/en active Application Filing
- 2001-09-20 AU AU9118001A patent/AU9118001A/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2002025854A3 (en) | 2002-07-04 |
US20020062373A1 (en) | 2002-05-23 |
WO2002025854A2 (en) | 2002-03-28 |
US7246263B2 (en) | 2007-07-17 |
AU9118001A (en) | 2002-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7246263B2 (en) | System and method for portal infrastructure tracking | |
US9092448B2 (en) | System and method for portal infrastructure tracking | |
US9916355B2 (en) | System and methods for enabling arbitrary developer code consumption of web-based data | |
US8452925B2 (en) | System, method and computer program product for automatically updating content in a cache | |
US7640492B2 (en) | Methods and apparatus for parsing extensible markup language (XML) data streams | |
US6385642B1 (en) | Internet web server cache storage and session management system | |
US7647404B2 (en) | Method of authentication processing during a single sign on transaction via a content transform proxy service | |
US7487168B2 (en) | System and method for loading hierarchical data into relational database systems | |
US6954778B2 (en) | System and method for accessing directory service via an HTTP URL | |
CA2750479C (en) | Communicating with data storage systems | |
US20080071922A1 (en) | Methods, systems, and computer program products to transparently dispatch requests to remote resources in a multiple application server environment | |
US20100281136A1 (en) | Methods and systems for preparing extensible markup language (xml) documents and for responding to xml requests | |
US20030120464A1 (en) | Test system for testing dynamic information returned by a web server | |
US20040006651A1 (en) | Type extensions to web services description language | |
US20110099185A1 (en) | System for Querying and Consuming Web-Based Data and Associated Methods | |
US9529911B2 (en) | Building of a web corpus with the help of a reference web crawl | |
US6557040B1 (en) | Providing for the omission of root information from depth-related requests according to standard request/response protocols | |
US7502999B1 (en) | Automatically exposing command line interface commands as web services | |
US20060031479A1 (en) | Methods and apparatus for configuration, state preservation and testing of web page-embedded programs | |
EP3502925B1 (en) | Computer system and method for extracting dynamic content from websites | |
US20080222107A1 (en) | Method for Multiplexing Search Result Transmission in a Multi-Tier Architecture | |
US20040205764A1 (en) | System and method for providing information regarding server traffic | |
Meerwald-Stadler | Python and WWW We interrupt this program to annoy you and make things generally irritating | |
CU et al. | Analysis of Web Server log by web usage mining for extracting users patterns | |
Pages | Ruby and the Internet |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AU CA CN JP KR MX |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR |
|
AK | Designated states |
Kind code of ref document: A3 Designated state(s): AU CA CN JP KR MX |
|
AL | Designated countries for regional patents |
Kind code of ref document: A3 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
122 | Ep: pct application non-entry in european phase | ||
COP | Corrected version of pamphlet |
Free format text: PAGES 1/3-3/3, DRAWINGS, REPLACED BY NEW PAGES 1/3-3/3; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE |
|
NENP | Non-entry into the national phase |
Ref country code: JP |