Patent ID: 12216989

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Reference will now be made in detail to specific embodiments of the present invention. Examples of these embodiments are illustrated in the accompanying drawings. Numerous specific details are set forth in order to provide a thorough understanding of the present invention. While the embodiments will be described in conjunction with the drawings, it will be understood that the following description is not intended to limit the present invention to any one embodiment. On the contrary, the following description is intended to cover alternatives, modifications, and equivalents as may be included within the spirit and scope of the appended claims. Numerous specific details are set forth in order to provide a thorough understanding of the present invention.

The preferred embodiments of the present invention relate to a system and a method for tracking data located at a public database or a private database, retrieving tracked data, compiling the tracked data into a user-accessible form, and sending such a user-accessible form to subscribers. According to the preferred embodiments, the system and method tracks selected data periodically based on inputs of the subscribers and the tracked selected data includes image data and content data. The tracking and retrieving processes may be executed at a pre-determined time of a day or any pre-determined times of a week or so on. The user-accessible form is a general term that includes a table, a spreadsheet, a word document, a PDF file, or a video clip. The user-accessible form may be sent to subscribers or users via an email or a mobile text. The public database may be any database accessible by the public and the data stored in the database is frequently updated. One example of the public database is a database of the US Patent and Trademark Office (USPTO) which stores patent and trademark information. The private database may be a database associated with the subscribers or users and can only be accessed by authorized personnel.

FIG.1is a schematic diagram of a data management system100for tracking data and compiling tracked data into a user-accessible form in accordance with the disclosed embodiments. As illustrated, management system100includes a tracking device110, a third party system120including remote database122to be tracked by tracking device110, and a web server130connecting to a plurality of user devices131for receiving messages105from tracking device110and distributing the messages to at least one of the plurality of user devices131. In a disclosed embodiment, as an example, third party system120includes a USPTO website and database122to be tracked as a public database supported by USPTO. Data stored in database122is frequently updated to contain new files and new status of existing content data. Database122may be a remote database as it is outside tracking device110. Database122also may be referred to as a third party database or public database as the information within the database is available to the public.

Tracking device110includes a tracker112for tracking selected data stored in public database122. The selected data may be from a public source, which includes large amounts of data, such as greater than 1 gigabyte in a zip format. For example, tracker112tracks data relating to trademark applications/registered trademarks including trademark statuses and document retrieval data124and image data126of the trademarks. Tracker112may also track data regarding patent applications/patents. The tracked data may include data of statuses of the trademark and patent applications, such as filing dates, publication dates, issued dates of office actions, allowance dates, marked images, issue dates, and so on. The data may include text data and image data. The image data is not of a consistent format. Tracker112is disclosed in greater detail below byFIG.5.

Tracking device110may be a computing device located at a virtual dedicated server, that tracks data stored in database122using Java or PHP software, or appropriate software that is designed to run on any hardware and can be ported to, for example a Unix/Linux operating system and the database can be migrated to MS SQL Server/Oracle with minimal effort. As noted, tracking device110may be hosted by a virtual dedicated server to provide an Infrastructure as a Service (IaaS) platform that allows users or companies to provision an isolated server over data management system100. Tracking device110may be provided to one entity for performing the operations disclosed below and may not be shared with other customers.

According to the disclosed embodiments, tracking device110further includes a tracker database113for storing data that is tracked and retrieved by tracker112. Once the data is tracked and retrieved by tracker112, tracker112compiles the tracked data into user-accessible form stored in tracker database113or a separate database. The user-accessible form may be a pre-set form or customer-designed form that includes information to be filled by the tracked data. The user-accessible form, after compiled, may be further loaded to an email or a cellular message105to be sent to web server130. Tracker database113may be located in a server separated from tracker112, such as MySQL server. Web server130may be an Apache server using PHP programming language that works with Apache to help create dynamic web content. Apache is a web server that processes requests and serves web assets and content via HTTP.

In the disclosed embodiments, web server130may be a server within a company or an organization and the plurality of client devices131are located within a domain of the web server130. The web server130may also be a remote server, such as a cloud-based server, that can track data and distribute the tracked data through a network to a processor located in the domain of a company or organization for compiling into a user-accessible form. The user-accessible form may be stored in a database associated with the company or the organization. According to the disclosed embodiments, the email or cellular message105containing the compiled form may be sent to the web server130. The web server130distributes the messages to the plurality of client devices131periodically or on scheduled time. In alternative disclosed embodiments, each of the plurality of client devices131may have a unique identification (ID) associated to a subscriber/user. The email or cellular message is sent to the client devices131in an html standard and may include a destination code associated with one or more user's IDs. Web server130then distributes the received message to appropriate user devices based on the destination code of the messages.

In addition to tracking the selected data stored in database122, tracking device110may also track data stored in a private database132associated with the web server130. The data may include docket information of cases the subscriber user is working on, email communications between the subscribe user and his/her client regarding to the cases, the subscriber user's work calendar, and the like. According to the disclosed embodiments, both the tracked data from public database122and private database132may be saved in tracker database113. Also, tracking device110may compile both the tracked data into the user-accessible form.

FIG.1only shows one web server130that receives the messages with user-accessible forms from tracking device110. It is noted that there may be a plurality of web servers and domains within data management system100. Tracking device110may track selected data based on requirements received from different web servers and compile different user-accessible forms in the same manner as described above with reference toFIG.1.

The plurality of client devices131may be one or more computing devices capable of receiving user input as well as transmitting or receiving data within data management system100. In some embodiments, a client device131is a conventional computer system, such as a desktop or laptop computer. Alternatively, a client device131may be a device having computer functionality, such as a personal digital assistant (PDA), a mobile telephone or tablet, a smartphone, and the like. A client device131is configured to communicate via data management system100. In some embodiments, a client device131executes an application allowing a user of the client device to interact with tracking device110.

For example, a client device131executes a browser application to enable interaction between the client device131and tracking device110via data management system100. In another embodiment, client device131interacts with tracking device110through an application programming interface (API) running on a native operating system of the client device.

The plurality of client devices131are configured to communicate via data management system100, which may include any combination of local area or wide area networks, using both wired or wireless communication systems. In some embodiments, data management system100used standard communication techniques or protocols. For example, data management system100includes communication links using technologies such as Ethernet, 802.11, worldwide interoperability for microwave access (WiMAX), 3G, 4G, 5G, 6G, code division multiple access (CDMA), digital subscriber lines (DSL), and the like. Examples of networking protocols used for communicating via data management system100include multiprotocol label switching (MPLS), transmission control protocol/Internet protocol (TCP/IP), hypertext transport protocol (HTTP), simple mail transfer protocol (SMTP), and file transfer protocol (FTP). Data exchanged over data management system100may be represented using any suitable format, such as hypertext markup language (HTML) or extensible markup language (XML). In some embodiments, all or some of the communication links of data management system100may be encrypted using any suitable technique or techniques.

Third party system120may be coupled to data management system100for communicating with tracking device110. In some embodiments, third party system120is an application provider to provide data or content for presentation via a client device131. Third party system120also may communicate information to tracking device110, as disclosed above. Tracking device110uses the data from third party system120, specifically from database122, to populate tracking database113after processing operations are completed on the received data.

FIG.2is a schematic block diagram of tracking device110according to the disclosed embodiments. Tracking device110includes a processor206that executes instructions208stored in memory210. Instructions208configure processor206to execute the functions and process disclosed below. For example, instructions208may configure processor206to launch tracker110, parse unit114, compile unit116, and output unit118as well as retrieve data and information from tracker database113. Data and instructions to the various components within tracking device110may be communicated along communication bus212.

In addition to tracker112as illustrated inFIG.1, tracking device110further includes a parse unit114, a compile unit116and an output unit118. Tracker112connects and tracks data stored in a database, such as databases122and132, as shown inFIG.1. Tracker110may download publicly available data via API202. Tracker112may call to database122at a set time every day, week, and the like. Alternatively, tracker112may use API202to download retrieved data204when requested by tracking device110. Tracking device110may receive an instruction through data management system100from a client device131to download retrieved data204.

Retrieved data204may be a file that includes a summary update of all active matters in database122. For example, the active matters may be trademark application matters that change frequently. Data, or files, associated with the matters are updated. Retrieved data204may be a large data file, larger than 2 gigabytes, uncompressed. In some embodiments, retrieved data204may be an XML file.

Parse unit114receives tracked data from tracker112and parses the tracked data to be sent to compile unit116. The disclosed embodiments parse through the XML file of retrieved data204and extracts updates216that are pertinent to entries within tracker database113. These updates216are recorded into tracker database113.

Compile unit116then compiles the tracked data, shown as retrieved data204, into a user-accessible form by filling data required by the user-accessible form. To automatically fill out the required data of the user-accessible form, parse unit114may embed metadata in each of the tracked data that would direct the tracked data to their destinations on the user-accessible form.

After the user-accessible form is fulfilled, compile unit116compiles the form into an email or a cellular message105. Next, output unit118sends out the email or cellular message105to client devices131. In an alternative embodiment, the fulfilled user-accessible form is sent to output unit118from compile unit116. Output unit118then uploads the user-accessible form to an email or a cellular message105and sends the email or cellular message to subscribed users via data management system100.

According to the preferred embodiments, tracking device110may perform tracking and compiling procedures at a pre-determined time every day or every several days, depending on the users' requirements which is not limited hereto. The email may be sent to the users by a HTML as an example.

FIG.3is a flow chart300illustrating a method for tracking data and compiling tracked data into a user-accessible form according to the preferred embodiments.FIG.4illustrates a tracking data flow diagram400according to the preferred embodiments.FIGS.3and4will be described together to better explain the disclosed invention. InFIG.4, the database to be tracked is a database located in the website for illustrative purpose only. A trademark, or USPTO, database or databases may be referenced as these components are examples of databases having files or data and image data. Please note that the database that can be tracked by method300is not limited to a patent or trademark database.

InFIG.3, step302executes by connecting a tracking device such as device110ofFIG.1to a designated database. Step304executes by tracking selected data stored in the designated database, such as databases122and132ofFIG.1. The selected data is determined based on inputs chosen by users and may be different for different users.

FIG.4shows that in tracking step304, the method300may use a tracker web application402to track the selected data, or application data422. Application data422may be data provided by user412regarding their account or pending matter within databases404and406. Tracker web application402may track either trademark case data (for example) TSDR414stored in database404or image data416stored in image database406, or both.

Back toFIG.3, while the method continues tracking selected data from database404and image database406, step306executes by retrieving tracked selected data at a scheduled time and step308executes by sending the retrieved data to the tracker database, such as database113ofFIG.4. The retrieved data may include one of the case data and the image data or both. The case data418may be sent to tracker database113in an XML standard, as shown inFIG.4. The retrieved data also may include web data424provided by the tracker web application402.

After the tracked data is sent to the tracker database113, step310executes by compiling the retrieved tracked data to a user-accessible form421which is stored in the tracker database113. Next, step312uploads the user-accessible form421compiled at step310to an email or a cellular message420, and step314executes by sending the email or cellular message (step410ofFIG.4) to subscribed users (user412ofFIG.4.)

The email or cellular message420may be sent to users immediately after step312or on a second scheduled time. For example, the method300may retrieve and process the tracked data at midnight but does not send the uploaded email or cellular message to the subscribing users until 6 a.m. the same day. Alternatively, the method may retrieve and process the tracked data at midnight and send the uploaded email or cellular message to the subscribed users immediately after the email or cellular message is uploaded with the user-accessible form. Further, the email may be sent to the user412in the HTML standard.

After receiving the email, user412may download the compiled user-accessible form421and is able to review the information contained in the form. The user-accessible form421may be a docketing form used in most companies, such as law firms, accounting firms, merchandise selling department, and so on.

Further, the user-accessible form421may include a calendar section that when chosen, will show a weekly or monthly calendar of the user's schedules. A report section may be also included in the form which may list statistic information of cases prosecuted in the firm. The user-accessible form may further include administrator command section that lists the names and comments of the administrator.

FIG.5depicts a block diagram of a tracker database113having a unique configuration for use with a tracker application402of tracker112according to the disclosed embodiments. Tracker database113is configured uniquely in that a data model is logically designed specifically for use by tracker application402of tracker112. The tables and relationships therebetween are configured for maximum efficiency of tracker application402.

As disclosed above, tracking device110includes tracker112and tracker database113. Tracker112may include tracker application402, which may be a web-based application to interface with tracker database113and a downloaded XML file509. XML file509may correspond to XML case data418inFIG.4. Tracker application402may use data model502configured within tracker database113to obtain the appropriate data to be provided as case data512back to tracker database113. Essentially, tracker application402uses update data510provided in XML file509to populate the data model for entries within tracker database113.

As shown in tracker database113, data model502includes tables and relationships specifically configured to let tracker application402what to retrieve from XML file509. For example, data model502may include first table504, second table506, up to Nth table508. Data model502may include many different tables, all having relationships507. Relationships507may allow different tables to update based on a change in another table. For example, if first table504is modified by case data512retrieved by tracker application402, then second table506is updated accordingly using relationships507.

Thus, data model502allows tracker application402of tracker112to identify and retrieve the data within updates510of XML file509that is important to tracker database113. In turn, this data is important in what is reported to users412. Further, this data may be used for further operations, as disclosed below.

FIG.6depicts a block diagram of retrieving changed data from third party databases based on updated data in an XML file according to the disclosed embodiments. The features disclosed byFIG.6may be applicable to the embodiments disclosed byFIGS.1-5but also may include new features or embodiments.

At a specified time, tracker device110will reach and download XML file509from a third party database. In some embodiments, tracker device110will send an update request690to the remote server having the databases. As shown inFIG.6, database404and image database406may be third party databases having information publicly available from download. XML file509is a large file, up to 1 gigabyte or more. The disclosed embodiments ingest XML file509and import case updates within the file into tracker database113. After unzipping and parsing through XML file509, tracker112proceeds to download individual case bundle files from the third party databases, sometimes over 2000 files are downloaded.

These bundle files may include images in various formats, such as .jpg, .jpeg, .png, .bmp, .gif, and the like. They also contain individual case XML files that contain auxiliary status updates for each case. Auxiliary updates may include such data as point of contact/attorney of record, classification numbers, serial numbers, and the like. This XML file also may be in various formats. Tracker110handles the various different file formats both for images and for XML data.

This feature allows trackers to identify and update a large number of files within a database without unwieldy comparison operations or parsing through unusually large files. It also allows a third party, publicly available database to be queried and bundle files retrieved within unduly limiting access to the database. In other words, retrieval of a large number of files from the databases may not be considered a denial of service attack on the database and allows for other database operations to occur. The disclosed embodiments limit the resources needed to fulfill the update operations for the entries within a database. Finally, as the changed files are received, the disclosed embodiments send updates to users about the updated files of interest.

Tracker application402of tracker112imports entries from entries in tracker database113. Each entry may correspond to a data model502, disclosed above. As shown inFIG.6, tracker database113includes first entry602, second entry604, up to Nth entry606. There may be thousands of entries in tracker database113. Entries may pertain to a particular client or matter, such as a pending trademark application, within the third party databases. These entries are provided to tracker application402.

XML file509having updates510is accessed by tracker application402of tracker112. XML file509may be provided to the public from databases404and406. It may be provided or accessed at a specific time by tracker application402. Tracker112may parse XML file509based on the entries within tracker database113. Thus, tracker application402may query updates510using the entries. First query608may be sent for first entry602. Second query610may be sent for second entry604. Nth query612may be sent for Nth entry606.

If update510includes data corresponding to the entry sending the query, then an acknowledgement may be provided to tracker application402that an update related to the entry occurred. Thus, tracker application402determines that first application614corresponding to first entry602is within updates510by first acknowledgement620. Second application616corresponding to second entry604is within updates510as shown by second acknowledgement622. Nth application618corresponding to Nth entry606also is within updates510as shown by Nth acknowledgement624.

Not every entry within tracker database113will have a corresponding application within updates510. For example, if no update occurred for second application616, then it will not be included in updates510. Second query610will not return any acknowledgement so that tracker application402will not take any further action to update second entry604within tracker database113. Tracker application402may parse through updates510and identify all entries within tracker database113that have updates to their application files.

The disclosed embodiments then implement operations to retrieve bundle files from database404and image database406. As opposed to just notifying a user that their application is updated, the disclosed embodiments also populate the tables and relationships with the updated information as well as provide the entirety of the updated information to the users. All of this is done automatically using tracker112and tracker database113.

For each entry identified by tracker application402, a request is sent to database404and image database406to retrieve individual bundle files corresponding to the identified entries. Thus, first entry602of tracker database113is acknowledged as being updated by first application614using tracker application402of tracker112. Tracker application402generates first request626, which is received by database404and image database406. First request626is a call for the changed file corresponding to first application614within databases404and406. The call requests that the databases provide the file data and images as first bundle file636to tracker database113. First request may include an API key627to obtain the bundle file from the databases.

According to the disclosed embodiments, bundle files may contain mark images in various formats, such as .jpg, .jpeg, .png, .bmp, .gif, and the like. They also contain individual case XML files that include auxiliary status updates for each case, or application. Auxiliary updates include data such as point of contact (such as the attorney of record), classification information, serial numbers, or other data not directly related to the image data.

For example, the image data may show a trademark as a .jpeg photograph. The trademark is the basis for the application within databases404and406, and an entry in tracker database113. The bundle file will include one or more images provided to image database406as part of the trademark application. It also will include the auxiliary information disclosed above, in the XML file. The XML file also may include various formats. Tracker112handles the various different file formats both for mark images and XML data.

Second request628may generated for second entry604that includes updated information corresponding to second application616. Second request628also includes API key629. In some embodiments, API key627may differ from API key629to distinguish the information for the different bundle files. Each entry acknowledged as being changed by updates510will trigger a request to database404and image database406, up to Nth request630being generated for Nth entry606, as being updated by Nth application618. Nth request630also may include its own API key.

Although first request626, second request628, and Nth request630are shown, the disclosed embodiments parse and process over two thousand bundle files to download. This feature results in possibly two thousand requests being received at database404and image database406. Such a large number of requests may appear to be a denial of service attack, or may simply overtax the processing capabilities of the databases.

Referring back toFIG.1, third party system120may include database404and image database406, similar to remote database122having document retrieval data124and image retrieval126. Third party system120may place a limit on data request throughput. If requests are received all at once, or too quickly, then third party system120may shut down the receipt of further requests. Tracker application402and tracker device110do not want this action to occur so as to get out updates in a timely manner.

The disclosed embodiments, therefore, enable a delay between requests. In some embodiments, this delay is 5-6 milliseconds. The delay makes the number of requests arrive in a reasonable manner Third party system120is not overwhelmed. Database404and image database406can process the requests to compile the bundle files in a reasonable manner. As shown inFIG.6, a first delay632is placed between first request626and second request628. These delays may be placed between subsequent requests up the Nth request630. For example, second delay634may be placed between second request628, as the next to last request, and Nth request630.

First request626, second request628, and Nth request630may be separate API requests to database404and image database406. Tracker application402may provide a key for the API request. The key may correspond to a power of attorney, or other authorization, to allow access to database404and image database406on behalf of the owner of the mark in the entry in tracker database113. In other words, tracker application and tracker112provide an authorization with the request to get access to the updated records within the databases.

As a result of the requests, bundle files are generated and provided to tracker database113. First bundle file636is generated in response to first request626. Second bundle file638is generated in response to second request628. Nth bundle file640is generated in response to Nth request630. Tracker database113receives the bundle files and updates the corresponding entry to populate first table504, second table506, up to Nth table508based on relationships507for the data model in the entry. Thus, the image data and XML data of first bundle file636is used to update the tables or relationships of first entry602. The image data and XML data of second bundle file638is used to update the tables or relationships of second entry604. The image data and XML data of Nth bundle file640is used to update the tables or relationships of Nth entry606. Tracker database113includes logic to handle the image data and XML data received in the bundle files.

In some embodiments, third party system120may be down such that database404and image database406will not respond to requests for the bundle files for the identified entries. Requests will result in an error. In these situations, the disclosed embodiments will pause until database404and image database406are available. As requests are sent by tracker112with tracker application402, a pause may be implemented upon receipt of an error message from database404or image database406. Tracker device110may “go to sleep” for a bit until the databases are back online.

For example, if first request626returns an error, then tracker application402may pause for 10 minutes. After the pause is completed, tracker application402may resend first request626. This pause and resend operation may occur ten (10) times until an alert is provided by tracker database113to an operator or the users.

Tracking device110sends email reports420of status updates to the individual users. It also may create daily report files for tracker application402, which may be provided as a web application to users. Email reports420may include the updates to the entries in tracker database113. Email reports420may include different types of data and information pertaining to the file for that user.

FIG.7depicts a block diagram of first bundle file636updating first entry602in tracker database113according to the disclosed embodiments. First bundle file636may be generated in response to first request626for compiling data and information related to first application614. The embodiments disclosed inFIG.7also may apply to other bundle files received by tracker database113, such as second bundle file638and Nth bundle file640.

As disclosed above, first bundle file636include data from database404and image database406. From database404, XML data704may be provided. XML data704may be individual case XML files. XML data704includes auxiliary data708for first application614identified in updates510and within database404. Examples of auxiliary data are disclosed above. Auxiliary data708includes updates for first entry602within tracker database113. Updates may be shown as first data update710, which may be a point of contact or attorney of record for first application614. They also may include second data update712, which may be a classification number for first application614. Updates may go to Nth data update714, which may be a serial number or other information corresponding to first application614.

First bundle file636also includes image data706. Image data706may be one or more images corresponding to first application614stored in image database406. As disclosed above, the images may be in different formats and are not necessarily consistent between bundle files. Users of third party system120may store different types of images, videos, and the like in image database406. First image716and second image718are provided. First image716may be an image of a logo or mark. Second image718may be an image of the logo or mark in use, such as on a product. First image716may be a .png file while second image718may be a .jpeg file.

Tracker logic702may take XML data704and image data706of first bundle file636. Tracker logic702may identify what data needs to be updated within first entry602. It also may identify the image format types for adding or updating the images within first entry602. For example, tracker logic702may determine that first data update710belongs for data within first table504. Thus, first data update710may be used to update the corresponding data field in first table504. Second data update712may be used to update the corresponding data field in second table506. Nth data update714may be used to update the corresponding data field in Nth table508. Relationships507between the different tables also may be update or used to update other tables based on the relationships.

Not every table is updated within first entry602as not every update to first application614includes updates to everything. Tracker logic702ensures those fields that have updated data are modified. Further, relationships507enable the updates to modify tables in tracker database113that are impacted by update data. For example, second table506may have a relationship based on first table504. First data update710may not only modify the corresponding data field in first table504, but also a data field in second table506. Thus, the data field in second table506also is updated accordingly.

Tracker logic702also may identify the different images within image data706to update first entry602. First image716and second image718are used to update or replace images within first entry602. These updates of XML data704and image data706also are used to populate the emails or messages sent from tracker device110to the users, shown as email reports420. In some embodiments, only the updates are provided in the emails, such as first data update710, second data update712, Nth data update714, first image716, and second image718. In other embodiments, first entry602may be provided in email reports420. First entry602includes a table for the recipient's information for the email report of the recipient's applications.

FIG.8depicts a flowchart800for managing data to create a bundle file for updates to a case file according to the disclosed embodiments. Flowchart800may refer toFIGS.1-7for illustrative purposes. Flowchart800, however, is not limited by the embodiments disclosed inFIGS.1-7.

