|Publication number||US20080147671 A1|
|Application number||US 11/612,282|
|Publication date||Jun 19, 2008|
|Filing date||Dec 18, 2006|
|Priority date||Dec 18, 2006|
|Publication number||11612282, 612282, US 2008/0147671 A1, US 2008/147671 A1, US 20080147671 A1, US 20080147671A1, US 2008147671 A1, US 2008147671A1, US-A1-20080147671, US-A1-2008147671, US2008/0147671A1, US2008/147671A1, US20080147671 A1, US20080147671A1, US2008147671 A1, US2008147671A1|
|Inventors||Gregory Simon, Manjirnath Chatterjee|
|Original Assignee||Lampdesk Corporation|
|Export Citation||BiBTeX, EndNote, RefMan|
|Referenced by (48), Classifications (7), Legal Events (9) |
|External Links: USPTO, USPTO Assignment, Espacenet|
System for Running Web Applications Offline and Providing Access to Native Services
US 20080147671 A1
Web applications such as email, photo-sharing website, or web widgets work only when the offsite server is available to provide content in real-time. The present invention provides a generic web standards based method of encapsulating the offline web application along with its runtime environment so that web applications can run even when connection to the server is not available. In addition the present invention combines methods for creating, provision, and running multiple offline web applications on a desktop computer or a mobile device such as cellular telephone or personal digital assistant. In addition the present invention also provides the ability to synchronize user data so that multiple devices can be provisioned for offline use with the same set of personalized user information.
1. A system for running web based applications transparently online or offline consisting of an http server, a network proxy, an application bundle management database, a conventional database, and a web services bridge for local services where said system runs locally on a computing device.
2. A system as in claim 1 which allows web applications to be synchronized over the internet as a single file.
3. A system as in claim 2 in which a manifest file allows for the describing the contents of the web application file for signing purposes and execution permission purposes.
4. A system as in claim 1 where multiple web applications may be running simultaneously and each with a different level of security permissions.
5. A system as in claim 1 where data from multiple different servers can be aggregated to form a single data view without need for an off device server.
6. A system as in claim 1 where said computing device is a cellular telephone.
7. A system as in claim 1 where said computing device is an embedded computer system.
8. A system as in claim 1 where said computing device is a personal computer.
9. A system as in claim 1 for allowing subscription applications to run on said local computing device which may expire and be deleted.
10. A system as in claim 1 where user data may be synchronized with a server of the internet and stored as records in a SQL database.
11. A System as in claim 1, in which multiple applications are served simultaneously on separate IP addresses.
12. A System as in claim 11 in which said applications have different access rights to local resources.
13. A System as in claim 1, in which multiple applications are served simultaneously on separate IP address and port combinations.
14. A System as in claim 13 in which said applications have different access rights to local resources.
15. A system as in claim 1 in which local APIs can be accessed through SOAP, RPC, WSDL, XMLHttpRequest or web services language calls.
16. A System as in claim 1 in which different users can have different access privileges can be enforced for both applications and data access.
17. A System as in claim 1 in which digital certificates can be used to sign web applications which run on a local device as part of a bundle.
BACKGROUND OF THE INVENTION
1. Field of the Invention
2. Prior Art
U.S. Pat. No. 6,996,537—“System and method for providing subscribed applications on wireless devices over a wireless network”—Minear, et. al. [Qualcomm]—Describes the management of subscriptions on wireless devices but does not provide for a means for web technology based applications to run locally and does not mention how such applications which are composed of multipart file bundles can be deployed as an atomic unit and signed as an atomic unit. This patent also does not delineate how to create a connection between a local engine which contains the application and a browser for click-through connections to the world wide web in real time.
U.S. Pat. No. 6,832,253—“Viewing web pages on small screen devices using a keypad for navigation, Itavaara et. al.” [Nokia]—Describes segmenting a screen in to small units each which can be divided but does not describe how an entire web application can get stored and managed on a device. It also does not provide for an idea of page “flipping” in which local applications can serve pages quickly.
U.S. Pat. No. 6,779,042—“System, method, and computer program product for enabling on-device servers, offline forms, and dynamic ad tracking on mobile devices”, Kloba et. al. [iAnywhere]—Shows a method for caching web based content and reserving on a mobile device, even in an offline state. It also describes the reformatting or preparation of the look and feel of the content (optimization) so that it is presented in a more optimal manner. However this art does not describe how to package such information such that an entire application is synchronized so that it runs locally—rather this art describes a complex method of data caching. Also the present information separates content, including user data, as completely separate from the application code which renders the data and these items, in the present invention are treated so that the user's content and personal data can be updated without the need for updating the application itself. This allows the present invention to save bandwidth, increase responsiveness, and through an applied security model, allows the present invention to mix content from multiple servers from an application running on the local device whereas Kloba et. al does not.
U.S. Pat. No. 6,421,717—“System, method, and computer program product for customizing channels, content, and data for mobile devices”, Kloba et. al. [AvantGo]—This art describes a method of serving content on regular intervals such as refreshing news stories via RSS feeds as is done with other programs on both desktop computers and mobile devices today. While the dynamic refreshing of content via polling methods is useful it does not embody client side functionality in a way in which locally running executables can access multiple sites, maintain security, or partially cache local icons and combine them with the newly acquired information to create a low bandwidth high user experience effect. The present invention not only allows for local programs written with web languages to get content but also runs a proxy, as known to those skilled in the art, to allow for secure mash-ups of information to only those apps which are securely signed or authorized.
Another example of a small mini application is the commercial environment known as Konfabulator which is now part of the Yahoo! widget engine. This environment is based on creating small mini-applications which use a proprietary language and runtime environment to create a similar effect as what can be created using web standards. This environment allows the creation of visually mini-applications however its use of a proprietary authoring technique limits its portability across desktop operating system. Many individual widget applications must be adapted to the host operating system negating the effectiveness of the paradigm. In addition the heavy weight nature of the rendering layer which is part of the environment precludes its use on mobile devices.
Another method of provision mobile devices is via the use of the Java 2 Micro Edition (J2ME also called JME) programming environment. This environment takes programs written in the Sun Microsystems Java programming language and runs them on special virtual machine which has been created for limited CPU and limited memory environments. Since all Java programs run in a special sandbox (the Java Virtual Machine heap) access to native functionality is only available through special application programming interfaces known as JSRs (Java Specification Requests) which are agreed upon by the larger Java development community. Java programs running on the JVM do not have innate web browser like communications or rendering capabilities—the use of the network is restricted by the JVM and the only way to render web content such as HTML is through hand coding a software based renderer in the Java language itself. This restriction can somewhat be overcome by using a link to launch the on device web browser. However this causes the device to undergo a large software context switch which is not permitted under many implementations of J2ME. For those where this context switch is permitted, a large delay is induced while the browser is launched and then connectivity is established. This is greatly exacerbated by the fact if connectivity to the requested resource is not available to the browser the user is often subjected to a lengthy click—launch browser—wait for connection—delay cycle in which the end result is essentially a blank screen. Even on devices with relatively high end CPUs the best case cycle is many tens of seconds which causes users to be frustrated and update of Java to browser based click through services to be slow. The present invention leverages the local web browser as a rendering engine and hence has no such delay. In addition the present invention allows programs to run unmodified on desktop computer environments whereas the Java Mobile Environment is not supported on desktop computers—instead a different rendering architecture called the Java Standard edition classes must be used greatly limiting application portability across environments.
To overcome many of the performance deficits of the J2ME environment Qualcomm Corporation introduced a different programming paradigm to the mobile marketplace with emphasis on speed and deployment. This environment is branded BREW which stands for Binary Runtime Environment for Wireless. The BREW system is a C based programming environment which runs code directly on the microprocessor rather than on a Virtual Machine such as in Java. This results in higher performance. Also the BREW environment integrates the billing and deployment logic necessary for a wireless carrier to push an application to a mobile device and to arrange either a subscription based or one time fee based payment for the use of the application. However BREW does not offer automatic rendering and handling of web content and hence, like J2ME, the use of web content requires the either the launching of the web browser or the handcrafting, by the developer, of the necessary code to render web content such as HTML inside the BREW environment. Like Java the launching of the device native browser can create long delays as the user waits for the browser and associated connectivity to launch and then additional delays as the browser attempts to make a data connection over the wireless air interface. Also, unlike the present invention. BREW does not provide an automated method for user data to be provisioned over a network and also does not provide for compatibility with desktop computer environments.
OBJECTS AND ADVANTAGES
The present invention also allows the use of server side programming techniques to be combined with these client side web technologies through the use of SOAP services, XML RPC services and the like to access a database. The present invention also leverage the ability to run server side code such as PHP, Python, PERL or CGI programming environments locally, on the client computer, as part of the deployed application environment. This allows the local use of sessions and other programming paradigms all running on a client which lessons the computational load on the server and enables web based applications to run even when a main server on the internet or intranet is not available.
Another set of key advantages of the present invention is the conservation of bandwidth which is especially important for mobile device deployments. This is accomplished since many of the graphical assets of an application, such as the background images, often take more than ninety percent of the memory of application storage footprint. However the present invention allows application resources, such as background images and icons, to be stored on the client rather than being loaded over an internet connection each time the application is used. For applications running on wireless devices, this can also translate in to tremendously reduced application latency as since the resources of the application are stored locally there is no delay fetching the data over the air. For battery powered devices this has the added advantage of greatly reducing the amount of power consumption required since the radio need not be used thereby increasing battery life.
The present invention also allows different web applications to simultaneously have different security levels. This is further enhanced by the ability to sign web apps via the manifest mechanism noted in the description of the invention section which can then be verified by a 3rd party authentication service.
The present invention allows for truly portable code in a write once run anywhere fashion as the graphical layout and programming support are available on both mobile devices and all modern desktop computer operating systems. This is not true for Java where the graphical framework is different for server, desktop, and mobile environments. This is also not true BREW environments as this technology has no desktop equivalent. While programmer's tools such as simulators for development may run some aspects of BREW or mobile Java applications on desktops they are not available for end user's to run BREW or J2ME applications on any desktop computer.
LIST OF FIGURES
(1) FIG. 1. Represents a classic (such as Apache) http client and server connected via the Internet.
(2) FIG. 2. Depicts the layout of assets of typical web based applications as run on a server farm at a large company website
(3) FIG. 3. Shows the Web bundle packing process which outputs web archive file+manifest as is part of the present invention
(4) FIG. 4. Shows the details of the Web archive packing process
(5) FIG. 5. Depicts the assets of the present invention—the Web Virtual Machine.
(6) FIG. 6. Shows how the present invention can server multiple web applications simultaneously
(7) FIG. 7. Depicts the bridge from a Web Applications to a native API
(8) FIG. 8. Depicts shows how a sandboxed browser application can access a native device service through the present invention.
DESCRIPTION OF THE INVENTION
The present invention builds upon the basic http client server model of HTTP connections to leverage a new user experience and web application programmer model by consolidating traditional client server mode programming into a new client based programming model with extra enhancements for offline application access.
FIG. 1. Represents a classic (such as Apache) http client and server connected via the Internet. A web browser (100) is connected via path 105 to the Internet (block 110) via path 115 to a web server (120. Here the paths 105 and 115 represent HTTP protocol paths over layered on top of the TCP/IP protocol as is known in the art.
FIGS. 1 and 2 depict how websites and web applications are deployed on the Internet today. Not pictured is that often some of the script files (perhaps the ShoppingCart.php shown in FIG. 2) invoke server side programs to store user data in a database on the server. This allows large web servers to run web applications which can broker between databases and the user's web browser.
The next set of figures depicts the present invention in logical form. The present invention takes several components of the web server and compacts and expands upon them so that the entire web server and support assets can run locally on the same computer as the browser is running. In fact some implementations of the present invention are small enough that they can be run on desktop personal computers or mid price range mobile phones. Advantages of this server-on-client approach are many, but include some of the following: multiple web apps running on the same machine, low latency as content is local, access to local device services such as camera media stores or phonebooks, and ease of authoring as now the same paradigm used to author large web sites can be used to author portable client side applications. The present invention further expands on this by adding an optional synchronization engine which can sync either application assets or user data stored in a local database back to a parent server on the internet.
Since web applications are written as several files spread over a directory structure it is difficult to deploy them on to a client computer or to even move them from one server to another. FIG. 3. Shows the Web bundle packing process which outputs web archive file+manifest as is part of the present invention. Box 300 represents an entire web application directory tree and can be thought of as all the components in FIG. 2. Logically we then transform via 315, a special software tool 305, and 320, the entire directory tree in to a compressed archive 310 which contains all of the files and pathnames of the assets in 300 plus a new file called the manifest file in 325. Box 305 represents a tool which compresses each file preserving its name and relative directory structure so that what was an entire directory tree of files and subdirectories becomes a single archive. This is called the web archive file. The packing, storage, and compression can be accomplished using standard file archiving libraries such as zip, gzip or zlib as is known in the art or by using a proprietary packing scheme. The manifest file 325, contains metadata which may include but is not constrained to, application name information, checksum information (including for each file in the archive or for the whole archive), digital signature information about the application, and information about the application's runtime needs and APIs required. The manifest file may be implemented as name-value pairs, as an XML format, or any other format which can contain readable metadata as is known by those skilled in the art. The packing process employed by tool 305 is shown in more detail in FIG. 4. Note that the Packing Tool runs offline from the present invention but is a tool which provides application packing and verification for the present invention's use.
FIG. 4. Shows the details of the Web archive packing process. Starting with 400, the start box and passing through 405 to box 410 the packing tools extracts the next file in the directory in a recursive search. Note that the recursive search also searches sub directories after it finishes with files in the current directory. Then following path 415 to 420 we optionally accumulate data about the file for possible signing purposes. This step can use the file to understand what APIs the file uses which an be useful for building a capability list of overall APIs used by the application. From 425 we go to 420 where the file is compressed and added to the web archive file. Following 435 to 440 the packing tool checks is this is the last file in the directory structure of the web application. If this is not the last file then path 475 is followed to 410 to repeat the process. If this is the last file path 445 is followed to 450 where the manifest file is updated. Then path 465 is followed to 460 where the manifest file is updated and stored in to the archive with the other files. Then path 465 is followed to box 480 which is an optional step to create and store a security certificate in to the archive. Then path 485 is followed to box 490 to end the process. Note it is possible for the security certificate to be amended to the manifest file in which case a separate security certificate file is not required.
The app bundle manager, box 535 manages entire web application assets such as those depicted in box 310 of FIG. 3. When a request is made to a particular file which may be stored as a part of an atomic bundle which comprises the application assets, the proxy 580, http server 555, and app bundle manager 535 work in succession to resolve the file just as if it had been hosted on an internet server. Note that these components also work to resolve same origin policy security enforcement in much the same way that a browser cache does—in other words xyz.foo.com/mypage.xhtml can be stored locally but accessed in a programmatic way rather than as the browser cache which acts in an automatic (non programmatically controlled) method. Universal Resource Locators (URLs) which explicitly resolve to local addresses (such as ports running on 127.0.0.1, the http loopback address) resolve and are served to the local browser 505 via http interface 510. The browser may not be explicitly aware of the location which actually serves the file.
An additional functionality of the present invention is the use of the sync engine, box 525 to update the locally stored applications (box 535) and locally stored SQL database 513 via paths 530 and 513 respectively. This allows applications stored as bundles to be atomically stored on the mobile device as a single file. The sync engine can then manage the storage, updating, upgrading, and subscription status of several such applications. For example a server could store information about a subscription application which the local sync engine would enforce. When the subscription expires the application bundle would be disabled or deleted. This functionality extends the type of application storage once associated with dedicated runtimes such as Java Micro Edition to web based applications. In addition the sync engine can store, synchronize and manage application data stored in the SQL database. In a typical (server based) application user data, such as shopping cart information on an ecommerce based web store or photographs on a photo sharing website would be stored on that site's database. In the present invention the ability to utilized web based protocols to store application data locally is now available though web services calls. More over the synchronization engine can then move user data stored in the local database back to a classically running server at an internet URL. The synchronization engine in the present invention therefore allows both applications and user data to be stored on a local device and then, should that device be lost or the user acquire a newer, perhaps upgraded device, the user's applications and the application's data can be seamlessly re-provisioned to the new device. The sync engine also can access the external internet through proxy 560 by using path 520. This allows the sync engine to move code assets and user and application data stored in the either the App Bundles database 535 or App Data database 513 and maintain them in accordance with business rules for subscription or provisioning of the user's applications. The present invention, since it uses databases to store application bundles and user data, can also support different application permissions for different users allowing some to have access to more or different data than others.
FIG. 6. depicts the present invention, labeled 610 serving multiple web applications to a local web browser 600 simultaneously via http as shown in path 605. Here applications are stored locally on device file system as shown by box 635 and connected via path 640 which represents the local file system. Alternative applications can be stored as application bundles as shown by boxes 615, 625, and 630 (note collectively this is also depicted as box 535 in FIG. 5). These bundled applications are stored locally and hence path 620 represents the internal connections the app bundle storage mechanism. Since each application effectively represents an entire website co-hosted on the same server, to the user these applications appear to run simultaneously. The present invention allows both app bundles and file system based applications to be mounted and served at the same time.
FIG. 8. Depicts provisioning of applications or user data over the internet. Note that in this Figure, some of the labels are the same as earlier figures as these are the same parts and hence consistency is maintained. Box 500 depicts the computer or mobile device in which the present invention is executing. The browser 600 is connected to the present invention 610 via path 605 which represents an http connection. The present invention is then connected via path 555 internally to the device, which is equivalent to path 105 externally to the device, via the internet 110, to path 805, to a synchronization server 800. The synchronization server contains two logical components in addition to network infrastructure (http server, firewall, load balancer) which is implemented as part of a standard configuration known to those skilled in the art. These two extra logical components are the Application Bundles database shown by 820 and the User Data database shown by 825. The application bundles represent stored applications which can be either served directly by the sync server in much the same way the present invention runs as depicted in FIG. 2 to FIG. 7 except that the server is running on the internet instead of on the local computer or handheld device. The applications bundles database primary service is to provision applications stored on the sync server and copy them to the WebVM installation on the client computer or mobile device. In other words the internet hosted sync server acts as a remote data-store for applications, and as a means for providing new applications which can be downloaded and stored locally by the present invention. An example of this type of functionality in action is the purchasing of a new application on an online web store. Then the sync server will push the application bundle down to the present invention for storage and installation. The present invention will then store the application locally much like a Java language or BREW language application would be stored. The sync server also provides the ability for subscription based applications which are locally stored depending on the metadata which determines the application's lifetime. For example the user could purchase an application for 1 month after which the present invention, WebVM, would delete that from device local storage. However the sync server could still maintain a copy so that an individual user could purchase a new subscription and to serve as a store for new users to purchase applications. Another purpose of the application bundle database on the sync server is to provide back up services for applications. For example if a device is lost or stolen the user can acquire a new device. At this point the sync server could, in conjunction with the present invention, send all of the user's old applications, since they are stored at the sync server, to the new device at which time the present invention would restore the applications that were lost on the lost or stolen device. The second piece of storage on the sync server is the user data SQL database. Unlike application bundles which are generic to an application and contain programmatic resources such as XHTML files, and the like the user data database stored personal settings such as preferences for each of the user's applications, documents—for example word processing files or game levels, and user device and subscription information. The portion of 825 which stores the user's documents and local data can be a mirror copy of that stored in the WebVM App Data database depicted as box 513 in FIG. 5. Should a user's device be lost or stolen and the user must get a new device, the present invention allows the re-provisioning of the user's new device to restore it to the same activity levels as the user's old device. The User Data database 825 allows the re-provision of user state data to their new device. In this way not only are applications reinstalled by the sync server to the new device, but the user's documents and settings are likewise also restored. Note that it is possible, depending on synchronization rules to also de-provision a device—in other words to turn off remotely a set if applications and erase the data should the system be so enabled. This allows the system to effectively remove old devices or stolen or lost devices from the overall service in a graceful way and to minimize the compromising of sensitive data that could have been stored on the old device.
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US7490141 *||May 15, 2008||Feb 10, 2009||Ibm Corporation||Ajax proxy indirection for external domain requests|
|US7620885 *||Aug 25, 2005||Nov 17, 2009||International Business Machines Corporation||Automatic generation of documentation for component-based computing solution|
|US7823086 *||Jun 28, 2007||Oct 26, 2010||Microsoft Corporation||Publishing protocol extensions for enhanced authoring of web pages|
|US8000690||Jan 4, 2010||Aug 16, 2011||Adobe Systems Incorporated||Interrupting and resuming a media player|
|US8041826||Jan 5, 2009||Oct 18, 2011||International Business Machines Corporation||Ajax proxy indirection for external domain requests|
|US8041839 *||Jul 29, 2009||Oct 18, 2011||Hon Hai Precision Industry Co., Ltd.||Method and system of providing active web user interface|
|US8060486||May 7, 2008||Nov 15, 2011||Hewlett-Packard Development Company, L.P.||Automatic conversion schema for cached web requests|
|US8161532 *||Apr 4, 2007||Apr 17, 2012||Microsoft Corporation||Operating system independent architecture for subscription computing|
|US8234586 *||Mar 26, 2008||Jul 31, 2012||Microsoft Corporation||User interface framework and techniques|
|US8249569||Oct 9, 2009||Aug 21, 2012||Adobe Systems Incorporated||Using local codecs|
|US8255921 *||May 30, 2007||Aug 28, 2012||Google Inc.||Method and apparatus that enables a web-based client-server application to be used offline|
|US8320890||Aug 15, 2011||Nov 27, 2012||Adobe Systems Incorporated||Interrupting and resuming a media player|
|US8321875 *||Aug 9, 2010||Nov 27, 2012||Ianywhere Solutions, Inc.||Selectively updating web pages on a mobile client|
|US8335703 *||Oct 19, 2007||Dec 18, 2012||Desktone, Inc.||Virtual computing services deployment network|
|US8350848||Feb 6, 2012||Jan 8, 2013||Trimble Navigation Limited||Lightweight three-dimensional display|
|US8355024||Feb 6, 2012||Jan 15, 2013||Trimble Navigation Limited||Lightweight three-dimensional display|
|US8356310 *||Sep 28, 2011||Jan 15, 2013||Microsoft Corporation||Executing business logic extensions on a client computing system|
|US8384713||Mar 14, 2012||Feb 26, 2013||Trimble Navigation Limited||Lightweight three-dimensional display|
|US8413139||Mar 11, 2009||Apr 2, 2013||Microsoft Corporation||Programming model for application and data access and synchronization within virtual environments|
|US8443299||Jun 11, 2010||May 14, 2013||Adobe Systems Incorporated||Rendering text in a brew device|
|US8458612||Jul 29, 2008||Jun 4, 2013||Hewlett-Packard Development Company, L.P.||Application management framework for web applications|
|US8478299||Apr 4, 2008||Jul 2, 2013||Hewlett-Packard Development Company, L.P.||System and methods for obtaining coarse location for a mobile device|
|US8503993 *||Jun 2, 2010||Aug 6, 2013||Alibaba Group Holding Limited||Method and system for payment through mobile devices|
|US8522132 *||Sep 13, 2010||Aug 27, 2013||International Business Machines Corporation||Widget behavior customization via cascaded style sheets|
|US8565739||Sep 14, 2012||Oct 22, 2013||Adobe Systems Incorporated||Interrupting and resuming a media player|
|US8589779||Dec 19, 2007||Nov 19, 2013||Adobe Systems Incorporated||Event-sensitive content for mobile devices|
|US8614706||Dec 21, 2012||Dec 24, 2013||Trimble Navigation Limited||Lightweight three-dimensional display|
|US8666954||Apr 3, 2009||Mar 4, 2014||Google Inc.||Reduced bandwidth cache coherency via checksum exchange|
|US8676189 *||Jan 26, 2009||Mar 18, 2014||Kodiak Networks, Inc.||Converged mobile-web communications solution|
|US8706801 *||Jul 20, 2009||Apr 22, 2014||Facebook, Inc.||Rendering a web page using content communicated to a browser application from a process running on a client|
|US8725793||Apr 3, 2009||May 13, 2014||Google Inc.||Architectural pattern for persistent web application design|
|US20080168391 *||Jun 22, 2007||Jul 10, 2008||Robbin Jeffrey L||Widget Synchronization in Accordance with Synchronization Preferences|
|US20100184422 *||Jan 22, 2009||Jul 22, 2010||Yahoo! Inc.||Web-hosted framework for mobile applications|
|US20100235829 *||Mar 11, 2009||Sep 16, 2010||Microsoft Corporation||Programming model for installing and distributing occasionally connected applications|
|US20100257602 *||Apr 1, 2009||Oct 7, 2010||Kevin Kettler||Method And Apparatus To Secure Contents On A Consumer Vital Appliance|
|US20100299676 *||Aug 9, 2010||Nov 25, 2010||Ianywhere Solutions, Inc.||Selectively updating web pages on a mobile client|
|US20100311397 *||Jun 2, 2010||Dec 9, 2010||Alibaba Group Holding Limited||Method and system for payment through mobile devices|
|US20110016169 *||Jul 20, 2009||Jan 20, 2011||Matthew Cahill||Rendering a web page using content communicated to a browser application from a process running on a client|
|US20110145786 *||Dec 15, 2009||Jun 16, 2011||Microsoft Corporation||Remote commands in a shell environment|
|US20110264770 *||Apr 21, 2011||Oct 27, 2011||Electronics And Telecommunications Research Institute||Apparatus and method for cooperatively operating web browser and local resource in mobile terminal|
|US20120023162 *||Sep 28, 2011||Jan 26, 2012||Microsoft Corporation||Executing Business Logic Extensions on a Client Computing System|
|US20120066585 *||Sep 13, 2010||Mar 15, 2012||International Business Machines Corporation||Widget behavior customization via cascaded style sheets|
|US20120072813 *||Nov 27, 2010||Mar 22, 2012||Praphul Chandra||Method and system for displaying a web page advertisement|
|US20120290645 *||Jul 24, 2012||Nov 15, 2012||Google Inc.||Method and apparatus that enables a web-based client-server application to be used offline|
|US20130339229 *||Jun 25, 2013||Dec 19, 2013||Alibaba Group Holding Ltd||Method and system for payment through mobile devices|
|WO2010114964A1 *||Apr 1, 2010||Oct 7, 2010||Google Inc.||Architectural pattern for persistent web application design|
|WO2011031130A1 *||Sep 8, 2010||Mar 17, 2011||Emanual System Sdn Bhd||System and method of implementing a data management system|
|WO2012076976A1 *||Dec 8, 2011||Jun 14, 2012||N&N Chopra Consultants Pvt. Ltd.||System and method for integrating software functionalities on n-layer architecture platform|
|Jan 28, 2014||AS||Assignment|
Owner name: QUALCOMM INCORPORATED, CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HEWLETT-PACKARD COMPANY;HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;PALM, INC.;REEL/FRAME:032177/0210
Effective date: 20140123
|Dec 18, 2013||AS||Assignment|
Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS
Effective date: 20131218
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PALM, INC.;REEL/FRAME:031837/0239
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;REEL/FRAME:031837/0544
Owner name: PALM, INC., CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PALM, INC.;REEL/FRAME:031837/0659
|May 3, 2013||AS||Assignment|
Owner name: PALM, INC., CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;REEL/FRAME:030341/0459
Effective date: 20130430
|Oct 28, 2010||AS||Assignment|
Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PALM, INC.;REEL/FRAME:025204/0809
Effective date: 20101027
|Jul 6, 2010||AS||Assignment|
Owner name: PALM, INC.,CALIFORNIA
Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:24630/474
Effective date: 20100701
Owner name: PALM, INC., CALIFORNIA
Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:024630/0474
|Oct 22, 2009||AS||Assignment|
Owner name: JPMORGAN CHASE BANK, N.A., NEW YORK
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;REEL/FRAME:023406/0671
Effective date: 20091002
Owner name: JPMORGAN CHASE BANK, N.A.,NEW YORK
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100204;REEL/FRAME:23406/671
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100225;REEL/FRAME:23406/671
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100302;REEL/FRAME:23406/671
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100304;REEL/FRAME:23406/671
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100311;REEL/FRAME:23406/671
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100318;REEL/FRAME:23406/671
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100325;REEL/FRAME:23406/671
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100330;REEL/FRAME:23406/671
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100401;REEL/FRAME:23406/671
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100408;REEL/FRAME:23406/671
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100413;REEL/FRAME:23406/671
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100415;REEL/FRAME:23406/671
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100420;REEL/FRAME:23406/671
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100429;REEL/FRAME:23406/671
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100504;REEL/FRAME:23406/671
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100513;REEL/FRAME:23406/671
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;REEL/FRAME:23406/671
|Feb 13, 2008||AS||Assignment|
Owner name: PALM, INC., CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LAMPDESK CORPORATION;REEL/FRAME:020502/0606
Effective date: 20071003
|Jan 9, 2008||AS||Assignment|
Owner name: JPMORGAN CHASE BANK, N.A., NEW YORK
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;REEL/FRAME:020341/0285
Effective date: 20071219
Owner name: JPMORGAN CHASE BANK, N.A.,NEW YORK
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100204;REEL/FRAME:20341/285
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100209;REEL/FRAME:20341/285
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100302;REEL/FRAME:20341/285
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100309;REEL/FRAME:20341/285
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100316;REEL/FRAME:20341/285
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100406;REEL/FRAME:20341/285
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100420;REEL/FRAME:20341/285
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;US-ASSIGNMENT DATABASE UPDATED:20100504;REEL/FRAME:20341/285
Free format text: SECURITY AGREEMENT;ASSIGNOR:PALM, INC.;REEL/FRAME:20341/285
|Nov 15, 2007||AS||Assignment|
Owner name: LAMPDESK CORPORATION, CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHATTERJEE, MANJIRNATH;SIMON, GREGORY;REEL/FRAME:020120/0917
Effective date: 20070928