US20100185614A1 - Shared Internet storage resource, user interface system, and method - Google Patents

Shared Internet storage resource, user interface system, and method Download PDF

Info

Publication number
US20100185614A1
US20100185614A1 US12/229,717 US22971708A US2010185614A1 US 20100185614 A1 US20100185614 A1 US 20100185614A1 US 22971708 A US22971708 A US 22971708A US 2010185614 A1 US2010185614 A1 US 2010185614A1
Authority
US
United States
Prior art keywords
file
server
metadata
network
database
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
US12/229,717
Inventor
Brett O'Brien
Sean Whiteley
Lucas McGregor
Martin Hald
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.)
Individual
Original Assignee
Individual
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
Priority claimed from US09/570,583 external-priority patent/US6351776B1/en
Priority claimed from US11/089,397 external-priority patent/US7496578B2/en
Application filed by Individual filed Critical Individual
Priority to US12/229,717 priority Critical patent/US20100185614A1/en
Publication of US20100185614A1 publication Critical patent/US20100185614A1/en
Priority to US14/094,671 priority patent/US9378212B2/en
Priority to US15/194,399 priority patent/US20160306821A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/134Distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Definitions

  • This invention relates to resources on computer networks, particularly the Internet, and more particularly to a file storage and retrieval system that is available worldwide via the to Internet which additionally allows a direct transfer of Internet files to an Internet storage, retrieval, and sharing resource.
  • the present invention acts in the manner of a “Internet hard disk” or “Internet hard drive” to provide online storage and retrieval resources for users.
  • the Internet is the worldwide computer network making available a vast number of computer and information resources to institutions and individuals.
  • a significant part of the Internet is the worldwide web that allows for web pages to be written in HTML and transmitted upon demand throughout the Internet.
  • XML Extensible Markup Language
  • SGML Standard Generalized Markup Language, ISO standard 8879:1986).
  • FTP File Transfer Protocol
  • Java®-related systems allow for object-oriented programming whereby objects or “beans” allow the passing of self-contained modules with associated processing methods that are used to act upon the accompanying data. Consequently, the “bean” can travel through a network and, under appropriate circumstances, have certain processes activated allowing manipulation of the information contained in the bean.
  • Enterprise JavaBeanTM allows for clustering of servers such that the bean is given independence from specific servers on the system, yet can be activated or “instantiated” such that error recovery is easier, the system as a whole is more robust, and processing of the bean can be performed asynchronously so that all events do not have to happen at a pre-set time or serially/one after the other.
  • Enterprise JavaBeansTM/EJBs allow serialization of beans. Such serialization allows the bean to be represented as a data stream of determined length. In essence, this is just a data file that is interpreted in the proper context, much the same as any electronic information file. Such serialization of the EJB allows it to be replicated and stored in case of catastrophic failure of a preferred server or the like.
  • URL Uniform Resource Locator
  • the file may have links, or pointers, to other resources including, images, graphics, audio or video streams, or other resources.
  • Mark-up language is used on the Internet in an attempt to provide an open-ended structure by which information of any sort that can be stored electronically (or perhaps even otherwise) can be made available to an end user on demand. As such, the Internet is seen as a powerful tool making almost any information resource available to any computer or to any person using a computer.
  • the present invention addresses this demand by providing means by which files and other data may be stored on the Internet and made available worldwide through the Internet.
  • the present invention provides an “Internet hard drive” or “Internet hard disk” to and from which files may be stored and retrieved.
  • Internet hard drive or “Internet hard disk”
  • X:Drive the present invention allows users to store files of foreseeably any type on a resource available throughout the Internet. Once available to the Internet, the files stored on the user's X:Drive are available to the same extent as the Internet, namely worldwide.
  • X:Drive refers both to the system as a whole and to the individual space allocated to an individual user. Consequently, reference is sometimes made herein to the X:Drive system or to X:Drive to refer to the system as a whole. At other times, the term X:Drive indicates the user's individual X:Drive, or allocated space. The different uses are indicated by context.
  • a central or distributed storage facility is provided. First and foremost is the high-speed access storage facility where files are actually stored. Such individual storage areas may be allocated in individual limited allotments, or be left open-ended and limited only by the capacity of the physical devices responsible for storage. Metadata, that is data about the files stored on the network hard drives or other storage devices, is generated and stored in a separate database.
  • the database of metadata (the metadatabase) and the network-attached storage facility may be linked by an internal network. It is possible for the database to be stored on the same network storage facility or device on which user files are also stored. System management may select whether or not to distribute or consolidate the database with the network storage.
  • a web server that serves to generate and transmit the information to the Internet, and ultimately the user.
  • the web server files may pass through a load balancer and/or firewall before proceeding on to the Internet. The same is similarly true for information coming into the web server from the Internet.
  • XML may be used in combination with JavaScript or the like to provide two means by which the Shared Internet Storage Resource of the present invention may be achieved.
  • the first is a JavaScript object which may be transmitted to a browser program running on the user's computer.
  • Such browsers may include ones that are well known, including Netscape® Communicator and Microsoft® Internet Explorer.
  • a stand-alone application may be installed and stored upon the user's computer. This stand-alone application serves to intermediate the user commands with the web server and ultimately the metadatabase in the Internet storage device.
  • the user interface may be a client program that meshes seamlessly with standard user presentations in WYSIWYG (what you see is what you get) graphic user interfaces (GUIs).
  • GUIs graphic user interfaces
  • a drive may be shown on the user's computer and may be denominated “x:” (or “y:” or “z:”, etc., depending upon user preferences). The user can then read from or write to the x: ⁇ Shared Internet Storage Resource drive much in the same way as you would the local a: ⁇ and c: ⁇ hard drive.
  • the Shared Internet Storage Resource of the present invention allows for direct Internet-to-Internet file transfer to a user's allocated X:Drive file space in a process referred to as “Skip the Download” or “Save to My Xdrive.”
  • a method for transferring, data from a first network resource to a second network resource at the direction of a user includes the step of submitting a first file location indicating data to be transferred to the second network resource where the second network resource is a subscriber-based system of network-available data storage space.
  • the user is verified as a subscriber to or member of the second network resource and the second network resource requests the data at the first file location from the first network resource. Additional steps include determining if the requesting of data requires authentication, determining if personal credentials of the user have previously been stored or are otherwise available, and if the personal credentials are available, using the personal credentials to authenticate the request of data.
  • the user's local environment is queried for potential credentials of the user and using them for the data request. If one or more of the potential credentials are accepted, and if allowed by the user, one or more of the potential credentials are securely stored for reuse by the user for an associated domain of requests.
  • the first network resource transmits the data to the second network resource via Internet upon authentication.
  • a display is made to the user of the status of transmission of the data from the first network resource to the second network resource.
  • the data is evaluated and determination is made if the data includes a location or other identifier of a related Internet or other file. Steps are takes to identify the location and to request the file, with the second network resource evaluating the data, identifying the location, and requesting the file. If multiple related files are requested, the files may be stored in a related and useful fashion in the user's account.
  • the scope of an expanded request may be limited to a reasonable number of files with the user optionally allowed to set the scope of such limitation.
  • the second network resource may notify the user of successful transfer upon successful reception of the data. The process provides a system for the user so that the user may use the first and second network resources to obtain and control the data.
  • a client-server system for a network-based data storage and manipulation system may include a client system having a file access service and a file manipulation service, as well as a server that may provide network-based data storage resources and responses to requests transmitted by the client system as the server may effect such requests.
  • the file access service may include both a request processing layer for processing requests and a first network I/O layer which transmits the requests to the server.
  • the first network I/O layer may transmit a signal to the server to indicate the presence and nature of at least one of the requests to the server and the server may respond to the first I/O layer signal by transmitting one or more additional signals to interested components of the request in order to broadcast the first I/O layer's signal.
  • the server may determine if a client request is one for metadata regarding data stored upon the server.
  • the file manipulation service may include an XML parser that parses the metadata from the server.
  • the file manipulation service may also include a data structure that receives and preserves parsed data from the XML parser.
  • the file manipulation service may also include a data display layer operating upon and displaying the parsed data such that metadata may be displayed to inform about data stored upon the server.
  • the server may provide the metadata if the client request is for metadata and may transmit the metadata to the file manipulation service.
  • the server may provide a second network I/O layer which is engaged when the requests are not for metadata.
  • the second network I/O layer may transmit requests for file action and the server may also provide a resource access layer that may receive transmissions from the second network I/O layer and may effect the requests.
  • the resource access layer may engage when the requests are for metadata with the resource access layer obtaining and transmitting the metadata.
  • the server may provide a metadata compiler in the form of an XML generator with the metadata compiler receiving the metadata from the resource access layer, compiling the metadata, and transmitting the compiled metadata to the client system;
  • the second network I/O layer may transmit a signal to the server indicating the presence and nature of at least one of the requests to the server and the server may responds to the second I/O layer signal by transmitting one or more additional signals to interested components of the request in order to broadcast the second I/O layer signal.
  • the second network I/O layer may support interpretation of the request transmitted by the client system as the second network I/O layer may enable interpretation of the request to promote a user's actions or effect the user's preferences.
  • the server may perform a file action if the client request is not for metadata, and the server may update the metadata and may transmit the metadata to the file manipulation service such that the server operates, and the client system presents, operations on the server in a manner similar to operations local to the client system.
  • FIG. 1 is a schematic view of the X:Drive system of the present invention. The different tier levels are shown, along with the marking indicia of a circle, triangle, square, and star/asterisk corresponding to the same indicia in FIG. 3 .
  • FIG. 2 is a schematic view of Java® library objects operating in the transactions or data exchanges occurring in the present invention.
  • FIG. 3 is a detailed flow diagram showing the operation of the present invention.
  • Indicia including a circle, a triangle, a square, and a star/asterisk correspond to tier levels shown in FIG. 1 and indicate the level of operation of the steps shown in the flowchart of FIG. 3 .
  • FIG. 4 is a flowchart showing the operation of the XDFile Enterprise JavaBean' (EJB) used in the present invention.
  • FIG. 5 is an overview of the Java® architecture used to effect transactions in the present invention.
  • FIG. 6 is an alternative schematic diagram of the Java® architecture shown in FIG. 5 .
  • FIG. 7 is a schematic and flowchart diagram showing the IO (input/output) for the database transactions of the present invention.
  • FIG. 8 is a schematic diagram of the data recovery process as effected by the FileIO component of the XDFile object used in the present invention.
  • FIG. 9 is a schematic depiction of failure recovery elements.
  • FIG. 10 is a schematic and flowchart diagram showing virus protection effected in the present invention.
  • FIG. 11 is a schematic and flowchart diagram of the Internet-to-resource transfer (“Skip the Download”/“Save to My Xdrive”) as set forth in the present invention.
  • FIG. 12 is a schematic and flowchart diagram of the client system used in the present invention.
  • FIG. 13 is a Windows' desktop display showing both the client and web-browser applications.
  • FIG. 14 is a display of a web browser pointing to a user's X:Drive.
  • Appendices 1, 2, and 3 provide the source code for, respectively, the Web Site/Server Code of the X:Drive Shared Internet Storage Resource system of the present invention; the Windows Client Code; and the JavaScript Listings for the present invention. These Appendices are incorporated herein by this reference thereto as if set out in their entirety. It is contemplated that these Appendices provide a full, complete, and enabling disclosure to those of ordinary skill in the art or less by which the present invention may be achieved.
  • the reference numbers used in conjunction with the figures are numbered such that the 100's place of the number indicates the number of the drawing figure.
  • the 600 series of reference numbers refers to FIG. 6
  • the 200 series refers to elements shown in FIG. 2 .
  • the present invention provides a method by which an Internet hard disk or hard drive may be achieved in a manner similar to a hard disk or hard drive available locally to the individual on the local computer. Additionally, as Internet use becomes a more familiar and everyday event for people, the resources provided by the present invention may allow the actual use of the Internet hard drive or X:Drive set forth herein to act as such a resource with the files being called up for execution for programs available and processed either locally and/or over the Internet. In light of the foregoing, it can be seen that the present invention may act as a bridge or may pave the way towards a more inter-networked community for the use and processing of electronic information.
  • the virtual disk drive provided by the present invention may be selectively shared with others or kept entirely private. Additionally, and as set forth in more detail below, the use of a metadatabase provides quicker access and the ability to distribute the information regarding the legion of X:Drive accounts over a wide geographic area, enabling redundant preservation of user information by server clusters implementing Enterprise JavaBeans® (EJBs), or otherwise.
  • EJBs Enterprise JavaBeans®
  • X:Drive The Shared Internet Storage Resource, User Interface System, and Method set forth herein is generally referred to as “X:Drive.” Context reveals whether or not the term X:Drive is referring either to the system as a whole or the individual's own account.
  • the X:Drive system of the present invention uses network application practices and may rely upon Java® Enterprise JavaBeansTM (EJBs) to enable distributed and clustered computing and file management environment.
  • EJBs Java® Enterprise JavaBeansTM
  • the X:Drive system of the present invention also contemplates the use of open programming standards such as XML and Web-DAV (Web-based Distributed Authoring and Versioning).
  • open programming standards such as XML and Web-DAV (Web-based Distributed Authoring and Versioning).
  • the use of such technology is foreseen as providing wide support by the user community as well as speed and development, refinement, and polishing.
  • the X:Drive system 100 has a multi-tiered, network-based application infrastructure.
  • the multi-tiered nature of the system allows it to separate operations in an efficient manner.
  • the network-based aspects of the X:Drive system allows it to disperse resources geographically as well as allow a high degree of communication between different aspects or facets of the system.
  • the X:Drive system may be considered enabling technology as a medium that is independent of the applications and uses to which it is applied.
  • the X:Drive system is currently based on object-oriented principles with each application layer responsible for a discreet functionality or aspect of operation. Both hardware and software resources may then successfully experience heavy re-use with both scalability and flexibility inherently provided. While these advantageous aspects of the X:Drive system are achieved, as a multi-tiered system, X:Drive involves a higher cost of complexity and planning. Thus, those who would seek to wrongly copy the X:Drive system would do so without accruing the great expense in time and money necessary to achieve the present X:Drive system. They would ride on the backs of those who not only developed the system, but also those who got it to work right and in a commercially-reliable manner.
  • tiers in the X:Drive system of the present invention is realized in both the network systems and the application systems involved in achieving X:Drive.
  • tiers are present between the client 102 and the ultimate data resources 104 .
  • the client 102 and the data resources 104 are one or more layers or tiers, accomplishing the following.
  • the client 102 may be coupled to a public network 106 (such as the Internet) that may include a DNS redirector 108 as well as a load balancer 110 .
  • the public network 106 may then lead into a web server network 120 .
  • the web server may then lead into an application network 122 , which in turn leads into an EJB (Enterprise JavaBeansTM) network 124 .
  • the EJB network 124 may lead into a transaction network 126 , which in turn leads into the data resources 104 .
  • the client 102 may be either a web- or browser-based application or an application resident on a WindowsTM X system (the X indicating the version of Windows applicable, i.e., Windows® 95, Windows® 98, Windows® 2000, etc.).
  • Requests generally originate from the client as the X:Drive system 100 is one that operates at the command of users directing the client program.
  • Client requests may be made versus the Hypertext Transfer Protocol (HTTP) GET/POST function.
  • HTTP Hypertext Transfer Protocol
  • the GET/POST operation may be augmented with Web-DAV extensions to the HTTP protocol.
  • Commands are transmitted by the client 102 are sent to the DNS redirector 108 , which then isolate the request via a proxy server process.
  • a proxy server process prevents a direct connection between the client 102 and the other downstream resources in the X:Drive system 100 .
  • Such proxy serving prevents inadvertent or mischievous disruption of service by allowing only certain commands or information to be propagated through the X:Drive system 100 . This prevents mischievous users from disrupting the system as such rogue commands are intercepted by the proxy server and denied further propagation.
  • the request by the client 102 is then directed to the most appropriate facility.
  • the X:Drive system is scalable, facilities may be distributed geographically, even over the face of the globe. This allows, at the outset, more efficiencies to take place in the X:Drive system 100 of the present invention so that more users may be served more quickly and so that the advantageous features of the X:Drive system may be realized by the widest number of users in the quickest way possible.
  • X:Drive system 100 Due to the construction and architecture of the X:Drive system 100 , a number of machines/servers running a number of different processes may be distributed over a wide area. Broad band or high-speed access as provided by Internet backbone or the like may allow the X:Drive system to be effectively carried out over the entire face of the planet. The scalability and flexibility of the present invention augments its utility. Such advantages are further advanced by efficient use of the resources so that greater and better service can be provided.
  • the DNS redirector 108 Upon receiving the request from the client 102 , the DNS redirector 108 transmits the requests on to a load balancer which may provide a second proxy process under HTTP protocol and transmit the request to the least-loaded and most-available web server on an internal, non-routable, or other server network 120 .
  • the web server network 120 may be non-routable and may comprise a number of individual machines or servers processing the HTTP or other requests from one or more load balancers 110 .
  • Each of the web servers 140 in the network 120 may handle HTTP requests for static content, such as HTML and graphic files.
  • the web servers may proxy all requests for dynamic content to a Java® application network 122 .
  • the Java® application networks may be non-routable.
  • the use of non-routable facilities in the X:Drive system 100 of the present invention indicates their operation in a local area network (LAN).
  • LAN local area network
  • the individual networks themselves may be available such that a web server 140 in Illinois may pass requests for dynamic content to Java® application clusters 122 in Wisconsin.
  • Each Java® application cluster 122 may be composed of a number of Java® application servers 142 with each server 142 handling display functions necessary for user accounts, including the generation of XML, HTML, and other instructing displays for either browser or application clients 102 . If a Java® application cluster 122 receives a resource request from the web server tier 120 , the Java® application cluster 122 will pass the resource request onto the Enterprise JavaBeanTM EJB network tier 124 .
  • the EJB network 124 may also be non-routable and operate upon a LAN.
  • the EJB network may be an EJB cluster having a number of EJB servers 144 .
  • Each EJB cluster handles the business logic and resource access methods and protocols required for the resource requests and management.
  • the EJB cluster (EJBC) caches memory of common resources such as the pooling of data connections and the like, as well as data objects. Resource access requests and transmissions are then passed out to the transaction network tier 126 , which may also be non-routable.
  • the transaction network tier 126 has a transaction processor 146 which controls, operates, and guarantees access and transactions on different resources.
  • NFS Network File Server
  • databases 152 comprise records of information regarding each of the files (metadata) stored by the NFS disk arrays 150 under the X:Drive system 100 .
  • file information and user queries can be handled much more quickly as display components of the present invention are important to provide the user information regarding the status and availability of the files stored on the X:Drive system 100 . Consequently, although a user may have a hundred separate files in an X:Drive directory, he or she may be only interested in one. Consequently in order to provide the user the information necessary to make the decision as to which file to receive, move, rename, delete, or store, the use of the database provides a very quick and easy means by which such user requests can be satisfied.
  • the actual use of the file storage facilities on the NFS disk arrays 150 or the like may comprise only a part of the operations of the present invention. Having the ability to display, select, and determine file operations is one of the useful advantages provided by the X:Drive system 100 of the present invention.
  • a circle is associated with the client 102 , a triangle with the Java® application cluster 122 , a square with the EJB network 124 , and a star/asterisk with the transaction network.
  • These non-numerical indicia correspond to those set forth in FIG. 3 .
  • the non-numerical indicia provide an easy or visual means by which the operation of the different tiers can be indicated in FIG. 3 .
  • FIG. 2 shows a logic diagram in sequence structure for the Java® library objects used in the X:Drive system 100 of the present invention.
  • the prefix XD indicates “X:Drive.”
  • the steps/status indicators of XDError stands for X:Drive Error
  • XDXML stands for X:Drive Extensible Markup Language.
  • the use of the term XDFile indicates X:Drive File as a Java® library object effecting and intermediating the file operations of the present invention.
  • the Java® system 200 allows operations to be performed on the metadatabase 202 and the operating system (OS) File System 204 .
  • the XDFile object 210 may activate or instantiate the Database.Search object 216 .
  • the XDFile object 210 may be activated, or invoked, by the FileAction object 220 .
  • the FileAction object 220 may also activate the Database.Search 216 and Database.BigSearch 222 objects.
  • Operations of the Java® library objects in the system 200 as shown in FIG. 2 may be contingent upon the SessionSecurity object 224 , which may instantiate or use the Database.Search object 216 and/or the Database.Transaction object 214 .
  • the SessionSecurity object 224 may return a separate object 226 to the UserData object 230 .
  • the Database object 236 may inherit or transmit from its Transaction 214 , Search 216 , and/or BigSearch 222 objects.
  • the information generated may then be transmitted to the Database 202 for meta-information and the OS File System 204 for the actual data.
  • an XDError object 240 may serve to handle the error while a successful operation may be returned in the form of the XDXML object 242 .
  • the Database 202 may contain intelligence or programming for connection to SQL databases and the like. Options regarding the operations of the database 202 may be read from a configuration file.
  • the Database object 236 may be able to connect multiple databases for redundancy in the case of repeated or redundantly archived information, or for functionality in order to connect to that database which responds most quickly to the requests and commands.
  • the Database object 236 determines which database operation to perform and/or to which database to send operations based on the type of request it receives. For example, transaction requests may demand a separate database from those of regular query and BigSearch 222 requests. In order to maintain more efficient operation, the Database object 236 generally sends session users to the same database whenever possible so that latency and database replication is not passed on to the user.
  • the Database.Transaction object 214 is able to handle larger SQL statements such as those that would cause a load on the database.
  • the Database.Transaction object 214 may spawn children classes that handle the transaction logic in order for more efficient operation.
  • the Database.Search object 216 is designed to handle smaller SQL statements and has children classes for specific search types, such as those along anticipated and common fields or types of information.
  • the Database.BigSearch object 222 handles larger, non-transactional SQL statements such as those used for reports in system accounting, monitoring, or otherwise. Children classes of the Database.BigSearch object 222 would handle specific large searches such as those that might be implemented on a monthly or other periodic basis.
  • the FileIO object 212 inherits and overrides Java®'s data file object.
  • the file object contains logic to engage multiple disks or resources for redundancy and/or functionality and contains the functionalities necessary to manipulate files on the OS File System 204 .
  • the FileIO object 212 may react to the JMS (Java Messaging Service) events triggered by events on the disks of the OS File System 204 .
  • JMS Java Messaging Service
  • one or more monitoring objects may be used to gather pertinent status information regarding the OS File System 204 .
  • the FileIO objects query the common monitoring objects to determine the state of the system.
  • the monitoring object is denominated the Mount Point Status bean, or MPS bean, 534 ( FIGS. 5 and 9 ).
  • the XDFile object 210 uses FileIO 212 to handle the file system transactions.
  • the XDFile object 210 handles database file transactions.
  • the XDFile object 210 coordinates transactions for both the FileIO object 212 and the Database.Transaction file object 214 to keep both synchronized and to handle failure should it occur.
  • the UserData object 230 holds user data for a session of the X:Drive system.
  • a session is basically a span of time for which a user engages the X:Drive system.
  • Methods are included in the UserData object 230 to manipulate the user status, so that the activity may be monitored, as well as whether or not the user has logged in.
  • the SessionSecurity object 224 uses web logic session mechanisms to create the UserData object 230 . It does this by returning a separate object 226 .
  • the SessionSecurity object 224 authenticates a user's login and expires old sessions with re-direction of such old sessions to appropriate pages.
  • the FileAction object 220 may have children classes and contain logic for determining request types such as user requests, administration requests, etc. Tests for file action requests such as quotas and permissions, etc., may also be handled by the FileAction object 220 .
  • the FileAction object 220 accesses the file methods in the XDFile object 210 .
  • the XDError object 240 reads a configuration file of error lists which gives each error an I.D. number. Such error lists preferably pivot on the language in which the X:Drive system 100 of the present invention is programmed. Such lists should also be able to pivot on the partner with which the X:Drive system 100 operates. Default values for the lists may be to X:Drive errors in the English language.
  • the XDError object 240 preferably holds errors in a stack and returns any such errors from the stack. Additionally, the XDError object 240 preferably accepts new errors by code or by message.
  • the XDXML object 242 accepts an object and delivers as output an XML representation of a transaction or status requested by the user or client software.
  • FIG. 3 shows the data flow through the X:Drive system 100 of the present invention, particularly that as reflected by the tiered configuration shown in FIG. 1 .
  • a request is sent by HTTP POST/GET command at step 302 .
  • Web-DAV protocol may also be used and is currently considered preferable.
  • the send request is implemented on the client 102 and is evaluated by the web server 120 as a request for static content in step 304 . If the request is for static content, the file is served by the web server 120 at step 306 , and the file is displayed at step 308 by the client 102 .
  • a proxy request is issued by the web server network 120 to the Java® application cluster 122 at step 312 .
  • the request is received by the Java® application cluster (JAC) 122 and submitted to a sery let at step 314 .
  • the Java® application cluster (JAC) 122 then parses the request header at step 316 .
  • the Enterprise JavaBean' (EJB) network 124 then authenticates the request at step 318 . If authentication cannot be achieved, process control is then re-directed to the re-login page via the JAC network 122 at step 320 . If authentication succeeds at step 318 , the JAC network 122 then parses the multi-part form data at step 324 .
  • the JAC network 122 determines the type of request at step 326 .
  • the request is then submitted to the FileAction EJB 220 at step 328 .
  • the EJB network 124 then evaluates the request at step 330 in order to ensure that all the business rules and other applicable limitations are met, such as quota limitations, permissions, and the like. If the evaluation is successful at step 330 , the EJB network 124 then submits the request to the XDFile EJB 210 at step 332 and on to the transaction processor 146 . The appropriate actions are then taken via the transactional database 152 and the disk arrays 150 . If the business rule evaluation 330 fails, an error may be generated and, as for other errors in the data flow process of FIG. 3 , a session error object 334 may be generated in a session error stack 336 .
  • step 340 In effecting the data transfer to the ultimate system resources 104 , evaluation is made as to the operation in step 340 . If the operation is not a data read operation such as a directory listing or file read, the error stack is checked at step 342 . If an error has occurred, the error status is sent to the client 102 at step 344 . The client 102 then accepts the transmitted XML code and renders the appropriate display for the user at step 346 . If the error stack evaluation step 342 does not reveal any error, a success message is generated at step 350 , and the subsequently-generated XML is received by the client 102 and displayed by the user at step 346 .
  • the error stack evaluation step 342 does not reveal any error
  • a success message is generated at step 350 , and the subsequently-generated XML is received by the client 102 and displayed by the user at step 346 .
  • the error stack is checked at step 352 much in the same way as it was at step 342 . If an error has occurred, the error status is sent to the client 102 at step 354 . The error status message is then received as XML code by the client 102 at step 346 and displayed to the user. If at evaluation step 352 the error stack reveals no errors, the evaluation is then made by the EJB cluster as to whether or not the operation is a file read at step 360 . If the operation is a file read, the data stream is converted to a network stream and transmitted as a file to the client 102 by the Java® application network 122 at step 362 . The data is then accepted by the client 102 and served to the user at step 364 .
  • the action is a request for file metadata such as a directory listing indication of file attributes or the like.
  • the metadata retrieved from the database 152 is then translated into XML format by the EJB cluster 124 .
  • the XML data is then transmitted to the JAC network 122 , which encapsulates the XML from the network and sends it on to the client at step 368 .
  • the JAC network 122 then sends the encapsulated XML to the client 102 for rendering and display at step 346 .
  • users utilizing the client system 102 to connect to the X:Drive system 100 do so via the public Internet and then submit requests and receive replies effecting or indicating the user's requests.
  • Requests for file manipulations, such as uploads, downloads, copies, moves and updates travel through each functional layer of the X:Drive system 100 .
  • the core of the EJB cluster, and as indicated in FIG. 2 , the XDFile EJB provides core effectiveness in the present X:Drive system 100 .
  • the XDFile EJB 210 is a multi-tiered component.
  • the X:Drive system 100 stores file metadata (such as directory structure, file name, file attributes, etc.) in the database 152 for fast retrieval, sorting, searching, linking, and other capabilities beyond standard file systems.
  • the actual file data is stored by the X:Drive system 100 in network-attached storage units or storage area networks such as those shown in FIG. 1 , the NFS disk arrays 150 .
  • X:Drive uses the XDFile object 210 to manipulate both files and file data in two-phase committal transactions.
  • FIG. 4 shows the details of these transactions.
  • the XDFile EJB system 400 allows entry at any one of the five darkened triangles. If the action is to be a copy, entry is made at the copy entry point 402 . If the action is a file read, entry is made at the file read point 404 . If the action is a file write, entry is made at the file write point 406 . If the action is a file delete, entry is made at the delete point 408 . If the action is a file move, entry into the XDFile EJB 210 is at the move entry point 410 .
  • step 420 the evaluation of the operation occurs at step 420 , where determination is made whether or not the action is a read transaction. If the action is a read transaction, program flow proceeds onto the read action and entry point 404 . The corresponding database action 424 is then taken. As the action is a read transaction, the corresponding database record is read and evaluation is made as to whether or not the database action, in this case read action, has been successful at step 428 . If the read action is not successful, the changes are then rolled back, if any, at step 432 . An error is then returned at step 436 and the XDFile object awaits further instructions.
  • the FileOS Action 440 is a read action, and the file may be read into a temporary buffer or other memory space.
  • the FileOS Action is evaluated for success at step 444 . If the FileOS Action step 440 was unsuccessful, a fatal error is returned at step 448 , and the changes, if any, are rolled back at step 452 . If the evaluation at step 444 was successful, evaluation is made as to whether or not the action was a copy read at step 456 . If the action was a copy read, return is made to the copy entry point 402 at step 464 in order to perform the write portion of the copy function.
  • evaluation is made at step 468 to determine if the action was a move/copy action. If the action was a move/copy action, control is then directed towards the move entry point 410 via step 472 in order to delete the original file as the success of the move/copy transaction at evaluation step 444 indicates the success of the file write step of the FileOS Action step 440 . Program control is then turned over to the move/action entry point 410 so that the original file may be deleted at its original location via the delete entry point 408 .
  • move/copy evaluation step 468 indicates that not only was the action not a copy read, it was also not a move/copy, then the action is committed to the system at the ultimate system resource level 104 at step 480 and an indication of success is then returned at step 484 .
  • step 490 Upon reaching the move entry point at 410 , evaluation is made at step 490 to determine whether or not the transaction is a copy transaction. If it is a copy transaction, the program then enters and executes the copy entry point 402 . If not, the delete entry point 408 is activated to effect the remainder of the move transaction.
  • the copy action 402 and the move action 410 require multiple loops through the XDFile EJB 210 in order to effect their operations.
  • the initial read must be made successfully with the evaluation step 456 then prompting the write step to occur by the return to the copy entry point at step 464 .
  • the read transaction step 420 is then evaluated in the negative and the write entry point/action 406 is invoked with the database action occurring at step 424 to write the new information to the transactional database 152 and, if successful, the FileOS write action for the data at step 440 .
  • the evaluation at step 456 as to whether or not the action is a copy read is answered in the negative as is the evaluation of the transaction as to whether or not is a copy transaction executed under the move action at step 468 .
  • the resources are then committed, temporary resources are released, and the success indication is returned at step 484 .
  • a copy transaction 402 the loop is first made through the read function 404 and then the write function 406 .
  • a copy transaction is first executed with the two-loop operation as set forth previously.
  • the delete action 408 is implemented in order to erase the original file and its file data.
  • the transaction is neither a read under the copy command at step 456 nor a copy under the move command at step 468 . Consequently, the move function has successfully completed, the system resources are committed at step 480 , and a success indicator is returned at step 484 .
  • FIG. 5 an overview of the Java® architecture of the X:Drive system 100 of the present invention is shown.
  • the Java® architecture 500 shown in FIG. 5 may generally arise from the client 102 .
  • a file action container 504 has certain attributes and operations as do the other beans of the architecture 500 . Contained within the file action container 504 are a number of stateful, stateless, and entity beans, as well as other containers having other beans.
  • the file action container 504 contains two stateful beans: a user date stateful bean 506 and a process request stateful bean 508 .
  • the user data stateful bean 506 has a user info entity bean 510 and a security stateless bean 512 .
  • the process request stateful bean 508 contains a single container, the XDFile container 520 .
  • the XDFile container 520 contains three (3) beans and a container.
  • the three beans of the XDFile container 520 are: a database IO stateful bean 522 , a file IO stateful bean 524 , and an admin stateful bean 526 .
  • the container is a recovery container 530 which contains a recovery IO stateful bean 532 , a mount status stateful bean 534 , a recovery admin stateful bean 536 , and a recovery process stateful bean 538 .
  • stateful beans generally carry information about the state of the bean, process, or otherwise as useful information for the ends and operations of the X:Drive system 100 of the present invention.
  • Stateless beans generally carry no state information, and entity beans are generally for information or identification only.
  • Java® beans are objects intended to carry both data and processes in association with one another, it is up to the operations of the X:Drive system 100 of the present invention to selectively and appropriately activate the beans and enable the proper actions to take place.
  • the file action container 504 is shown in alternative representation in FIG. 6 .
  • a client 102 issues a user authentication request 602 and an operation request 604 .
  • the user authentication request 602 is passed into the user data stateful bean 506 in the file action container 504 .
  • the operation request 604 is passed into the process request stateful bean 508 .
  • the user information entity bean 510 then transmits information to a user information database 610 , as does the security stateless bean 512 .
  • the process request stateful bean uses a first property file 612 that is loaded upon deployment of the XDFile container 520 .
  • the property file is loaded into the admin stateful bean 526 for use with the OS file system 204 .
  • a Java® transaction server 620 may operate in conjunction with the database 152 as well as the OS file system 204 in order to process the operation request 604 .
  • the second property file 630 may be loaded by the recovery admin stateful bean 536 upon the bean's deployment.
  • the recovery 10 stateful bean 532 and the recovery admin stateful bean 536 both transmit information to the recovery queue storage buffer 640 .
  • the mount status bean 534 operates in conjunction with the mount status of the system
  • the recovery container 530 is called when once a failed resource begins to recover. Further description of the recovery process is given below. However, FIGS. 5 and 6 operate in tandem to show linearly ( FIG. 5 ) and organically ( FIG. 6 ) the structure and operation of the XDFile object 210 .
  • FIG. 7 shows the detail of the XDFile database component.
  • a transaction processor (such as Tuxedo from BEA) works in conjunction with the database transaction object 214 as well as the FileIO object 212 to provide a robust and reliable system. Both the database transaction 214 and the FileIO 212 objects include logic and/or programming to handle situations where database or disk array access cannot be guaranteed.
  • the database.transaction object 214 handles the inherent doubt present in the system by using replicated or repeated clusters of databases. The replication process creates latency or delay, in the system.
  • the database transaction object 214 uses a session object (a data construct representing a user session on the X:Drive system 100 ) to determine if the user's request can be transferred, or replicated, from one database cluster to another, in case of future system failure.
  • a session object a data construct representing a user session on the X:Drive system 100
  • the database layer 236 in the X:Drive system 100 allows for associating SQL commands with different database clusters based on functionality. Additionally, the X:Drive database layer 236 is configured for consolidation and addition of databases on the fly.
  • the SQL command 710 is issued and passed to a SQL command evaluator 712 .
  • a SQL evaluator determines the SQL type so that the SQL can be sent to the appropriate database type (that is, in the X:Drive system 100 , the transaction database 150 , the query database 152 , or both).
  • the database preference is evaluated at step 714 to determine if the user should be sent back to the same database. If the user is not to be sent back to the same database, the database currently bearing the least load is found in step 716 , and query is then made in step 718 to ensure that the selected least-loaded database is still up, running, and available. If it is, a specification regarding the pooling of database resources is created 720 and transmitted to the database object 236 . Database object 236 then takes the SQL command and passes it to the appropriate database, either the transaction database 150 or the query database 152 via associated connecting pools 730 .
  • step 718 If at step 718 the least loaded database is not available, an alternative database must be used and query is made at step 736 to determine whether or not the alternate database is up. If the alternate database is not up and the evaluation step 736 fails, additional databases may be queried or, as indicated in FIG. 7 , a fatal error may be generated at step 738 . If the alternate database is up, a pool specification 720 is generated and passed to the database object so that the SQL command may be implemented upon the transactional 152 databases via the connection pools 730 .
  • step 740 determines if that database is still up. If it is, the request is passed to the pool specification 720 where it is subsequently passed to the database object 236 , on to the connection pool 730 , and the appropriate database, either the transaction database 150 or the query database 152 . If the same database is not up and the evaluation at step 740 fails, an alternative database must be used, but the SQL request is queried at step 744 to determine if the SQL command is transferable to the alternate database. If not, a fatal error occurs at step 746 . If the SQL command is transferable, query is made at step 750 to see if the alternate database is up and active.
  • subsequent databases may also be queried if the SQL command is transferable. However, as shown in FIG. 7 , if the second database is unavailable, a fatal error may be generated at 746 . Otherwise, the database is up, and the evaluation at step at 750 is successful and the command is made available to the database object 236 via the pool specification standard 720 and on to the databases through the connection pools 730 .
  • a database status monitor 760 persistently and on-goingly queries the databases 150 , 152 . The status is then returned to a database status object 762 .
  • the database status object may provide information to the recovery container 530 of the XDFile object 210 .
  • the recovery mechanism for the X:Drive system 100 of the present invention is shown in FIG. 8 .
  • the FileIO object 212 uses a recovery object such as the recovery container 530 to handle write transactions 406 (as opposed to read transactions 404 ) when the transaction processor 214 fails.
  • the recovery object is transparent to the user, making it easier and more convenient for the user to use the X:Drive system 100 while decreasing the concern that such a user would have in case of a power outage or other failure in one part of the X:Drive system 100 .
  • the FileIO object 212 reports an error to the user, but informs the user that her request was stored in the X:Drive system 100 and that the X:Drive system 100 will try to apply the change as soon as possible. If the storage unit, represented as a mounting point in the EJB cluster becomes unavailable for write transactions 406 , the monitoring client 760 updates the EJB network 124 that the status of the mounting point is “down.” Once the mounting point is available and checked for data integrity, the status is updated from “down” to “recovery” and the recovery object 530 is called to apply all queued requests for the file action container 504 . This keeps the user from catastrophically losing uploads and other file writes, but may cause some delay in file reads.
  • the multi-connected pooled database object, the recovery-enabled FileIO object 212 , and the transaction processor 146 work together to create a resource layer offering high availability, recovery, and scalability.
  • this resource layer (encapsulated in the XDFile EJB 210 ) lends itself to replication of the data, both geographically and locally.
  • Such replication preferably has the three essential traits of being off-site, application-driven, and accessible.
  • secondary X:Drive clusters are enabled in geographically diverse locations in order to enhance the reliability of the X:Drive system 100 . Consequently, data loss from one data center or even the physical loss of an entire data center would not cause loss of customer data or access. Re-direction would occur dynamically and this information would be replicated in a plurality of sites across the X:Drive system 100 , the query or metadata databases provide multiple pointers to the user's data.
  • the recovery system 800 of FIG. 8 the recovery system is initially initiated when the MPS Bean 534 is set for a mode to detect mount point recovery at step 804 .
  • a recover method is called and the external mount point is checked.
  • Query is made at step 806 to evaluate whether or not recovery is already occurring. If recovery is already occurring, an exception is thrown at step 808 and exit is made at this finish point. If recovery is not already occurring, a list of mount points in recovery mode is generated in step 810 . Additionally, at step 812 a list of mount points which are down is also generated. Query is made at the evaluation step 818 as to the presence of available recovery objects in the recovery queue.
  • the disk or other database is set into the “up” mode at step 820 .
  • the queue for that disk is then unlocked in step 822 , and the recovery process is complete at step 824 .
  • evaluation is made as to whether or not the system has gone past the lock count at step 830 . If so, the queue for the disk in recovery is locked at step 832 for both the lock count evaluation 830 and the queue lock 832 step, control is then directed to the evaluation step as to whether or not the target file exists 834 . If the target file does not exist and the evaluation at step 834 fails, the recovery object is removed from the queue at step 840 . The status of the recovery is subsequently put in the request for alert queue at step 842 and return is then made to the query step 818 to determine whether or not objects are still available for recovery in the queue.
  • evaluation is made as to whether or not the request is more current than the file at step 850 . If the request is older than the current file, the recovery object is removed from the queue at step 840 , and the status for the request is put in the request or alert queue 842 and control returns back to the evaluation step 818 to see if any further recovery objects are available in the recovery queue.
  • the request is submitted to the XDFile object 210 at step, 852 .
  • the submission of the request to the XDFile object 210 is not recoverable.
  • the recovery object is removed from the queue at step 840 , its status is put into the request for alert queue at step 842 and evaluation is made at step 818 as to the presence of any additional recovery objects in the recovery queue.
  • query is made at step 860 as to whether or not the mount point has gone down. If at step 860 the mount point is still up, the request from this mount point is ignored at step 862 and the queue for the disk is unlocked at step 864 . Control of the program is then returned to the recovery object availability query in evaluation step 818 .
  • the mount point status bean 534 has UP, DOWN, and RECOVERY states. This bean is applicable to the file database 150 , as well as user disks 970 , 972 as well as recovery disks 974 , 976 . Additionally, the recovery admin stateful bean 536 is directed towards the recovery database 980 in order to effect the recovery process 800 .
  • the X:Drive system 100 preferably uses the Java® JNI (Java Native Interface) to access a Norton Anti-Virus or other dynamically linked library (NAV.DLL) to scan files for viruses via a Java® servlet.
  • the Java® servlet runs on a WindowsTM version X server and can use JNI to make calls to the NAV.DLL dynamically linked libraries.
  • the WindowsTM X machine becomes a specialized NAV.DLL server located at the EJB network layer 124 of the X:Drive system 100 , on a sub-network of the resource network.
  • the logic integrating the NAV.DLL dynamic linked libraries' with all X:Drive file writes is shown schematically in the flow diagram in FIG. 10 .
  • the virus scanning sub-system 1000 takes the file/transaction ID 1002 and a transaction ID 1004 from a user 1006 .
  • the file/transaction ID 1002 is passed to a file write process 1008 executed by a SUN® or other web server 1010 .
  • the file is written to both the database generically indicated at reference 1020 and to a temporary file storage area 1022 .
  • the file write process 1008 passes the file transaction ID to the Norton Anti-Virus (NAV) process 1024 .
  • NAV scanner 1026 Within the NAV process 1024 .
  • the NAV scanner monitors the data stream or otherwise to determine and detect the presence of any viruses.
  • NAV process 1024 detects a virus at evaluation step 1028 , data sink action is taken with respect to the database 1020 . If no virus is detected, the sequence moves to its final termination at step 1030 and data sink action is taken with respect to a temporary file on medium 1032 .
  • the transaction ID alone 1004 is transmitted to a fetch location info step 1040 on a SUN® or other web server 1010 .
  • the fetch location info step 1040 transmits its results to an evaluation step 1042 , which determines whether or not the file is in the temporary storage area 1022 . If the file is in the temporary area, the file's upload status is shown in step 1044 . If the file is not in the temporary medium 1022 , virus information is fetched at step 1050 in the file status process 1036 .
  • the virus information is evaluated as to whether or not there is a virus present at step 1052 . If there is no virus detected, then the virus evaluation terminates and a display of same may be made at step 1054 .
  • evaluation step 1052 indicates the presence of one or more viruses
  • a plurality of virus options may be shown and presented to the user at step 1060 .
  • the virus options available are: the cleaning of the virus at step 1062 , moving the virus to a different location at step 1064 , and/or deleting the virus in step 1066 . If step 1064 is taken with the move of the virus-laden file despite its infectious nature is made, movement of the file with its final destination is made in step 1070 .
  • the NAV process 1024 is a separate entity and may be considered to be a JAVA® servlet/daemon living on specialized Windows® NT or other servers.
  • a chron file 1074 (a file executing commands on a periodic basis according to the time) is used to remove old files from a first temporary storage resource 1002 .
  • FIG. 11 shows the Skip the Download/Save to My Xdrive system where a file on the Internet can be transferred over to an individual's X:Drive at generally data speeds far faster than those available to the end user. This allows the user to exercise dominion and control over the file without having to bear the burden of downloading it to the local computer at the present moment. Once the transfer has taken place across the Internet from the host to the X:Drive system 100 , then the user may download the file stored in his X:Drive directory to his local computer at his convenience.
  • X:Drive exists on the Internet network
  • transferring a file from one network resource (such as a web or FTP server) to the user's X:Drive is made much faster from the user's standpoint by by-passing the local connection to the user and allowing the user to submit the transfer request directly to the X:Drive network for execution.
  • the X:Drive system 100 then downloads the requested data from the target server to the user's X:Drive over the presumably higher speed connections of the public Internet.
  • the Save to My Xdrive system 1100 first has the user 1110 submit the URL at step 1112 .
  • the user submits the URL as well as his or her user name and password at step 1114 .
  • evaluation is made of the information for authentication purposes at step 1116 . If the evaluation fails and authentication is not achieved, a login form is displayed in conjunction with the previously-indicated URL at step 1118 . If the request is authenticated, it is submitted to the STD/STMX (Skip the Download/Save to My Xdrive) queue 1132 at step 1130 . A status process is then spawned at step 1134 .
  • Save to My Xdrive status is then checked on an on-going basis by using the queue in the temporary storage area at step 1136 .
  • Query is made as to whether or not the transfer is complete at step 1140 . If the transfer is complete at step 1140 , then the successful completion is indicated to the user at step 1142 . However, if the transfer is not complete, query is made as to the presence of any transfer errors at step 1146 . If an error has occurred, an error message is displayed to the user at step 1148 . However, if the transfer is incomplete but no errors have occurred, the same is then displayed to the user at step 1150 , and a short pause is taken at step 1152 for re-invoking the check STD process at step 1136 .
  • a daemon process processes the request from the STD queue at step 1160 .
  • Query is made as to the business logic of the queued request at step 1162 . If the request fails the business logic check 1162 , the status is updated at step 1164 . Control may transfer back to the STD queue 1132 .
  • the URL site is contacted by the X:Drive system 100 at step 1170 and the download process is activated.
  • the data transmitted by the URL is then saved in temporary X:Drive space in step 1172 , with the data being transferred then to the user data space at step 1174 .
  • the URL site 1180 may exist anywhere on the Internet so long as it is available to the X:Drive system 100 .
  • a temporary storage space 1182 may also exist anywhere on the Internet so long as it is accessible and controllable by the X:Drive system 100 .
  • step 1174 Upon transferring data to the user's data space as shown in step 1174 , query is made as to the success of the transfer at step 1188 .
  • the status is updated at step 1164 and is passed on to the STD queue 1132 until either success or an error is finally achieved.
  • the status process spawned at step 1130 monitors the update status generated by step 1164 and displays the status to the user during and after the download of the file from the Internet to the user's X:Drive system.
  • the STD/STMX (Skip the Download/Save to My Xdrive) operation may direct Xdrive to retrieve files from an Internet location and store it within their personal Xdrive account with authentication and with collateral file retrieval/secondary requests.
  • the Xdrive system then may connect to Internet locations that require authentication, may query the user's local state for transient credentials (if allowed by the user), may query the user for credentials (if needed), and may securely store and reuse personal credentials (if the user allows). Further, the Xdrive system may examine the (or any) retrieved document and determine if there are additional resources to fetch and may allow the user to dictate the limit of fetching additional resources.
  • hierarchies of documents may be stored in a useable way so that they are not unduly cumbersome.
  • additional features may enable the determining if the file request requires authentication. If so, and if previous personal credentials have been stored, such personal credentials may be used to authenticate the request. If no such credentials have been previously stored, or are not accepted by the request, and if allowed by the user, query may be made of the user's local environment for potential credentials and using them for the request. If these credentials are accepted, and if allowed by the user, they may be stored securely for reuse by this specific user for this domain of requests.
  • query may be made of the user for such credentials, and (if allowed by the user) they may be stored securely for reuse by this specific user for this domain of requests.
  • the Xdrive system may identify them and make requests for and retrieve them as well. If multiple related documents are fetched, they may be stored in a related and useful fashion in the user's account. If multiple files are to be fetched, the scope of the file fetch may be limited to a reasonable scope (depending on resources such as storage capacity, bandwidth, time, etc.) and, if needed or desired, allowing, the user to set this scope.
  • FIG. 12 shows a schematic and flowchart diagram for the client system generally used under Microsoft® WindowsTM for achieving the present invention.
  • the X:Drive system offers its clients two basic services: a file access service by which files can be uploaded and downloaded to and from X:Drive, as well as a file manipulation service from which file metadata can be obtained and manipulated. Both of these services rely upon the context of their usage.
  • the web client of the present invention uses native upload and download features as well as dialogs in the user's web browsers to facilitate the service.
  • Windows® X clients use the WindowsTM TCP/IP stacks inherently present with the Windows® version X operating system.
  • All the file transfers effected by the X:Drive system can take place as HTTP POST/GET or, preferably, Web-DAV transfers.
  • An XML parser operates in conjunction with an XML data displayer.
  • the server is able to respond with generally the same XML code to all clients.
  • the client is then responsible for converting the XML to a relevant data structure and displaying the XML in an appropriate context.
  • the JavaScript web client receives the XML code and parses it into a JavaScript data structure.
  • a display layer in association with the client and/or browser renders the data structure as an HTML document.
  • the Windows® X client parses the same XML code, but the display layer renders the data structure into a device listing that is understood by the Windows® version X operating system.
  • the importance of this layered architecture is that it generally makes trivial the creation of new clients. Instead of simply creating dynamic web pages (and thus limiting service to web browsers alone), the X:Drive system 100 can enable many platforms, such as operating systems, without altering the server structure. Most platforms come with some sort of XML parsing layers, and many platforms come with display layers ready made.
  • the time to market may generally be considered low and efficient establishment and implementation of the X:Drive system 100 of the present invention can be achieved fairly quickly. Additionally, expansion into new platforms generally becomes much quicker as no alteration of the server structure generally needs to occur as Java® and related program functionalities are highly portable from one system to another.
  • the client 102 has a file access service 1202 , including a request processing layer 1204 coupled to a network I/O layer 1206 .
  • Commands and data are then transmitted to the server side of the X:Drive system 100 where the server side request processing layer 1210 transmits the data to a query evaluating whether or not the request is one for metadata at step 1212 . If the evaluation fails and the request is not one for metadata, the network I/O layer 1216 and the resource access layer 1218 are invoked in order to provide access to and operation of the transaction database 152 .
  • the request for metadata query at step 1212 succeeds, the request is passed on to the resource access layer 1218 and on to the XML generation layer 1220 .
  • the response to the request from the metadatabase 150 is transmitted to the file manipulation service system 1230 of the client 120 .
  • the XML transmitted by the XML generation layer 1220 is received by the to file manipulation service 1230 as well as its XML handler 1232 .
  • the XML is then passed on to the XML parser layer at step 1234 to arrive at a data structure 1236 that is then ready for display and so is passed on to the data display layer 1238 for display to the user who may then re-initiate the process by implementing the file access service 1202 .
  • I/O input/output
  • the X:Drive file system may have an event/subscriber model for file events. For example, when a new file is created, this generates, or initiates, an event which is transmitted the system giving notice and particulars of the event.
  • Interested components of the X:Drive system namely those that are affected by the event, can subscribe to a topic of events that may include new file creation. When such interested components receive an event, or notice of it, other asynchronous events may be triggered that the event broadcaster has no knowledge about. Consequently, independent or semi-independent operation of interested components can occur with the broadcast of events.
  • Such initiating events can be chosen according to programmer or system preferences as can be the level of resolution, or granularity, of such events (from the very fine to the very broad).
  • Such event broadcasting may allow, among other things, for services such as: virus scanning, scanning new files for meta-data and inclusion into search indices, thumbnailing graphics for faster web display, adding music files to a personal media library, and other collateral, direct or system-oriented events.
  • services such as: virus scanning, scanning new files for meta-data and inclusion into search indices, thumbnailing graphics for faster web display, adding music files to a personal media library, and other collateral, direct or system-oriented events.
  • the X:Drive system may catch, or detect, new, updated, and deleted files and update a user's meta-data for faster searching, indexing, and richer application support.
  • I/O is not strictly for reading and writing files. Over a network, different modes of I/O may be desirable depending upon context.
  • a user may want to read a music file and may want to access it as a stream, so they can listen to it over the network. Alternatively, the user may want to simply download the music file.
  • the X:Drive system's I/O may be configured to “understand,” or otherwise interpret the user's actions or preferences in order to provide for different modes of access depending upon the context.
  • FIG. 13 shows the X:Drive system 100 as implemented on a WindowsTM X machine, in this case, a Windows '98 machine (an Intel-based personal computer running the Microsoft Windows '98 operating system).
  • a Windows '98 machine an Intel-based personal computer running the Microsoft Windows '98 operating system.
  • the second frontmost window 1310 of FIG. 13 is headed by the inscription “My Computer” and shows the presence of a drive at logical letter X: 1312 with the X:Drive logo and the label www.xdrive.com (X:).
  • This is an example of the user interface provided by the client application.
  • the X:Drive system is transparent to the user and functions as any other drive present on the system.
  • the second window 1320 appears (partially obscuring the “My Computer” window 1310 ) and shows the listing under the X: ⁇ Drive.
  • the address of the window 1320 shows the location of the directory as being at X: ⁇ 1322 .
  • FIG. 13 Also shown in FIG. 13 is the desktop icon 1330 , the start menu icon 1336 , and the system tray icon 1340 . These icons accompany the client program 102 and provide greater functionality for the user. Each icon serves to activate the client program in accordance with user-settable preferences.
  • FIG. 13 also shows the web-based application 1350 in the background, behind the My Computer 1310 and X: ⁇ 1320 windows.
  • the web-based application window 1350 is shown in FIG. 14 . Note should be taken of the exact correspondence between the directory structures of web-based application window 1350 and the client-based application window 1320 . This correspondence provides the user with a uniform, familiar, and dependable interface upon with the user can rely.

Abstract

The Shared Internet Storage Resource provides Internet-based file storage, retrieval, access, control, and manipulation for a user. Additionally, an easy-to-use user interface is provided both for a browser or stand-alone application. The entire method provides means by which users can establish, use, and maintain files on the Internet in a manner remote from their local computers yet in a manner that is similar to the file manipulation used on their local computers. A high capacity or other storage system is attached to the Internet via an optional internal network that also serves to generate and direct metadata regarding the stored files. A web server using a CGI, Java®-based, or other interface transmits and retrieves TCP/IP packets or other Internet information through a load balancer/firewall by using XML to wrap the data packets. File instructions may be transmitted over the Internet to the Shared Resource System. The user's account may be password protected so that only the user may access his or her files. On the user's side, a stand-alone client application or JavaScript object interpreted through a browser provide two means by which the XML or other markup language data stream may be received and put to use by the user. Internet-to-Internet file transfers may be effected by directly downloading to the user's account space.

Description

    CROSS-REFERENCES TO RELATED APPLICATIONS
  • Applicant(s) and/or Inventor(s) hereby rescind any disclaimer and/or any arguments made in any prior related application. Such disclaimer(s) and/or argument(s) as well as any prior art relevant to such disclaimer(s) and/or argument(s) may need to be revisited by the Examiner.
  • This patent application is: a continuation-in-part of U.S. patent application Ser. No. 11/089,174 filed Mar. 24, 2005 for Shared Internet Storage Resource, User Interface System, and Method; a continuation-in-part of U.S. patent application Ser. No. 11/089,397 filed Mar. 24, 2005 for Shared Internet Storage Resource, User Interface System, and Method; and a continuation-in-part of U.S. patent application Ser. No. 11/601,234 filed Nov. 17, 2006 for Network Personal Digital Video Recorder System (NPDVR).
  • This patent application combines the disclosures set forth in the Ser. No. 11/089,174 and Ser. No. 11/089,397 application. Consequently, any matter and/or disclosure not found in one of the three foregoing prior patent applications can be found in one of these two as this application is a continuing application of both these patent applications.
  • U.S. patent application Ser. No. 11/089,174 filed Mar. 24, 2005 and U.S. patent application Ser. No. 11/089,397 filed Mar. 24, 2005 are continuation-in-part applications of U.S. patent application Ser. No. 10/073,775 filed Feb. 11, 2002 entitled Shared Internet Storage Resource, User Interface System, and Method which issued as U.S. Pat. No. 6,985,927 on Jan. 10, 2006.
  • U.S. patent application Ser. No. 10/073,775 filed Feb. 11, 2002 is a continuation of U.S. patent application Ser. No. 09/570,583 filed May 12, 2000 for a Shared Internet Storage Resource, User Interface System, and Method which issued as U.S. Pat. No. 6,351,776 on Feb. 26, 2002 which is related to U.S. Provisional Patent Application No. 60/163,626 filed Nov. 4, 1999 entitled Shared Internet Storage Resource, User Interface System, and Method which applications are incorporated herein by this reference thereto.
  • U.S. patent application Ser. No. 11/601,234 filed Nov. 17, 2006 for Network Personal Digital Video Recorder System (NPDVR) is: a continuation of U.S. patent application Ser. No. 11/075,311 filed Mar. 8, 2005 for Shared Internet Storage Resource, User Interface System, and Method which issued as U.S. Pat. No. 7,337,207 on Feb. 26, 2008; a continuation of U.S. patent application Ser. No. 11/089,173 filed Mar. 23, 2005 for Shared Internet Storage Resource, User Interface System, and Method which issued as U.S. Pat. No. 7,171,472 on Jan. 30, 2007; a continuation of U.S. patent application Ser. No. 11/089,174 filed Mar. 24, 2005 per above; and a continuation of U.S. patent application Ser. No. 11/089,397 filed Mar. 24, 2005 per above.
  • U.S. patent application Ser. No. 11/075,311 filed Mar. 8, 2005 and U.S. patent application Ser. No. 11/089,173 filed Mar. 23, 2005 are divisional applications of U.S. patent application Ser. No. 10/073,775 filed Feb. 11, 2002 per above.
  • This patent application is related to and claims priority from U.S. Provisional Patent Application No. 60/163,626 filed Nov. 4, 1999 entitled Shared Internet Storage Resource, User Interface System, and Method.
  • All of the aforementioned patents and patent applications as well as any other related patents and/or patent applications are incorporated herein by this reference thereto.
  • COPYRIGHT AUTHORIZATION
  • Portions of the disclosure of this patent document may contain material which is subject to copyright and/or mask work protection. The copyright and/or mask work owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright and/or mask work rights whatsoever. 37 C.F.R. §1.71(d).
  • COMPUTER PROGRAM LISTING APPENDIX
  • A computer program listing appendix submitted on compact disc is incorporated herein by this reference thereto. There are two (2) identical compact discs (Copy 1 and Copy 2) each having the following three (3) files:
  • 8226 XDRIVE All CGI files.toc.Appendix1.txt created Sep. 25, 2007 (186 kilobytes) which is a listing of web site/server code use to achieve the present invention;
  • 8226 XDRIVE FirstAndLast30.Appendix2.toc.txt created Sep. 25, 2007 (71 kilobytes) which is a listing of the code used on the client side to achieve the present invention in a Microsoft® Windows™ environment; and
  • 8226 XDRIVE All JS Files with filenames.Appendix3.txt created Sep. 25, 2007 (105 kilobytes) which is a listing of the JavaScript code used to achieve the present invention in a Sun Microsystems® Java® environment (including one on a browser).
  • These files are substantially identical to the appendices set forth in the prior applications listed above in the Cross-References to Related Applications section save that the tables of contents have been omitted.
  • BACKGROUND OF THE INVENTION
  • 1. Field of the Invention
  • This invention relates to resources on computer networks, particularly the Internet, and more particularly to a file storage and retrieval system that is available worldwide via the to Internet which additionally allows a direct transfer of Internet files to an Internet storage, retrieval, and sharing resource. The present invention acts in the manner of a “Internet hard disk” or “Internet hard drive” to provide online storage and retrieval resources for users.
  • 2. Description of the Related Art
  • The Internet is the worldwide computer network making available a vast number of computer and information resources to institutions and individuals. A significant part of the Internet is the worldwide web that allows for web pages to be written in HTML and transmitted upon demand throughout the Internet. Recent developments have better established the use of XML (Extensible Markup Language) as a subset of SGML (Standard Generalized Markup Language, ISO standard 8879:1986). FTP (File Transfer Protocol) provides means by which files may be transferred over the Internet. All of these protocols are generally well known in the art, and collateral resources can easily be obtained to describe these further.
  • Additionally, portable programming systems such as Java®, JavaBeans, and JavaScript have been extensively developed with an anticipation of future portability across the vast network that is the Internet. Java®-related systems allow for object-oriented programming whereby objects or “beans” allow the passing of self-contained modules with associated processing methods that are used to act upon the accompanying data. Consequently, the “bean” can travel through a network and, under appropriate circumstances, have certain processes activated allowing manipulation of the information contained in the bean.
  • Advancements in Java®-related systems have given rise to the Enterprise JavaBean™ (EJB). The Enterprise JavaBean' allows for clustering of servers such that the bean is given independence from specific servers on the system, yet can be activated or “instantiated” such that error recovery is easier, the system as a whole is more robust, and processing of the bean can be performed asynchronously so that all events do not have to happen at a pre-set time or serially/one after the other.
  • Enterprise JavaBeans™/EJBs allow serialization of beans. Such serialization allows the bean to be represented as a data stream of determined length. In essence, this is just a data file that is interpreted in the proper context, much the same as any electronic information file. Such serialization of the EJB allows it to be replicated and stored in case of catastrophic failure of a preferred server or the like.
  • If the server upon which the instantiated EJB dies, goes down, or fails, a previously replicated twin can be used to continue the process and allow for error recovery. More information about Enterprise JavaBeans™ technology can be found in the white paper, “Enterprise JavaBeans™ Technology: Server Component Model for the Java™ Platform” by Anne Thomas, revised December 1998, prepared for Sun Microsystems, Inc. and published/made available by the Patricia Seybold Group of Boston, Mass.
  • Due to the nature of new technologies, terms such as “bean” or “instantiated” may seem unfamiliar to those new to the pertinent art. Reasons for this include the difficulty of communicating quickly new and complex subjects as well as the good-humored nature of those who intensely pursue the establishment of new technology, particularly software systems. Consequently, for Java®-related systems, a coffee theme is often present that indicates to those knowledgeable in the art the general subject matter of interest. While distinctions may be subtle in the art, they can be very important and serve the ends of those attempting to establish, share, and forward the technology.
  • Generally, home pages or other web pages are requested by the user through designation of the URL (Uniform Resource Locator). With the transmission to the user via TCP/IP protocol, the information present at the URL (and generally a file located somewhere on a computer) is transmitted to the user. The file may have links, or pointers, to other resources including, images, graphics, audio or video streams, or other resources. Mark-up language is used on the Internet in an attempt to provide an open-ended structure by which information of any sort that can be stored electronically (or perhaps even otherwise) can be made available to an end user on demand. As such, the Internet is seen as a powerful tool making almost any information resource available to any computer or to any person using a computer.
  • Over the past several years, the personal computer has increased in power and capacity as commercial demand has driven the research and development of producers and vendors. It is now not uncommon to be able to easily find an Intel-manufactured 500 megahertz Pentium®-based system having well over 10 gigabytes of hard disk space, as well as 32-256 megabytes of RAM. As such, the power by which files may be received and acted upon by the local user through his or her PC has kept pace with the advances in technology.
  • However, there currently remain obstacles to universal access to an individual's own information stored on his or her computer. First of all, computers are very heavy. They are bulky. They generally weigh several kilograms and are not easily transportable. Lightweight laptop computers or the like generally do not have the same resources available to the user as a regular PC. Additionally, access to local area networks (LANs) is generally not available once the computer leaves the premises occupied by the LAN. Additionally, Internet access, is often restricted by the use of a modem. Modems generally provide data transmission speeds on the order of 56 kilobits per second. This is approximately the same as 7 kilobytes per second. However, headers and other information are required to properly transmit information over the Internet and increase the effective size of files.
  • Even with the increased availability of broad band access to the Internet, it becomes an important feature of electronic information processing and the like in order to provide resident resources on the Internet. Such resources could include the sharing of files and the like in a manner that are easy to use and understand.
  • Due to these and other restrictions regarding data transport, transmission, and reception, a need has arisen for means by which files and other data may be available worldwide through the Internet and not tied to a local computer. The present invention addresses this demand by providing means by which files and other data may be stored on the Internet and made available worldwide through the Internet.
  • SUMMARY OF THE INVENTION
  • The present invention provides an “Internet hard drive” or “Internet hard disk” to and from which files may be stored and retrieved. Denominated commercially as “X:Drive,” the present invention allows users to store files of foreseeably any type on a resource available throughout the Internet. Once available to the Internet, the files stored on the user's X:Drive are available to the same extent as the Internet, namely worldwide.
  • Note should be made that the term “X:Drive” refers both to the system as a whole and to the individual space allocated to an individual user. Consequently, reference is sometimes made herein to the X:Drive system or to X:Drive to refer to the system as a whole. At other times, the term X:Drive indicates the user's individual X:Drive, or allocated space. The different uses are indicated by context.
  • In order to effect the Shared Internet Storage Resource of the present invention, a central or distributed storage facility is provided. First and foremost is the high-speed access storage facility where files are actually stored. Such individual storage areas may be allocated in individual limited allotments, or be left open-ended and limited only by the capacity of the physical devices responsible for storage. Metadata, that is data about the files stored on the network hard drives or other storage devices, is generated and stored in a separate database. The database of metadata (the metadatabase) and the network-attached storage facility may be linked by an internal network. It is possible for the database to be stored on the same network storage facility or device on which user files are also stored. System management may select whether or not to distribute or consolidate the database with the network storage.
  • Also attached to the internal network is a web server that serves to generate and transmit the information to the Internet, and ultimately the user. The web server files may pass through a load balancer and/or firewall before proceeding on to the Internet. The same is similarly true for information coming into the web server from the Internet.
  • XML may be used in combination with JavaScript or the like to provide two means by which the Shared Internet Storage Resource of the present invention may be achieved. The first is a JavaScript object which may be transmitted to a browser program running on the user's computer. Such browsers may include ones that are well known, including Netscape® Communicator and Microsoft® Internet Explorer. Alternatively, a stand-alone application may be installed and stored upon the user's computer. This stand-alone application serves to intermediate the user commands with the web server and ultimately the metadatabase in the Internet storage device.
  • As an additional enhancement, the user interface may be a client program that meshes seamlessly with standard user presentations in WYSIWYG (what you see is what you get) graphic user interfaces (GUIs). As such, a drive may be shown on the user's computer and may be denominated “x:” (or “y:” or “z:”, etc., depending upon user preferences). The user can then read from or write to the x:\ Shared Internet Storage Resource drive much in the same way as you would the local a:\ and c:\ hard drive.
  • When the user shuts down his or her computer, information that is stored on the Shared Internet Storage Resource of the present invention remains on the Internet. The user can then access such information from another computer, another geographic location, or even give permission to share files on the Shared Internet Storage Resource with others. Password protection or other security protocols may be used to limit or discriminate access to the user's files.
  • The Shared Internet Storage Resource of the present invention allows for direct Internet-to-Internet file transfer to a user's allocated X:Drive file space in a process referred to as “Skip the Download” or “Save to My Xdrive.”
  • In one embodiment of such Internet-to-Internet transfer, a method for transferring, data from a first network resource to a second network resource at the direction of a user is set forth which includes the step of submitting a first file location indicating data to be transferred to the second network resource where the second network resource is a subscriber-based system of network-available data storage space. The user is verified as a subscriber to or member of the second network resource and the second network resource requests the data at the first file location from the first network resource. Additional steps include determining if the requesting of data requires authentication, determining if personal credentials of the user have previously been stored or are otherwise available, and if the personal credentials are available, using the personal credentials to authenticate the request of data.
  • If the personal credentials have not been previously stored or are not otherwise available, or are not accepted by the first network resource, and if such activity is allowed by the user, the user's local environment is queried for potential credentials of the user and using them for the data request. If one or more of the potential credentials are accepted, and if allowed by the user, one or more of the potential credentials are securely stored for reuse by the user for an associated domain of requests.
  • The first network resource transmits the data to the second network resource via Internet upon authentication. A display is made to the user of the status of transmission of the data from the first network resource to the second network resource. The data is evaluated and determination is made if the data includes a location or other identifier of a related Internet or other file. Steps are takes to identify the location and to request the file, with the second network resource evaluating the data, identifying the location, and requesting the file. If multiple related files are requested, the files may be stored in a related and useful fashion in the user's account. The scope of an expanded request may be limited to a reasonable number of files with the user optionally allowed to set the scope of such limitation. The second network resource may notify the user of successful transfer upon successful reception of the data. The process provides a system for the user so that the user may use the first and second network resources to obtain and control the data.
  • In one embodiment of the present system, a client-server system for a network-based data storage and manipulation system is provided that may include a client system having a file access service and a file manipulation service, as well as a server that may provide network-based data storage resources and responses to requests transmitted by the client system as the server may effect such requests.
  • The file access service may include both a request processing layer for processing requests and a first network I/O layer which transmits the requests to the server. The first network I/O layer may transmit a signal to the server to indicate the presence and nature of at least one of the requests to the server and the server may respond to the first I/O layer signal by transmitting one or more additional signals to interested components of the request in order to broadcast the first I/O layer's signal. The server may determine if a client request is one for metadata regarding data stored upon the server.
  • The file manipulation service may include an XML parser that parses the metadata from the server. The file manipulation service may also include a data structure that receives and preserves parsed data from the XML parser. The file manipulation service may also include a data display layer operating upon and displaying the parsed data such that metadata may be displayed to inform about data stored upon the server.
  • The server may provide the metadata if the client request is for metadata and may transmit the metadata to the file manipulation service. The server may provide a second network I/O layer which is engaged when the requests are not for metadata. The second network I/O layer may transmit requests for file action and the server may also provide a resource access layer that may receive transmissions from the second network I/O layer and may effect the requests. The resource access layer may engage when the requests are for metadata with the resource access layer obtaining and transmitting the metadata.
  • The server may provide a metadata compiler in the form of an XML generator with the metadata compiler receiving the metadata from the resource access layer, compiling the metadata, and transmitting the compiled metadata to the client system;
  • The second network I/O layer may transmit a signal to the server indicating the presence and nature of at least one of the requests to the server and the server may responds to the second I/O layer signal by transmitting one or more additional signals to interested components of the request in order to broadcast the second I/O layer signal. The second network I/O layer may support interpretation of the request transmitted by the client system as the second network I/O layer may enable interpretation of the request to promote a user's actions or effect the user's preferences.
  • As a result, the server may perform a file action if the client request is not for metadata, and the server may update the metadata and may transmit the metadata to the file manipulation service such that the server operates, and the client system presents, operations on the server in a manner similar to operations local to the client system.
  • Other embodiments of the present invention are set forth in more detail, below, and the embodiments set forth above are made for purposes of example only and not of limitation.
  • OBJECTS OF THE INVENTION
  • It is an object of the present invention to provide a Shared Internet Storage Resource on which users may store and retrieve files to make them available to themselves, or possibly others, throughout the Internet.
  • It is an additional object of the present invention to provide all manner of file access and control generally available to files local to the users for such Internet-stored files.
  • It is an additional object of the present invention to provide an easy-to-use and readily understood user interface through which files may be stored, retrieved, and manipulated on the Internet.
  • It is an additional object of the present invention to gather metadata regarding such files and to store such metadata in a database.
  • It is yet another object of the present invention to provide a plurality of means by which Internet-stored files may be manipulated and controlled.
  • It is yet another object of the present invention to provide a browser-based access to Internet-stored files.
  • It is yet another object of the present invention to provide stand-alone application access to Internet-stored files.
  • It is yet another object of the present invention to provide means by which Internet files may be stored on an Internet resource by a direct Internet-to-Internet transfer subject to the control of a remote or limited-resource user.
  • These and other objects and advantages of the present invention will be apparent from a review of the following specification and accompanying drawings. The foregoing objects are some of but a few of the goals sought to be attained by the present invention.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a schematic view of the X:Drive system of the present invention. The different tier levels are shown, along with the marking indicia of a circle, triangle, square, and star/asterisk corresponding to the same indicia in FIG. 3.
  • FIG. 2 is a schematic view of Java® library objects operating in the transactions or data exchanges occurring in the present invention.
  • FIG. 3 is a detailed flow diagram showing the operation of the present invention. Indicia including a circle, a triangle, a square, and a star/asterisk correspond to tier levels shown in FIG. 1 and indicate the level of operation of the steps shown in the flowchart of FIG. 3.
  • FIG. 4 is a flowchart showing the operation of the XDFile Enterprise JavaBean' (EJB) used in the present invention.
  • FIG. 5 is an overview of the Java® architecture used to effect transactions in the present invention.
  • FIG. 6 is an alternative schematic diagram of the Java® architecture shown in FIG. 5.
  • FIG. 7 is a schematic and flowchart diagram showing the IO (input/output) for the database transactions of the present invention.
  • FIG. 8 is a schematic diagram of the data recovery process as effected by the FileIO component of the XDFile object used in the present invention.
  • FIG. 9 is a schematic depiction of failure recovery elements.
  • FIG. 10 is a schematic and flowchart diagram showing virus protection effected in the present invention.
  • FIG. 11 is a schematic and flowchart diagram of the Internet-to-resource transfer (“Skip the Download”/“Save to My Xdrive”) as set forth in the present invention.
  • FIG. 12 is a schematic and flowchart diagram of the client system used in the present invention.
  • FIG. 13 is a Windows' desktop display showing both the client and web-browser applications.
  • FIG. 14 is a display of a web browser pointing to a user's X:Drive.
  • DESCRIPTION OF THE PREFERRED EMBODIMENT(S)
  • The detailed description set forth below in connection with the appended drawings is intended as a description of presently-preferred embodiments of the invention and is not intended to represent the only forms in which the present invention may be constructed and/or utilized. The description sets forth the functions and the sequence of steps for constructing and operating the invention in connection with the illustrated embodiments. However, it is to be understood that the same or equivalent functions and sequences may be accomplished by different embodiments that are also intended to be encompassed within the spirit and scope of the invention.
  • Appendices 1, 2, and 3 provide the source code for, respectively, the Web Site/Server Code of the X:Drive Shared Internet Storage Resource system of the present invention; the Windows Client Code; and the JavaScript Listings for the present invention. These Appendices are incorporated herein by this reference thereto as if set out in their entirety. It is contemplated that these Appendices provide a full, complete, and enabling disclosure to those of ordinary skill in the art or less by which the present invention may be achieved.
  • Additionally, the reference numbers used in conjunction with the figures are numbered such that the 100's place of the number indicates the number of the drawing figure. For example, the 600 series of reference numbers refers to FIG. 6, while the 200 series refers to elements shown in FIG. 2.
  • The present invention provides a method by which an Internet hard disk or hard drive may be achieved in a manner similar to a hard disk or hard drive available locally to the individual on the local computer. Additionally, as Internet use becomes a more familiar and everyday event for people, the resources provided by the present invention may allow the actual use of the Internet hard drive or X:Drive set forth herein to act as such a resource with the files being called up for execution for programs available and processed either locally and/or over the Internet. In light of the foregoing, it can be seen that the present invention may act as a bridge or may pave the way towards a more inter-networked community for the use and processing of electronic information.
  • The virtual disk drive provided by the present invention may be selectively shared with others or kept entirely private. Additionally, and as set forth in more detail below, the use of a metadatabase provides quicker access and the ability to distribute the information regarding the legion of X:Drive accounts over a wide geographic area, enabling redundant preservation of user information by server clusters implementing Enterprise JavaBeans® (EJBs), or otherwise.
  • The Shared Internet Storage Resource, User Interface System, and Method set forth herein is generally referred to as “X:Drive.” Context reveals whether or not the term X:Drive is referring either to the system as a whole or the individual's own account.
  • The X:Drive system of the present invention uses network application practices and may rely upon Java® Enterprise JavaBeans™ (EJBs) to enable distributed and clustered computing and file management environment. Along with such Java®-based and network-oriented design, the X:Drive system of the present invention also contemplates the use of open programming standards such as XML and Web-DAV (Web-based Distributed Authoring and Versioning). The use of such technology is foreseen as providing wide support by the user community as well as speed and development, refinement, and polishing.
  • As shown in FIG. 1, the X:Drive system 100 has a multi-tiered, network-based application infrastructure. The multi-tiered nature of the system allows it to separate operations in an efficient manner. The network-based aspects of the X:Drive system allows it to disperse resources geographically as well as allow a high degree of communication between different aspects or facets of the system.
  • The X:Drive system may be considered enabling technology as a medium that is independent of the applications and uses to which it is applied. The X:Drive system is currently based on object-oriented principles with each application layer responsible for a discreet functionality or aspect of operation. Both hardware and software resources may then successfully experience heavy re-use with both scalability and flexibility inherently provided. While these advantageous aspects of the X:Drive system are achieved, as a multi-tiered system, X:Drive involves a higher cost of complexity and planning. Thus, those who would seek to wrongly copy the X:Drive system would do so without accruing the great expense in time and money necessary to achieve the present X:Drive system. They would ride on the backs of those who not only developed the system, but also those who got it to work right and in a commercially-reliable manner.
  • The use of tiers in the X:Drive system of the present invention is realized in both the network systems and the application systems involved in achieving X:Drive.
  • As shown in FIG. 1, a variety of tiers, or layers, are present between the client 102 and the ultimate data resources 104. Between the client 102 and the data resources 104, are one or more layers or tiers, accomplishing the following.
  • The client 102 may be coupled to a public network 106 (such as the Internet) that may include a DNS redirector 108 as well as a load balancer 110. The public network 106 may then lead into a web server network 120. The web server may then lead into an application network 122, which in turn leads into an EJB (Enterprise JavaBeans™) network 124. The EJB network 124 may lead into a transaction network 126, which in turn leads into the data resources 104.
  • The client 102 may be either a web- or browser-based application or an application resident on a Windows™ X system (the X indicating the version of Windows applicable, i.e., Windows® 95, Windows® 98, Windows® 2000, etc.). Requests generally originate from the client as the X:Drive system 100 is one that operates at the command of users directing the client program. Client requests may be made versus the Hypertext Transfer Protocol (HTTP) GET/POST function. In a preferred embodiment, the GET/POST operation may be augmented with Web-DAV extensions to the HTTP protocol. Commands are transmitted by the client 102 are sent to the DNS redirector 108, which then isolate the request via a proxy server process. A proxy server process prevents a direct connection between the client 102 and the other downstream resources in the X:Drive system 100. Such proxy serving prevents inadvertent or mischievous disruption of service by allowing only certain commands or information to be propagated through the X:Drive system 100. This prevents mischievous users from disrupting the system as such rogue commands are intercepted by the proxy server and denied further propagation.
  • After the client command has passed through the DNS redirector/proxy server 108, the request by the client 102 is then directed to the most appropriate facility. As the X:Drive system is scalable, facilities may be distributed geographically, even over the face of the globe. This allows, at the outset, more efficiencies to take place in the X:Drive system 100 of the present invention so that more users may be served more quickly and so that the advantageous features of the X:Drive system may be realized by the widest number of users in the quickest way possible.
  • Due to the construction and architecture of the X:Drive system 100, a number of machines/servers running a number of different processes may be distributed over a wide area. Broad band or high-speed access as provided by Internet backbone or the like may allow the X:Drive system to be effectively carried out over the entire face of the planet. The scalability and flexibility of the present invention augments its utility. Such advantages are further advanced by efficient use of the resources so that greater and better service can be provided.
  • Upon receiving the request from the client 102, the DNS redirector 108 transmits the requests on to a load balancer which may provide a second proxy process under HTTP protocol and transmit the request to the least-loaded and most-available web server on an internal, non-routable, or other server network 120.
  • The web server network 120 may be non-routable and may comprise a number of individual machines or servers processing the HTTP or other requests from one or more load balancers 110. Each of the web servers 140 in the network 120 may handle HTTP requests for static content, such as HTML and graphic files. The web servers may proxy all requests for dynamic content to a Java® application network 122.
  • As used in the X:Drive system 100 of the present invention, the Java® application networks may be non-routable. The use of non-routable facilities in the X:Drive system 100 of the present invention indicates their operation in a local area network (LAN). However, between tiers, the individual networks themselves may be available such that a web server 140 in Illinois may pass requests for dynamic content to Java® application clusters 122 in Wisconsin.
  • Each Java® application cluster 122 may be composed of a number of Java® application servers 142 with each server 142 handling display functions necessary for user accounts, including the generation of XML, HTML, and other instructing displays for either browser or application clients 102. If a Java® application cluster 122 receives a resource request from the web server tier 120, the Java® application cluster 122 will pass the resource request onto the Enterprise JavaBean™ EJB network tier 124.
  • As for the web server 120 and Java® application networks 122, the EJB network 124 may also be non-routable and operate upon a LAN. The EJB network may be an EJB cluster having a number of EJB servers 144. Each EJB cluster handles the business logic and resource access methods and protocols required for the resource requests and management. The EJB cluster (EJBC) caches memory of common resources such as the pooling of data connections and the like, as well as data objects. Resource access requests and transmissions are then passed out to the transaction network tier 126, which may also be non-routable. The transaction network tier 126 has a transaction processor 146 which controls, operates, and guarantees access and transactions on different resources. These different resources are the ultimate data resources 104 that may include NFS (Network File Server) disk arrays 150 and databases 152. The NFS disk arrays 150 may supply the actual storage capacity for the files of generally any size. The databases 152 comprise records of information regarding each of the files (metadata) stored by the NFS disk arrays 150 under the X:Drive system 100.
  • By bifurcating the file information in databases 152 separate from the actual files themselves on the NFS disk arrays 150, file information and user queries can be handled much more quickly as display components of the present invention are important to provide the user information regarding the status and availability of the files stored on the X:Drive system 100. Consequently, although a user may have a hundred separate files in an X:Drive directory, he or she may be only interested in one. Consequently in order to provide the user the information necessary to make the decision as to which file to receive, move, rename, delete, or store, the use of the database provides a very quick and easy means by which such user requests can be satisfied. It is anticipated that the actual use of the file storage facilities on the NFS disk arrays 150 or the like may comprise only a part of the operations of the present invention. Having the ability to display, select, and determine file operations is one of the useful advantages provided by the X:Drive system 100 of the present invention. Note should be taken of the non-numerical indicia present in FIG. 1. Most notably, a circle is associated with the client 102, a triangle with the Java® application cluster 122, a square with the EJB network 124, and a star/asterisk with the transaction network. These non-numerical indicia correspond to those set forth in FIG. 3. As different actions are performed at different tiers in the present invention, the non-numerical indicia provide an easy or visual means by which the operation of the different tiers can be indicated in FIG. 3.
  • FIG. 2 shows a logic diagram in sequence structure for the Java® library objects used in the X:Drive system 100 of the present invention. Generally, throughout the description of the X:Drive system 100 of the present invention, the prefix XD indicates “X:Drive.” For example, in FIG. 2 the steps/status indicators of XDError stands for X:Drive Error, and XDXML stands for X:Drive Extensible Markup Language. Likewise, the use of the term XDFile indicates X:Drive File as a Java® library object effecting and intermediating the file operations of the present invention.
  • In FIG. 2, the Java® system 200 allows operations to be performed on the metadatabase 202 and the operating system (OS) File System 204. Additionally, the XDFile object 210 may activate or instantiate the Database.Search object 216. The XDFile object 210 may be activated, or invoked, by the FileAction object 220. The FileAction object 220 may also activate the Database.Search 216 and Database.BigSearch 222 objects. Operations of the Java® library objects in the system 200 as shown in FIG. 2 may be contingent upon the SessionSecurity object 224, which may instantiate or use the Database.Search object 216 and/or the Database.Transaction object 214. The SessionSecurity object 224 may return a separate object 226 to the UserData object 230. The Database object 236 may inherit or transmit from its Transaction 214, Search 216, and/or BigSearch 222 objects.
  • The information generated may then be transmitted to the Database 202 for meta-information and the OS File System 204 for the actual data. If an error is generated during the operation of the Java® library object system 200, an XDError object 240 may serve to handle the error while a successful operation may be returned in the form of the XDXML object 242. In the Java® library object system 200 of FIG. 2, the Database 202 may contain intelligence or programming for connection to SQL databases and the like. Options regarding the operations of the database 202 may be read from a configuration file. The Database object 236 may be able to connect multiple databases for redundancy in the case of repeated or redundantly archived information, or for functionality in order to connect to that database which responds most quickly to the requests and commands.
  • The Database object 236 determines which database operation to perform and/or to which database to send operations based on the type of request it receives. For example, transaction requests may demand a separate database from those of regular query and BigSearch 222 requests. In order to maintain more efficient operation, the Database object 236 generally sends session users to the same database whenever possible so that latency and database replication is not passed on to the user.
  • The Database.Transaction object 214 is able to handle larger SQL statements such as those that would cause a load on the database. The Database.Transaction object 214 may spawn children classes that handle the transaction logic in order for more efficient operation.
  • The Database.Search object 216 is designed to handle smaller SQL statements and has children classes for specific search types, such as those along anticipated and common fields or types of information.
  • The Database.BigSearch object 222 handles larger, non-transactional SQL statements such as those used for reports in system accounting, monitoring, or otherwise. Children classes of the Database.BigSearch object 222 would handle specific large searches such as those that might be implemented on a monthly or other periodic basis.
  • The FileIO object 212 inherits and overrides Java®'s data file object. The file object contains logic to engage multiple disks or resources for redundancy and/or functionality and contains the functionalities necessary to manipulate files on the OS File System 204. The FileIO object 212 may react to the JMS (Java Messaging Service) events triggered by events on the disks of the OS File System 204.
  • Alternatively, one or more monitoring objects may be used to gather pertinent status information regarding the OS File System 204. When monitoring objects are used, the FileIO objects then query the common monitoring objects to determine the state of the system. In the present system, the monitoring object is denominated the Mount Point Status bean, or MPS bean, 534 (FIGS. 5 and 9).
  • Additionally, disk level transactions are carried out by the FileIO object 212. Under the management of the FileIO object 212, user accounts are able to span or traverse several disks. The spanning of such several disks enables better recovery from failure should an error occur or system resources become unavailable in an unpredictable manner. The XDFile object 210 uses FileIO 212 to handle the file system transactions. By using the Database.Transaction file object, the XDFile object 210 handles database file transactions. The XDFile object 210 coordinates transactions for both the FileIO object 212 and the Database.Transaction file object 214 to keep both synchronized and to handle failure should it occur.
  • The UserData object 230 holds user data for a session of the X:Drive system. A session is basically a span of time for which a user engages the X:Drive system. Methods are included in the UserData object 230 to manipulate the user status, so that the activity may be monitored, as well as whether or not the user has logged in.
  • The SessionSecurity object 224 uses web logic session mechanisms to create the UserData object 230. It does this by returning a separate object 226. The SessionSecurity object 224 authenticates a user's login and expires old sessions with re-direction of such old sessions to appropriate pages.
  • The FileAction object 220 may have children classes and contain logic for determining request types such as user requests, administration requests, etc. Tests for file action requests such as quotas and permissions, etc., may also be handled by the FileAction object 220. The FileAction object 220 accesses the file methods in the XDFile object 210.
  • The XDError object 240 reads a configuration file of error lists which gives each error an I.D. number. Such error lists preferably pivot on the language in which the X:Drive system 100 of the present invention is programmed. Such lists should also be able to pivot on the partner with which the X:Drive system 100 operates. Default values for the lists may be to X:Drive errors in the English language. The XDError object 240 preferably holds errors in a stack and returns any such errors from the stack. Additionally, the XDError object 240 preferably accepts new errors by code or by message.
  • The XDXML object 242 accepts an object and delivers as output an XML representation of a transaction or status requested by the user or client software.
  • FIG. 3 shows the data flow through the X:Drive system 100 of the present invention, particularly that as reflected by the tiered configuration shown in FIG. 1. From a starting point 300, a request is sent by HTTP POST/GET command at step 302. Web-DAV protocol may also be used and is currently considered preferable. The send request is implemented on the client 102 and is evaluated by the web server 120 as a request for static content in step 304. If the request is for static content, the file is served by the web server 120 at step 306, and the file is displayed at step 308 by the client 102.
  • If at step 304 the request for static content is evaluated as negative, a proxy request is issued by the web server network 120 to the Java® application cluster 122 at step 312. The request is received by the Java® application cluster (JAC) 122 and submitted to a sery let at step 314. The Java® application cluster (JAC) 122 then parses the request header at step 316. The Enterprise JavaBean' (EJB) network 124 then authenticates the request at step 318. If authentication cannot be achieved, process control is then re-directed to the re-login page via the JAC network 122 at step 320. If authentication succeeds at step 318, the JAC network 122 then parses the multi-part form data at step 324.
  • The JAC network 122 then determines the type of request at step 326. The request is then submitted to the FileAction EJB 220 at step 328. The EJB network 124 then evaluates the request at step 330 in order to ensure that all the business rules and other applicable limitations are met, such as quota limitations, permissions, and the like. If the evaluation is successful at step 330, the EJB network 124 then submits the request to the XDFile EJB 210 at step 332 and on to the transaction processor 146. The appropriate actions are then taken via the transactional database 152 and the disk arrays 150. If the business rule evaluation 330 fails, an error may be generated and, as for other errors in the data flow process of FIG. 3, a session error object 334 may be generated in a session error stack 336.
  • In effecting the data transfer to the ultimate system resources 104, evaluation is made as to the operation in step 340. If the operation is not a data read operation such as a directory listing or file read, the error stack is checked at step 342. If an error has occurred, the error status is sent to the client 102 at step 344. The client 102 then accepts the transmitted XML code and renders the appropriate display for the user at step 346. If the error stack evaluation step 342 does not reveal any error, a success message is generated at step 350, and the subsequently-generated XML is received by the client 102 and displayed by the user at step 346.
  • If at the evaluation step 340, the operation is not a data read action, the error stack is checked at step 352 much in the same way as it was at step 342. If an error has occurred, the error status is sent to the client 102 at step 354. The error status message is then received as XML code by the client 102 at step 346 and displayed to the user. If at evaluation step 352 the error stack reveals no errors, the evaluation is then made by the EJB cluster as to whether or not the operation is a file read at step 360. If the operation is a file read, the data stream is converted to a network stream and transmitted as a file to the client 102 by the Java® application network 122 at step 362. The data is then accepted by the client 102 and served to the user at step 364.
  • If at evaluation step 360 the operation is not a file read (see FIG. 4), then by elimination, the action is a request for file metadata such as a directory listing indication of file attributes or the like. At step 366, the metadata retrieved from the database 152 is then translated into XML format by the EJB cluster 124. The XML data is then transmitted to the JAC network 122, which encapsulates the XML from the network and sends it on to the client at step 368. The JAC network 122 then sends the encapsulated XML to the client 102 for rendering and display at step 346.
  • As indicated in the description above with regards to FIG. 3, users utilizing the client system 102 to connect to the X:Drive system 100 do so via the public Internet and then submit requests and receive replies effecting or indicating the user's requests. Requests for file manipulations, such as uploads, downloads, copies, moves and updates travel through each functional layer of the X:Drive system 100.
  • The core of the EJB cluster, and as indicated in FIG. 2, the XDFile EJB provides core effectiveness in the present X:Drive system 100. The XDFile EJB 210 is a multi-tiered component. The X:Drive system 100 stores file metadata (such as directory structure, file name, file attributes, etc.) in the database 152 for fast retrieval, sorting, searching, linking, and other capabilities beyond standard file systems. The actual file data is stored by the X:Drive system 100 in network-attached storage units or storage area networks such as those shown in FIG. 1, the NFS disk arrays 150.
  • To access files that exist in this hybrid environment (bifurcated between file information and file data), X:Drive uses the XDFile object 210 to manipulate both files and file data in two-phase committal transactions. FIG. 4 shows the details of these transactions.
  • In FIG. 4, the XDFile EJB system 400 allows entry at any one of the five darkened triangles. If the action is to be a copy, entry is made at the copy entry point 402. If the action is a file read, entry is made at the file read point 404. If the action is a file write, entry is made at the file write point 406. If the action is a file delete, entry is made at the delete point 408. If the action is a file move, entry into the XDFile EJB 210 is at the move entry point 410.
  • Beginning first with a file copy action beginning at the copy point 402, the evaluation of the operation occurs at step 420, where determination is made whether or not the action is a read transaction. If the action is a read transaction, program flow proceeds onto the read action and entry point 404. The corresponding database action 424 is then taken. As the action is a read transaction, the corresponding database record is read and evaluation is made as to whether or not the database action, in this case read action, has been successful at step 428. If the read action is not successful, the changes are then rolled back, if any, at step 432. An error is then returned at step 436 and the XDFile object awaits further instructions. If the evaluation at step 428 regarding the database action was successful, action can then be taken on the actual file itself on the OS File System 204 at step 440. In the present case, the FileOS Action 440 is a read action, and the file may be read into a temporary buffer or other memory space. The FileOS Action is evaluated for success at step 444. If the FileOS Action step 440 was unsuccessful, a fatal error is returned at step 448, and the changes, if any, are rolled back at step 452. If the evaluation at step 444 was successful, evaluation is made as to whether or not the action was a copy read at step 456. If the action was a copy read, return is made to the copy entry point 402 at step 464 in order to perform the write portion of the copy function. If the evaluation at step 456 indicates that the action was not a copy read action, evaluation is made at step 468 to determine if the action was a move/copy action. If the action was a move/copy action, control is then directed towards the move entry point 410 via step 472 in order to delete the original file as the success of the move/copy transaction at evaluation step 444 indicates the success of the file write step of the FileOS Action step 440. Program control is then turned over to the move/action entry point 410 so that the original file may be deleted at its original location via the delete entry point 408.
  • If the move/copy evaluation step 468 indicates that not only was the action not a copy read, it was also not a move/copy, then the action is committed to the system at the ultimate system resource level 104 at step 480 and an indication of success is then returned at step 484.
  • Upon reaching the move entry point at 410, evaluation is made at step 490 to determine whether or not the transaction is a copy transaction. If it is a copy transaction, the program then enters and executes the copy entry point 402. If not, the delete entry point 408 is activated to effect the remainder of the move transaction.
  • Consequently, it can be seen that a variety of actions take place depending upon the state of the XDFile EJB 210 at the database action 424 and FileOS action 440 steps.
  • In performing file reads and writes, simple one-step actions are taken because neither of these read or write actions are either copy reads 456 or move/copy 468 and so they fall into the system commit 480 and return a successful indication at step 484. The same is generally true for the one-step delete action. Consequently, whenever a user wants to read, write or delete a file, entry can be made into the respective entry points at 404, 406, and 408. Errors are returned when necessary.
  • However, the copy action 402 and the move action 410 require multiple loops through the XDFile EJB 210 in order to effect their operations. For the copy function 402, the initial read must be made successfully with the evaluation step 456 then prompting the write step to occur by the return to the copy entry point at step 464. The read transaction step 420 is then evaluated in the negative and the write entry point/action 406 is invoked with the database action occurring at step 424 to write the new information to the transactional database 152 and, if successful, the FileOS write action for the data at step 440. If the file write is successful, the evaluation at step 456 as to whether or not the action is a copy read is answered in the negative as is the evaluation of the transaction as to whether or not is a copy transaction executed under the move action at step 468. The resources are then committed, temporary resources are released, and the success indication is returned at step 484.
  • Consequently, for a copy transaction 402, the loop is first made through the read function 404 and then the write function 406. For the move action at entry point 410, a copy transaction is first executed with the two-loop operation as set forth previously. Upon completion of the copy action, the delete action 408 is implemented in order to erase the original file and its file data. Upon the third loop through the delete step 408, the transaction is neither a read under the copy command at step 456 nor a copy under the move command at step 468. Consequently, the move function has successfully completed, the system resources are committed at step 480, and a success indicator is returned at step 484.
  • In FIG. 5, an overview of the Java® architecture of the X:Drive system 100 of the present invention is shown. The Java® architecture 500 shown in FIG. 5 may generally arise from the client 102. A file action container 504 has certain attributes and operations as do the other beans of the architecture 500. Contained within the file action container 504 are a number of stateful, stateless, and entity beans, as well as other containers having other beans. The file action container 504 contains two stateful beans: a user date stateful bean 506 and a process request stateful bean 508. The user data stateful bean 506 has a user info entity bean 510 and a security stateless bean 512.
  • The process request stateful bean 508 contains a single container, the XDFile container 520. The XDFile container 520 contains three (3) beans and a container. The three beans of the XDFile container 520 are: a database IO stateful bean 522, a file IO stateful bean 524, and an admin stateful bean 526. The container is a recovery container 530 which contains a recovery IO stateful bean 532, a mount status stateful bean 534, a recovery admin stateful bean 536, and a recovery process stateful bean 538.
  • As indicated by the nature of the beans carried by the containers, stateful beans generally carry information about the state of the bean, process, or otherwise as useful information for the ends and operations of the X:Drive system 100 of the present invention. Stateless beans generally carry no state information, and entity beans are generally for information or identification only. As Java® beans are objects intended to carry both data and processes in association with one another, it is up to the operations of the X:Drive system 100 of the present invention to selectively and appropriately activate the beans and enable the proper actions to take place. The file action container 504 is shown in alternative representation in FIG. 6. In FIG. 6, a client 102 issues a user authentication request 602 and an operation request 604. The user authentication request 602 is passed into the user data stateful bean 506 in the file action container 504. The operation request 604 is passed into the process request stateful bean 508. The user information entity bean 510 then transmits information to a user information database 610, as does the security stateless bean 512. The process request stateful bean uses a first property file 612 that is loaded upon deployment of the XDFile container 520. The property file is loaded into the admin stateful bean 526 for use with the OS file system 204. A Java® transaction server 620 may operate in conjunction with the database 152 as well as the OS file system 204 in order to process the operation request 604. The second property file 630 may be loaded by the recovery admin stateful bean 536 upon the bean's deployment. The recovery 10 stateful bean 532 and the recovery admin stateful bean 536 both transmit information to the recovery queue storage buffer 640. The mount status bean 534 operates in conjunction with the mount status of the system 650.
  • The recovery container 530 is called when once a failed resource begins to recover. Further description of the recovery process is given below. However, FIGS. 5 and 6 operate in tandem to show linearly (FIG. 5) and organically (FIG. 6) the structure and operation of the XDFile object 210.
  • FIG. 7 shows the detail of the XDFile database component. A transaction processor (such as Tuxedo from BEA) works in conjunction with the database transaction object 214 as well as the FileIO object 212 to provide a robust and reliable system. Both the database transaction 214 and the FileIO 212 objects include logic and/or programming to handle situations where database or disk array access cannot be guaranteed. The database.transaction object 214 handles the inherent doubt present in the system by using replicated or repeated clusters of databases. The replication process creates latency or delay, in the system. In order to accommodate this latency, the database transaction object 214 uses a session object (a data construct representing a user session on the X:Drive system 100) to determine if the user's request can be transferred, or replicated, from one database cluster to another, in case of future system failure.
  • An important aspect with respect to the reliable operation of the X:Drive system 100 is the need to separate databases into functional groups. While the query database may be optimized for quick and small queries and while a transaction database might be optimized for fewer, larger, more time consuming updates, the database layer 236 in the X:Drive system 100 allows for associating SQL commands with different database clusters based on functionality. Additionally, the X:Drive database layer 236 is configured for consolidation and addition of databases on the fly.
  • As shown in FIG. 7, the SQL command 710 is issued and passed to a SQL command evaluator 712. A SQL evaluator determines the SQL type so that the SQL can be sent to the appropriate database type (that is, in the X:Drive system 100, the transaction database 150, the query database 152, or both).
  • Upon determining the database type of the SQL statement 712, the database preference is evaluated at step 714 to determine if the user should be sent back to the same database. If the user is not to be sent back to the same database, the database currently bearing the least load is found in step 716, and query is then made in step 718 to ensure that the selected least-loaded database is still up, running, and available. If it is, a specification regarding the pooling of database resources is created 720 and transmitted to the database object 236. Database object 236 then takes the SQL command and passes it to the appropriate database, either the transaction database 150 or the query database 152 via associated connecting pools 730.
  • If at step 718 the least loaded database is not available, an alternative database must be used and query is made at step 736 to determine whether or not the alternate database is up. If the alternate database is not up and the evaluation step 736 fails, additional databases may be queried or, as indicated in FIG. 7, a fatal error may be generated at step 738. If the alternate database is up, a pool specification 720 is generated and passed to the database object so that the SQL command may be implemented upon the transactional 152 databases via the connection pools 730.
  • If at step 714 the user must be sent back to the same database, query is made at step 740 to determine if that database is still up. If it is, the request is passed to the pool specification 720 where it is subsequently passed to the database object 236, on to the connection pool 730, and the appropriate database, either the transaction database 150 or the query database 152. If the same database is not up and the evaluation at step 740 fails, an alternative database must be used, but the SQL request is queried at step 744 to determine if the SQL command is transferable to the alternate database. If not, a fatal error occurs at step 746. If the SQL command is transferable, query is made at step 750 to see if the alternate database is up and active. Should the evaluation fail, subsequent databases may also be queried if the SQL command is transferable. However, as shown in FIG. 7, if the second database is unavailable, a fatal error may be generated at 746. Otherwise, the database is up, and the evaluation at step at 750 is successful and the command is made available to the database object 236 via the pool specification standard 720 and on to the databases through the connection pools 730.
  • In order to ensure proper operation of the XDFile database object 210, a database status monitor 760 persistently and on-goingly queries the databases 150, 152. The status is then returned to a database status object 762. the database status object may provide information to the recovery container 530 of the XDFile object 210.
  • The recovery mechanism for the X:Drive system 100 of the present invention is shown in FIG. 8. The FileIO object 212 uses a recovery object such as the recovery container 530 to handle write transactions 406 (as opposed to read transactions 404) when the transaction processor 214 fails. The recovery object is transparent to the user, making it easier and more convenient for the user to use the X:Drive system 100 while decreasing the concern that such a user would have in case of a power outage or other failure in one part of the X:Drive system 100.
  • The FileIO object 212 reports an error to the user, but informs the user that her request was stored in the X:Drive system 100 and that the X:Drive system 100 will try to apply the change as soon as possible. If the storage unit, represented as a mounting point in the EJB cluster becomes unavailable for write transactions 406, the monitoring client 760 updates the EJB network 124 that the status of the mounting point is “down.” Once the mounting point is available and checked for data integrity, the status is updated from “down” to “recovery” and the recovery object 530 is called to apply all queued requests for the file action container 504. This keeps the user from catastrophically losing uploads and other file writes, but may cause some delay in file reads.
  • In the recovery system 800 of the present invention, the multi-connected pooled database object, the recovery-enabled FileIO object 212, and the transaction processor 146 work together to create a resource layer offering high availability, recovery, and scalability. Additionally, this resource layer (encapsulated in the XDFile EJB 210) lends itself to replication of the data, both geographically and locally. Such replication preferably has the three essential traits of being off-site, application-driven, and accessible. With this level of controlled replication, secondary X:Drive clusters are enabled in geographically diverse locations in order to enhance the reliability of the X:Drive system 100. Consequently, data loss from one data center or even the physical loss of an entire data center would not cause loss of customer data or access. Re-direction would occur dynamically and this information would be replicated in a plurality of sites across the X:Drive system 100, the query or metadata databases provide multiple pointers to the user's data.
  • In the recovery system 800 of FIG. 8, the recovery system is initially initiated when the MPS Bean 534 is set for a mode to detect mount point recovery at step 804. At step 804, a recover method is called and the external mount point is checked. Query is made at step 806 to evaluate whether or not recovery is already occurring. If recovery is already occurring, an exception is thrown at step 808 and exit is made at this finish point. If recovery is not already occurring, a list of mount points in recovery mode is generated in step 810. Additionally, at step 812 a list of mount points which are down is also generated. Query is made at the evaluation step 818 as to the presence of available recovery objects in the recovery queue. If no such objects are available in the queue, the disk or other database is set into the “up” mode at step 820. The queue for that disk is then unlocked in step 822, and the recovery process is complete at step 824. If at evaluation step 818 recovery objects are still in the queue, evaluation is made as to whether or not the system has gone past the lock count at step 830. If so, the queue for the disk in recovery is locked at step 832 for both the lock count evaluation 830 and the queue lock 832 step, control is then directed to the evaluation step as to whether or not the target file exists 834. If the target file does not exist and the evaluation at step 834 fails, the recovery object is removed from the queue at step 840. The status of the recovery is subsequently put in the request for alert queue at step 842 and return is then made to the query step 818 to determine whether or not objects are still available for recovery in the queue.
  • If the target file does exist when evaluated at step 834, evaluation is made as to whether or not the request is more current than the file at step 850. If the request is older than the current file, the recovery object is removed from the queue at step 840, and the status for the request is put in the request or alert queue 842 and control returns back to the evaluation step 818 to see if any further recovery objects are available in the recovery queue.
  • If, in evaluating the request, it is found that the request is more current than the file, the request is submitted to the XDFile object 210 at step, 852. The submission of the request to the XDFile object 210 is not recoverable. If the submitted request is successful as indicated by the evaluation at step 854, the recovery object is removed from the queue at step 840, its status is put into the request for alert queue at step 842 and evaluation is made at step 818 as to the presence of any additional recovery objects in the recovery queue. However, if in submitting the request to the XDFile object 210 at step 852 the submission fails, query is made at step 860 as to whether or not the mount point has gone down. If at step 860 the mount point is still up, the request from this mount point is ignored at step 862 and the queue for the disk is unlocked at step 864. Control of the program is then returned to the recovery object availability query in evaluation step 818.
  • As shown in FIG. 9, the mount point status bean 534 has UP, DOWN, and RECOVERY states. This bean is applicable to the file database 150, as well as user disks 970, 972 as well as recovery disks 974, 976. Additionally, the recovery admin stateful bean 536 is directed towards the recovery database 980 in order to effect the recovery process 800.
  • In order to effect virus scanning and repair features, the X:Drive system 100 preferably uses the Java® JNI (Java Native Interface) to access a Norton Anti-Virus or other dynamically linked library (NAV.DLL) to scan files for viruses via a Java® servlet. The Java® servlet runs on a Windows™ version X server and can use JNI to make calls to the NAV.DLL dynamically linked libraries. In effect, the Windows™ X machine becomes a specialized NAV.DLL server located at the EJB network layer 124 of the X:Drive system 100, on a sub-network of the resource network. The logic integrating the NAV.DLL dynamic linked libraries' with all X:Drive file writes is shown schematically in the flow diagram in FIG. 10.
  • As shown in FIG. 10, the virus scanning sub-system 1000 takes the file/transaction ID 1002 and a transaction ID 1004 from a user 1006. The file/transaction ID 1002 is passed to a file write process 1008 executed by a SUN® or other web server 1010. The file is written to both the database generically indicated at reference 1020 and to a temporary file storage area 1022. The file write process 1008 passes the file transaction ID to the Norton Anti-Virus (NAV) process 1024. Within the NAV process 1024 is NAV scanner 1026. The NAV scanner monitors the data stream or otherwise to determine and detect the presence of any viruses. If upon evaluation the NAV process 1024 detects a virus at evaluation step 1028, data sink action is taken with respect to the database 1020. If no virus is detected, the sequence moves to its final termination at step 1030 and data sink action is taken with respect to a temporary file on medium 1032.
  • While both the file and transaction ID 1002 are delivered to the file write process 1008, the transaction ID alone 1004 is transmitted to a fetch location info step 1040 on a SUN® or other web server 1010. The fetch location info step 1040 transmits its results to an evaluation step 1042, which determines whether or not the file is in the temporary storage area 1022. If the file is in the temporary area, the file's upload status is shown in step 1044. If the file is not in the temporary medium 1022, virus information is fetched at step 1050 in the file status process 1036.
  • Once the virus information has been fetched, it is evaluated as to whether or not there is a virus present at step 1052. If there is no virus detected, then the virus evaluation terminates and a display of same may be made at step 1054.
  • However, if evaluation step 1052 indicates the presence of one or more viruses, a plurality of virus options may be shown and presented to the user at step 1060. Among the virus options available are: the cleaning of the virus at step 1062, moving the virus to a different location at step 1064, and/or deleting the virus in step 1066. If step 1064 is taken with the move of the virus-laden file despite its infectious nature is made, movement of the file with its final destination is made in step 1070.
  • As shown in FIG. 10, a number of data sink actions are taken with respect to information. Additionally, as indicated by FIG. 10, the NAV process 1024 is a separate entity and may be considered to be a JAVA® servlet/daemon living on specialized Windows® NT or other servers.
  • In order to make resources available on an on-going basis to the virus scanning sub-system 1000 of the present invention, a chron file 1074 (a file executing commands on a periodic basis according to the time) is used to remove old files from a first temporary storage resource 1002.
  • FIG. 11 shows the Skip the Download/Save to My Xdrive system where a file on the Internet can be transferred over to an individual's X:Drive at generally data speeds far faster than those available to the end user. This allows the user to exercise dominion and control over the file without having to bear the burden of downloading it to the local computer at the present moment. Once the transfer has taken place across the Internet from the host to the X:Drive system 100, then the user may download the file stored in his X:Drive directory to his local computer at his convenience.
  • As X:Drive exists on the Internet network, transferring a file from one network resource (such as a web or FTP server) to the user's X:Drive is made much faster from the user's standpoint by by-passing the local connection to the user and allowing the user to submit the transfer request directly to the X:Drive network for execution. The X:Drive system 100 then downloads the requested data from the target server to the user's X:Drive over the presumably higher speed connections of the public Internet.
  • As shown in FIG. 11, the Save to My Xdrive system 1100 first has the user 1110 submit the URL at step 1112. In order to access the X:Drive system 100 of the present invention, the user submits the URL as well as his or her user name and password at step 1114. Upon submitting the URL and the appropriate verification information, evaluation is made of the information for authentication purposes at step 1116. If the evaluation fails and authentication is not achieved, a login form is displayed in conjunction with the previously-indicated URL at step 1118. If the request is authenticated, it is submitted to the STD/STMX (Skip the Download/Save to My Xdrive) queue 1132 at step 1130. A status process is then spawned at step 1134.
  • Save to My Xdrive status is then checked on an on-going basis by using the queue in the temporary storage area at step 1136. Query is made as to whether or not the transfer is complete at step 1140. If the transfer is complete at step 1140, then the successful completion is indicated to the user at step 1142. However, if the transfer is not complete, query is made as to the presence of any transfer errors at step 1146. If an error has occurred, an error message is displayed to the user at step 1148. However, if the transfer is incomplete but no errors have occurred, the same is then displayed to the user at step 1150, and a short pause is taken at step 1152 for re-invoking the check STD process at step 1136.
  • Once the STD queue 1132 receives the request, a daemon process processes the request from the STD queue at step 1160. Query is made as to the business logic of the queued request at step 1162. If the request fails the business logic check 1162, the status is updated at step 1164. Control may transfer back to the STD queue 1132.
  • If the business logic check succeeds at step 1162, the URL site is contacted by the X:Drive system 100 at step 1170 and the download process is activated. The data transmitted by the URL is then saved in temporary X:Drive space in step 1172, with the data being transferred then to the user data space at step 1174. The URL site 1180 may exist anywhere on the Internet so long as it is available to the X:Drive system 100. In a similar manner, a temporary storage space 1182 may also exist anywhere on the Internet so long as it is accessible and controllable by the X:Drive system 100.
  • Upon transferring data to the user's data space as shown in step 1174, query is made as to the success of the transfer at step 1188. For either success or failure of the successful file transfer at evaluation step 1188, the status is updated at step 1164 and is passed on to the STD queue 1132 until either success or an error is finally achieved. The status process spawned at step 1130 monitors the update status generated by step 1164 and displays the status to the user during and after the download of the file from the Internet to the user's X:Drive system.
  • In an alternative embodiment, the STD/STMX (Skip the Download/Save to My Xdrive) operation may direct Xdrive to retrieve files from an Internet location and store it within their personal Xdrive account with authentication and with collateral file retrieval/secondary requests. The Xdrive system then may connect to Internet locations that require authentication, may query the user's local state for transient credentials (if allowed by the user), may query the user for credentials (if needed), and may securely store and reuse personal credentials (if the user allows). Further, the Xdrive system may examine the (or any) retrieved document and determine if there are additional resources to fetch and may allow the user to dictate the limit of fetching additional resources. Additionally, hierarchies of documents may be stored in a useable way so that they are not unduly cumbersome.
  • Beyond the Xdrive system operating characteristics as set forth above, additional features may enable the determining if the file request requires authentication. If so, and if previous personal credentials have been stored, such personal credentials may be used to authenticate the request. If no such credentials have been previously stored, or are not accepted by the request, and if allowed by the user, query may be made of the user's local environment for potential credentials and using them for the request. If these credentials are accepted, and if allowed by the user, they may be stored securely for reuse by this specific user for this domain of requests.
  • If the previously defined credentials are not available for use, query may be made of the user for such credentials, and (if allowed by the user) they may be stored securely for reuse by this specific user for this domain of requests.
  • Further, if the retrieved data includes locations of related Internet or other documents, files or otherwise, the Xdrive system may identify them and make requests for and retrieve them as well. If multiple related documents are fetched, they may be stored in a related and useful fashion in the user's account. If multiple files are to be fetched, the scope of the file fetch may be limited to a reasonable scope (depending on resources such as storage capacity, bandwidth, time, etc.) and, if needed or desired, allowing, the user to set this scope.
  • FIG. 12 shows a schematic and flowchart diagram for the client system generally used under Microsoft® Windows™ for achieving the present invention. The X:Drive system offers its clients two basic services: a file access service by which files can be uploaded and downloaded to and from X:Drive, as well as a file manipulation service from which file metadata can be obtained and manipulated. Both of these services rely upon the context of their usage. For example, the web client of the present invention uses native upload and download features as well as dialogs in the user's web browsers to facilitate the service.
  • With the use of the web browsers on the local machine, Windows® X clients use the Windows™ TCP/IP stacks inherently present with the Windows® version X operating system. All the file transfers effected by the X:Drive system can take place as HTTP POST/GET or, preferably, Web-DAV transfers. Generally, two basic layers are present in the file manipulation servers of the X:Drive system 100 of the present invention. An XML parser operates in conjunction with an XML data displayer. By coordinating the two basic layers of the file manipulation service, the server is able to respond with generally the same XML code to all clients. The client is then responsible for converting the XML to a relevant data structure and displaying the XML in an appropriate context. In the present invention, the JavaScript web client receives the XML code and parses it into a JavaScript data structure. A display layer in association with the client and/or browser renders the data structure as an HTML document. The Windows® X client parses the same XML code, but the display layer renders the data structure into a device listing that is understood by the Windows® version X operating system. The importance of this layered architecture is that it generally makes trivial the creation of new clients. Instead of simply creating dynamic web pages (and thus limiting service to web browsers alone), the X:Drive system 100 can enable many platforms, such as operating systems, without altering the server structure. Most platforms come with some sort of XML parsing layers, and many platforms come with display layers ready made. Consequently, the time to market may generally be considered low and efficient establishment and implementation of the X:Drive system 100 of the present invention can be achieved fairly quickly. Additionally, expansion into new platforms generally becomes much quicker as no alteration of the server structure generally needs to occur as Java® and related program functionalities are highly portable from one system to another.
  • In the client system 1200, as shown in FIG. 12, the client 102 has a file access service 1202, including a request processing layer 1204 coupled to a network I/O layer 1206. Commands and data are then transmitted to the server side of the X:Drive system 100 where the server side request processing layer 1210 transmits the data to a query evaluating whether or not the request is one for metadata at step 1212. If the evaluation fails and the request is not one for metadata, the network I/O layer 1216 and the resource access layer 1218 are invoked in order to provide access to and operation of the transaction database 152.
  • If the request for metadata query at step 1212 succeeds, the request is passed on to the resource access layer 1218 and on to the XML generation layer 1220. The response to the request from the metadatabase 150 is transmitted to the file manipulation service system 1230 of the client 120. The XML transmitted by the XML generation layer 1220 is received by the to file manipulation service 1230 as well as its XML handler 1232. The XML is then passed on to the XML parser layer at step 1234 to arrive at a data structure 1236 that is then ready for display and so is passed on to the data display layer 1238 for display to the user who may then re-initiate the process by implementing the file access service 1202.
  • An alternative embodiment of I/O (input/output) is “event broadcasting” which may be one of several forms of potential manipulations and/or forms of such I/O. In one embodiment, the X:Drive file system may have an event/subscriber model for file events. For example, when a new file is created, this generates, or initiates, an event which is transmitted the system giving notice and particulars of the event. Interested components of the X:Drive system, namely those that are affected by the event, can subscribe to a topic of events that may include new file creation. When such interested components receive an event, or notice of it, other asynchronous events may be triggered that the event broadcaster has no knowledge about. Consequently, independent or semi-independent operation of interested components can occur with the broadcast of events. Such initiating events can be chosen according to programmer or system preferences as can be the level of resolution, or granularity, of such events (from the very fine to the very broad).
  • Such event broadcasting may allow, among other things, for services such as: virus scanning, scanning new files for meta-data and inclusion into search indices, thumbnailing graphics for faster web display, adding music files to a personal media library, and other collateral, direct or system-oriented events.
  • Using the event broadcasting model, the X:Drive system may catch, or detect, new, updated, and deleted files and update a user's meta-data for faster searching, indexing, and richer application support.
  • Additionally, alternative embodiments may be implemented for a variety of I/O modes. I/O is not strictly for reading and writing files. Over a network, different modes of I/O may be desirable depending upon context.
  • For example, a user may want to read a music file and may want to access it as a stream, so they can listen to it over the network. Alternatively, the user may want to simply download the music file. The X:Drive system's I/O may be configured to “understand,” or otherwise interpret the user's actions or preferences in order to provide for different modes of access depending upon the context.
  • FIG. 13 shows the X:Drive system 100 as implemented on a Windows™ X machine, in this case, a Windows '98 machine (an Intel-based personal computer running the Microsoft Windows '98 operating system).
  • The second frontmost window 1310 of FIG. 13 is headed by the inscription “My Computer” and shows the presence of a drive at logical letter X: 1312 with the X:Drive logo and the label www.xdrive.com (X:). This is an example of the user interface provided by the client application. The X:Drive system is transparent to the user and functions as any other drive present on the system.
  • If the user were to click on or activate the X:\ drive on the My Computer window 1310, the second window 1320 appears (partially obscuring the “My Computer” window 1310) and shows the listing under the X:\ Drive. The address of the window 1320 shows the location of the directory as being at X:\ 1322.
  • Also shown in FIG. 13 is the desktop icon 1330, the start menu icon 1336, and the system tray icon 1340. These icons accompany the client program 102 and provide greater functionality for the user. Each icon serves to activate the client program in accordance with user-settable preferences.
  • FIG. 13 also shows the web-based application 1350 in the background, behind the My Computer 1310 and X:\ 1320 windows. The web-based application window 1350 is shown in FIG. 14. Note should be taken of the exact correspondence between the directory structures of web-based application window 1350 and the client-based application window 1320. This correspondence provides the user with a uniform, familiar, and dependable interface upon with the user can rely.
  • As set forth above, the three accompanying Appendices are incorporated herein in their entirety, as is the previously filed provisional application.
  • While the present invention has been described with regards to particular embodiments, it is recognized that additional variations of the present invention may be devised without departing from the inventive concept.

