US20120089706A1 - Mobile file uploader - Google Patents
Mobile file uploader Download PDFInfo
- Publication number
- US20120089706A1 US20120089706A1 US13/251,540 US201113251540A US2012089706A1 US 20120089706 A1 US20120089706 A1 US 20120089706A1 US 201113251540 A US201113251540 A US 201113251540A US 2012089706 A1 US2012089706 A1 US 2012089706A1
- Authority
- US
- United States
- Prior art keywords
- file
- browser
- server
- uploading
- upload
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/00127—Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
- H04N1/00204—Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server
- H04N1/00244—Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server with a server, e.g. an internet server
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/0035—User-machine interface; Control console
- H04N1/00405—Output means
- H04N1/00408—Display of information to the user, e.g. menus
- H04N1/00464—Display of information to the user, e.g. menus using browsers, i.e. interfaces based on mark-up languages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/00795—Reading arrangements
- H04N1/00798—Circuits or arrangements for the control thereof, e.g. using a programmed control device or according to a measured quantity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/00962—Input arrangements for operating instructions or parameters, e.g. updating internal software
- H04N1/00973—Input arrangements for operating instructions or parameters, e.g. updating internal software from a remote device, e.g. receiving via the internet instructions input to a computer terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N1/32101—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
- H04N1/32106—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title separate from the image data, e.g. in a different computer file
- H04N1/32122—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title separate from the image data, e.g. in a different computer file in a separate device, e.g. in a memory or on a display separate from image data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/44—Secrecy systems
- H04N1/448—Rendering the image unintelligible, e.g. scrambling
- H04N1/4486—Rendering the image unintelligible, e.g. scrambling using digital data encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/0008—Connection or combination of a still picture apparatus with another apparatus
- H04N2201/0034—Details of the connection, e.g. connector, interface
- H04N2201/0037—Topological details of the connection
- H04N2201/0039—Connection via a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/0077—Types of the still picture apparatus
- H04N2201/0081—Image reader
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N2201/3201—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
- H04N2201/3225—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document
Definitions
- the invention is related to field of document management systems, and in particular to a mobile document retrieval using a browser.
- next generation Internet is one based on portability, open standards, and mobile device support.
- the ability to provide full document management functionality in the absence of traditional client/server technology while supporting any web browser on any platform along with a wide range of mobile devices presents a number of unique challenges.
- a mobile file uploading system includes a browser that is coupled to the Internet and being executed on a user desktop.
- the browser receives a user request to upload one or more selective files, the browser issues a first message.
- a server receives the first message and determines whether the first message is requesting a download of a first software application, if so, the server downloads to the user desktop the first software application where the browser executes the first software application.
- a file upload module is created when the browser completely executes the first software application.
- the file upload module manages uploading the one or more selective files from the user desktop to the server when a second message is sent by the browser.
- the file upload module initiates communications with the server and also issues one or more file system calls to a file system on the user desktop to retrieve the one or more selective files for uploading to the server.
- the method includes providing a browser that is coupled to the Internet and being executed on a user desktop.
- the browser receives a user request to upload one or more selective files, the browser issues a first message.
- the method includes receiving the first message via a server and determining whether the first message is requesting a download of a first software application, if so, the server downloads to the user desktop the first software application where the browser executes the first software application.
- the method includes creating a file upload module when the browser completely executes the first software application.
- the file upload module manages uploading the one or more selective files from the user desktop to the server when a second message is sent by the browser.
- the file upload module initiates communications with the server and also issues one or more file system calls to a file system on the user desktop to retrieve the one or more selective files for uploading to the server.
- FIG. 1 is a schematic diagram illustrating the general framework of the invention
- FIG. 2 is a process flow illustrating the applet delivery used to initiate the file upload applet module used in accordance with the invention
- FIG. 3 is a process flow illustrating the steps performed by the file upload applet module to perform browser-based file uploading
- FIG. 4 is a process flow illustrating the steps performed by file upload applet module for the file uploading transmission process.
- FIG. 5 is a process flow illustrating the process 140 performed by the document capture server 20 ;
- the invention involves a mobile retrieval for retrieving documents from a server using a browser.
- the invention allows for robust access to documents utilizing an applet that executes within a framework of a browser.
- the execution of the applet allows a user full access to remote document repositories and metadata while allowing a user to use file system calls initiated locally to access documents remotely, while maintaining platform independence.
- the invention can be formed using any platform independent based computer language, such as Java.
- This computer language allows one to develop applet code that can execute when an internet browser makes a request for such a code to be downloaded from a server and be executed on a client-side computer system.
- the applet code or applet can execute regardless of the specific operating system being utilized by the client side computer system. Given the small size of an applet, it is desirable to use an applet conjunction with mobile platforms such as smartphones or the like having internet browsing capabilities.
- FIG. 1 is a schematic diagram illustrating the general framework 2 of the invention.
- the framework 2 includes a user desktop 4 that is executing on a client computer system having a specific operating system, such as Windows, Linux or the like, and a native file system configuration, such as NTFS. In other embodiments of invention, a plurality of user desktops can be used.
- a document capture server 20 that communicates with the user desktop 4 and manages the uploading of files between the user desktop 4 and remote repositories 28 , 30 .
- the user desktop 4 executes a browser that includes a web user interface 8 .
- the web user interface 8 When the browser 6 receives a file uploading request from a user the web user interface 8 initiate a call, the web user interface issues a request to deliver an applet to activate the file upload applet module 12 . Once the document capture server 20 sends the applet, the browser initiates execution of the applet which results in the activation of the file upload applet module 12 in the browser 6 . Afterwards, when a user requests to browse and upload one or more selective documents, the web interface 8 sends a message, such as a JavaScript Native Interface (JSNI), to the file upload applet module 12 . The file upload applet module 12 receives the JSNI message 10 and sends a message 18 to the document capture server 20 to prepare for the upload of one or more selective files.
- JSNI JavaScript Native Interface
- the file upload applet module 12 initiates file system calls to the user's file system using the browser 6 to retrieve the selective one or more documents for uploading, and uploads the one or more selective documents to a file upload handler module 22 executing on the document capture server 20 .
- the file upload handler module 22 can be a servlet application that executes on the document capture server 20 .
- the upload handler module 22 manages the handling of the one or more selective documents.
- the upload handler module 22 can temporarily store the one or more selective documents in the document capture server's memory for later use.
- the file upload handler module 22 makes assessments on how to best store the one or more selective documents on to one or more document repositories.
- the one or more document repositories can be a remote enterprise document repository 28 , but in other embodiments of the invention, there can be a plurality of remote enterprise document repositories or even one or more local repositories on the document capture server 20 .
- the file upload handler module 22 issues selective one or more file system calls 26 to the enterprise document repository 30 to store the one or more selective documents.
- the file upload handler module 22 also determines the fashion how metadata stored when the document manage system 2 is in a hibernate state.
- the file upload handler module 22 send a message 24 , to the metadata store 30 to upload metadata information for later retrieval.
- the document capture server 20 is a server that is connected to a network 32 as well the user desktop 4 . All communication between the user desktop 4 and document capture server 20 is done via the network 32 .
- Java applet The advantage of a Java applet is the ability to provide rich software functionality to web applications that cannot be provided by HTML alone.
- FIG. 2 is a process flow of the applet delivery used to initiate the file upload applet module 12 .
- the first step in delivering the upload applet 16 is to seat a web page with embedded logic that initiates the file upload applet download process activating the file upload applet module 12 , as shown in step 41 .
- the containing browser 6 receives a session nonce—a random number uniquely identifying the current session—to be used for all subsequent communication with the deploying server.
- the file upload applet 16 must be digitally signed.
- a digital signature on the applet 16 guarantees applet integrity along with point of origin and provides privileged access at the desktop; a requirement for interfacing with low level hardware devices such as local drives and network file servers. Applet downloading is far from automatic as several requirements need to be checked and verified prior to successful completion of the download process. For starters, the target platform must be checked against a list of supported platforms, as shown in step 43 .
- the next step is to verify the target browser and adjust the download process accordingly, as shown in step 44 .
- a ten (10) second delay is introduced during which time no communication is attempted between browser and applet, shown in step 45 .
- the last important validation step in the applet download process is to verify the existence of the appropriate Java Runtime Environment (JRE), shown in step 46 . If the minimum required JRE is present, the download process is allowed to continue to completion.
- JRE Java Runtime Environment
- step 47 the end user is prompted to download and install the proper JRE, shown in step 47 , and, if successful as shown in step 48 , the applet download is allowed to continue to completion, as shown in step 49 .
- a successful applet download confirmation is required prior to checking embedded end user permissions.
- applets function outside the browser's cookie space, applet communication is effectively outside the established security realm. As this is a less than optimal security structure, it is necessary to extend the federated security realm to include the applet, as shown in step 50 . By passing the cookie's session value explicitly from browser to applet during the applet delivery process, the applet is granted the same authentication as the browser 6 . Following the extension of the federated security realm to the applet 16 , it is necessary to verify that the applet download process completed successfully, as shown in step 51 . If any failures are detected at this point, all web-based functionalities are disabled.
- the applet 16 is free to function subject to established end user rights and permissions. Specifically, an end user's permission to upload documents should be a top level check prior to unlocking the capabilities of the file upload applet, as shown in step 52 . If an end user does not have permission to upload files, then an associated file upload button should be disabled, as shown in step 53 . Likewise, an associated file upload button should be enabled if file uploading rights exist, as shown in step 54 . Once an associated file upload button is either enabled or disabled, the applet initialization process is complete, as shown in step 55 .
- FIG. 3 is a process flow 75 illustrating the steps performed by the file upload applet module 12 to perform browser-based file uploading.
- the browser-based file uploading process cannot begin until the file uploading applet 16 is successfully downloaded and initialized.
- the applet delivery process as discussed for FIG. 2 , must be completed, as shown in step 76 .
- the file uploading process is initiated by end user interaction; typically in the form of an end user expanding the embedded local file system browsing window or un-hiding the local file system browsing window by selecting a menu or similar toolbar icon, as shown in step 77 .
- the embedded local file system browsing window is only available following successful download of the file uploading applet module 12 .
- the web user interface 8 or browser 6 issues a JavaScript Native Interface (JSNI) call to the file uploading applet module 12 , as shown in step 78 .
- JSNI JavaScript Native Interface
- the JSNI protocol allows the browser to invoke embedded object methods and properties such as those found in a Java applet. This, in turn, extends the functional capabilities of the browser 6 by enabling advanced functionality not generally available via standard HTML web pages.
- the next step in the file uploading process is for the file upload applet module 12 to detect the local operating system and map the local root structure, as shown in step 79 .
- the local root structure is returned to the user interface (UI) for presentation inside the local file system browsing window as shown in step 80 .
- the UI displays the local system root structure as a series of root-level browsable folders using a familiar Windows folder structure paradigm, as shown in step 81 . Once any of the displayed root folders are selected and expanded, that folder's contents are retrieved and displayed, as shown in step 82 .
- the file upload applet module 12 also retrieves a number of file-level metadata attributes for display including file size, path, file type, creation date and more, as shown in step 83 .
- file-level metadata attributes for display including file size, path, file type, creation date and more, as shown in step 83 .
- the files can be dragged and dropped onto one of the non-local folders, as shown in step 85 , retrieved via an embedded database search and index interface.
- the end user is essentially commanding the file uploading applet to index the selected files from the local file system to the selected remote folder.
- the web browser 6 or web user interface 8 issues another JSNI call to the file uploading applet module 12 , as shown step 86 , instructing it to begin archiving and uploading the selected files to the document capture server 20 , as shown in step 87 .
- the archiving process leverages the ZIP format (a standard data compression and archive format) and serves to aggregate all selected files into a single file bundle for cleanest transmission to the server.
- FIG. 4 is a process flow 110 illustrating the steps performed by file upload applet module 12 for the file uploading transmission process.
- each file upload applet module 12 has the ability to initiate its own upload thread with the document capture server 20 to enable parallel uploading between all operating desktops. Data security is accomplished through the application of Secure Socket Layer (SSL) encryption on all uploaded files and associated metadata.
- SSL Secure Socket Layer
- the file uploading transmission process 110 is initiated by the file uploading applet module 12 once one or more files have been selected for upload, so the file uploading process as described in FIG. 3 must commence, as shown in step 111 .
- the file uploading applet module 12 initiates an upload thread with the document capture server 20 , as shown in step 112 , and then begins packaging the selected files into a single zip archive bundle, as shown in step 113 .
- the file upload applet module 12 constantly monitors the archive build process to determine if the archive build has been completed, as shown in step 114 , and if not, continues to monitor the process until the build is complete. Once a completed archive is available for transmission to the server 20 , the archive is passed off to a dedicated upload thread, as shown in step 115 . The newly spawned thread focuses exclusively on managing the transmission of the archive. To undertake the actual image transmission, the upload thread begins by opening a connection with the enterprise document repository 28 , as shown in step 116 . Specifically, the upload thread opens a connection using the same host, port, and protocol information delivered and stored with the file uploading applet module 12 .
- the upload thread To successfully connect to the document capture server 20 , the upload thread must supply the same session nonce received during the file uploading applet download process. Once the correct nonce is provided to the server 20 , the upload thread is able to successfully authenticate, as shown in step 117 , and begin passing data.
- the first data passed to the server is the archive-related indexing metadata.
- the upload thread Prior to delivering the actual archive, the upload thread passes key metadata to the server including the target folder ID, type of files in the archive, number of files in the archive, user ID, and more, as shown in step 118 .
- the upload thread begins transmitting the actual archive ZIP file in byte stream format using the HTTP put construct, as shown in step 119 .
- the content type is set to binary octet-stream and the destination URL is constructed from the same origin as that used to deploy the applet. This allows the transmission process to comply with the Java ‘same origin policy’ constraint.
- the amount of bytes to be transmitted is likewise variable.
- the byte-stream is closely monitored. At each monitoring pass, if more bytes are available, as shown in step 120 , the byte-stream transmission remains in monitored mode and data continues to flow to the server via HTTP put. If no more bytes are available, the upload thread is freed up and terminated.
- the upload transmission process is terminated and details are passed to the browser, as shown in step 121 .
- the end user is presented with a confirmation dialog displaying the details of the file uploading transmission process, as shown in step 122 .
- error checking is robust and embedded throughout the transmission process. If any errors are encountered, the transmission processes is halted, the hidden browser window is closed, the main browser window is returned to the foreground, and an appropriate error message is delivered to the end user describing the error.
- the document capture server 20 provides a gateway to, and acts as a gatekeeper for, the backend document repository 30 .
- the document repository 30 is the primary storage location for all scanned images and electronic documents captured via the file uploading processes 75 , 110 .
- FIG. 5 is a process flow illustrating the process 140 performed by the document capture server 20 .
- the document capture server lifecycle begins with installation of the designated Java servlet container on the targeted web server. Once started and configured, the document capture server 20 initiates a dedicated listener process or file upload handler 22 .
- the file uploading document capture server process lifecycle is triggered by an inbound request 18 , so the file uploading transmission process 110 as described in FIG. 4 must run, as shown in step 141 .
- the file upload handler module 22 constantly monitors HTTPS port 443 at a designated Uniform Resource Locator (URL) address, as shown in step 142 .
- This URL address is specified during the servlet container (e.g. Apache Tomcat) installation and configuration process and is the location at which all captured output from the file uploading processes 75 , 110 can be sent.
- Files can be uploaded individually or in groups and are transmitted in a single zip archive. Each uploaded file package ultimately generates a new service request and associated processing thread on the document capture server.
- the document capture server continuously monitors HTTPS port 443 at the designated URL address for any inbound service request, as shown in step 143 . If a valid inbound request is received, it is immediately checked for the presence of a valid nonce, as shown in step 144 . All inbound requests must present a valid security nonce to be accepted into the security realm. If a valid nonce is not received, then the request is denied and an HTTP error code of 401 (unauthorized) is returned to the originating source.
- the server 20 attempts to validate whether the submitting end user has proper permission to upload documents to the server by verifying internally established rights. If the submitting end user does not have permission to upload documents and associated metadata, then the request is denied and an HTTP error code of 401 (unauthorized) is returned to the end user. If, however, the inbound request provides a valid nonce and has permission to upload as shown in step 145 , then the document capture server 20 spawns a dedicated processing thread and begins processing the service request.
- the first task in processing the service request is to begin reading the inbound octet-stream. All files transmitted via the file uploading transmission process are packaged into a single zip archive file.
- the file uploading handler module 22 begins reading and unpacking the archive as the byte stream arrives, as shown in step 146 .
- the server continuously checks for a completed file, as shown in step 147 , to be written to the enterprise document repository 28 . If a completed file is not ready—meaning more bytes are being transmitted—then the file uploading handler module 22 continues to read and unpack the inbound octet stream until a completed file is available.
- the dedicated processing thread reads and stores the document metadata, as shown in step 148 , creates the appropriate document audit trail entries in the target metadata database 30 , as shown in step 149 , and then creates and stores a permanent file from the inbound octet-stream, as shown in step 150 .
- the processing thread checks to see if there are more files in the zip archive, as shown in step 151 . If more files are detected, the thread process continues reading and unpacking the inbound octet stream, as show in step 146 ,—repeating the process of storing metadata, creating the audit trail, and creating the permanent file—until no more files are available. As soon as the last file is processed, the service request is fulfilled and the dedicated processing thread is terminated.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Facsimiles In General (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
A mobile file uploading system is provided that includes a browser receiving a request to upload one or more selective files and issues a first message. A server receives the first message and determines whether the first message is requesting a download of a first software application, and if so, the server downloads to the user desktop the first software application where the browser executes the first software application. A file upload module is created when the browser completely executes the first software application. The file upload module manages uploading the one or more selective files from the user desktop to the server when a second message is sent by the browser. The file upload module initiates communications with the server and also issues one or more file system calls to a file system on the user desktop to retrieve the one or more selective files for uploading.
Description
- This application claims priority from provisional application Ser. No. 61/392,252 filed Oct. 12, 2010, which is incorporated herein by reference in its entirety.
- The invention is related to field of document management systems, and in particular to a mobile document retrieval using a browser.
- Traditional document management, requiring extensive use of locally attached scanning devices, file servers, databases, and the like, has long been rooted in the technology of yesterday: namely, Windows-based client/server technology. A new era of computing is currently being ushered in; one that revolves around portability, cross platform support, and a new and growing installed base of mobile devices driven by Google, the resurgent Apple Inc. and others. Leveraging this new and increasingly adopted technology environment requires redesigning and, in many cases, reinventing wheels that no longer fit. Unfortunately, the enterprise document management space is largely tied to legacy client/server architecture. While most vendors offer a lightweight web client with limited functionality—to present a veneer of modernity—the bulk of the underlying technology is built on traditional Windows-based client server architecture. As Java technology continues to evolve and consume a greater percentage of development projects worldwide, more and more leading software companies are leveraging its portability and multi-platform capabilities to prepare for the next-generation Internet. The next generation Internet is one based on portability, open standards, and mobile device support. The ability to provide full document management functionality in the absence of traditional client/server technology while supporting any web browser on any platform along with a wide range of mobile devices presents a number of unique challenges.
- According to one aspect of the invention, there is provided a mobile file uploading system. The mobile file uploading system includes a browser that is coupled to the Internet and being executed on a user desktop. The browser receives a user request to upload one or more selective files, the browser issues a first message. A server receives the first message and determines whether the first message is requesting a download of a first software application, if so, the server downloads to the user desktop the first software application where the browser executes the first software application. A file upload module is created when the browser completely executes the first software application. The file upload module manages uploading the one or more selective files from the user desktop to the server when a second message is sent by the browser. The file upload module initiates communications with the server and also issues one or more file system calls to a file system on the user desktop to retrieve the one or more selective files for uploading to the server.
- According to another aspect of the invention, there is a method of uploading one or more selective files on a network. The method includes providing a browser that is coupled to the Internet and being executed on a user desktop. The browser receives a user request to upload one or more selective files, the browser issues a first message. Also, the method includes receiving the first message via a server and determining whether the first message is requesting a download of a first software application, if so, the server downloads to the user desktop the first software application where the browser executes the first software application. Furthermore, the method includes creating a file upload module when the browser completely executes the first software application. The file upload module manages uploading the one or more selective files from the user desktop to the server when a second message is sent by the browser. The file upload module initiates communications with the server and also issues one or more file system calls to a file system on the user desktop to retrieve the one or more selective files for uploading to the server.
-
FIG. 1 is a schematic diagram illustrating the general framework of the invention; -
FIG. 2 is a process flow illustrating the applet delivery used to initiate the file upload applet module used in accordance with the invention; -
FIG. 3 is a process flow illustrating the steps performed by the file upload applet module to perform browser-based file uploading; -
FIG. 4 is a process flow illustrating the steps performed by file upload applet module for the file uploading transmission process; and -
FIG. 5 is a process flow illustrating the process 140 performed by thedocument capture server 20; - The invention involves a mobile retrieval for retrieving documents from a server using a browser. The invention allows for robust access to documents utilizing an applet that executes within a framework of a browser. The execution of the applet allows a user full access to remote document repositories and metadata while allowing a user to use file system calls initiated locally to access documents remotely, while maintaining platform independence.
- The invention can be formed using any platform independent based computer language, such as Java. This computer language allows one to develop applet code that can execute when an internet browser makes a request for such a code to be downloaded from a server and be executed on a client-side computer system. The applet code or applet can execute regardless of the specific operating system being utilized by the client side computer system. Given the small size of an applet, it is desirable to use an applet conjunction with mobile platforms such as smartphones or the like having internet browsing capabilities.
-
FIG. 1 is a schematic diagram illustrating thegeneral framework 2 of the invention. Theframework 2 includes auser desktop 4 that is executing on a client computer system having a specific operating system, such as Windows, Linux or the like, and a native file system configuration, such as NTFS. In other embodiments of invention, a plurality of user desktops can be used. A document captureserver 20 that communicates with theuser desktop 4 and manages the uploading of files between theuser desktop 4 andremote repositories user desktop 4 executes a browser that includes aweb user interface 8. When thebrowser 6 receives a file uploading request from a user theweb user interface 8 initiate a call, the web user interface issues a request to deliver an applet to activate the fileupload applet module 12. Once thedocument capture server 20 sends the applet, the browser initiates execution of the applet which results in the activation of the fileupload applet module 12 in thebrowser 6. Afterwards, when a user requests to browse and upload one or more selective documents, theweb interface 8 sends a message, such as a JavaScript Native Interface (JSNI), to the fileupload applet module 12. The fileupload applet module 12 receives the JSNImessage 10 and sends amessage 18 to thedocument capture server 20 to prepare for the upload of one or more selective files. - The file
upload applet module 12 initiates file system calls to the user's file system using thebrowser 6 to retrieve the selective one or more documents for uploading, and uploads the one or more selective documents to a fileupload handler module 22 executing on thedocument capture server 20. The fileupload handler module 22 can be a servlet application that executes on thedocument capture server 20. When one or more selective files are uploaded to thedocument capture server 20, theupload handler module 22 manages the handling of the one or more selective documents. In particular, theupload handler module 22 can temporarily store the one or more selective documents in the document capture server's memory for later use. - The file
upload handler module 22 makes assessments on how to best store the one or more selective documents on to one or more document repositories. In this case, the one or more document repositories can be a remoteenterprise document repository 28, but in other embodiments of the invention, there can be a plurality of remote enterprise document repositories or even one or more local repositories on thedocument capture server 20. The fileupload handler module 22 issues selective one or more file system calls 26 to theenterprise document repository 30 to store the one or more selective documents. Moreover, the fileupload handler module 22 also determines the fashion how metadata stored when the document managesystem 2 is in a hibernate state. The fileupload handler module 22 send amessage 24, to themetadata store 30 to upload metadata information for later retrieval. - The
document capture server 20 is a server that is connected to a network 32 as well theuser desktop 4. All communication between theuser desktop 4 anddocument capture server 20 is done via the network 32. - The advantage of a Java applet is the ability to provide rich software functionality to web applications that cannot be provided by HTML alone.
-
FIG. 2 is a process flow of the applet delivery used to initiate the fileupload applet module 12. The first step in delivering theupload applet 16 is to seat a web page with embedded logic that initiates the file upload applet download process activating the fileupload applet module 12, as shown instep 41. At the start of the download process as shown instep 42, the containingbrowser 6 receives a session nonce—a random number uniquely identifying the current session—to be used for all subsequent communication with the deploying server. To ensure complete end to end security, the file uploadapplet 16 must be digitally signed. A digital signature on theapplet 16 guarantees applet integrity along with point of origin and provides privileged access at the desktop; a requirement for interfacing with low level hardware devices such as local drives and network file servers. Applet downloading is far from automatic as several requirements need to be checked and verified prior to successful completion of the download process. For starters, the target platform must be checked against a list of supported platforms, as shown instep 43. - The next step is to verify the target browser and adjust the download process accordingly, as shown in
step 44. Currently, only the Safari browser running under Mac OSX requires special handling. This special handling requirement results from the parallel loading capability of the Safari browser and the likelihood of premature communication with a partially downloaded applet. To ensure the applet is fully downloaded prior to any communication attempt, a ten (10) second delay is introduced during which time no communication is attempted between browser and applet, shown instep 45. The last important validation step in the applet download process is to verify the existence of the appropriate Java Runtime Environment (JRE), shown instep 46. If the minimum required JRE is present, the download process is allowed to continue to completion. If the appropriate JRE is not present, the end user is prompted to download and install the proper JRE, shown instep 47, and, if successful as shown instep 48, the applet download is allowed to continue to completion, as shown instep 49. A successful applet download confirmation is required prior to checking embedded end user permissions. - Since applets function outside the browser's cookie space, applet communication is effectively outside the established security realm. As this is a less than optimal security structure, it is necessary to extend the federated security realm to include the applet, as shown in
step 50. By passing the cookie's session value explicitly from browser to applet during the applet delivery process, the applet is granted the same authentication as thebrowser 6. Following the extension of the federated security realm to theapplet 16, it is necessary to verify that the applet download process completed successfully, as shown instep 51. If any failures are detected at this point, all web-based functionalities are disabled. - Once included in the federated security realm, the
applet 16 is free to function subject to established end user rights and permissions. Specifically, an end user's permission to upload documents should be a top level check prior to unlocking the capabilities of the file upload applet, as shown instep 52. If an end user does not have permission to upload files, then an associated file upload button should be disabled, as shown instep 53. Likewise, an associated file upload button should be enabled if file uploading rights exist, as shown instep 54. Once an associated file upload button is either enabled or disabled, the applet initialization process is complete, as shown instep 55. -
FIG. 3 is aprocess flow 75 illustrating the steps performed by the file uploadapplet module 12 to perform browser-based file uploading. The browser-based file uploading process cannot begin until thefile uploading applet 16 is successfully downloaded and initialized. As such, the applet delivery process, as discussed forFIG. 2 , must be completed, as shown instep 76. The file uploading process is initiated by end user interaction; typically in the form of an end user expanding the embedded local file system browsing window or un-hiding the local file system browsing window by selecting a menu or similar toolbar icon, as shown instep 77. The embedded local file system browsing window is only available following successful download of the file uploadingapplet module 12. Once the user expands or activates the local file system browsing window, theweb user interface 8 orbrowser 6 issues a JavaScript Native Interface (JSNI) call to the file uploadingapplet module 12, as shown instep 78. The JSNI protocol allows the browser to invoke embedded object methods and properties such as those found in a Java applet. This, in turn, extends the functional capabilities of thebrowser 6 by enabling advanced functionality not generally available via standard HTML web pages. - The next step in the file uploading process is for the file upload
applet module 12 to detect the local operating system and map the local root structure, as shown instep 79. The local root structure is returned to the user interface (UI) for presentation inside the local file system browsing window as shown instep 80. To simplify the information delivery to the end user, the UI displays the local system root structure as a series of root-level browsable folders using a familiar Windows folder structure paradigm, as shown instep 81. Once any of the displayed root folders are selected and expanded, that folder's contents are retrieved and displayed, as shown instep 82. Along with system file names, the file uploadapplet module 12 also retrieves a number of file-level metadata attributes for display including file size, path, file type, creation date and more, as shown instep 83. Armed with a full accounting of operating system level file details and attributes, an end user is well positioned to select one or more files for upload. The file system browsing window fully supports both single and multiple file selections for added simplicity. - Once the appropriate target file or files have been located and selected, as shown in
step 84, the files can be dragged and dropped onto one of the non-local folders, as shown instep 85, retrieved via an embedded database search and index interface. In doing so, the end user is essentially commanding the file uploading applet to index the selected files from the local file system to the selected remote folder. - To complete the browser-based
file uploading process 75, theweb browser 6 orweb user interface 8 issues another JSNI call to the file uploadingapplet module 12, as shownstep 86, instructing it to begin archiving and uploading the selected files to thedocument capture server 20, as shown instep 87. The archiving process leverages the ZIP format (a standard data compression and archive format) and serves to aggregate all selected files into a single file bundle for cleanest transmission to the server. - The browser-based
uploading process 75 as described inFIG. 3 supplies and works in parallel with the file uploading transmission process used by the invention.FIG. 4 is aprocess flow 110 illustrating the steps performed by file uploadapplet module 12 for the file uploading transmission process. - As files are selected and packaged for uploading from one or more desktops, it is necessary to securely move those images to one or more remote defined storage locations. To accomplish this, each file upload
applet module 12 has the ability to initiate its own upload thread with thedocument capture server 20 to enable parallel uploading between all operating desktops. Data security is accomplished through the application of Secure Socket Layer (SSL) encryption on all uploaded files and associated metadata. - The file
uploading transmission process 110 is initiated by the file uploadingapplet module 12 once one or more files have been selected for upload, so the file uploading process as described inFIG. 3 must commence, as shown instep 111. Once the list of selected files is constructed for a particular user desktop, the file uploadingapplet module 12 initiates an upload thread with thedocument capture server 20, as shown instep 112, and then begins packaging the selected files into a single zip archive bundle, as shown instep 113. - The file upload
applet module 12 constantly monitors the archive build process to determine if the archive build has been completed, as shown instep 114, and if not, continues to monitor the process until the build is complete. Once a completed archive is available for transmission to theserver 20, the archive is passed off to a dedicated upload thread, as shown instep 115. The newly spawned thread focuses exclusively on managing the transmission of the archive. To undertake the actual image transmission, the upload thread begins by opening a connection with theenterprise document repository 28, as shown instep 116. Specifically, the upload thread opens a connection using the same host, port, and protocol information delivered and stored with the file uploadingapplet module 12. To successfully connect to thedocument capture server 20, the upload thread must supply the same session nonce received during the file uploading applet download process. Once the correct nonce is provided to theserver 20, the upload thread is able to successfully authenticate, as shown instep 117, and begin passing data. - The first data passed to the server is the archive-related indexing metadata. Prior to delivering the actual archive, the upload thread passes key metadata to the server including the target folder ID, type of files in the archive, number of files in the archive, user ID, and more, as shown in
step 118. After the archive metadata is passed to the server, the upload thread begins transmitting the actual archive ZIP file in byte stream format using the HTTP put construct, as shown instep 119. To accomplish the byte stream transmission, the content type is set to binary octet-stream and the destination URL is constructed from the same origin as that used to deploy the applet. This allows the transmission process to comply with the Java ‘same origin policy’ constraint. - Since archives vary in size, the amount of bytes to be transmitted is likewise variable. To determine completion of the upload process, the byte-stream is closely monitored. At each monitoring pass, if more bytes are available, as shown in
step 120, the byte-stream transmission remains in monitored mode and data continues to flow to the server via HTTP put. If no more bytes are available, the upload thread is freed up and terminated. - Once the archive byte-stream is fully delivered, the upload transmission process is terminated and details are passed to the browser, as shown in
step 121. As a last step, the end user is presented with a confirmation dialog displaying the details of the file uploading transmission process, as shown instep 122. - Similar to the file uploading process, error checking is robust and embedded throughout the transmission process. If any errors are encountered, the transmission processes is halted, the hidden browser window is closed, the main browser window is returned to the foreground, and an appropriate error message is delivered to the end user describing the error.
- The
document capture server 20 provides a gateway to, and acts as a gatekeeper for, thebackend document repository 30. Thedocument repository 30 is the primary storage location for all scanned images and electronic documents captured via the file uploading processes 75, 110. -
FIG. 5 is a process flow illustrating the process 140 performed by thedocument capture server 20. The document capture server lifecycle begins with installation of the designated Java servlet container on the targeted web server. Once started and configured, thedocument capture server 20 initiates a dedicated listener process or file uploadhandler 22. The file uploading document capture server process lifecycle is triggered by aninbound request 18, so the file uploadingtransmission process 110 as described inFIG. 4 must run, as shown instep 141. - The file upload
handler module 22 constantly monitorsHTTPS port 443 at a designated Uniform Resource Locator (URL) address, as shown instep 142. This URL address is specified during the servlet container (e.g. Apache Tomcat) installation and configuration process and is the location at which all captured output from the file uploading processes 75, 110 can be sent. - Files can be uploaded individually or in groups and are transmitted in a single zip archive. Each uploaded file package ultimately generates a new service request and associated processing thread on the document capture server. The document capture server continuously monitors
HTTPS port 443 at the designated URL address for any inbound service request, as shown instep 143. If a valid inbound request is received, it is immediately checked for the presence of a valid nonce, as shown instep 144. All inbound requests must present a valid security nonce to be accepted into the security realm. If a valid nonce is not received, then the request is denied and an HTTP error code of 401 (unauthorized) is returned to the originating source. If a valid nonce is received, then theserver 20 attempts to validate whether the submitting end user has proper permission to upload documents to the server by verifying internally established rights. If the submitting end user does not have permission to upload documents and associated metadata, then the request is denied and an HTTP error code of 401 (unauthorized) is returned to the end user. If, however, the inbound request provides a valid nonce and has permission to upload as shown instep 145, then thedocument capture server 20 spawns a dedicated processing thread and begins processing the service request. - The first task in processing the service request is to begin reading the inbound octet-stream. All files transmitted via the file uploading transmission process are packaged into a single zip archive file. The file uploading
handler module 22 begins reading and unpacking the archive as the byte stream arrives, as shown instep 146. As the byte stream is read, the server continuously checks for a completed file, as shown instep 147, to be written to theenterprise document repository 28. If a completed file is not ready—meaning more bytes are being transmitted—then the file uploadinghandler module 22 continues to read and unpack the inbound octet stream until a completed file is available. - Once a completed file is retrieved from the inbound octet stream, the dedicated processing thread reads and stores the document metadata, as shown in
step 148, creates the appropriate document audit trail entries in thetarget metadata database 30, as shown instep 149, and then creates and stores a permanent file from the inbound octet-stream, as shown instep 150. Once the permanent file is created, the processing thread checks to see if there are more files in the zip archive, as shown instep 151. If more files are detected, the thread process continues reading and unpacking the inbound octet stream, as show instep 146,—repeating the process of storing metadata, creating the audit trail, and creating the permanent file—until no more files are available. As soon as the last file is processed, the service request is fulfilled and the dedicated processing thread is terminated. - Although the present invention has been shown and described with respect to several preferred embodiments thereof, various changes, omissions and additions to the form and detail thereof, may be made therein, without departing from the spirit and scope of the invention.
Claims (20)
1. A mobile file uploading system comprising:
a browser that is coupled to the Internet and executed on a user desktop, the browser receives a user request to upload one or more selective files and issues a first message;
a server that receives the first message and determines whether the first message is requesting a download of a first software application, and if so, the server downloads to the user desktop the first software application where the browser executes the first software application; and
a file upload module that is created when the browser completely executes the first software application, the file upload module manages uploading the one or more selective files from the user desktop to the server when a second message is sent by the browser, the file upload module initiates communications with the server and also issues one or more file system calls to a file system on the user desktop to retrieve the one or more selective files for uploading to the server.
2. The mobile file uploading system of claim 1 , wherein the first application module comprises a Java applet.
3. The mobile file uploading system of claim 1 , wherein the server comprises a file upload handler module that manages the one or more selective files for storage.
4. The mobile file uploading system of claim 1 , wherein the file upload handler module issues file system calls to a document repository to store the one or more selective files.
5. The mobile file uploading system of claim 1 , wherein the file upload handler module stores metadata associated with the one or more selective files.
6. The mobile file uploading system of claim 1 , wherein the second message comprises JavaScript Native Interface.
7. The mobile file uploading system of claim 2 , wherein the first software application is digitally signed to guarantee applet integrity.
8. The mobile file uploading system of claim 2 , wherein the browser is verified so as to determine the fashion to deliver the first software application.
9. The mobile file uploading system of claim 1 , wherein the file uploading module detects the local operating system of the user desktop.
10. The mobile file uploading system of claim 1 , wherein the browser comprises a browsing window to view files on the user desktop.
11. A method of uploading one or more selective files on a network comprising:
providing a browser that is coupled to the Internet and executed on a user desktop, the browser receives a user request to upload one or more selective files and issues a first message;
receiving the first message via a server and determining whether the first message is requesting a download of a first software application, and if so, the server downloads to the user desktop the first software application where the browser executes the first software application; and
creating a file upload module when the browser completely executes the first software application, the file upload module manages uploading the one or more selective files from the user desktop to the server when a second message is sent by the browser, the file upload module initiates communications with the server and also issues one or more file system calls to a file system on the user desktop to retrieve the one or more selective files for uploading to the server.
12. The method of claim 11 , wherein the first application module comprises a Java applet.
13. The method of claim 11 , wherein the server comprises a file upload handler module that manages the one or more selective files for storage.
14. The method of claim 11 , wherein the file upload handler module issues file system calls to a document repository to store the one or more selective files.
15. The method of claim 11 , wherein the file upload handler module stores metadata associated with the one or more selective files.
16. The method of claim 11 , wherein the second message comprises JavaScript Native Interface.
17. The method of claim 12 , wherein the first software application is digitally signed to guarantee applet integrity.
18. The method of claim 12 , wherein the browser is verified so as to determine the fashion to deliver the first software application
19. The method of claim 11 , wherein the file uploading module detects the local operating system of the user desktop.
20. The method of claim 11 , wherein the browser comprises a browsing window to view files on the user desktop.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/251,540 US20120089706A1 (en) | 2010-10-12 | 2011-10-03 | Mobile file uploader |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US39225210P | 2010-10-12 | 2010-10-12 | |
US13/251,540 US20120089706A1 (en) | 2010-10-12 | 2011-10-03 | Mobile file uploader |
Publications (1)
Publication Number | Publication Date |
---|---|
US20120089706A1 true US20120089706A1 (en) | 2012-04-12 |
Family
ID=44764251
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/156,426 Expired - Fee Related US9143633B2 (en) | 2010-10-12 | 2011-06-09 | Browser-based scanning utility |
US13/247,337 Abandoned US20120089901A1 (en) | 2010-10-12 | 2011-09-28 | High performance cross platform document viewing |
US13/247,536 Abandoned US20120089612A1 (en) | 2010-10-12 | 2011-09-28 | Flexible fully integrated real-time document indexing |
US13/248,471 Abandoned US20120089676A1 (en) | 2010-10-12 | 2011-09-29 | Live data form viewing and updating system |
US13/251,540 Abandoned US20120089706A1 (en) | 2010-10-12 | 2011-10-03 | Mobile file uploader |
Family Applications Before (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/156,426 Expired - Fee Related US9143633B2 (en) | 2010-10-12 | 2011-06-09 | Browser-based scanning utility |
US13/247,337 Abandoned US20120089901A1 (en) | 2010-10-12 | 2011-09-28 | High performance cross platform document viewing |
US13/247,536 Abandoned US20120089612A1 (en) | 2010-10-12 | 2011-09-28 | Flexible fully integrated real-time document indexing |
US13/248,471 Abandoned US20120089676A1 (en) | 2010-10-12 | 2011-09-29 | Live data form viewing and updating system |
Country Status (2)
Country | Link |
---|---|
US (5) | US9143633B2 (en) |
WO (1) | WO2012050947A1 (en) |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130073688A1 (en) * | 2011-09-19 | 2013-03-21 | Verizon Patent And Licensing Inc. | Thread mechanism for media and metadata upload |
US20140136654A1 (en) * | 2012-11-12 | 2014-05-15 | Sap Ag | Upload/download of mobile applications using a mime repository |
US20140289367A1 (en) * | 2013-03-21 | 2014-09-25 | Oracle International Corporation | Enable uploading and submitting multiple files |
WO2016022410A1 (en) * | 2014-08-04 | 2016-02-11 | Ajev Ah Gopala | Functional and data capsules |
US20160162451A1 (en) * | 2011-08-19 | 2016-06-09 | Yongyong Xu | Online software execution platform |
US20170118258A1 (en) * | 2012-06-27 | 2017-04-27 | Clearslide, Inc. | System and method for switching control with browser-based screen sharing |
US20190014502A1 (en) * | 2016-02-05 | 2019-01-10 | Telefonaktiebolaget Lm Ericsson (Publ) | A Mobil Terminal, a Buffering Module, and Methods Therein for Uploading a File in a Communications Network |
US10248797B1 (en) * | 2016-06-30 | 2019-04-02 | Symantec Corporation | Systems and methods for zero-day DLP protection having enhanced file upload processing |
US10785222B2 (en) * | 2018-10-11 | 2020-09-22 | Spredfast, Inc. | Credential and authentication management in scalable data networks |
US10855657B2 (en) | 2018-10-11 | 2020-12-01 | Spredfast, Inc. | Multiplexed data exchange portal interface in scalable data networks |
US10902462B2 (en) | 2017-04-28 | 2021-01-26 | Khoros, Llc | System and method of providing a platform for managing data content campaign on social networks |
US10956459B2 (en) | 2017-10-12 | 2021-03-23 | Spredfast, Inc. | Predicting performance of content and electronic messages among a system of networked computing devices |
US11050704B2 (en) | 2017-10-12 | 2021-06-29 | Spredfast, Inc. | Computerized tools to enhance speed and propagation of content in electronic messages among a system of networked computing devices |
US11061900B2 (en) | 2018-01-22 | 2021-07-13 | Spredfast, Inc. | Temporal optimization of data operations using distributed search and server management |
US11102271B2 (en) | 2018-01-22 | 2021-08-24 | Spredfast, Inc. | Temporal optimization of data operations using distributed search and server management |
US11128589B1 (en) | 2020-09-18 | 2021-09-21 | Khoros, Llc | Gesture-based community moderation |
US11297151B2 (en) | 2017-11-22 | 2022-04-05 | Spredfast, Inc. | Responsive action prediction based on electronic messages among a system of networked computing devices |
US11438282B2 (en) | 2020-11-06 | 2022-09-06 | Khoros, Llc | Synchronicity of electronic messages via a transferred secure messaging channel among a system of various networked computing devices |
US11438289B2 (en) | 2020-09-18 | 2022-09-06 | Khoros, Llc | Gesture-based community moderation |
US11470161B2 (en) | 2018-10-11 | 2022-10-11 | Spredfast, Inc. | Native activity tracking using credential and authentication management in scalable data networks |
US11570128B2 (en) | 2017-10-12 | 2023-01-31 | Spredfast, Inc. | Optimizing effectiveness of content in electronic messages among a system of networked computing device |
US11627053B2 (en) | 2019-05-15 | 2023-04-11 | Khoros, Llc | Continuous data sensing of functional states of networked computing devices to determine efficiency metrics for servicing electronic messages asynchronously |
US11627100B1 (en) | 2021-10-27 | 2023-04-11 | Khoros, Llc | Automated response engine implementing a universal data space based on communication interactions via an omnichannel electronic data channel |
US11714629B2 (en) | 2020-11-19 | 2023-08-01 | Khoros, Llc | Software dependency management |
US11741551B2 (en) | 2013-03-21 | 2023-08-29 | Khoros, Llc | Gamification for online social communities |
US20230342480A1 (en) * | 2018-12-12 | 2023-10-26 | American Express Travel Related Services Company, Inc. | Peer-to-peer confidential document exchange |
US11924375B2 (en) | 2021-10-27 | 2024-03-05 | Khoros, Llc | Automated response engine and flow configured to exchange responsive communication data via an omnichannel electronic communication channel independent of data source |
US11936652B2 (en) | 2018-10-11 | 2024-03-19 | Spredfast, Inc. | Proxied multi-factor authentication using credential and authentication management in scalable data networks |
US12120078B2 (en) | 2020-09-18 | 2024-10-15 | Khoros, Llc | Automated disposition of a community of electronic messages under moderation using a gesture-based computerized tool |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9842331B2 (en) | 2008-01-18 | 2017-12-12 | Mitek Systems, Inc. | Systems and methods for mobile image capture and processing of checks |
US9292737B2 (en) | 2008-01-18 | 2016-03-22 | Mitek Systems, Inc. | Systems and methods for classifying payment documents during mobile image processing |
US10528925B2 (en) | 2008-01-18 | 2020-01-07 | Mitek Systems, Inc. | Systems and methods for mobile automated clearing house enrollment |
US8983170B2 (en) | 2008-01-18 | 2015-03-17 | Mitek Systems, Inc. | Systems and methods for developing and verifying image processing standards for mobile deposit |
US10891475B2 (en) | 2010-05-12 | 2021-01-12 | Mitek Systems, Inc. | Systems and methods for enrollment and identity management using mobile imaging |
US8849811B2 (en) * | 2011-06-29 | 2014-09-30 | International Business Machines Corporation | Enhancing cluster analysis using document metadata |
US9372890B2 (en) * | 2011-11-23 | 2016-06-21 | Infosys Technologies, Ltd. | Methods, systems, and computer-readable media for providing a query layer for cloud databases |
US9262420B1 (en) * | 2012-04-23 | 2016-02-16 | Google Inc. | Third-party indexable text |
US20130290860A1 (en) * | 2012-04-30 | 2013-10-31 | Olympus Integrated Technologies America, Inc. | Workspace interfaces, methods, and systems |
JP2014010510A (en) * | 2012-06-28 | 2014-01-20 | Contec Co Ltd | Software development method |
KR20140055782A (en) * | 2012-11-01 | 2014-05-09 | 삼성전자주식회사 | Host apparatus and method for controlling the host apparatus |
US20140137190A1 (en) * | 2012-11-09 | 2014-05-15 | Rapid7, Inc. | Methods and systems for passively detecting security levels in client devices |
CN103870750B (en) * | 2012-12-12 | 2018-06-08 | 腾讯科技(武汉)有限公司 | A kind of method and device for realizing equipment safety scanning in a browser |
US10963535B2 (en) | 2013-02-19 | 2021-03-30 | Mitek Systems, Inc. | Browser-based mobile image capture |
JP6464587B2 (en) * | 2013-08-21 | 2019-02-06 | 株式会社リコー | Information processing system, information processing apparatus, information transmission method, and program |
US11336648B2 (en) * | 2013-11-11 | 2022-05-17 | Amazon Technologies, Inc. | Document management and collaboration system |
US9542391B1 (en) | 2013-11-11 | 2017-01-10 | Amazon Technologies, Inc. | Processing service requests for non-transactional databases |
US10599753B1 (en) | 2013-11-11 | 2020-03-24 | Amazon Technologies, Inc. | Document version control in collaborative environment |
US10691877B1 (en) | 2014-02-07 | 2020-06-23 | Amazon Technologies, Inc. | Homogenous insertion of interactions into documents |
US9646149B2 (en) * | 2014-05-06 | 2017-05-09 | Microsoft Technology Licensing, Llc | Accelerated application authentication and content delivery |
US9674261B2 (en) * | 2014-06-10 | 2017-06-06 | Sap Portals Israel Ltd. | ODBC access to external services |
US10826930B2 (en) | 2014-07-22 | 2020-11-03 | Nuix Pty Ltd | Systems and methods for parallelized custom data-processing and search |
US20160306503A1 (en) * | 2015-04-16 | 2016-10-20 | Vmware, Inc. | Workflow Guidance Widget with State-Indicating Buttons |
US10657136B2 (en) * | 2015-12-02 | 2020-05-19 | International Business Machines Corporation | Searching data on a synchronization data stream |
US10860618B2 (en) | 2017-09-25 | 2020-12-08 | Splunk Inc. | Low-latency streaming analytics |
US10936585B1 (en) * | 2018-10-31 | 2021-03-02 | Splunk Inc. | Unified data processing across streaming and indexed data sets |
US11393272B2 (en) | 2019-09-25 | 2022-07-19 | Mitek Systems, Inc. | Systems and methods for updating an image registry for use in fraud detection related to financial documents |
US12073061B2 (en) | 2022-06-24 | 2024-08-27 | Microsoft Technology Licensing, Llc | Systems for enabling a user to defer decisions presented in a web browser |
US12067070B2 (en) * | 2022-06-24 | 2024-08-20 | Microsoft Technology Licensing, Llc | Transferring link context from desktop application to browser |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5694546A (en) * | 1994-05-31 | 1997-12-02 | Reisman; Richard R. | System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list |
US6167567A (en) * | 1998-05-05 | 2000-12-26 | 3Com Corporation | Technique for automatically updating software stored on a client computer in a networked client-server environment |
US6350066B1 (en) * | 1995-04-28 | 2002-02-26 | Bobo, Ii Charles R. | Systems and methods for storing, delivering, and managing messages |
US6519605B1 (en) * | 1999-04-27 | 2003-02-11 | International Business Machines Corporation | Run-time translation of legacy emulator high level language application programming interface (EHLLAPI) calls to object-based calls |
US6564321B2 (en) * | 1995-04-28 | 2003-05-13 | Bobo Ii Charles R | Systems and methods for storing, delivering, and managing messages |
US20040010786A1 (en) * | 2002-07-11 | 2004-01-15 | Microsoft Corporation | System and method for automatically upgrading a software application |
US20040154014A1 (en) * | 2003-01-30 | 2004-08-05 | Bunger Samuel David | System and method for automatically installing data on a handheld computer |
US6782418B1 (en) * | 2000-01-24 | 2004-08-24 | General Electric Company | Method and apparatus for secure data file uploading |
US20050210459A1 (en) * | 2004-03-12 | 2005-09-22 | Henderson Gary S | Controlling installation update behaviors on a client computer |
US20050265322A1 (en) * | 1999-10-04 | 2005-12-01 | Rex Hester | Enabling quality voice communications from web page call control |
US20060130045A1 (en) * | 2004-11-19 | 2006-06-15 | Jonathan Wesley | Systems and methods for dynamically updating computer systems |
US7139811B2 (en) * | 2001-08-01 | 2006-11-21 | Actona Technologies Ltd. | Double-proxy remote data access system |
US20070067763A1 (en) * | 2005-09-19 | 2007-03-22 | Adc Telecommunications, Inc. | Mechanism to upgrade system capability without affecting service |
US20070073840A1 (en) * | 1999-11-04 | 2007-03-29 | O'brien Brett | Network personal digital video recorder system (NPDVR) |
US20070150892A1 (en) * | 2005-12-22 | 2007-06-28 | Samsung Electronics Co., Ltd. | Scheduled delivery of software download |
US20070245342A1 (en) * | 2006-01-04 | 2007-10-18 | Samsung Electronics Co., Ltd. | Apparatus and method for installing software |
US20080270514A1 (en) * | 2004-05-25 | 2008-10-30 | Alexandre Soares Pi Farias | System for Accessing a Pos Terminal, Method for Downloading and Updating Applications and Method for Performing Electronic Operation Using Such a System |
US20100211942A1 (en) * | 2008-11-10 | 2010-08-19 | The DIRCTV Group, Inc. | Method and apparatus for managing software downloads in a broadcast communication system |
US7810723B2 (en) * | 2005-11-17 | 2010-10-12 | Hypercom Corporation | System and method to purchase applications by a point of sale terminal |
US8286155B1 (en) * | 2005-01-21 | 2012-10-09 | Callwave Communications, Llc | Methods and systems for transferring data over a network |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6205415B1 (en) | 1996-04-01 | 2001-03-20 | Openconnect Systems Incorporated | Server and terminal emulator for persistent connection to a legacy host system with file transfer |
US6289371B1 (en) | 1998-09-30 | 2001-09-11 | Hewlett-Packard Company | Network scan server support method using a web browser |
US7738688B2 (en) * | 2000-05-03 | 2010-06-15 | Aperio Technologies, Inc. | System and method for viewing virtual slides |
US20020174206A1 (en) | 2001-05-21 | 2002-11-21 | Moyer Alan L. | Web-based file manipulating system |
US7752326B2 (en) * | 2001-08-20 | 2010-07-06 | Masterobjects, Inc. | System and method for utilizing asynchronous client server communication objects |
AU2003269951A1 (en) * | 2002-08-27 | 2004-03-19 | 4Gl School Solutions, Inc. | Method and system for compliance forms and compliance forms user interface |
US7401075B2 (en) * | 2003-06-11 | 2008-07-15 | Wtviii, Inc. | System for viewing and indexing mark up language messages, forms and documents |
US20060085516A1 (en) * | 2004-10-01 | 2006-04-20 | Farr Bradford H | Method and apparatus for providing a work flow web application that receives image data via a web browser and exports the image data to a document processing server |
US7933632B2 (en) * | 2005-09-16 | 2011-04-26 | Microsoft Corporation | Tile space user interface for mobile devices |
US8224853B2 (en) * | 2005-11-02 | 2012-07-17 | Sourcecode Technologies Holdings, Inc. | Methods and apparatus for updating a plurality of data fields in an electronic form |
US7624114B2 (en) * | 2006-06-05 | 2009-11-24 | Microsoft Corporation | Automatically generating web forms from database schema |
-
2011
- 2011-06-09 US US13/156,426 patent/US9143633B2/en not_active Expired - Fee Related
- 2011-09-28 US US13/247,337 patent/US20120089901A1/en not_active Abandoned
- 2011-09-28 US US13/247,536 patent/US20120089612A1/en not_active Abandoned
- 2011-09-29 WO PCT/US2011/053854 patent/WO2012050947A1/en active Application Filing
- 2011-09-29 US US13/248,471 patent/US20120089676A1/en not_active Abandoned
- 2011-10-03 US US13/251,540 patent/US20120089706A1/en not_active Abandoned
Patent Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5694546A (en) * | 1994-05-31 | 1997-12-02 | Reisman; Richard R. | System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list |
US6350066B1 (en) * | 1995-04-28 | 2002-02-26 | Bobo, Ii Charles R. | Systems and methods for storing, delivering, and managing messages |
US6564321B2 (en) * | 1995-04-28 | 2003-05-13 | Bobo Ii Charles R | Systems and methods for storing, delivering, and managing messages |
US6857074B2 (en) * | 1995-04-28 | 2005-02-15 | J2 Global Communication, Inc. | Systems and methods for storing, delivering, and managing messages |
US6167567A (en) * | 1998-05-05 | 2000-12-26 | 3Com Corporation | Technique for automatically updating software stored on a client computer in a networked client-server environment |
US6519605B1 (en) * | 1999-04-27 | 2003-02-11 | International Business Machines Corporation | Run-time translation of legacy emulator high level language application programming interface (EHLLAPI) calls to object-based calls |
US20050265322A1 (en) * | 1999-10-04 | 2005-12-01 | Rex Hester | Enabling quality voice communications from web page call control |
US20070073840A1 (en) * | 1999-11-04 | 2007-03-29 | O'brien Brett | Network personal digital video recorder system (NPDVR) |
US6782418B1 (en) * | 2000-01-24 | 2004-08-24 | General Electric Company | Method and apparatus for secure data file uploading |
US7139811B2 (en) * | 2001-08-01 | 2006-11-21 | Actona Technologies Ltd. | Double-proxy remote data access system |
US20040010786A1 (en) * | 2002-07-11 | 2004-01-15 | Microsoft Corporation | System and method for automatically upgrading a software application |
US20040154014A1 (en) * | 2003-01-30 | 2004-08-05 | Bunger Samuel David | System and method for automatically installing data on a handheld computer |
US20050210459A1 (en) * | 2004-03-12 | 2005-09-22 | Henderson Gary S | Controlling installation update behaviors on a client computer |
US20080270514A1 (en) * | 2004-05-25 | 2008-10-30 | Alexandre Soares Pi Farias | System for Accessing a Pos Terminal, Method for Downloading and Updating Applications and Method for Performing Electronic Operation Using Such a System |
US20060130045A1 (en) * | 2004-11-19 | 2006-06-15 | Jonathan Wesley | Systems and methods for dynamically updating computer systems |
US8286155B1 (en) * | 2005-01-21 | 2012-10-09 | Callwave Communications, Llc | Methods and systems for transferring data over a network |
US20070067763A1 (en) * | 2005-09-19 | 2007-03-22 | Adc Telecommunications, Inc. | Mechanism to upgrade system capability without affecting service |
US7810723B2 (en) * | 2005-11-17 | 2010-10-12 | Hypercom Corporation | System and method to purchase applications by a point of sale terminal |
US20070150892A1 (en) * | 2005-12-22 | 2007-06-28 | Samsung Electronics Co., Ltd. | Scheduled delivery of software download |
US20070245342A1 (en) * | 2006-01-04 | 2007-10-18 | Samsung Electronics Co., Ltd. | Apparatus and method for installing software |
US20100211942A1 (en) * | 2008-11-10 | 2010-08-19 | The DIRCTV Group, Inc. | Method and apparatus for managing software downloads in a broadcast communication system |
Cited By (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160162451A1 (en) * | 2011-08-19 | 2016-06-09 | Yongyong Xu | Online software execution platform |
US8635270B2 (en) * | 2011-09-19 | 2014-01-21 | Verizon Patent And Licensing Inc. | Thread mechanism for media and metadata upload |
US20130073688A1 (en) * | 2011-09-19 | 2013-03-21 | Verizon Patent And Licensing Inc. | Thread mechanism for media and metadata upload |
US20170118258A1 (en) * | 2012-06-27 | 2017-04-27 | Clearslide, Inc. | System and method for switching control with browser-based screen sharing |
US20180146016A1 (en) * | 2012-06-27 | 2018-05-24 | Clearslide Inc. | System and method for switching control with browser-based screen sharing |
US20140136654A1 (en) * | 2012-11-12 | 2014-05-15 | Sap Ag | Upload/download of mobile applications using a mime repository |
US9426209B2 (en) * | 2012-11-12 | 2016-08-23 | Sap Se | Upload/download of mobile applications using a MIME repository |
US20140289367A1 (en) * | 2013-03-21 | 2014-09-25 | Oracle International Corporation | Enable uploading and submitting multiple files |
US11741551B2 (en) | 2013-03-21 | 2023-08-29 | Khoros, Llc | Gamification for online social communities |
US10547664B2 (en) * | 2013-03-21 | 2020-01-28 | Oracle International Corporation | Enable uploading and submitting multiple files |
WO2016022410A1 (en) * | 2014-08-04 | 2016-02-11 | Ajev Ah Gopala | Functional and data capsules |
US20190014502A1 (en) * | 2016-02-05 | 2019-01-10 | Telefonaktiebolaget Lm Ericsson (Publ) | A Mobil Terminal, a Buffering Module, and Methods Therein for Uploading a File in a Communications Network |
US10623997B2 (en) * | 2016-02-05 | 2020-04-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Mobile terminal, a buffering module, and methods therein for uploading a file in a communications network |
US10248797B1 (en) * | 2016-06-30 | 2019-04-02 | Symantec Corporation | Systems and methods for zero-day DLP protection having enhanced file upload processing |
US10902462B2 (en) | 2017-04-28 | 2021-01-26 | Khoros, Llc | System and method of providing a platform for managing data content campaign on social networks |
US11538064B2 (en) | 2017-04-28 | 2022-12-27 | Khoros, Llc | System and method of providing a platform for managing data content campaign on social networks |
US10956459B2 (en) | 2017-10-12 | 2021-03-23 | Spredfast, Inc. | Predicting performance of content and electronic messages among a system of networked computing devices |
US11050704B2 (en) | 2017-10-12 | 2021-06-29 | Spredfast, Inc. | Computerized tools to enhance speed and propagation of content in electronic messages among a system of networked computing devices |
US11687573B2 (en) | 2017-10-12 | 2023-06-27 | Spredfast, Inc. | Predicting performance of content and electronic messages among a system of networked computing devices |
US11570128B2 (en) | 2017-10-12 | 2023-01-31 | Spredfast, Inc. | Optimizing effectiveness of content in electronic messages among a system of networked computing device |
US11539655B2 (en) | 2017-10-12 | 2022-12-27 | Spredfast, Inc. | Computerized tools to enhance speed and propagation of content in electronic messages among a system of networked computing devices |
US11765248B2 (en) | 2017-11-22 | 2023-09-19 | Spredfast, Inc. | Responsive action prediction based on electronic messages among a system of networked computing devices |
US11297151B2 (en) | 2017-11-22 | 2022-04-05 | Spredfast, Inc. | Responsive action prediction based on electronic messages among a system of networked computing devices |
US11657053B2 (en) | 2018-01-22 | 2023-05-23 | Spredfast, Inc. | Temporal optimization of data operations using distributed search and server management |
US11496545B2 (en) | 2018-01-22 | 2022-11-08 | Spredfast, Inc. | Temporal optimization of data operations using distributed search and server management |
US12137137B2 (en) | 2018-01-22 | 2024-11-05 | Spredfast, Inc. | Temporal optimization of data operations using distributed search and server management |
US11102271B2 (en) | 2018-01-22 | 2021-08-24 | Spredfast, Inc. | Temporal optimization of data operations using distributed search and server management |
US11061900B2 (en) | 2018-01-22 | 2021-07-13 | Spredfast, Inc. | Temporal optimization of data operations using distributed search and server management |
US10855657B2 (en) | 2018-10-11 | 2020-12-01 | Spredfast, Inc. | Multiplexed data exchange portal interface in scalable data networks |
US11936652B2 (en) | 2018-10-11 | 2024-03-19 | Spredfast, Inc. | Proxied multi-factor authentication using credential and authentication management in scalable data networks |
US11546331B2 (en) | 2018-10-11 | 2023-01-03 | Spredfast, Inc. | Credential and authentication management in scalable data networks |
US11805180B2 (en) | 2018-10-11 | 2023-10-31 | Spredfast, Inc. | Native activity tracking using credential and authentication management in scalable data networks |
US11601398B2 (en) | 2018-10-11 | 2023-03-07 | Spredfast, Inc. | Multiplexed data exchange portal interface in scalable data networks |
US11470161B2 (en) | 2018-10-11 | 2022-10-11 | Spredfast, Inc. | Native activity tracking using credential and authentication management in scalable data networks |
US10785222B2 (en) * | 2018-10-11 | 2020-09-22 | Spredfast, Inc. | Credential and authentication management in scalable data networks |
US20230342480A1 (en) * | 2018-12-12 | 2023-10-26 | American Express Travel Related Services Company, Inc. | Peer-to-peer confidential document exchange |
US11627053B2 (en) | 2019-05-15 | 2023-04-11 | Khoros, Llc | Continuous data sensing of functional states of networked computing devices to determine efficiency metrics for servicing electronic messages asynchronously |
US11729125B2 (en) | 2020-09-18 | 2023-08-15 | Khoros, Llc | Gesture-based community moderation |
US11128589B1 (en) | 2020-09-18 | 2021-09-21 | Khoros, Llc | Gesture-based community moderation |
US12120078B2 (en) | 2020-09-18 | 2024-10-15 | Khoros, Llc | Automated disposition of a community of electronic messages under moderation using a gesture-based computerized tool |
US11438289B2 (en) | 2020-09-18 | 2022-09-06 | Khoros, Llc | Gesture-based community moderation |
US11438282B2 (en) | 2020-11-06 | 2022-09-06 | Khoros, Llc | Synchronicity of electronic messages via a transferred secure messaging channel among a system of various networked computing devices |
US11714629B2 (en) | 2020-11-19 | 2023-08-01 | Khoros, Llc | Software dependency management |
US11627100B1 (en) | 2021-10-27 | 2023-04-11 | Khoros, Llc | Automated response engine implementing a universal data space based on communication interactions via an omnichannel electronic data channel |
US11924375B2 (en) | 2021-10-27 | 2024-03-05 | Khoros, Llc | Automated response engine and flow configured to exchange responsive communication data via an omnichannel electronic communication channel independent of data source |
Also Published As
Publication number | Publication date |
---|---|
US9143633B2 (en) | 2015-09-22 |
WO2012050947A1 (en) | 2012-04-19 |
US20120089676A1 (en) | 2012-04-12 |
US20120089612A1 (en) | 2012-04-12 |
US20120086989A1 (en) | 2012-04-12 |
US20120089901A1 (en) | 2012-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20120089706A1 (en) | Mobile file uploader | |
US11954046B2 (en) | Storage device authentication | |
US10972467B2 (en) | Certificate based profile confirmation | |
US10284600B2 (en) | System and method for updating downloaded applications using managed container | |
US10409711B2 (en) | Automatically running tests against WEB APIs based on specifications | |
CN107105001B (en) | System for transferring status between electronic devices | |
EP2973147B1 (en) | Policy-based secure web boot | |
US8612773B2 (en) | Method and system for software installation | |
WO2019019646A1 (en) | Method and apparatus for platform to login to website, computer device, and readable storage medium | |
US20120030224A1 (en) | Enabling active content in messaging using automatic data replacement | |
JP2018531459A6 (en) | Techniques for creating virtual private containers | |
JP2018531459A (en) | Techniques for creating virtual private containers | |
US9361315B2 (en) | Image display apparatus, image display system, and image display method | |
EP3065058B1 (en) | A method and a device for flowing data between entities | |
US20140215565A1 (en) | Authentication server, and method authenticating application | |
US10467436B2 (en) | Sharing regulated content stored on non-regulated storage platforms | |
US20170236190A1 (en) | Digital data commerce system and methods with digital media object to cloud redirection | |
CN105635186A (en) | HTTP transmission protocol-based file reading and writing service downloading method | |
US20070226223A1 (en) | Method and apparatus for loading of information to a portable device | |
CN112748831A (en) | Method, device and medium for opening virtual application through desktop shortcut | |
CN117641067A (en) | Television application installation method, device, equipment and medium | |
US20180131822A1 (en) | System and method for digital scanning and importing of documents | |
CN118132077A (en) | Hook function linking method, system, electronic device and storage medium | |
CN116015636A (en) | Authentication method, system, equipment and medium of SaaS platform | |
CN114968390A (en) | Zero trust network system and processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: NOLIJ CORPORATION, MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:COLLINS, JOHN J.;LANGFORD, SEAN J.;REEL/FRAME:027264/0520 Effective date: 20111104 |
|
AS | Assignment |
Owner name: LEXMARK INTERNATIONAL TECHNOLOGY S.A., SWITZERLAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NOLIJ CORPORATION;REEL/FRAME:030513/0337 Effective date: 20120701 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |