US20120089706A1 - Mobile file uploader - Google Patents

Mobile file uploader Download PDF

Info

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
Application number
US13/251,540
Inventor
John J. Collins
Sean J. Langford
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lexmark International Technology SARL
Original Assignee
Nolij Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nolij Corp filed Critical Nolij Corp
Priority to US13/251,540 priority Critical patent/US20120089706A1/en
Assigned to NOLIJ CORPORATION reassignment NOLIJ CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: COLLINS, JOHN J., LANGFORD, SEAN J.
Publication of US20120089706A1 publication Critical patent/US20120089706A1/en
Assigned to LEXMARK INTERNATIONAL TECHNOLOGY S.A. reassignment LEXMARK INTERNATIONAL TECHNOLOGY S.A. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NOLIJ CORPORATION
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection 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/00204Connection 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/00244Connection 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/0035User-machine interface; Control console
    • H04N1/00405Output means
    • H04N1/00408Display of information to the user, e.g. menus
    • H04N1/00464Display of information to the user, e.g. menus using browsers, i.e. interfaces based on mark-up languages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00795Reading arrangements
    • H04N1/00798Circuits or arrangements for the control thereof, e.g. using a programmed control device or according to a measured quantity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00962Input arrangements for operating instructions or parameters, e.g. updating internal software
    • H04N1/00973Input 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits 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/32101Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N1/32106Display, 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/32122Display, 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/44Secrecy systems
    • H04N1/448Rendering the image unintelligible, e.g. scrambling
    • H04N1/4486Rendering the image unintelligible, e.g. scrambling using digital data encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0008Connection or combination of a still picture apparatus with another apparatus
    • H04N2201/0034Details of the connection, e.g. connector, interface
    • H04N2201/0037Topological details of the connection
    • H04N2201/0039Connection via a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0081Image reader
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits 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/3201Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N2201/3225Display, 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.

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

    PRIORITY INFORMATION
  • 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.
  • BACKGROUND OF THE INVENTION
  • 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.
  • SUMMARY OF THE INVENTION
  • 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.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • 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 the document capture server 20;
  • DETAILED DESCRIPTION OF THE INVENTION
  • 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. 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.
  • 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. When one or more selective files are uploaded to the document capture server 20, the upload handler module 22 manages the handling of the one or more selective documents. In particular, 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. In this case, 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. Moreover, 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.
  • 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. At the start of the download process as shown in step 42, 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. To ensure complete end to end security, 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. 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 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. If the appropriate JRE is not present, 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.
  • 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 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.
  • 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 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. As such, 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. Once the user expands or activates the local file system browsing window, 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. 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. 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 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. Along with system file names, 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. 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 in step 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, 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.
  • The browser-based uploading process 75 as described in FIG. 3 supplies and works in parallel with the file uploading transmission process used by the invention. FIG. 4 is a process flow 110 illustrating the steps performed by file upload applet 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 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.
  • 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. Once the list of selected files is constructed for a particular user desktop, 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. 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. 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 in step 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 in step 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, 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. If a valid nonce is received, then 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. As the byte stream is read, 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.
  • 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 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. Once the permanent file is created, 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.
  • 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.
US13/251,540 2010-10-12 2011-10-03 Mobile file uploader Abandoned US20120089706A1 (en)

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,536 Abandoned US20120089612A1 (en) 2010-10-12 2011-09-28 Flexible fully integrated real-time document indexing
US13/247,337 Abandoned US20120089901A1 (en) 2010-10-12 2011-09-28 High performance cross platform document viewing
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,536 Abandoned US20120089612A1 (en) 2010-10-12 2011-09-28 Flexible fully integrated real-time document indexing
US13/247,337 Abandoned US20120089901A1 (en) 2010-10-12 2011-09-28 High performance cross platform document viewing
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 (27)

* Cited by examiner, † Cited by third party
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
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
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
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
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
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
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

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US10599753B1 (en) 2013-11-11 2020-03-24 Amazon Technologies, Inc. Document version control in collaborative environment
US9542391B1 (en) 2013-11-11 2017-01-10 Amazon Technologies, Inc. Processing service requests for non-transactional databases
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
US20230418891A1 (en) * 2022-06-24 2023-12-28 Microsoft Technology Licensing, Llc Transferring link context from desktop application to browser

Citations (20)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (21)

* Cited by examiner, † Cited by third party
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 (42)

* Cited by examiner, † Cited by third party
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
US10547664B2 (en) * 2013-03-21 2020-01-28 Oracle International Corporation Enable uploading and submitting multiple files
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
WO2016022410A1 (en) * 2014-08-04 2016-02-11 Ajev Ah Gopala Functional and data capsules
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
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
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
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
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
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
US11570128B2 (en) 2017-10-12 2023-01-31 Spredfast, Inc. Optimizing effectiveness of content in electronic messages among a system of networked computing device
US11687573B2 (en) 2017-10-12 2023-06-27 Spredfast, Inc. Predicting performance of content and 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
US11765248B2 (en) 2017-11-22 2023-09-19 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
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
US11496545B2 (en) 2018-01-22 2022-11-08 Spredfast, Inc. Temporal optimization of data operations using distributed search and server management
US11601398B2 (en) 2018-10-11 2023-03-07 Spredfast, Inc. Multiplexed data exchange portal interface in scalable data networks
US10855657B2 (en) 2018-10-11 2020-12-01 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
US11936652B2 (en) 2018-10-11 2024-03-19 Spredfast, Inc. Proxied multi-factor authentication using 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
US10785222B2 (en) * 2018-10-11 2020-09-22 Spredfast, Inc. 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
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
US11128589B1 (en) 2020-09-18 2021-09-21 Khoros, Llc Gesture-based community moderation
US11729125B2 (en) 2020-09-18 2023-08-15 Khoros, Llc Gesture-based community moderation
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
US20120089676A1 (en) 2012-04-12
US20120086989A1 (en) 2012-04-12
US20120089612A1 (en) 2012-04-12
US20120089901A1 (en) 2012-04-12
WO2012050947A1 (en) 2012-04-19
US9143633B2 (en) 2015-09-22

Similar Documents

Publication Publication Date Title
US20120089706A1 (en) Mobile file uploader
US11954046B2 (en) Storage device authentication
US10972467B2 (en) Certificate based profile confirmation
US10409711B2 (en) Automatically running tests against WEB APIs based on specifications
US9674225B2 (en) System and method for updating downloaded applications using managed container
CN107105001B (en) System for transferring status between electronic devices
EP2973147B1 (en) Policy-based secure web boot
US9860187B2 (en) Enrolling a mobile device with an enterprise mobile device management environment
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
WO2014194774A1 (en) System and method for creating mobile application store
US20170371625A1 (en) Content delivery method
JP2018531459A (en) Techniques for creating virtual private containers
JP2018531459A6 (en) Techniques for creating virtual private containers
CN108351923B (en) Thresholds associated with scripts executable by a unified extensible firmware interface system
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
US20070226223A1 (en) Method and apparatus for loading of information to a portable device
US20220038584A1 (en) Methods and systems for customization of a secured kiosk device
CN112748831A (en) Method, device and medium for opening virtual application through desktop shortcut
CN117641067A (en) Television application installation method, device, equipment and medium
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