Claims (64)

1. A file storage and retrieval system, comprising:
a file database of files;
a metadatabase of information regarding said files, said metadatabase being separately accessible with respect to said file database such that faster operations are achieved by accessing said metadatabase in preference to said file database for information regarding said files;
said metadatabase updated contemporaneously with changes to said file database to enable said metadatabase to better reflect current information regarding said files of said file database;
said information regarding said files selected from the group consisting of directory structure and/or location, filenames, file attributes, and combinations thereof;
said faster operations selected from the group consisting of metadata retrieval, metadata sorting, metadata searching, metadata linking, metadata manipulation, displaying information regarding files of said file database so that a user is able to obtain quickly information about said files without having to access said files, file information handling, user query handling, satisfying user requests, file information distribution, and combinations thereof.
2. A shared internet storage resource, comprising:
a storage facility, said storage facility adapted to be coupled to a network, said storage facility storing files;
a searchable database of metadata regarding files stored on said storage facility such that user ease and facility are enhanced by searching said database of metadata, said database of metadata updated on an ongoing basis to reflect file status and to avoid updating a corresponding file from which file metadata arises, said database of metadata updated to reflect a change in status of said file even if said file having no change in content.
3. A shared computer network storage system, comprising:
a first database containing file data, said first database distributed over at least two physical storage devices;
a second database containing information (metadata) about said file data of said first database, said second database distributed over at least two physical storage devices;
a server, said server executing file commands on said first file database, said server contemporaneously updating said second metadatabase upon executing said file commands, said server including:
a transaction processor, said transaction processor on a non-routable network, said transaction processor guarantees access to and transactions on said first and second databases;
an enterprise java bean cluster (EJBC) on a non-routable network, said enterprise java bean cluster (EJBC) coupled to said transaction processor and handling business logic and resource access methods a well as memory caching for common resources;
an application network on a non-routable network, said application network coupled to said enterprise java bean cluster, said application network including a java application cluster and handling display functions and resource requests;
a web server, said web server coupled to said application network and handling all requests for static content and proxies requests for dynamic content;
a load balancer, said load balancer coupled to said web server and proxying requests to a sub-server having the highest degree of availability or functionality; and
a DNS redirector, said DNS redirector coupled to said load balancer and proxying requests to a resource having a highest degree of functionality; and
said server adapted to communicate with a client application and adapted to receive file commands from said client application, said server executing said file commands and updating information regarding said first file and second metadata databases for display by said client application; whereby files in said first file database are available for control by said client application and information regarding status of said first database files is more readily available by reference to said second metadatabase.
4. A method for providing private file space and information transfer over a public computer network, the steps comprising:
providing a publicly-available private file space system coupled to the public computer network;
said publicly-available private file space system adapted to communicate with a client program in communication with the public computer network;
receiving a request from said client program by said publicly-available private file space system (“private system”);
evaluating said request for static content and returning an appropriate response if said request is for static content;
providing an application network within said private system;
proxying said request to said application network; and
parsing a header of said request authenticating said request by authenticating a user using said client program and authenticating said request made by said client program to ensure that it conforms with an account associated with said user;
parsing multipart form data associated with said request;
determining said request's type;
submitting said request;
satisfying said request; and
returning a success indicator indicating the success or failure of said request; whereby files held by said private system are available for said client program to create and control.
5. A client-server system for a network-based data storage and manipulation system, comprising:
a server, said server providing network-based data storage resources, said server creating and maintaining metadata regarding stored data, said server adapted to receive and respond to requests transmitted by a client system, said server effecting said requests;
said server determining if a client request is one for metadata;
said server providing said metadata if said client request is for metadata and transmitting said metadata to said client system;
said server performing a file action if said client request is not for metadata, said server updating said metadata and transmitting said metadata to said client system;
said server having a second network I/O layer, said second network I/O layer engaged when said requests are not for metadata, said second network I/O layer transmitting requests for file action, said server having a resource access layer, said resource access layer receiving transmissions from said second network I/O layer and effecting said requests, said resource access layer engaged when said requests are for metadata, said resource access layer obtaining and transmitting said metadata, and said server having a metadata compiler in the form of an XML generator, said metadata compiler receiving said metadata from said resource access layer, compiling said metadata, and transmitting said compiled metadata to said client system; whereby
said server operates in a manner that may be represented as similar to operations local to said client system.
6. A file storage and retrieval system, comprising:
a file database of files; and
a metadatabase of information regarding said files, said metadatabase being separately accessible with respect to said file database; whereby
faster operations are achieved by accessing said metadatabase in preference to said file database for information regarding said files.
7. A file storage and retrieval system as set forth in claim 6, further comprising:
said metadatabase updated contemporaneously with changes to said file database to enable said metadatabase to better reflect current information regarding said files of said file database.
8. A file storage and retrieval system as set forth in claim 6, further comprising:
said information regarding said files selected from the group consisting of directory structure and/or location, filenames, file attributes, and combinations thereof.
9. A file storage and retrieval system as set forth in claim 6, further comprising:
said faster operations selected from the group consisting of metadata retrieval, metadata sorting, metadata searching, metadata linking, metadata manipulation, and combinations thereof.
10. A file storage and retrieval system as set forth in claim 6, further comprising:
said faster operations including displaying information regarding files of said file database, whereby
a user is able to obtain quickly information about said files without having to access said files.
11. A file storage and retrieval system as set forth in claim 6, further comprising:
said faster operations selected from the group consisting of file information handling, user query handling, satisfying user requests, file information distribution, and combinations thereof.
12. A shared internet storage resource, comprising:
a storage facility, said storage facility adapted to be coupled to a network, said storage facility storing files; and
a searchable database of metadata regarding files stored on said storage facility; whereby
user ease and facility are enhanced by searching said database of metadata.
13. A shared internet storage resource as set forth in claim 12, further comprising:
updating said database of metadata to reflect file status.
14. A shared internet storage resource as set forth in claim 13, further comprising:
updating said database of metadata to avoid updating a corresponding file from which file metadata arises.
15. A shared internet storage resource as set forth in claim 14, further comprising:
updating said database of metadata to reflect a change in status of said file, said file having no change in content.
16. A shared computer network storage system, comprising:
a first database containing file data;
a second database containing information (metadata) about said file data of said first database;
a server, said server executing file commands on said first file database, said server contemporaneously updating said second metadatabase upon executing said file commands; and
a client application, said client application communicating with said server, said client application invoking file commands upon said server, said server executing said file commands and updating information regarding said first file and second metadata databases displayed by said client application; whereby
said client application controls files in said first file database and information regarding status of said first database files is more readily available by reference to said second metadatabase.
17. The shared computer network storage system of claim 16, wherein said first file database is distributed over at least two physical storage devices.
18. The shared computer network storage system of claim 16, wherein said second metadatabase is distributed over at least two physical storage devices.
19. The shared computer network storage system of claim 16, wherein said client application communicates with said server via a proxy.
20. The shared computer network storage system of claim 16, wherein said server comprises a non-routable network.
21. The shared computer network storage system of claim 16, wherein said server comprises a transaction processor.
22. The shared computer network storage system of claim 21, wherein said transaction processor guarantees access to and transactions on said first and second databases.
23. The shared computer network storage system of claim 16, wherein said server comprises an enterprise java bean cluster (EJBC).
24. The shared computer network storage system of claim 23, wherein said enterprise java bean cluster (EJBC) handles business logic and resource access methods a well as memory caching for common resources.
25. The shared computer network storage system of claim 16, wherein said server further comprises an application network.
26. The shared computer network storage system of claim 25, wherein said application network further comprises a java application cluster.
27. The shared computer network storage system of claim 25, wherein said application network handles display functions and resource requests.
28. The shared computer network storage system of claim 16, wherein said server further comprises a web server.
29. The shared computer network storage system of claim 28, wherein said web server handles all requests for static content and proxies requests for dynamic content.
30. The shared computer network storage system of claim 16, wherein said server further comprises a load balancer, said load balancer proxying requests to a sub-server having the highest degree of availability or functionality.
31. The shared computer network storage system of claim 16 wherein said server further comprises a DNS redirector, said DNS redirector proxying requests to a resource having a highest degree of functionality.
32. The shared computer network storage system of claim 16 wherein said server further comprises:
a transaction processor, said transaction processor on a non-routable network, said transaction processor guarantees access to and transactions on said first and second databases;
an enterprise java bean cluster (EJBC) on a non-routable network, said enterprise java bean cluster (EJBC) coupled to said transaction processor and handling business logic and resource access methods a well as memory caching for common resources;
an application network on a non-routable network, said application network coupled to said enterprise java bean cluster, said application network including a java application cluster and handling display functions and resource requests;
a web server, said web server coupled to said application network and handling all requests for static content and proxies requests for dynamic content;
a load balancer, said load balancer coupled to said web server and proxying requests to a sub-server having the highest degree of availability or functionality; and
a DNS redirector, said DNS redirector coupled to said load balancer and proxying requests to a resource having a highest degree of functionality.
33. The shared computer network storage system of claim 16, wherein said client application is web-based.
34. The shared computer network storage system of claim 16, wherein said client application interacts with an operating system running upon a computer upon which said client application is also running, said client application adopting and implementing a visual display format similar to said operating system.
35. A shared computer network storage system, comprising:
a first database containing file data;
a second database containing information (metadata) about said file data of said first database;
a server, said server executing file commands on said first file database, said server contemporaneously updating said second metadatabase upon executing said file commands; and
said server adapted to communicate with a client application and adapted to receive file commands from said client application, said server executing said file commands and updating information regarding said first file and second metadata databases for display by said client application; whereby
files in said first file database are available for control by said client application and information regarding status of said first database files is more readily available by reference to said second metadatabase.
36. The shared computer network storage system of claim 35, wherein said first file database is distributed over at least two physical storage devices.
37. The shared computer network storage system of claim 35, wherein said second metadatabase is distributed over at least two physical storage devices.
38. The shared computer network storage system of claim 35, wherein said server is adapted to communicate with said client application via a proxy.
39. The shared computer network storage system of claim 35, wherein said server comprises a non-routable network.
40. The shared computer network storage system of claim 35, wherein said server comprises a transaction processor.
41. The shared computer network storage system of claim 40, wherein said transaction processor guarantees access to and transactions on said first and second databases.
42. The shared computer network storage system of claim 35, wherein said server comprises an enterprise java bean cluster (EJBC).
43. The shared computer network storage system of claim 42, wherein said enterprise java bean cluster (EJBC) handles business logic and resource access methods a well as memory caching for common resources.
44. The shared computer network storage system of claim 35, wherein said server further comprises an application network.
45. The shared computer network storage system of claim 44, wherein said application network further comprises a java application cluster.
46. The shared computer network storage system of claim 44, wherein said application network handles display functions and resource requests.
47. The shared computer network storage system of claim 35, wherein said server further comprises a web server.
48. The shared computer network storage system of claim 47, wherein said web server handles all requests for static content and proxies requests for dynamic content.
49. The shared computer network storage system of claim 35, wherein said server further comprises a load balancer, said load balancer proxying requests to a sub-server having the highest degree of availability or functionality.
50. The shared computer network storage system of claim 35 wherein said server further comprises a DNS redirector, said DNS redirector proxying requests to a resource having a highest degree of functionality.
51. The shared computer network storage system of claim 35 wherein said server further comprises:
a transaction processor, said transaction processor on a non-routable network, said transaction processor guarantees access to and transactions on said first and second databases;
an enterprise java bean cluster (EJBC) on a non-routable network, said enterprise java bean cluster (EJBC) coupled to said transaction processor and handling business logic and resource access methods a well as memory caching for common resources;
an application network on a non-routable network, said application network coupled to said enterprise java bean cluster, said application network including a java application cluster and handling display functions and resource requests;
a web server, said web server coupled to said application network and handling all requests for static content and proxies requests for dynamic content;
a load balancer, said load balancer coupled to said web server and proxying requests to a sub-server having the highest degree of availability or functionality; and
a DNS redirector, said DNS redirector coupled to said load balancer and proxying requests to a resource having a highest degree of functionality.
52. The shared computer network storage system of claim 35, wherein said server is adapted to communicate with a web-based client application.
53. The shared computer network storage system of claim 3, wherein said server is adapted to communicate with a web-based client application.
54. A method for providing private file space and information transfer over a public computer network, the steps comprising:
providing a publicly-available private file space system adapted to be coupled to the public computer network;
said publicly-available private file space system adapted to communicate with a client program in communication with the public computer network;
receiving a request from said client program by said publicly-available private file space system (“private system”);
evaluating said request;
authenticating said request;
satisfying said request; and
returning a success indicator indicating the success or failure of said request; whereby
files held by said private system are available for said client program to create and control.
55. The method for providing private file space and information transfer over a public computer network as set forth in claim 54, wherein the step of evaluating said request further comprises evaluating said request for static content and returning an appropriate response if said request is for static content.
56. The method for providing private file space and information transfer over a public computer network as set forth in claim 55, the steps further comprising:
providing an application network within said private system;
proxying said request to said application network; and
parsing a header of said request.
57. The method for providing private file space and information transfer over a public computer network as set forth in claim 54, wherein said step of authenticating said request further comprises:
authenticating a user using said client program; and
authenticating said request made by said client program to ensure that it conforms with an account associated with said user.
58. The method for providing private file space and information transfer over a public computer network as set forth in claim 54, further comprising:
parsing multipart form data associated with said request;
determining said request's type; and
submitting said request.
59. A shared file storage resource for a computer network, comprising:
an allocatable file storage resource;
a server, said server coupled to said storage resource, said server:
allocating individual user file space for a plurality of users on said storage resource;
receiving files for storage on said storage resource;
transmitting files stored on said storage resource;
generating control-protocol codes for transmitting said files;
receiving file commands for controlling files on said storage resource; and
transmitting display codes indicating file status on said storage resource, said display codes representing said storage resource as a network drive;
a first network connection, said first network connection coupling said server to the computer network; and
said server adapted to communicate with a workstation able to receive files from said server and transmit files to said server; whereby
said allocatable storage resource may store, retrieve, and control files for a user in a unique and secure file storage area on said allocatable storage resource available throughout the computer network and detached from said workstation.
60. The shared file storage resource for a computer network as set forth in claim 59, wherein said display codes further comprise:
a browser-interpretable object, such as a JavaScript object, said object displaying file status on said storage resource as a web page.
61. The shared file storage resource for a computer network as set forth in claim 59, wherein said computer network, further comprises:
the Internet.
62. A client-server system for a network-based data storage and manipulation system, comprising:
a server, said server providing network-based data storage resources and adapted to receive and respond to requests transmitted by a client system, said server effecting said requests;
said server determining if a client request is one for metadata regarding data stored upon said server;
said server providing said metadata if said client request is for metadata and transmitting said metadata to said client system; and
said server performing a file action if said client request is not for metadata, said server updating said metadata and transmitting said metadata to said client system; whereby
said server operates in a manner that may be represented as similar to operations local to said client system.
63. The client-server system for a network-based data storage and manipulation system as set forth in claim 62, wherein said server further comprises:
a second network I/O layer, said second network I/O layer engaged when said requests are not for metadata, said second network I/O layer transmitting requests for file action; and
a resource access layer, said resource access layer receiving transmissions from said second network I/O layer and effecting said requests, said resource access layer engaged when said requests are for metadata, said resource access layer obtaining and transmitting said metadata; and
a metadata compiler, said metadata compiler receiving said metadata from said resource access layer, compiling said metadata, and transmitting said compiled metadata to said client system.
64. The client-server system for a network-based data storage and manipulation system as set forth in claim 63, wherein said metadata compiler is an XML generator.
US12/229,717 1999-11-04 2008-08-26 Shared Internet storage resource, user interface system, and method Abandoned US20100185614A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US12/229,717 US20100185614A1 (en) 1999-11-04 2008-08-26 Shared Internet storage resource, user interface system, and method
US14/094,671 US9378212B2 (en) 1999-11-04 2013-12-02 Methods and systems for providing file data and metadata
US15/194,399 US20160306821A1 (en) 1999-11-04 2016-06-27 Shared internet storage resource, user interface system, and method

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US16362699P 1999-11-04 1999-11-04
US09/570,583 US6351776B1 (en) 1999-11-04 2000-05-12 Shared internet storage resource, user interface system, and method
US10/073,775 US6985927B2 (en) 1999-11-04 2002-02-11 Shared internet storage resource, user interface system, and method
US11/075,311 US7337207B2 (en) 1999-11-04 2005-03-08 Shared internet storage resource, user interface system, and method
US11/089,173 US7171472B2 (en) 1999-11-04 2005-03-23 Shared internet storage resource, user interface system, and method
US11/089,397 US7496578B2 (en) 1999-11-04 2005-03-24 Shared internet storage resource, user interface system, and method
US11/089,174 US20050204020A1 (en) 1999-11-04 2005-03-24 Shared internet storage resource, user interface system, and method
US11/601,234 US9369770B2 (en) 1999-11-04 2006-11-17 Network personal digital video recorder system (NPDVR)
US12/229,717 US20100185614A1 (en) 1999-11-04 2008-08-26 Shared Internet storage resource, user interface system, and method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/089,397 Continuation-In-Part US7496578B2 (en) 1999-11-04 2005-03-24 Shared internet storage resource, user interface system, and method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/094,671 Division US9378212B2 (en) 1999-11-04 2013-12-02 Methods and systems for providing file data and metadata