Step802executes by populating tracker112with entries from tracker database113. Tracker112may query tracker database113to provide those entries within the database that will pertain to updates requested from the remote server. For example, tracker database113may include a plurality types of entries to query different remote servers for updates between different sets of data. Tracker database113provides the entries for the specific call to a corresponding remote server. As shown inFIG.6, tracker application402of tracker112includes first entry602, second entry604, and Nth entry606, which are also found in tracker database113.

Step804executes by sending update request690from tracker112to remote server120, which includes database404and image database406. Update request690may include information related to what updates may be needed. Update request690may be sent at a specific time every day, such as 2 am, so that files may be downloaded when there is not much data traffic. Alternatively, update request690may be sent after an event occurs, such as a request from an operator to tracking device110.

Step806executes by downloading XML file509, which includes update file510. These features are disclosed above. XML file509may be downloaded to tracker device110. Alternatively, it may be downloaded into a data storage to be accessed by tracker112. Step808executes by parsing the case files that are of interest by tracker112from update file510. Case files may be shown as first application614, second application616, and Nth application618inFIG.6. Cases files may correspond to case files at the remote server in database404and image database406.

Step810executes by identifying the updated cases files due to the parsing of update file510. Tracker112may correspond the applications or case files to entries from tracker database113. As disclosed above, tracker112identifies those case files, or applications, that are within update file510that corresponds to entries within tracker database113. Thus, first entry602corresponds to first application614. A first acknowledgement620may be received by tracker112to indicate the updated case file. The same process may be performed for all the entries within tracker112. Not every entry will correspond to a case file, or application, within update file510.

Step812executes by generating a request for each entry having an updated case file, as identified above. For example, tracker112may generate first request626for first entry602identifying an update to its associated case file in the remote server via first application614. First request626may include an API key627. Step814executes by sending the request generated for the update to the remote server. In this instance, first request626may be sent to database404and image database406.

Tracker112may send requests individually and not all at once. Thus, step816executes by determining whether a further request needs to be generated for an entry within tracker112. If yes, then step818executes by implementing a delay within tracker112. This delay may be 5-6 milliseconds. The delay prevents requests with their associated API keys being received at once by the remote server. The delay also helps avoid shutdowns or measures taken against bots crawling the network compiling information. Flowchart800then returns to step812to generate another request, such as second request628, after the execution of first delay632.

If step816is no, or just from step814, then step820executes by compiling the bundle file associated with the API key of the request. For example, first bundle file636is compiled in response to first request626having API key629. This feature is disclosed in greater detail above. Step822executes by sending the bundle file to tracking device110. For example, first bundle file636is sent to tracking device110. The remaining bundle files for subsequent requests may be compiled and sent to tracking device110until all updated case files are accounted for.

FIG.9depicts a flowchart900for providing a message or email regarding the updated case file according to the disclosed embodiments. Flowchart900may refer toFIGS.1-8for illustrative purposes. Flowchart900, however, is not limited to the embodiments disclosed byFIGS.1-8.

Step902executes by receiving a bundle file, such as the bundle file created in flowchart800, at tracking device110. For example, tracker112may receive first bundle file636. Step904executes by unpacking the bundle file to determine one or more auxiliary files having data updates and one or more image files. Referring toFIG.7, first bundle file636may include XML data704and image data706. These components may include sub-components, namely first data update710, second data update712, and Nth data update714for XML data704and first image716and second image718for image data706. The disclosed embodiments may use tracker logic702to unpack these data instances and files.

Step906executes by determining one or more data updates with auxiliary data708. These updates should correspond to data within an entry within tracker database113. For example, first data update710, second data update712, and Nth data update correspond to data fields within tables of first entry602. Tracker logic702may determine that these updates are available for first entry602.

Step908executes by determining one or more image files within first bundle file636to be added to an entry within tracker database113. Using the above example, first image716and second image718may be associated with the case file corresponding to first entry602. The disclosed embodiments provide these images.

Step910executes by populating the corresponding entry within tracker database113with the information determined from the bundle file. For example, first entry602is updated with first data update710, second data update712, and Nth data update714, first image716, and second image718, as disclosed above. Tables may be updated with the data updates and based on the relationships between the tables.

Step912executes by generating an electronic form, such as user-accessible form421disclosed above. This form may include fields for data of interest to a user or operator. Form421may be configurable to include information from an entry within tracker database113. Some information may be left out of the form. For example, form421may be configured to include information regarding first table504and second table506, but not Nth table508. Step914executes by populating the electronic form with data from the updated entry within tracker database113. Using the above example, form421may include information regarding first data update710in first table504and second data update712in second table506along with first image716and second image718. Nth data update714may be left off form421due to the user configured format.

Step916executes by displaying the electronic form on a website or web-based platform. The user may log onto a platform to review the information provided in the form, including updated data and images. Alternatively, step918executes by generating email or message420having the electronic form including the information configured therein. The disclosed embodiments populate the form within email420for sending to a recipient. Step920executes by sending the message or email to the recipient. Thus, a recipient may receive automatic updates on case files within large amounts of data in timely manner without overburdening a remote server or the network.

The disclosed embodiments track selected data stored in at least one database, compile the tracked data in a preset user-accessible form, upload the complied user-accessible form to an email or a cellular message, and send the email or the cellular message to subscribe users at a predetermined time. The selected data may include statuses of cases that are stored in a public database, such as database122ofFIG.1, and the users are interested watching. The selected data may also include information saved in a private database, such as database132of web server130ofFIG.1, that is accessible by authorized personnel and is relative to the cases the users are watching. For example, the private database may store email contents regarding a specific case, information of persons who are assigned to this specific case, calendars of these persons, and docket information of this specific case, etc. The system of the disclosed embodiments compiles all the tracked data including those from the public and the private databases into the pre-set user-accessible form. The form is then sent to the users at a predetermined time.

At least one benefit of the disclosed embodiments is that the user-accessible form is compiled and updated by the tracking system at a first predetermined time of day and is sent to the users immediately or at a second predetermined time of day. Therefore, the users receive the form, which may be a work docket, at the same time of a day, for example, 6 a.m. Based on the content of the form, the users can easily plan on their work priorities so that they will not overlook due dates of the cases they are working on.

Moreover, the tracking device according to the disclosed embodiments may compile the preset user-accessible form based on each user's profile so that each user can receive a form containing information relative to himself/herself only.

As will be appreciated by one skilled in the art, the present invention may be embodied as a system, method or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer-usable program code embodied in the medium.

Any combination of one or more computer usable or computer readable medium(s) may be utilized. The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a transmission media such as those supporting the Internet or an intranet, or a magnetic storage device. Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory.

Computer program code for carrying out operations of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).

The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.

The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a,” “an” and “the” are intended to include plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specific the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.

Embodiments may be implemented as a computer process, a computing system or as an article of manufacture such as a computer program product of computer readable media. The computer program product may be a computer storage medium readable by a computing system and encoding a computer program instructions for executing a computer process. When accessed, the instructions cause a processor to enable other components to perform the functions disclosed above.

The corresponding structures, material, acts, and equivalents of all means or steps plus function elements in the claims below are intended to include any structure, material or act for performing the function in combination with other claimed elements are specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for embodiments with various modifications as are suited to the particular use contemplated.

One or more portions of the disclosed networks or systems may be distributed across one or more content management systems coupled to a network capable of exchanging information and data. Various functions and components of the content management system may be distributed across multiple client computer platforms, or configured to perform tasks as part of a distributed system. These components may be executable, intermediate or interpreted code that communicates over the network using a protocol. The components may have specified addresses or other designators to identify the components within the network.

It will be apparent to those skilled in the art that various modifications to the disclosed may be made without departing from the spirit or scope of the invention. Thus, it is intended that the present invention covers the modifications and variations disclosed above provided that these changes come within the scope of the claims and their equivalents.