Publications (1)

Publication Number Publication Date
US20100185614A1 true US20100185614A1 (en) 2010-07-22

Family

ID=42337739

Family Applications (3)

Application Number Title Priority Date Filing Date
US12/229,717 Abandoned US20100185614A1 (en) 1999-11-04 2008-08-26 Shared Internet storage resource, user interface system, and method
US14/094,671 Expired - Lifetime US9378212B2 (en) 1999-11-04 2013-12-02 Methods and systems for providing file data and metadata
US15/194,399 Abandoned US20160306821A1 (en) 1999-11-04 2016-06-27 Shared internet storage resource, user interface system, and method

Family Applications After (2)

Application Number Title Priority Date Filing Date
US14/094,671 Expired - Lifetime US9378212B2 (en) 1999-11-04 2013-12-02 Methods and systems for providing file data and metadata
US15/194,399 Abandoned US20160306821A1 (en) 1999-11-04 2016-06-27 Shared internet storage resource, user interface system, and method

Country Status (1)

Country Link
US (3) US20100185614A1 (en)

Cited By (176)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090043813A1 (en) * 2007-08-08 2009-02-12 Microsoft Corporation Embedding a Representation of an Item in a Host
US20100235431A1 (en) * 2009-03-16 2010-09-16 Microsoft Corporation Datacenter synchronization
US20120143995A1 (en) * 2010-12-03 2012-06-07 Salesforce.Com, Inc. Techniques for metadata-driven dynamic content serving
US8762330B1 (en) * 2012-09-13 2014-06-24 Kip Cr P1 Lp System, method and computer program product for partially synchronous and partially asynchronous mounts/unmounts in a media library
US20140304308A1 (en) * 2013-04-08 2014-10-09 Sap Ag Interface Optimizing Model Based Upon Database Information
US8983904B2 (en) 2008-02-18 2015-03-17 Microsoft Technology Licensing, Llc Synchronization of replications for different computing systems
US9042812B1 (en) 2013-11-06 2015-05-26 At&T Intellectual Property I, Lp Surface-wave communications and methods thereof
US9113347B2 (en) 2012-12-05 2015-08-18 At&T Intellectual Property I, Lp Backhaul link for distributed antenna system
US9195437B2 (en) 2008-04-28 2015-11-24 Salesforce.Com, Inc. Object-oriented system for creating and managing websites and their content
US9209902B2 (en) 2013-12-10 2015-12-08 At&T Intellectual Property I, L.P. Quasi-optical coupler
US9223892B2 (en) 2010-09-30 2015-12-29 Salesforce.Com, Inc. Device abstraction for page generation
US20160037015A1 (en) * 2010-09-09 2016-02-04 Canon Kabushiki Kaisha Data processing apparatus, control method, and program
CN105389096A (en) * 2015-10-27 2016-03-09 深圳市深信服电子科技有限公司 Browser based data interaction method and apparatus
CN105404696A (en) * 2015-12-23 2016-03-16 北京奇虎科技有限公司 Method, system and device for downloading photographs in photograph album
US9312919B1 (en) 2014-10-21 2016-04-12 At&T Intellectual Property I, Lp Transmission device with impairment compensation and methods for use therewith
CN105512328A (en) * 2015-12-23 2016-04-20 北京奇虎科技有限公司 Method, system and device for realizing uploading of album photos
US9461706B1 (en) 2015-07-31 2016-10-04 At&T Intellectual Property I, Lp Method and apparatus for exchanging communication signals
US9490869B1 (en) 2015-05-14 2016-11-08 At&T Intellectual Property I, L.P. Transmission medium having multiple cores and methods for use therewith
US9503189B2 (en) 2014-10-10 2016-11-22 At&T Intellectual Property I, L.P. Method and apparatus for arranging communication sessions in a communication system
US9509415B1 (en) 2015-06-25 2016-11-29 At&T Intellectual Property I, L.P. Methods and apparatus for inducing a fundamental wave mode on a transmission medium
US9520945B2 (en) 2014-10-21 2016-12-13 At&T Intellectual Property I, L.P. Apparatus for providing communication services and methods thereof
US9525210B2 (en) 2014-10-21 2016-12-20 At&T Intellectual Property I, L.P. Guided-wave transmission device with non-fundamental mode propagation and methods for use therewith
US9525524B2 (en) 2013-05-31 2016-12-20 At&T Intellectual Property I, L.P. Remote distributed antenna system
US9531427B2 (en) 2014-11-20 2016-12-27 At&T Intellectual Property I, L.P. Transmission device with mode division multiplexing and methods for use therewith
US9564947B2 (en) 2014-10-21 2017-02-07 At&T Intellectual Property I, L.P. Guided-wave transmission device with diversity and methods for use therewith
US9577307B2 (en) 2014-10-21 2017-02-21 At&T Intellectual Property I, L.P. Guided-wave transmission device and methods for use therewith
US9608740B2 (en) 2015-07-15 2017-03-28 At&T Intellectual Property I, L.P. Method and apparatus for launching a wave mode that mitigates interference
US9608692B2 (en) 2015-06-11 2017-03-28 At&T Intellectual Property I, L.P. Repeater and methods for use therewith
US9615269B2 (en) 2014-10-02 2017-04-04 At&T Intellectual Property I, L.P. Method and apparatus that provides fault tolerance in a communication network
US9628854B2 (en) 2014-09-29 2017-04-18 At&T Intellectual Property I, L.P. Method and apparatus for distributing content in a communication network
US9628116B2 (en) 2015-07-14 2017-04-18 At&T Intellectual Property I, L.P. Apparatus and methods for transmitting wireless signals
US9640850B2 (en) 2015-06-25 2017-05-02 At&T Intellectual Property I, L.P. Methods and apparatus for inducing a non-fundamental wave mode on a transmission medium
US9654173B2 (en) 2014-11-20 2017-05-16 At&T Intellectual Property I, L.P. Apparatus for powering a communication device and methods thereof
US9653770B2 (en) 2014-10-21 2017-05-16 At&T Intellectual Property I, L.P. Guided wave coupler, coupling module and methods for use therewith
US9667317B2 (en) 2015-06-15 2017-05-30 At&T Intellectual Property I, L.P. Method and apparatus for providing security using network traffic adjustments
US9680670B2 (en) 2014-11-20 2017-06-13 At&T Intellectual Property I, L.P. Transmission device with channel equalization and control and methods for use therewith
US9685992B2 (en) 2014-10-03 2017-06-20 At&T Intellectual Property I, L.P. Circuit panel network and methods thereof
US9692101B2 (en) 2014-08-26 2017-06-27 At&T Intellectual Property I, L.P. Guided wave couplers for coupling electromagnetic waves between a waveguide surface and a surface of a wire
US9705561B2 (en) 2015-04-24 2017-07-11 At&T Intellectual Property I, L.P. Directional coupling device and methods for use therewith
US9705571B2 (en) 2015-09-16 2017-07-11 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system
US9722318B2 (en) 2015-07-14 2017-08-01 At&T Intellectual Property I, L.P. Method and apparatus for coupling an antenna to a device
US9729197B2 (en) 2015-10-01 2017-08-08 At&T Intellectual Property I, L.P. Method and apparatus for communicating network management traffic over a network
US9735833B2 (en) 2015-07-31 2017-08-15 At&T Intellectual Property I, L.P. Method and apparatus for communications management in a neighborhood network
US9742462B2 (en) 2014-12-04 2017-08-22 At&T Intellectual Property I, L.P. Transmission medium and communication interfaces and methods for use therewith
US9749053B2 (en) 2015-07-23 2017-08-29 At&T Intellectual Property I, L.P. Node device, repeater and methods for use therewith
US9749013B2 (en) 2015-03-17 2017-08-29 At&T Intellectual Property I, L.P. Method and apparatus for reducing attenuation of electromagnetic waves guided by a transmission medium
US9748626B2 (en) 2015-05-14 2017-08-29 At&T Intellectual Property I, L.P. Plurality of cables having different cross-sectional shapes which are bundled together to form a transmission medium
US9755697B2 (en) 2014-09-15 2017-09-05 At&T Intellectual Property I, L.P. Method and apparatus for sensing a condition in a transmission medium of electromagnetic waves
US9762289B2 (en) 2014-10-14 2017-09-12 At&T Intellectual Property I, L.P. Method and apparatus for transmitting or receiving signals in a transportation system
US9769128B2 (en) 2015-09-28 2017-09-19 At&T Intellectual Property I, L.P. Method and apparatus for encryption of communications over a network
US9769020B2 (en) 2014-10-21 2017-09-19 At&T Intellectual Property I, L.P. Method and apparatus for responding to events affecting communications in a communication network
US9780834B2 (en) 2014-10-21 2017-10-03 At&T Intellectual Property I, L.P. Method and apparatus for transmitting electromagnetic waves
US9793954B2 (en) 2015-04-28 2017-10-17 At&T Intellectual Property I, L.P. Magnetic coupling device and methods for use therewith
US9793955B2 (en) 2015-04-24 2017-10-17 At&T Intellectual Property I, Lp Passive electrical coupling device and methods for use therewith
US9793951B2 (en) 2015-07-15 2017-10-17 At&T Intellectual Property I, L.P. Method and apparatus for launching a wave mode that mitigates interference
US9800327B2 (en) 2014-11-20 2017-10-24 At&T Intellectual Property I, L.P. Apparatus for controlling operations of a communication device and methods thereof
US9820146B2 (en) 2015-06-12 2017-11-14 At&T Intellectual Property I, L.P. Method and apparatus for authentication and identity management of communicating devices
US9820138B2 (en) 2014-10-22 2017-11-14 At&T Intellectual Property I, L.P. Method and apparatus for resource management in a communication system
US9836957B2 (en) 2015-07-14 2017-12-05 At&T Intellectual Property I, L.P. Method and apparatus for communicating with premises equipment
US9838896B1 (en) 2016-12-09 2017-12-05 At&T Intellectual Property I, L.P. Method and apparatus for assessing network coverage
US9847850B2 (en) 2014-10-14 2017-12-19 At&T Intellectual Property I, L.P. Method and apparatus for adjusting a mode of communication in a communication network
US9847566B2 (en) 2015-07-14 2017-12-19 At&T Intellectual Property I, L.P. Method and apparatus for adjusting a field of a signal to mitigate interference
US9853342B2 (en) 2015-07-14 2017-12-26 At&T Intellectual Property I, L.P. Dielectric transmission medium connector and methods for use therewith
US9860075B1 (en) 2016-08-26 2018-01-02 At&T Intellectual Property I, L.P. Method and communication node for broadband distribution
US9865911B2 (en) 2015-06-25 2018-01-09 At&T Intellectual Property I, L.P. Waveguide system for slot radiating first electromagnetic waves that are combined into a non-fundamental wave mode second electromagnetic wave on a transmission medium
US9866309B2 (en) 2015-06-03 2018-01-09 At&T Intellectual Property I, Lp Host node device and methods for use therewith
US9871282B2 (en) 2015-05-14 2018-01-16 At&T Intellectual Property I, L.P. At least one transmission medium having a dielectric surface that is covered at least in part by a second dielectric
US9871283B2 (en) 2015-07-23 2018-01-16 At&T Intellectual Property I, Lp Transmission medium having a dielectric core comprised of plural members connected by a ball and socket configuration
US9876605B1 (en) 2016-10-21 2018-01-23 At&T Intellectual Property I, L.P. Launcher and coupling system to support desired guided wave mode
US9876571B2 (en) 2015-02-20 2018-01-23 At&T Intellectual Property I, Lp Guided-wave transmission device with non-fundamental mode propagation and methods for use therewith
US9876264B2 (en) 2015-10-02 2018-01-23 At&T Intellectual Property I, Lp Communication system, guided wave switch and methods for use therewith
US9882257B2 (en) 2015-07-14 2018-01-30 At&T Intellectual Property I, L.P. Method and apparatus for launching a wave mode that mitigates interference
US9882277B2 (en) 2015-10-02 2018-01-30 At&T Intellectual Property I, Lp Communication device and antenna assembly with actuated gimbal mount
US9893795B1 (en) 2016-12-07 2018-02-13 At&T Intellectual Property I, Lp Method and repeater for broadband distribution
US9904535B2 (en) 2015-09-14 2018-02-27 At&T Intellectual Property I, L.P. Method and apparatus for distributing software
US9906269B2 (en) 2014-09-17 2018-02-27 At&T Intellectual Property I, L.P. Monitoring and mitigating conditions in a communication network
US9911020B1 (en) 2016-12-08 2018-03-06 At&T Intellectual Property I, L.P. Method and apparatus for tracking via a radio frequency identification device
US9913139B2 (en) 2015-06-09 2018-03-06 At&T Intellectual Property I, L.P. Signal fingerprinting for authentication of communicating devices
US9912027B2 (en) 2015-07-23 2018-03-06 At&T Intellectual Property I, L.P. Method and apparatus for exchanging communication signals
US9912381B2 (en) 2015-06-03 2018-03-06 At&T Intellectual Property I, Lp Network termination and methods for use therewith
US9912419B1 (en) 2016-08-24 2018-03-06 At&T Intellectual Property I, L.P. Method and apparatus for managing a fault in a distributed antenna system
US9917341B2 (en) 2015-05-27 2018-03-13 At&T Intellectual Property I, L.P. Apparatus and method for launching electromagnetic waves and for modifying radial dimensions of the propagating electromagnetic waves
US9927517B1 (en) 2016-12-06 2018-03-27 At&T Intellectual Property I, L.P. Apparatus and methods for sensing rainfall
US9948333B2 (en) 2015-07-23 2018-04-17 At&T Intellectual Property I, L.P. Method and apparatus for wireless communications to mitigate interference
US9948354B2 (en) 2015-04-28 2018-04-17 At&T Intellectual Property I, L.P. Magnetic coupling device with reflective plate and methods for use therewith
US9954287B2 (en) 2014-11-20 2018-04-24 At&T Intellectual Property I, L.P. Apparatus for converting wireless signals and electromagnetic waves and methods thereof
US9967173B2 (en) 2015-07-31 2018-05-08 At&T Intellectual Property I, L.P. Method and apparatus for authentication and identity management of communicating devices
US9973940B1 (en) 2017-02-27 2018-05-15 At&T Intellectual Property I, L.P. Apparatus and methods for dynamic impedance matching of a guided wave launcher
US9991580B2 (en) 2016-10-21 2018-06-05 At&T Intellectual Property I, L.P. Launcher and coupling system for guided wave mode cancellation
US9999038B2 (en) 2013-05-31 2018-06-12 At&T Intellectual Property I, L.P. Remote distributed antenna system
US9998870B1 (en) 2016-12-08 2018-06-12 At&T Intellectual Property I, L.P. Method and apparatus for proximity sensing
US9997819B2 (en) 2015-06-09 2018-06-12 At&T Intellectual Property I, L.P. Transmission medium and method for facilitating propagation of electromagnetic waves via a core
US10009065B2 (en) 2012-12-05 2018-06-26 At&T Intellectual Property I, L.P. Backhaul link for distributed antenna system
US10009067B2 (en) 2014-12-04 2018-06-26 At&T Intellectual Property I, L.P. Method and apparatus for configuring a communication interface
US10009901B2 (en) 2015-09-16 2018-06-26 At&T Intellectual Property I, L.P. Method, apparatus, and computer-readable storage medium for managing utilization of wireless resources between base stations
US10009063B2 (en) 2015-09-16 2018-06-26 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having an out-of-band reference signal
US10020844B2 (en) 2016-12-06 2018-07-10 T&T Intellectual Property I, L.P. Method and apparatus for broadcast communication via guided waves
US10020587B2 (en) 2015-07-31 2018-07-10 At&T Intellectual Property I, L.P. Radial antenna and methods for use therewith
US10027397B2 (en) 2016-12-07 2018-07-17 At&T Intellectual Property I, L.P. Distributed antenna system and methods for use therewith
US10033108B2 (en) 2015-07-14 2018-07-24 At&T Intellectual Property I, L.P. Apparatus and methods for generating an electromagnetic wave having a wave mode that mitigates interference
US10033107B2 (en) 2015-07-14 2018-07-24 At&T Intellectual Property I, L.P. Method and apparatus for coupling an antenna to a device
US10044409B2 (en) 2015-07-14 2018-08-07 At&T Intellectual Property I, L.P. Transmission medium and methods for use therewith
US10051629B2 (en) 2015-09-16 2018-08-14 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having an in-band reference signal
US10051483B2 (en) 2015-10-16 2018-08-14 At&T Intellectual Property I, L.P. Method and apparatus for directing wireless signals
US10069535B2 (en) 2016-12-08 2018-09-04 At&T Intellectual Property I, L.P. Apparatus and methods for launching electromagnetic waves having a certain electric field structure
US10074890B2 (en) 2015-10-02 2018-09-11 At&T Intellectual Property I, L.P. Communication device and antenna with integrated light assembly
US10079661B2 (en) 2015-09-16 2018-09-18 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having a clock reference
US10090606B2 (en) 2015-07-15 2018-10-02 At&T Intellectual Property I, L.P. Antenna system with dielectric array and methods for use therewith
US10090594B2 (en) 2016-11-23 2018-10-02 At&T Intellectual Property I, L.P. Antenna system having structural configurations for assembly
US10103422B2 (en) 2016-12-08 2018-10-16 At&T Intellectual Property I, L.P. Method and apparatus for mounting network devices
US10103801B2 (en) 2015-06-03 2018-10-16 At&T Intellectual Property I, L.P. Host node device and methods for use therewith
US10135146B2 (en) 2016-10-18 2018-11-20 At&T Intellectual Property I, L.P. Apparatus and methods for launching guided waves via circuits
US10135147B2 (en) 2016-10-18 2018-11-20 At&T Intellectual Property I, L.P. Apparatus and methods for launching guided waves via an antenna
US10136434B2 (en) 2015-09-16 2018-11-20 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having an ultra-wideband control channel
US10135145B2 (en) 2016-12-06 2018-11-20 At&T Intellectual Property I, L.P. Apparatus and methods for generating an electromagnetic wave along a transmission medium
US10142086B2 (en) 2015-06-11 2018-11-27 At&T Intellectual Property I, L.P. Repeater and methods for use therewith
US10139820B2 (en) 2016-12-07 2018-11-27 At&T Intellectual Property I, L.P. Method and apparatus for deploying equipment of a communication system
US10148016B2 (en) 2015-07-14 2018-12-04 At&T Intellectual Property I, L.P. Apparatus and methods for communicating utilizing an antenna array
US10144036B2 (en) 2015-01-30 2018-12-04 At&T Intellectual Property I, L.P. Method and apparatus for mitigating interference affecting a propagation of electromagnetic waves guided by a transmission medium
US10154493B2 (en) 2015-06-03 2018-12-11 At&T Intellectual Property I, L.P. Network termination and methods for use therewith
US10168695B2 (en) 2016-12-07 2019-01-01 At&T Intellectual Property I, L.P. Method and apparatus for controlling an unmanned aircraft
US10170840B2 (en) 2015-07-14 2019-01-01 At&T Intellectual Property I, L.P. Apparatus and methods for sending or receiving electromagnetic signals
US10178445B2 (en) 2016-11-23 2019-01-08 At&T Intellectual Property I, L.P. Methods, devices, and systems for load balancing between a plurality of waveguides
US10205655B2 (en) 2015-07-14 2019-02-12 At&T Intellectual Property I, L.P. Apparatus and methods for communicating utilizing an antenna array and multiple communication paths
US10224634B2 (en) 2016-11-03 2019-03-05 At&T Intellectual Property I, L.P. Methods and apparatus for adjusting an operational characteristic of an antenna
US10225025B2 (en) 2016-11-03 2019-03-05 At&T Intellectual Property I, L.P. Method and apparatus for detecting a fault in a communication system
US10243784B2 (en) 2014-11-20 2019-03-26 At&T Intellectual Property I, L.P. System for generating topology information and methods thereof
US10243270B2 (en) 2016-12-07 2019-03-26 At&T Intellectual Property I, L.P. Beam adaptive multi-feed dielectric antenna system and methods for use therewith
US10264586B2 (en) 2016-12-09 2019-04-16 At&T Mobility Ii Llc Cloud-based packet controller and methods for use therewith
US10291311B2 (en) 2016-09-09 2019-05-14 At&T Intellectual Property I, L.P. Method and apparatus for mitigating a fault in a distributed antenna system
US10291334B2 (en) 2016-11-03 2019-05-14 At&T Intellectual Property I, L.P. System for detecting a fault in a communication system
US10298293B2 (en) 2017-03-13 2019-05-21 At&T Intellectual Property I, L.P. Apparatus of communication utilizing wireless network devices
US10305190B2 (en) 2016-12-01 2019-05-28 At&T Intellectual Property I, L.P. Reflecting dielectric antenna system and methods for use therewith
US10312567B2 (en) 2016-10-26 2019-06-04 At&T Intellectual Property I, L.P. Launcher with planar strip antenna and methods for use therewith
US10320586B2 (en) 2015-07-14 2019-06-11 At&T Intellectual Property I, L.P. Apparatus and methods for generating non-interfering electromagnetic waves on an insulated transmission medium
US10326494B2 (en) 2016-12-06 2019-06-18 At&T Intellectual Property I, L.P. Apparatus for measurement de-embedding and methods for use therewith
US10326689B2 (en) 2016-12-08 2019-06-18 At&T Intellectual Property I, L.P. Method and system for providing alternative communication paths
US10340573B2 (en) 2016-10-26 2019-07-02 At&T Intellectual Property I, L.P. Launcher with cylindrical coupling device and methods for use therewith
US10341142B2 (en) 2015-07-14 2019-07-02 At&T Intellectual Property I, L.P. Apparatus and methods for generating non-interfering electromagnetic waves on an uninsulated conductor
US10340603B2 (en) 2016-11-23 2019-07-02 At&T Intellectual Property I, L.P. Antenna system having shielded structural configurations for assembly
US10340983B2 (en) 2016-12-09 2019-07-02 At&T Intellectual Property I, L.P. Method and apparatus for surveying remote sites via guided wave communications
US10340601B2 (en) 2016-11-23 2019-07-02 At&T Intellectual Property I, L.P. Multi-antenna system and methods for use therewith
US10340600B2 (en) 2016-10-18 2019-07-02 At&T Intellectual Property I, L.P. Apparatus and methods for launching guided waves via plural waveguide systems
US10348391B2 (en) 2015-06-03 2019-07-09 At&T Intellectual Property I, L.P. Client node device with frequency conversion and methods for use therewith
US10355367B2 (en) 2015-10-16 2019-07-16 At&T Intellectual Property I, L.P. Antenna structure for exchanging wireless signals
US10359749B2 (en) 2016-12-07 2019-07-23 At&T Intellectual Property I, L.P. Method and apparatus for utilities management via guided wave communication
US10361489B2 (en) 2016-12-01 2019-07-23 At&T Intellectual Property I, L.P. Dielectric dish antenna system and methods for use therewith
US10374316B2 (en) 2016-10-21 2019-08-06 At&T Intellectual Property I, L.P. System and dielectric antenna with non-uniform dielectric
US10382976B2 (en) 2016-12-06 2019-08-13 At&T Intellectual Property I, L.P. Method and apparatus for managing wireless communications based on communication paths and network device positions
US10389037B2 (en) 2016-12-08 2019-08-20 At&T Intellectual Property I, L.P. Apparatus and methods for selecting sections of an antenna array and use therewith
US10389029B2 (en) 2016-12-07 2019-08-20 At&T Intellectual Property I, L.P. Multi-feed dielectric antenna system with core selection and methods for use therewith
US10396887B2 (en) 2015-06-03 2019-08-27 At&T Intellectual Property I, L.P. Client node device and methods for use therewith
US10411356B2 (en) 2016-12-08 2019-09-10 At&T Intellectual Property I, L.P. Apparatus and methods for selectively targeting communication devices with an antenna array
US10439675B2 (en) 2016-12-06 2019-10-08 At&T Intellectual Property I, L.P. Method and apparatus for repeating guided wave communication signals
US10446936B2 (en) 2016-12-07 2019-10-15 At&T Intellectual Property I, L.P. Multi-feed dielectric antenna system and methods for use therewith
US10498044B2 (en) 2016-11-03 2019-12-03 At&T Intellectual Property I, L.P. Apparatus for configuring a surface of an antenna
US10530505B2 (en) 2016-12-08 2020-01-07 At&T Intellectual Property I, L.P. Apparatus and methods for launching electromagnetic waves along a transmission medium
US10535928B2 (en) 2016-11-23 2020-01-14 At&T Intellectual Property I, L.P. Antenna system and methods for use therewith
US10547348B2 (en) 2016-12-07 2020-01-28 At&T Intellectual Property I, L.P. Method and apparatus for switching transmission mediums in a communication system
US10601494B2 (en) 2016-12-08 2020-03-24 At&T Intellectual Property I, L.P. Dual-band communication device and method for use therewith
US10637149B2 (en) 2016-12-06 2020-04-28 At&T Intellectual Property I, L.P. Injection molded dielectric antenna and methods for use therewith
US10650940B2 (en) 2015-05-15 2020-05-12 At&T Intellectual Property I, L.P. Transmission medium having a conductive material and methods for use therewith
US10665942B2 (en) 2015-10-16 2020-05-26 At&T Intellectual Property I, L.P. Method and apparatus for adjusting wireless communications
US10679767B2 (en) 2015-05-15 2020-06-09 At&T Intellectual Property I, L.P. Transmission medium having a conductive material and methods for use therewith
US10694379B2 (en) 2016-12-06 2020-06-23 At&T Intellectual Property I, L.P. Waveguide system with device-based authentication and methods for use therewith
US10727599B2 (en) 2016-12-06 2020-07-28 At&T Intellectual Property I, L.P. Launcher with slot antenna and methods for use therewith
US10755542B2 (en) 2016-12-06 2020-08-25 At&T Intellectual Property I, L.P. Method and apparatus for surveillance via guided wave communication
US10777873B2 (en) 2016-12-08 2020-09-15 At&T Intellectual Property I, L.P. Method and apparatus for mounting network devices
US10784670B2 (en) 2015-07-23 2020-09-22 At&T Intellectual Property I, L.P. Antenna support for aligning an antenna
US10811767B2 (en) 2016-10-21 2020-10-20 At&T Intellectual Property I, L.P. System and dielectric antenna with convex dielectric radome
US10819035B2 (en) 2016-12-06 2020-10-27 At&T Intellectual Property I, L.P. Launcher with helical antenna and methods for use therewith
US10916969B2 (en) 2016-12-08 2021-02-09 At&T Intellectual Property I, L.P. Method and apparatus for providing power using an inductive coupling
US10938108B2 (en) 2016-12-08 2021-03-02 At&T Intellectual Property I, L.P. Frequency selective multi-feed dielectric antenna system and methods for use therewith
US11032819B2 (en) 2016-09-15 2021-06-08 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having a control channel reference signal
US20220255938A1 (en) * 2021-02-07 2022-08-11 Hangzhou Jindoutengyun Technologies Co., Ltd. Method and system for processing network resource access requests, and computer device
US11611520B1 (en) 2012-09-22 2023-03-21 Motion Offense, Llc Methods, systems, and computer program products for processing a data object identification request in a communication

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6351776B1 (en) 1999-11-04 2002-02-26 Xdrive, Inc. Shared internet storage resource, user interface system, and method
US20030121047A1 (en) * 2001-12-20 2003-06-26 Watson Paul T. System and method for content transmission network selection
US9755856B1 (en) * 2010-04-13 2017-09-05 West Corporation Method, apparatus and computer program to provide access to client records and data resources
RU2610266C2 (en) 2014-10-07 2017-02-08 Общество С Ограниченной Ответственностью "Яндекс" Method and system for providing access to file for web resource
US10785282B2 (en) * 2015-12-17 2020-09-22 Dropbox, Inc. Link file sharing and synchronization
CN107018168B (en) 2016-09-19 2020-07-24 阿里巴巴集团控股有限公司 Internet resource scheduling method and device and network red packet scheduling method
US10387383B2 (en) 2017-02-15 2019-08-20 Google Llc Systems and methods for providing access to a data file stored at a data storage system

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544320A (en) * 1993-01-08 1996-08-06 Konrad; Allan M. Remote information service access system based on a client-server-service model
US5771354A (en) * 1993-11-04 1998-06-23 Crawford; Christopher M. Internet online backup system provides remote storage for customers using IDs and passwords which were interactively established when signing up for backup services
US5861883A (en) * 1997-05-13 1999-01-19 International Business Machines Corp. Method and system for portably enabling awareness, touring, and conferencing over the world-wide web using proxies and shared-state servers
US5956490A (en) * 1998-06-30 1999-09-21 Motorola, Inc. Method, client device, server and computer readable medium for specifying and negotiating compression of uniform resource identifiers
US5987454A (en) * 1997-06-09 1999-11-16 Hobbs; Allen Method and apparatus for selectively augmenting retrieved text, numbers, maps, charts, still pictures and/or graphics, moving pictures and/or graphics and audio information from a network resource
US6003030A (en) * 1995-06-07 1999-12-14 Intervu, Inc. System and method for optimized storage and retrieval of data on a distributed computer network
US6061798A (en) * 1996-02-06 2000-05-09 Network Engineering Software, Inc. Firewall system for protecting network elements connected to a public network
US6128627A (en) * 1998-04-15 2000-10-03 Inktomi Corporation Consistent data storage in an object cache
US6128624A (en) * 1997-11-12 2000-10-03 Ncr Corporation Collection and integration of internet and electronic commerce data in a database during web browsing
US6735631B1 (en) * 1998-02-10 2004-05-11 Sprint Communications Company, L.P. Method and system for networking redirecting
US6842758B1 (en) * 1999-07-30 2005-01-11 Computer Associates Think, Inc. Modular method and system for performing database queries
US6947959B1 (en) * 1992-10-01 2005-09-20 Quark, Inc. Digital media asset management system and process

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4598357A (en) 1980-11-14 1986-07-01 Sperry Corporation Cache/disk subsystem with file number for recovery of cached data
WO1994001964A1 (en) 1992-07-08 1994-01-20 Bell Atlantic Network Services, Inc. Media server for supplying video and multi-media data over the public telephone switched network
CA2118278C (en) * 1993-12-21 1999-09-07 J. David Garland Multimedia system
US5799147A (en) 1994-10-19 1998-08-25 Shannon; John P. Computer recovery backup method
US6009433A (en) 1995-04-14 1999-12-28 Kabushiki Kaisha Toshiba Information storage and information transmission media with parental control
US5884032A (en) 1995-09-25 1999-03-16 The New Brunswick Telephone Company, Limited System for coordinating communications via customer contact channel changing system using call centre for setting up the call between customer and an available help agent
US5740425A (en) 1995-09-26 1998-04-14 Povilus; David S. Data structure and method for publishing electronic and printed product catalogs
US6021433A (en) 1996-01-26 2000-02-01 Wireless Internet, Inc. System and method for transmission of data
CA2257309C (en) 1996-06-07 2002-06-11 At&T Corp. Internet file system
DE19625196A1 (en) 1996-06-24 1998-01-02 Godi Meyer Gizella Data archiving system
EP0972247B1 (en) 1996-08-02 2004-03-17 Hewlett-Packard Company Method and apparatus for allowing distributed control of shared resources
US5819047A (en) 1996-08-30 1998-10-06 At&T Corp Method for controlling resource usage by network identities
US5991781A (en) 1996-09-27 1999-11-23 Sun Microsystems, Inc. Method and apparatus for detecting and presenting client side image map attributes including sound attributes using page layout data strings
US5893116A (en) 1996-09-30 1999-04-06 Novell, Inc. Accessing network resources using network resource replicator and captured login script for use when the computer is disconnected from the network
US5987506A (en) 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
US6678724B2 (en) 1997-03-12 2004-01-13 Microsoft Corporation Common namespace for internet and local filesystem objects
US6119229A (en) 1997-04-11 2000-09-12 The Brodia Group Virtual property system
US5915264A (en) 1997-04-18 1999-06-22 Storage Technology Corporation System for providing write notification during data set copy
US6175842B1 (en) 1997-07-03 2001-01-16 At&T Corp. System and method for providing dynamic three-dimensional multi-user virtual spaces in synchrony with hypertext browsing
US6049877A (en) 1997-07-16 2000-04-11 International Business Machines Corporation Systems, methods and computer program products for authorizing common gateway interface application requests
US5940823A (en) 1997-11-10 1999-08-17 International Business Machines Corporation System for the distribution and storage of electronic mail information
US6151601A (en) 1997-11-12 2000-11-21 Ncr Corporation Computer architecture and method for collecting, analyzing and/or transforming internet and/or electronic commerce data for storage into a data storage area
US6173318B1 (en) 1997-12-16 2001-01-09 Intel Corporation Method and apparatus for pre-fetching data for an application using a winsock client layered service provider and a transparent proxy
US5991774A (en) * 1997-12-22 1999-11-23 Schneider Automation Inc. Method for identifying the validity of an executable file description by appending the checksum and the version ID of the file to an end thereof
US6807632B1 (en) 1999-01-21 2004-10-19 Emc Corporation Content addressable information encapsulation, representation, and transfer
US6028605A (en) 1998-02-03 2000-02-22 Documentum, Inc. Multi-dimensional analysis of objects by manipulating discovered semantic properties
US6151624A (en) 1998-02-03 2000-11-21 Realnames Corporation Navigating network resources based on metadata
US6154738A (en) 1998-03-27 2000-11-28 Call; Charles Gainor Methods and apparatus for disseminating product information via the internet using universal product codes
US6421729B1 (en) 1998-04-14 2002-07-16 Citicorp Development Center, Inc. System and method for controlling transmission of stored information to internet websites
US6138158A (en) 1998-04-30 2000-10-24 Phone.Com, Inc. Method and system for pushing and pulling data using wideband and narrowband transport systems
US6035325A (en) 1998-05-13 2000-03-07 International Business Machines Corporation Retrieval, saving and printing in a computer network system environment
US6973455B1 (en) 1999-03-03 2005-12-06 Emc Corporation File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator
US6108703A (en) 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6792430B1 (en) * 1998-07-29 2004-09-14 Qwest Communications International Information organization and navigation by user-generated associative overlays
US6256664B1 (en) 1998-09-01 2001-07-03 Bigfix, Inc. Method and apparatus for computed relevance messaging
US7051275B2 (en) 1998-09-15 2006-05-23 Microsoft Corporation Annotations for multiple versions of media content
US6253202B1 (en) * 1998-09-18 2001-06-26 Tacit Knowledge Systems, Inc. Method, system and apparatus for authorizing access by a first user to a knowledge profile of a second user responsive to an access request from the first user
US6148414A (en) 1998-09-24 2000-11-14 Seek Systems, Inc. Methods and systems for implementing shared disk array management functions
US6327608B1 (en) 1998-09-25 2001-12-04 Microsoft Corporation Server administration tool using remote file browser
US6615244B1 (en) 1998-11-28 2003-09-02 Tara C Singhal Internet based archive system for personal computers
US6571245B2 (en) * 1998-12-07 2003-05-27 Magically, Inc. Virtual desktop in a computer network
US6333931B1 (en) 1998-12-28 2001-12-25 Cisco Technology, Inc. Method and apparatus for interconnecting a circuit-switched telephony network and a packet-switched data network, and applications thereof
US6199195B1 (en) * 1999-07-08 2001-03-06 Science Application International Corporation Automatically generated objects within extensible object frameworks and links to enterprise resources
US6480955B1 (en) 1999-07-09 2002-11-12 Lsi Logic Corporation Methods and apparatus for committing configuration changes to managed devices prior to completion of the configuration change
US6031747A (en) * 1999-08-02 2000-02-29 Lockheed Martin Missiles & Space Company Interleaved synchronous flyback converter with high efficiency over a wide operating load range
AU6515400A (en) 1999-08-03 2001-02-19 Videoshare, Inc. Method and system for sharing video over a network
US6209124B1 (en) 1999-08-30 2001-03-27 Touchnet Information Systems, Inc. Method of markup language accessing of host systems and data using a constructed intermediary
US6601234B1 (en) * 1999-08-31 2003-07-29 Accenture Llp Attribute dictionary in a business logic services environment
US6690882B1 (en) 1999-09-27 2004-02-10 Western Digital Technologies, Inc. Method of operating a disk drive for reading and writing audiovisual data on an urgent basis
US6978381B1 (en) * 1999-10-26 2005-12-20 International Business Machines Corporation Enhancement to a system for automated generation of file access control system commands
US6351776B1 (en) * 1999-11-04 2002-02-26 Xdrive, Inc. Shared internet storage resource, user interface system, and method
US7496578B2 (en) * 1999-11-04 2009-02-24 Aol Llc Shared internet storage resource, user interface system, and method
US7613993B1 (en) 2000-01-21 2009-11-03 International Business Machines Corporation Prerequisite checking in a system for creating compilations of content
EP1275042A2 (en) 2000-03-06 2003-01-15 Kanisa Inc. A system and method for providing an intelligent multi-step dialog with a user
US6877006B1 (en) 2000-07-19 2005-04-05 Vasudevan Software, Inc. Multimedia inspection database system (MIDaS) for dynamic run-time data evaluation
US20020180803A1 (en) 2001-03-29 2002-12-05 Smartdisk Corporation Systems, methods and computer program products for managing multimedia content
US7266704B2 (en) 2000-12-18 2007-09-04 Digimarc Corporation User-friendly rights management systems and methods
WO2002050657A1 (en) 2000-12-19 2002-06-27 Coolernet, Inc. System and method for multimedia authoring and playback
US7197493B2 (en) 2001-12-21 2007-03-27 Lifestory Productions, Inc. Collection management database of arbitrary schema
US7369984B2 (en) 2002-02-01 2008-05-06 John Fairweather Platform-independent real-time interface translation by token mapping without modification of application code
KR100496869B1 (en) 2002-09-12 2005-06-22 한국전자통신연구원 Apparatus for storing dispersed plenty of video data in video geographic information system and management method thereof
US20050160014A1 (en) 2004-01-15 2005-07-21 Cairo Inc. Techniques for identifying and comparing local retail prices
US20050193015A1 (en) 2004-02-19 2005-09-01 Sandraic Logic, Llc A California Limited Liability Company Method and apparatus for organizing, sorting and navigating multimedia content
US7461090B2 (en) 2004-04-30 2008-12-02 Microsoft Corporation System and method for selection of media items
US7730129B2 (en) * 2004-10-20 2010-06-01 Inbit, Inc. Collaborative communication platforms
US20060095372A1 (en) 2004-11-01 2006-05-04 Sap Aktiengesellschaft System and method for management and verification of invoices
US20070208685A1 (en) 2004-11-17 2007-09-06 Steven Blumenau Systems and Methods for Infinite Information Organization
WO2007008624A2 (en) 2005-07-07 2007-01-18 John Christian Boucard System and method for interactive data management
US7774335B1 (en) 2005-08-23 2010-08-10 Amazon Technologies, Inc. Method and system for determining interest levels of online content navigation paths
WO2007047560A2 (en) 2005-10-18 2007-04-26 Packetvideo Corp. System and method for controlling and/or managing metadata of multimedia
US7546535B2 (en) 2005-12-19 2009-06-09 At&T Intellectual Property, I, L.P. Methods, systems, and computer program products for sorting electronic-mail messages
US20070260572A1 (en) 2006-05-03 2007-11-08 Boucard John C Interactive data management system
US8260862B2 (en) 2006-09-14 2012-09-04 Centurylink Intellectual Property Llc System and method for authenticating users of online services
US8275666B2 (en) 2006-09-29 2012-09-25 Apple Inc. User supplied and refined tags
US9697280B2 (en) 2006-12-13 2017-07-04 Quickplay Media, Inc. Mediation and settlement for mobile media
US7900225B2 (en) 2007-02-20 2011-03-01 Google, Inc. Association of ads with tagged audiovisual content

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6947959B1 (en) * 1992-10-01 2005-09-20 Quark, Inc. Digital media asset management system and process
US5696901A (en) * 1993-01-08 1997-12-09 Konrad; Allan M. Remote information service access system based on a client-server-service model
US5544320A (en) * 1993-01-08 1996-08-06 Konrad; Allan M. Remote information service access system based on a client-server-service model
US6014651A (en) * 1993-11-04 2000-01-11 Crawford; Christopher M. Commercial online software distribution systems and methods using encryption for security
US5771354A (en) * 1993-11-04 1998-06-23 Crawford; Christopher M. Internet online backup system provides remote storage for customers using IDs and passwords which were interactively established when signing up for backup services
US5901228A (en) * 1993-11-04 1999-05-04 Crawford; Christopher M. Commercial online backup service that provides transparent extended storage to remote customers over telecommunications links
US6003030A (en) * 1995-06-07 1999-12-14 Intervu, Inc. System and method for optimized storage and retrieval of data on a distributed computer network
US6061798A (en) * 1996-02-06 2000-05-09 Network Engineering Software, Inc. Firewall system for protecting network elements connected to a public network
US5861883A (en) * 1997-05-13 1999-01-19 International Business Machines Corp. Method and system for portably enabling awareness, touring, and conferencing over the world-wide web using proxies and shared-state servers
US5987454A (en) * 1997-06-09 1999-11-16 Hobbs; Allen Method and apparatus for selectively augmenting retrieved text, numbers, maps, charts, still pictures and/or graphics, moving pictures and/or graphics and audio information from a network resource
US6128624A (en) * 1997-11-12 2000-10-03 Ncr Corporation Collection and integration of internet and electronic commerce data in a database during web browsing
US6735631B1 (en) * 1998-02-10 2004-05-11 Sprint Communications Company, L.P. Method and system for networking redirecting
US6128627A (en) * 1998-04-15 2000-10-03 Inktomi Corporation Consistent data storage in an object cache
US5956490A (en) * 1998-06-30 1999-09-21 Motorola, Inc. Method, client device, server and computer readable medium for specifying and negotiating compression of uniform resource identifiers
US6842758B1 (en) * 1999-07-30 2005-01-11 Computer Associates Think, Inc. Modular method and system for performing database queries

Cited By (255)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090043813A1 (en) * 2007-08-08 2009-02-12 Microsoft Corporation Embedding a Representation of an Item in a Host
US9536009B2 (en) * 2007-08-08 2017-01-03 Microsoft Technology Licensing, Llc Embedding a representation of an item in a host
US10852911B2 (en) 2007-08-08 2020-12-01 Microsoft Technology Licensing, Llc Embedding a representation of an item in a host
US11687702B2 (en) * 2007-08-08 2023-06-27 Microsoft Technology Licensing, Llc Embedding a representation of an item in a host
US8983904B2 (en) 2008-02-18 2015-03-17 Microsoft Technology Licensing, Llc Synchronization of replications for different computing systems
US9811506B2 (en) 2008-04-28 2017-11-07 Salesforce.Com, Inc. Object-oriented system for creating and managing websites and their content
US10489486B2 (en) 2008-04-28 2019-11-26 Salesforce.Com, Inc. Object-oriented system for creating and managing websites and their content
US9195437B2 (en) 2008-04-28 2015-11-24 Salesforce.Com, Inc. Object-oriented system for creating and managing websites and their content
US20100235431A1 (en) * 2009-03-16 2010-09-16 Microsoft Corporation Datacenter synchronization
US8291036B2 (en) * 2009-03-16 2012-10-16 Microsoft Corporation Datacenter synchronization
US20160037015A1 (en) * 2010-09-09 2016-02-04 Canon Kabushiki Kaisha Data processing apparatus, control method, and program
US9912830B2 (en) * 2010-09-09 2018-03-06 Canon Kabushiki Kaisha Data processing apparatus, control method, and program
US9635090B2 (en) 2010-09-30 2017-04-25 Salesforce.Com, Inc. Device abstraction for page generation
US9223892B2 (en) 2010-09-30 2015-12-29 Salesforce.Com, Inc. Device abstraction for page generation
US20150127781A1 (en) * 2010-12-03 2015-05-07 Salesforce.Com, Inc. Techniques for metadata-driven dynamic content serving
US10911516B2 (en) 2010-12-03 2021-02-02 Salesforce.Com, Inc. Techniques for metadata-driven dynamic content serving
US9525720B2 (en) * 2010-12-03 2016-12-20 Salesforce.Com, Inc. Techniques for metadata-driven dynamic content serving
US20120143995A1 (en) * 2010-12-03 2012-06-07 Salesforce.Com, Inc. Techniques for metadata-driven dynamic content serving
US10212209B2 (en) 2010-12-03 2019-02-19 Salesforce.Com, Inc. Techniques for metadata-driven dynamic content serving
US20160164947A1 (en) * 2010-12-03 2016-06-09 Salesforce.Com, Inc. Techniques for metadata-driven dynamic content serving
US8935360B2 (en) * 2010-12-03 2015-01-13 Salesforce.Com, Inc. Techniques for metadata-driven dynamic content serving
US9276995B2 (en) * 2010-12-03 2016-03-01 Salesforce.Com, Inc. Techniques for metadata-driven dynamic content serving
US8762330B1 (en) * 2012-09-13 2014-06-24 Kip Cr P1 Lp System, method and computer program product for partially synchronous and partially asynchronous mounts/unmounts in a media library
US9934243B2 (en) * 2012-09-13 2018-04-03 Kip Cr P1 Lp System, method and computer program product for partially synchronous and partially asynchronous mounts/unmounts in a media library
US20150286654A1 (en) * 2012-09-13 2015-10-08 Kip Cr P1 Lp System, Method and Computer Program Product for Partially Synchronous and Partially Asynchronous Mounts/Unmounts in a Media Library
US9087073B2 (en) * 2012-09-13 2015-07-21 Kip Cr P1 Lp System, method and computer program product for partially synchronous and partially asynchronous mounts/unmounts in a media library
US20140244577A1 (en) * 2012-09-13 2014-08-28 Kip Cr P1 Lp System, method and computer program product for partially synchronous and partially asynchronous mounts/unmounts in a media library
US11611520B1 (en) 2012-09-22 2023-03-21 Motion Offense, Llc Methods, systems, and computer program products for processing a data object identification request in a communication
US9788326B2 (en) 2012-12-05 2017-10-10 At&T Intellectual Property I, L.P. Backhaul link for distributed antenna system
US9113347B2 (en) 2012-12-05 2015-08-18 At&T Intellectual Property I, Lp Backhaul link for distributed antenna system
US10009065B2 (en) 2012-12-05 2018-06-26 At&T Intellectual Property I, L.P. Backhaul link for distributed antenna system
US9119127B1 (en) 2012-12-05 2015-08-25 At&T Intellectual Property I, Lp Backhaul link for distributed antenna system
US9699785B2 (en) 2012-12-05 2017-07-04 At&T Intellectual Property I, L.P. Backhaul link for distributed antenna system
US10194437B2 (en) 2012-12-05 2019-01-29 At&T Intellectual Property I, L.P. Backhaul link for distributed antenna system
US20140304308A1 (en) * 2013-04-08 2014-10-09 Sap Ag Interface Optimizing Model Based Upon Database Information
US9116933B2 (en) * 2013-04-08 2015-08-25 Sap Se Interface optimizing model based upon database information
US9930668B2 (en) 2013-05-31 2018-03-27 At&T Intellectual Property I, L.P. Remote distributed antenna system
US9525524B2 (en) 2013-05-31 2016-12-20 At&T Intellectual Property I, L.P. Remote distributed antenna system
US10091787B2 (en) 2013-05-31 2018-10-02 At&T Intellectual Property I, L.P. Remote distributed antenna system
US10051630B2 (en) 2013-05-31 2018-08-14 At&T Intellectual Property I, L.P. Remote distributed antenna system
US9999038B2 (en) 2013-05-31 2018-06-12 At&T Intellectual Property I, L.P. Remote distributed antenna system
US9661505B2 (en) 2013-11-06 2017-05-23 At&T Intellectual Property I, L.P. Surface-wave communications and methods thereof
US9467870B2 (en) 2013-11-06 2016-10-11 At&T Intellectual Property I, L.P. Surface-wave communications and methods thereof
US9042812B1 (en) 2013-11-06 2015-05-26 At&T Intellectual Property I, Lp Surface-wave communications and methods thereof
US9154966B2 (en) 2013-11-06 2015-10-06 At&T Intellectual Property I, Lp Surface-wave communications and methods thereof
US9674711B2 (en) 2013-11-06 2017-06-06 At&T Intellectual Property I, L.P. Surface-wave communications and methods thereof
US9794003B2 (en) 2013-12-10 2017-10-17 At&T Intellectual Property I, L.P. Quasi-optical coupler
US9876584B2 (en) 2013-12-10 2018-01-23 At&T Intellectual Property I, L.P. Quasi-optical coupler
US9209902B2 (en) 2013-12-10 2015-12-08 At&T Intellectual Property I, L.P. Quasi-optical coupler
US9479266B2 (en) 2013-12-10 2016-10-25 At&T Intellectual Property I, L.P. Quasi-optical coupler
US9692101B2 (en) 2014-08-26 2017-06-27 At&T Intellectual Property I, L.P. Guided wave couplers for coupling electromagnetic waves between a waveguide surface and a surface of a wire
US10096881B2 (en) 2014-08-26 2018-10-09 At&T Intellectual Property I, L.P. Guided wave couplers for coupling electromagnetic waves to an outer surface of a transmission medium
US9755697B2 (en) 2014-09-15 2017-09-05 At&T Intellectual Property I, L.P. Method and apparatus for sensing a condition in a transmission medium of electromagnetic waves
US9768833B2 (en) 2014-09-15 2017-09-19 At&T Intellectual Property I, L.P. Method and apparatus for sensing a condition in a transmission medium of electromagnetic waves
US9906269B2 (en) 2014-09-17 2018-02-27 At&T Intellectual Property I, L.P. Monitoring and mitigating conditions in a communication network
US10063280B2 (en) 2014-09-17 2018-08-28 At&T Intellectual Property I, L.P. Monitoring and mitigating conditions in a communication network
US9628854B2 (en) 2014-09-29 2017-04-18 At&T Intellectual Property I, L.P. Method and apparatus for distributing content in a communication network
US9998932B2 (en) 2014-10-02 2018-06-12 At&T Intellectual Property I, L.P. Method and apparatus that provides fault tolerance in a communication network
US9615269B2 (en) 2014-10-02 2017-04-04 At&T Intellectual Property I, L.P. Method and apparatus that provides fault tolerance in a communication network
US9973416B2 (en) 2014-10-02 2018-05-15 At&T Intellectual Property I, L.P. Method and apparatus that provides fault tolerance in a communication network
US9685992B2 (en) 2014-10-03 2017-06-20 At&T Intellectual Property I, L.P. Circuit panel network and methods thereof
US9866276B2 (en) 2014-10-10 2018-01-09 At&T Intellectual Property I, L.P. Method and apparatus for arranging communication sessions in a communication system
US9503189B2 (en) 2014-10-10 2016-11-22 At&T Intellectual Property I, L.P. Method and apparatus for arranging communication sessions in a communication system
US9847850B2 (en) 2014-10-14 2017-12-19 At&T Intellectual Property I, L.P. Method and apparatus for adjusting a mode of communication in a communication network
US9762289B2 (en) 2014-10-14 2017-09-12 At&T Intellectual Property I, L.P. Method and apparatus for transmitting or receiving signals in a transportation system
US9973299B2 (en) 2014-10-14 2018-05-15 At&T Intellectual Property I, L.P. Method and apparatus for adjusting a mode of communication in a communication network
US9769020B2 (en) 2014-10-21 2017-09-19 At&T Intellectual Property I, L.P. Method and apparatus for responding to events affecting communications in a communication network
US9876587B2 (en) 2014-10-21 2018-01-23 At&T Intellectual Property I, L.P. Transmission device with impairment compensation and methods for use therewith
US9520945B2 (en) 2014-10-21 2016-12-13 At&T Intellectual Property I, L.P. Apparatus for providing communication services and methods thereof
US9627768B2 (en) 2014-10-21 2017-04-18 At&T Intellectual Property I, L.P. Guided-wave transmission device with non-fundamental mode propagation and methods for use therewith
US9871558B2 (en) 2014-10-21 2018-01-16 At&T Intellectual Property I, L.P. Guided-wave transmission device and methods for use therewith
US9312919B1 (en) 2014-10-21 2016-04-12 At&T Intellectual Property I, Lp Transmission device with impairment compensation and methods for use therewith
US9948355B2 (en) 2014-10-21 2018-04-17 At&T Intellectual Property I, L.P. Apparatus for providing communication services and methods thereof
US9954286B2 (en) 2014-10-21 2018-04-24 At&T Intellectual Property I, L.P. Guided-wave transmission device with non-fundamental mode propagation and methods for use therewith
US9577306B2 (en) 2014-10-21 2017-02-21 At&T Intellectual Property I, L.P. Guided-wave transmission device and methods for use therewith
US9525210B2 (en) 2014-10-21 2016-12-20 At&T Intellectual Property I, L.P. Guided-wave transmission device with non-fundamental mode propagation and methods for use therewith
US9705610B2 (en) 2014-10-21 2017-07-11 At&T Intellectual Property I, L.P. Transmission device with impairment compensation and methods for use therewith
US9596001B2 (en) 2014-10-21 2017-03-14 At&T Intellectual Property I, L.P. Apparatus for providing communication services and methods thereof
US9577307B2 (en) 2014-10-21 2017-02-21 At&T Intellectual Property I, L.P. Guided-wave transmission device and methods for use therewith
US9564947B2 (en) 2014-10-21 2017-02-07 At&T Intellectual Property I, L.P. Guided-wave transmission device with diversity and methods for use therewith
US9780834B2 (en) 2014-10-21 2017-10-03 At&T Intellectual Property I, L.P. Method and apparatus for transmitting electromagnetic waves
US9960808B2 (en) 2014-10-21 2018-05-01 At&T Intellectual Property I, L.P. Guided-wave transmission device and methods for use therewith
US9653770B2 (en) 2014-10-21 2017-05-16 At&T Intellectual Property I, L.P. Guided wave coupler, coupling module and methods for use therewith
US9912033B2 (en) 2014-10-21 2018-03-06 At&T Intellectual Property I, Lp Guided wave coupler, coupling module and methods for use therewith
US9571209B2 (en) 2014-10-21 2017-02-14 At&T Intellectual Property I, L.P. Transmission device with impairment compensation and methods for use therewith
US9820138B2 (en) 2014-10-22 2017-11-14 At&T Intellectual Property I, L.P. Method and apparatus for resource management in a communication system
US9954287B2 (en) 2014-11-20 2018-04-24 At&T Intellectual Property I, L.P. Apparatus for converting wireless signals and electromagnetic waves and methods thereof
US9680670B2 (en) 2014-11-20 2017-06-13 At&T Intellectual Property I, L.P. Transmission device with channel equalization and control and methods for use therewith
US9800327B2 (en) 2014-11-20 2017-10-24 At&T Intellectual Property I, L.P. Apparatus for controlling operations of a communication device and methods thereof
US9544006B2 (en) 2014-11-20 2017-01-10 At&T Intellectual Property I, L.P. Transmission device with mode division multiplexing and methods for use therewith
US9742521B2 (en) 2014-11-20 2017-08-22 At&T Intellectual Property I, L.P. Transmission device with mode division multiplexing and methods for use therewith
US9712350B2 (en) 2014-11-20 2017-07-18 At&T Intellectual Property I, L.P. Transmission device with channel equalization and control and methods for use therewith
US10243784B2 (en) 2014-11-20 2019-03-26 At&T Intellectual Property I, L.P. System for generating topology information and methods thereof
US9654173B2 (en) 2014-11-20 2017-05-16 At&T Intellectual Property I, L.P. Apparatus for powering a communication device and methods thereof
US9749083B2 (en) 2014-11-20 2017-08-29 At&T Intellectual Property I, L.P. Transmission device with mode division multiplexing and methods for use therewith
US9531427B2 (en) 2014-11-20 2016-12-27 At&T Intellectual Property I, L.P. Transmission device with mode division multiplexing and methods for use therewith
US10009067B2 (en) 2014-12-04 2018-06-26 At&T Intellectual Property I, L.P. Method and apparatus for configuring a communication interface
US9742462B2 (en) 2014-12-04 2017-08-22 At&T Intellectual Property I, L.P. Transmission medium and communication interfaces and methods for use therewith
US10144036B2 (en) 2015-01-30 2018-12-04 At&T Intellectual Property I, L.P. Method and apparatus for mitigating interference affecting a propagation of electromagnetic waves guided by a transmission medium
US9876570B2 (en) 2015-02-20 2018-01-23 At&T Intellectual Property I, Lp Guided-wave transmission device with non-fundamental mode propagation and methods for use therewith
US9876571B2 (en) 2015-02-20 2018-01-23 At&T Intellectual Property I, Lp Guided-wave transmission device with non-fundamental mode propagation and methods for use therewith
US9749013B2 (en) 2015-03-17 2017-08-29 At&T Intellectual Property I, L.P. Method and apparatus for reducing attenuation of electromagnetic waves guided by a transmission medium
US9705561B2 (en) 2015-04-24 2017-07-11 At&T Intellectual Property I, L.P. Directional coupling device and methods for use therewith
US10224981B2 (en) 2015-04-24 2019-03-05 At&T Intellectual Property I, Lp Passive electrical coupling device and methods for use therewith
US9831912B2 (en) 2015-04-24 2017-11-28 At&T Intellectual Property I, Lp Directional coupling device and methods for use therewith
US9793955B2 (en) 2015-04-24 2017-10-17 At&T Intellectual Property I, Lp Passive electrical coupling device and methods for use therewith
US9948354B2 (en) 2015-04-28 2018-04-17 At&T Intellectual Property I, L.P. Magnetic coupling device with reflective plate and methods for use therewith
US9793954B2 (en) 2015-04-28 2017-10-17 At&T Intellectual Property I, L.P. Magnetic coupling device and methods for use therewith
US9871282B2 (en) 2015-05-14 2018-01-16 At&T Intellectual Property I, L.P. At least one transmission medium having a dielectric surface that is covered at least in part by a second dielectric
US9887447B2 (en) 2015-05-14 2018-02-06 At&T Intellectual Property I, L.P. Transmission medium having multiple cores and methods for use therewith
US9490869B1 (en) 2015-05-14 2016-11-08 At&T Intellectual Property I, L.P. Transmission medium having multiple cores and methods for use therewith
US9748626B2 (en) 2015-05-14 2017-08-29 At&T Intellectual Property I, L.P. Plurality of cables having different cross-sectional shapes which are bundled together to form a transmission medium
US10650940B2 (en) 2015-05-15 2020-05-12 At&T Intellectual Property I, L.P. Transmission medium having a conductive material and methods for use therewith
US10679767B2 (en) 2015-05-15 2020-06-09 At&T Intellectual Property I, L.P. Transmission medium having a conductive material and methods for use therewith
US9917341B2 (en) 2015-05-27 2018-03-13 At&T Intellectual Property I, L.P. Apparatus and method for launching electromagnetic waves and for modifying radial dimensions of the propagating electromagnetic waves
US10154493B2 (en) 2015-06-03 2018-12-11 At&T Intellectual Property I, L.P. Network termination and methods for use therewith
US10812174B2 (en) 2015-06-03 2020-10-20 At&T Intellectual Property I, L.P. Client node device and methods for use therewith
US10797781B2 (en) 2015-06-03 2020-10-06 At&T Intellectual Property I, L.P. Client node device and methods for use therewith
US9967002B2 (en) 2015-06-03 2018-05-08 At&T Intellectual I, Lp Network termination and methods for use therewith
US10050697B2 (en) 2015-06-03 2018-08-14 At&T Intellectual Property I, L.P. Host node device and methods for use therewith
US10103801B2 (en) 2015-06-03 2018-10-16 At&T Intellectual Property I, L.P. Host node device and methods for use therewith
US9935703B2 (en) 2015-06-03 2018-04-03 At&T Intellectual Property I, L.P. Host node device and methods for use therewith
US10396887B2 (en) 2015-06-03 2019-08-27 At&T Intellectual Property I, L.P. Client node device and methods for use therewith
US9912381B2 (en) 2015-06-03 2018-03-06 At&T Intellectual Property I, Lp Network termination and methods for use therewith
US9912382B2 (en) 2015-06-03 2018-03-06 At&T Intellectual Property I, Lp Network termination and methods for use therewith
US10348391B2 (en) 2015-06-03 2019-07-09 At&T Intellectual Property I, L.P. Client node device with frequency conversion and methods for use therewith
US9866309B2 (en) 2015-06-03 2018-01-09 At&T Intellectual Property I, Lp Host node device and methods for use therewith
US9913139B2 (en) 2015-06-09 2018-03-06 At&T Intellectual Property I, L.P. Signal fingerprinting for authentication of communicating devices
US9997819B2 (en) 2015-06-09 2018-06-12 At&T Intellectual Property I, L.P. Transmission medium and method for facilitating propagation of electromagnetic waves via a core
US10027398B2 (en) 2015-06-11 2018-07-17 At&T Intellectual Property I, Lp Repeater and methods for use therewith
US10142086B2 (en) 2015-06-11 2018-11-27 At&T Intellectual Property I, L.P. Repeater and methods for use therewith
US10142010B2 (en) 2015-06-11 2018-11-27 At&T Intellectual Property I, L.P. Repeater and methods for use therewith
US9608692B2 (en) 2015-06-11 2017-03-28 At&T Intellectual Property I, L.P. Repeater and methods for use therewith
US9820146B2 (en) 2015-06-12 2017-11-14 At&T Intellectual Property I, L.P. Method and apparatus for authentication and identity management of communicating devices
US9667317B2 (en) 2015-06-15 2017-05-30 At&T Intellectual Property I, L.P. Method and apparatus for providing security using network traffic adjustments
US9865911B2 (en) 2015-06-25 2018-01-09 At&T Intellectual Property I, L.P. Waveguide system for slot radiating first electromagnetic waves that are combined into a non-fundamental wave mode second electromagnetic wave on a transmission medium
US10069185B2 (en) 2015-06-25 2018-09-04 At&T Intellectual Property I, L.P. Methods and apparatus for inducing a non-fundamental wave mode on a transmission medium
US9509415B1 (en) 2015-06-25 2016-11-29 At&T Intellectual Property I, L.P. Methods and apparatus for inducing a fundamental wave mode on a transmission medium
US10090601B2 (en) 2015-06-25 2018-10-02 At&T Intellectual Property I, L.P. Waveguide system and methods for inducing a non-fundamental wave mode on a transmission medium
US9787412B2 (en) 2015-06-25 2017-10-10 At&T Intellectual Property I, L.P. Methods and apparatus for inducing a fundamental wave mode on a transmission medium
US9640850B2 (en) 2015-06-25 2017-05-02 At&T Intellectual Property I, L.P. Methods and apparatus for inducing a non-fundamental wave mode on a transmission medium
US9882657B2 (en) 2015-06-25 2018-01-30 At&T Intellectual Property I, L.P. Methods and apparatus for inducing a fundamental wave mode on a transmission medium
US9722318B2 (en) 2015-07-14 2017-08-01 At&T Intellectual Property I, L.P. Method and apparatus for coupling an antenna to a device
US10033108B2 (en) 2015-07-14 2018-07-24 At&T Intellectual Property I, L.P. Apparatus and methods for generating an electromagnetic wave having a wave mode that mitigates interference
US10341142B2 (en) 2015-07-14 2019-07-02 At&T Intellectual Property I, L.P. Apparatus and methods for generating non-interfering electromagnetic waves on an uninsulated conductor
US9929755B2 (en) 2015-07-14 2018-03-27 At&T Intellectual Property I, L.P. Method and apparatus for coupling an antenna to a device
US9836957B2 (en) 2015-07-14 2017-12-05 At&T Intellectual Property I, L.P. Method and apparatus for communicating with premises equipment
US9947982B2 (en) 2015-07-14 2018-04-17 At&T Intellectual Property I, Lp Dielectric transmission medium connector and methods for use therewith
US10320586B2 (en) 2015-07-14 2019-06-11 At&T Intellectual Property I, L.P. Apparatus and methods for generating non-interfering electromagnetic waves on an insulated transmission medium
US10148016B2 (en) 2015-07-14 2018-12-04 At&T Intellectual Property I, L.P. Apparatus and methods for communicating utilizing an antenna array
US9853342B2 (en) 2015-07-14 2017-12-26 At&T Intellectual Property I, L.P. Dielectric transmission medium connector and methods for use therewith
US10170840B2 (en) 2015-07-14 2019-01-01 At&T Intellectual Property I, L.P. Apparatus and methods for sending or receiving electromagnetic signals
US9882257B2 (en) 2015-07-14 2018-01-30 At&T Intellectual Property I, L.P. Method and apparatus for launching a wave mode that mitigates interference
US9628116B2 (en) 2015-07-14 2017-04-18 At&T Intellectual Property I, L.P. Apparatus and methods for transmitting wireless signals
US10205655B2 (en) 2015-07-14 2019-02-12 At&T Intellectual Property I, L.P. Apparatus and methods for communicating utilizing an antenna array and multiple communication paths
US10044409B2 (en) 2015-07-14 2018-08-07 At&T Intellectual Property I, L.P. Transmission medium and methods for use therewith
US9847566B2 (en) 2015-07-14 2017-12-19 At&T Intellectual Property I, L.P. Method and apparatus for adjusting a field of a signal to mitigate interference
US10033107B2 (en) 2015-07-14 2018-07-24 At&T Intellectual Property I, L.P. Method and apparatus for coupling an antenna to a device
US9793951B2 (en) 2015-07-15 2017-10-17 At&T Intellectual Property I, L.P. Method and apparatus for launching a wave mode that mitigates interference
US9608740B2 (en) 2015-07-15 2017-03-28 At&T Intellectual Property I, L.P. Method and apparatus for launching a wave mode that mitigates interference
US10090606B2 (en) 2015-07-15 2018-10-02 At&T Intellectual Property I, L.P. Antenna system with dielectric array and methods for use therewith
US9871283B2 (en) 2015-07-23 2018-01-16 At&T Intellectual Property I, Lp Transmission medium having a dielectric core comprised of plural members connected by a ball and socket configuration
US9749053B2 (en) 2015-07-23 2017-08-29 At&T Intellectual Property I, L.P. Node device, repeater and methods for use therewith
US9806818B2 (en) 2015-07-23 2017-10-31 At&T Intellectual Property I, Lp Node device, repeater and methods for use therewith
US9912027B2 (en) 2015-07-23 2018-03-06 At&T Intellectual Property I, L.P. Method and apparatus for exchanging communication signals
US10074886B2 (en) 2015-07-23 2018-09-11 At&T Intellectual Property I, L.P. Dielectric transmission medium comprising a plurality of rigid dielectric members coupled together in a ball and socket configuration
US10784670B2 (en) 2015-07-23 2020-09-22 At&T Intellectual Property I, L.P. Antenna support for aligning an antenna
US9948333B2 (en) 2015-07-23 2018-04-17 At&T Intellectual Property I, L.P. Method and apparatus for wireless communications to mitigate interference
US9838078B2 (en) 2015-07-31 2017-12-05 At&T Intellectual Property I, L.P. Method and apparatus for exchanging communication signals
US9967173B2 (en) 2015-07-31 2018-05-08 At&T Intellectual Property I, L.P. Method and apparatus for authentication and identity management of communicating devices
US9461706B1 (en) 2015-07-31 2016-10-04 At&T Intellectual Property I, Lp Method and apparatus for exchanging communication signals
US10020587B2 (en) 2015-07-31 2018-07-10 At&T Intellectual Property I, L.P. Radial antenna and methods for use therewith
US9735833B2 (en) 2015-07-31 2017-08-15 At&T Intellectual Property I, L.P. Method and apparatus for communications management in a neighborhood network
US9904535B2 (en) 2015-09-14 2018-02-27 At&T Intellectual Property I, L.P. Method and apparatus for distributing software
US10225842B2 (en) 2015-09-16 2019-03-05 At&T Intellectual Property I, L.P. Method, device and storage medium for communications using a modulated signal and a reference signal
US10051629B2 (en) 2015-09-16 2018-08-14 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having an in-band reference signal
US10009901B2 (en) 2015-09-16 2018-06-26 At&T Intellectual Property I, L.P. Method, apparatus, and computer-readable storage medium for managing utilization of wireless resources between base stations
US10009063B2 (en) 2015-09-16 2018-06-26 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having an out-of-band reference signal
US9705571B2 (en) 2015-09-16 2017-07-11 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system
US10136434B2 (en) 2015-09-16 2018-11-20 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having an ultra-wideband control channel
US10079661B2 (en) 2015-09-16 2018-09-18 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having a clock reference
US10349418B2 (en) 2015-09-16 2019-07-09 At&T Intellectual Property I, L.P. Method and apparatus for managing utilization of wireless resources via use of a reference signal to reduce distortion
US9769128B2 (en) 2015-09-28 2017-09-19 At&T Intellectual Property I, L.P. Method and apparatus for encryption of communications over a network
US9729197B2 (en) 2015-10-01 2017-08-08 At&T Intellectual Property I, L.P. Method and apparatus for communicating network management traffic over a network
US10074890B2 (en) 2015-10-02 2018-09-11 At&T Intellectual Property I, L.P. Communication device and antenna with integrated light assembly
US9882277B2 (en) 2015-10-02 2018-01-30 At&T Intellectual Property I, Lp Communication device and antenna assembly with actuated gimbal mount
US9876264B2 (en) 2015-10-02 2018-01-23 At&T Intellectual Property I, Lp Communication system, guided wave switch and methods for use therewith
US10355367B2 (en) 2015-10-16 2019-07-16 At&T Intellectual Property I, L.P. Antenna structure for exchanging wireless signals
US10665942B2 (en) 2015-10-16 2020-05-26 At&T Intellectual Property I, L.P. Method and apparatus for adjusting wireless communications
US10051483B2 (en) 2015-10-16 2018-08-14 At&T Intellectual Property I, L.P. Method and apparatus for directing wireless signals
CN105389096A (en) * 2015-10-27 2016-03-09 深圳市深信服电子科技有限公司 Browser based data interaction method and apparatus
CN105404696A (en) * 2015-12-23 2016-03-16 北京奇虎科技有限公司 Method, system and device for downloading photographs in photograph album
CN105512328A (en) * 2015-12-23 2016-04-20 北京奇虎科技有限公司 Method, system and device for realizing uploading of album photos
US9912419B1 (en) 2016-08-24 2018-03-06 At&T Intellectual Property I, L.P. Method and apparatus for managing a fault in a distributed antenna system
US9860075B1 (en) 2016-08-26 2018-01-02 At&T Intellectual Property I, L.P. Method and communication node for broadband distribution
US10291311B2 (en) 2016-09-09 2019-05-14 At&T Intellectual Property I, L.P. Method and apparatus for mitigating a fault in a distributed antenna system
US11032819B2 (en) 2016-09-15 2021-06-08 At&T Intellectual Property I, L.P. Method and apparatus for use with a radio distributed antenna system having a control channel reference signal
US10135147B2 (en) 2016-10-18 2018-11-20 At&T Intellectual Property I, L.P. Apparatus and methods for launching guided waves via an antenna
US10135146B2 (en) 2016-10-18 2018-11-20 At&T Intellectual Property I, L.P. Apparatus and methods for launching guided waves via circuits
US10340600B2 (en) 2016-10-18 2019-07-02 At&T Intellectual Property I, L.P. Apparatus and methods for launching guided waves via plural waveguide systems
US10374316B2 (en) 2016-10-21 2019-08-06 At&T Intellectual Property I, L.P. System and dielectric antenna with non-uniform dielectric
US9991580B2 (en) 2016-10-21 2018-06-05 At&T Intellectual Property I, L.P. Launcher and coupling system for guided wave mode cancellation
US9876605B1 (en) 2016-10-21 2018-01-23 At&T Intellectual Property I, L.P. Launcher and coupling system to support desired guided wave mode
US10811767B2 (en) 2016-10-21 2020-10-20 At&T Intellectual Property I, L.P. System and dielectric antenna with convex dielectric radome
US10312567B2 (en) 2016-10-26 2019-06-04 At&T Intellectual Property I, L.P. Launcher with planar strip antenna and methods for use therewith
US10340573B2 (en) 2016-10-26 2019-07-02 At&T Intellectual Property I, L.P. Launcher with cylindrical coupling device and methods for use therewith
US10291334B2 (en) 2016-11-03 2019-05-14 At&T Intellectual Property I, L.P. System for detecting a fault in a communication system
US10498044B2 (en) 2016-11-03 2019-12-03 At&T Intellectual Property I, L.P. Apparatus for configuring a surface of an antenna
US10225025B2 (en) 2016-11-03 2019-03-05 At&T Intellectual Property I, L.P. Method and apparatus for detecting a fault in a communication system
US10224634B2 (en) 2016-11-03 2019-03-05 At&T Intellectual Property I, L.P. Methods and apparatus for adjusting an operational characteristic of an antenna
US10340603B2 (en) 2016-11-23 2019-07-02 At&T Intellectual Property I, L.P. Antenna system having shielded structural configurations for assembly
US10340601B2 (en) 2016-11-23 2019-07-02 At&T Intellectual Property I, L.P. Multi-antenna system and methods for use therewith
US10178445B2 (en) 2016-11-23 2019-01-08 At&T Intellectual Property I, L.P. Methods, devices, and systems for load balancing between a plurality of waveguides
US10535928B2 (en) 2016-11-23 2020-01-14 At&T Intellectual Property I, L.P. Antenna system and methods for use therewith
US10090594B2 (en) 2016-11-23 2018-10-02 At&T Intellectual Property I, L.P. Antenna system having structural configurations for assembly
US10305190B2 (en) 2016-12-01 2019-05-28 At&T Intellectual Property I, L.P. Reflecting dielectric antenna system and methods for use therewith
US10361489B2 (en) 2016-12-01 2019-07-23 At&T Intellectual Property I, L.P. Dielectric dish antenna system and methods for use therewith
US10439675B2 (en) 2016-12-06 2019-10-08 At&T Intellectual Property I, L.P. Method and apparatus for repeating guided wave communication signals
US10637149B2 (en) 2016-12-06 2020-04-28 At&T Intellectual Property I, L.P. Injection molded dielectric antenna and methods for use therewith
US10020844B2 (en) 2016-12-06 2018-07-10 T&T Intellectual Property I, L.P. Method and apparatus for broadcast communication via guided waves
US10819035B2 (en) 2016-12-06 2020-10-27 At&T Intellectual Property I, L.P. Launcher with helical antenna and methods for use therewith
US10382976B2 (en) 2016-12-06 2019-08-13 At&T Intellectual Property I, L.P. Method and apparatus for managing wireless communications based on communication paths and network device positions
US10135145B2 (en) 2016-12-06 2018-11-20 At&T Intellectual Property I, L.P. Apparatus and methods for generating an electromagnetic wave along a transmission medium
US10755542B2 (en) 2016-12-06 2020-08-25 At&T Intellectual Property I, L.P. Method and apparatus for surveillance via guided wave communication
US10326494B2 (en) 2016-12-06 2019-06-18 At&T Intellectual Property I, L.P. Apparatus for measurement de-embedding and methods for use therewith
US10727599B2 (en) 2016-12-06 2020-07-28 At&T Intellectual Property I, L.P. Launcher with slot antenna and methods for use therewith
US10694379B2 (en) 2016-12-06 2020-06-23 At&T Intellectual Property I, L.P. Waveguide system with device-based authentication and methods for use therewith
US9927517B1 (en) 2016-12-06 2018-03-27 At&T Intellectual Property I, L.P. Apparatus and methods for sensing rainfall
US10139820B2 (en) 2016-12-07 2018-11-27 At&T Intellectual Property I, L.P. Method and apparatus for deploying equipment of a communication system
US10027397B2 (en) 2016-12-07 2018-07-17 At&T Intellectual Property I, L.P. Distributed antenna system and methods for use therewith
US10243270B2 (en) 2016-12-07 2019-03-26 At&T Intellectual Property I, L.P. Beam adaptive multi-feed dielectric antenna system and methods for use therewith
US10168695B2 (en) 2016-12-07 2019-01-01 At&T Intellectual Property I, L.P. Method and apparatus for controlling an unmanned aircraft
US10547348B2 (en) 2016-12-07 2020-01-28 At&T Intellectual Property I, L.P. Method and apparatus for switching transmission mediums in a communication system
US9893795B1 (en) 2016-12-07 2018-02-13 At&T Intellectual Property I, Lp Method and repeater for broadband distribution
US10389029B2 (en) 2016-12-07 2019-08-20 At&T Intellectual Property I, L.P. Multi-feed dielectric antenna system with core selection and methods for use therewith
US10446936B2 (en) 2016-12-07 2019-10-15 At&T Intellectual Property I, L.P. Multi-feed dielectric antenna system and methods for use therewith
US10359749B2 (en) 2016-12-07 2019-07-23 At&T Intellectual Property I, L.P. Method and apparatus for utilities management via guided wave communication
US10069535B2 (en) 2016-12-08 2018-09-04 At&T Intellectual Property I, L.P. Apparatus and methods for launching electromagnetic waves having a certain electric field structure
US10411356B2 (en) 2016-12-08 2019-09-10 At&T Intellectual Property I, L.P. Apparatus and methods for selectively targeting communication devices with an antenna array
US10326689B2 (en) 2016-12-08 2019-06-18 At&T Intellectual Property I, L.P. Method and system for providing alternative communication paths
US10530505B2 (en) 2016-12-08 2020-01-07 At&T Intellectual Property I, L.P. Apparatus and methods for launching electromagnetic waves along a transmission medium
US10777873B2 (en) 2016-12-08 2020-09-15 At&T Intellectual Property I, L.P. Method and apparatus for mounting network devices
US10389037B2 (en) 2016-12-08 2019-08-20 At&T Intellectual Property I, L.P. Apparatus and methods for selecting sections of an antenna array and use therewith
US10103422B2 (en) 2016-12-08 2018-10-16 At&T Intellectual Property I, L.P. Method and apparatus for mounting network devices
US10601494B2 (en) 2016-12-08 2020-03-24 At&T Intellectual Property I, L.P. Dual-band communication device and method for use therewith
US9911020B1 (en) 2016-12-08 2018-03-06 At&T Intellectual Property I, L.P. Method and apparatus for tracking via a radio frequency identification device
US9998870B1 (en) 2016-12-08 2018-06-12 At&T Intellectual Property I, L.P. Method and apparatus for proximity sensing
US10938108B2 (en) 2016-12-08 2021-03-02 At&T Intellectual Property I, L.P. Frequency selective multi-feed dielectric antenna system and methods for use therewith
US10916969B2 (en) 2016-12-08 2021-02-09 At&T Intellectual Property I, L.P. Method and apparatus for providing power using an inductive coupling
US10340983B2 (en) 2016-12-09 2019-07-02 At&T Intellectual Property I, L.P. Method and apparatus for surveying remote sites via guided wave communications
US10264586B2 (en) 2016-12-09 2019-04-16 At&T Mobility Ii Llc Cloud-based packet controller and methods for use therewith
US9838896B1 (en) 2016-12-09 2017-12-05 At&T Intellectual Property I, L.P. Method and apparatus for assessing network coverage
US9973940B1 (en) 2017-02-27 2018-05-15 At&T Intellectual Property I, L.P. Apparatus and methods for dynamic impedance matching of a guided wave launcher
US10298293B2 (en) 2017-03-13 2019-05-21 At&T Intellectual Property I, L.P. Apparatus of communication utilizing wireless network devices
US20220255938A1 (en) * 2021-02-07 2022-08-11 Hangzhou Jindoutengyun Technologies Co., Ltd. Method and system for processing network resource access requests, and computer device

Also Published As

Publication number Publication date
US9378212B2 (en) 2016-06-28
US20160306821A1 (en) 2016-10-20
US20140237571A1 (en) 2014-08-21

Similar Documents

Publication Publication Date Title
US9378212B2 (en) Methods and systems for providing file data and metadata
US10397224B2 (en) Network personal digital video recorder system (NPDVR)
US7496578B2 (en) Shared internet storage resource, user interface system, and method
US7058720B1 (en) Geographical client distribution methods, systems and computer program products
US7552189B2 (en) System and method for using virtual directories to service URL requests URL requests in application servers
US6901428B1 (en) Accessing data from a database over a network
US7945652B2 (en) Display multi-layers list item in web-browser with supporting of concurrent multi-users
US8185630B2 (en) Method for creating global distributed namespace
US20020107807A1 (en) Method and system for modifying and transmitting data between a portable computer and a network
US20050246315A1 (en) System and method for abstracting state transitions without requiring client knowledge
US20040133629A1 (en) Methods, systems and devices for automated web publishing and distribution
JP2003501726A (en) Server agent system
JP2003076560A (en) Asp. net http runtime
Fox A framework for separating server scalability and availability from Internet application functionality
US6615231B1 (en) System and method for directing requests to specific processing
WO2002088909A2 (en) Methods, systems and devices for automated web publishing and distribution
Ghandeharizadeh et al. A document as a Web service: Two complementary frameworks
Beck et al. Toward a scalable architecture for logistical management of active content
Rykowski et al. Generic architecture of web servers supporting cooperative work
Dallermassl Aspects of integration of heterogenous server systems in Intranets: the Java approach
Luo Developing a 3-tier Web database application prototype on Unix with Java servlets and Oracle
Mahmoud Design and Implementation of a Web-based Distributed Computing System
Yan Internet computing with distributed software agent
Johnson The structure of the OpenVMS Management Station
Andresen SWEB++: distributed scheduling and software support for high performance WWW applications

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION