WO2012028957A2 - Système et procédé permettant de faire fonctionner des applications sur une plateforme - Google Patents

Système et procédé permettant de faire fonctionner des applications sur une plateforme Download PDF

Info

Publication number
WO2012028957A2
WO2012028957A2 PCT/IB2011/002411 IB2011002411W WO2012028957A2 WO 2012028957 A2 WO2012028957 A2 WO 2012028957A2 IB 2011002411 W IB2011002411 W IB 2011002411W WO 2012028957 A2 WO2012028957 A2 WO 2012028957A2
Authority
WO
WIPO (PCT)
Prior art keywords
platform
application
context
applications
module
Prior art date
Application number
PCT/IB2011/002411
Other languages
English (en)
Other versions
WO2012028957A3 (fr
Inventor
Ronald Henry Tse
Original Assignee
Ronald Henry Tse
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ronald Henry Tse filed Critical Ronald Henry Tse
Priority to EP11821185.3A priority Critical patent/EP2663931A4/fr
Publication of WO2012028957A2 publication Critical patent/WO2012028957A2/fr
Publication of WO2012028957A3 publication Critical patent/WO2012028957A3/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management

Definitions

  • the description herein generally relates to the field of running applications on a platform.
  • the description also generally relates to running personal applications and collaboration-enabled multi-user applications on the same online application platform.
  • a method includes the computer executed steps of running one or more personal applications on an Internet application platform, and running one or more collaboration-enabled multi-user applications on the Internet application platform.
  • a method includes the computer executed steps of running one or more single user applications on an online application platform, and running one or more multi-user applications on the online application platform.
  • FIG 1 is an exemplary embodiment of the present invention.
  • FIG 2 is an exemplary embodiment of the present invention.
  • FIG 3 is an exemplary embodiment of the present invention.
  • FIG 4 is an exemplary embodiment of the present invention. [0011] FIG
  • an exemplary method 100 includes the computer executed steps of running one or more single user applications on an online application platform at 101 and running one or more multi-user applications on the online application platform at 102.
  • Another exemplary method 120 includes the computer executed steps of running one or more single user applications on an online application platform at 121 , wherein the one or more single user applications includes one or more personal applications, and running one or more multi-user applications on the online application platform at 122.
  • Another exemplary method 130 includes the computer executed steps of running one or more single user applications on an online application platform at 131 , wherein the one or more single user applications includes one or more personal applications, and running one or more multi-user applications on the online application platform at 132, wherein the one or more multi-user applications includes one or more collaboration-enabled multi-user applications.
  • Another exemplary method 140 includes the computer executed steps of running one or more single user applications on an online application platform at 141; and running one or more multi-user applications on the online application platform at 142, wherein the online application platform includes an Internet application platform.
  • Another exemplary method 150 includes the computer executed steps of running one or more single user applications on an online application platform at 151 ; and running one or more multi-user applications on the online application platform at 152, wherein the online application platform includes one or more of a software platform or an online application platform.
  • Another exemplary method 160 includes the computer executed steps of running one or more single user applications on an online application platform at 161 , wherein the one or more single user applications includes one or more personal applications, and running one or more multi-user applications on the online application platform at 162, wherein the one or more multi-user applications includes one or more collaboration-enabled multi-user applications, and wherein a plurality of users use the one or more collaboration-enabled multi-user applications.
  • Another exemplary method 170 includes the computer executed steps of running one or more single user applications on an online application platform at 171 , wherein the one or more single user applications includes one or more personal applications, and running one or more multi-user applications on the online application platform at 172, wherein the one or more multi-user applications includes one or more collaboration-enabled multi-user applications, and wherein a plurality of users use a common set of the one or more collaboration-enabled multi-user applications.
  • Another exemplary method 180 includes the computer executed steps of running one or more single user applications on an online application platform at 181 , wherein the one or more single user applications includes one or more personal applications; running one or more multi-user applications on the online application platform at 182, wherein the one or more multi-user applications includes one or more collaboration-enabled multi-user applications, and wherein a plurality of users use the one or more collaboration-enabled multi-user applications; and assigning access values to each one of the plurality of users at 183, wherein the access values define the level of access that each one of the plurality of users have to at least one of personal applications or the collaboration-enabled multi-user applications.
  • Another exemplary method 190 includes the computer executed steps of running one or more single user applications on an online application platform at 191 , wherein the one or more single user applications includes one or more personal applications; running one or more multi-user applications on the online application platform at 192, wherein the one or more multi-user applications includes one or more collaboration-enabled multi-user applications, and wherein a plurality of users use the one or more collaboration-enabled multi-user applications; assigning access values to each one of the plurality of users at 193, wherein the access values define the level of access that each one of the plurality of users have to at least one of personal applications or the collaboration-enabled multi-user applications; and allowing interaction between at least one of the one or more personal applications and the one or more collaboration-enabled multi-user applications and at least one of the one or more personal applications and the one or more collaboration-enabled multi-user applications at 194.
  • Another exemplary method 200 includes the computer executed steps of running one or more single user applications on an online application platform at 201 , wherein the one or more single user applications includes one or more personal applications; running one or more multi-user applications on the online application platform at 202, wherein the one or more multi-user applications includes one or more collaboration-enabled multi-user applications, and wherein a plurality of users use the one or more collaboration-enabled multi-user applications; assigning access values to each one of the plurality of users at 203 , wherein the access values define the level of access that each one of the plurality of users have to at least one of personal applications or the collaboration-enabled multi-user applications; and allowing interaction between at least one of the one or more personal applications and the one or more collaboration-enabled multi-user applications and at least one of the one or more personal applications and the one or more collaboration-enabled multi-user applications at 204; wherein the allowing interaction step includes communicating information related to a first one of the one or
  • Another exemplary method 210 includes the computer executed steps of running one or more single user applications on an online application platform at 211 , wherein the one or more single user applications includes one or more personal applications; running one or more multi-user applications on the online application platform at 212, wherein the one or more multi-user applications includes one or more collaboration-enabled multi-user applications, and wherein a plurality of users use the one or more collaboration-enabled multi-user applications; assigning access values to each one of the plurality of users at 213 , wherein the access values define the level of access that each one of the plurality of users have to at least one of personal applications or the collaboration-enabled multi-user applications; and allowing interaction between at least one of the one or more personal applications and the one or more collaboration-enabled multi-user applications and at least one of the one or more personal applications and the one or more collaboration-enabled multi-user applications at 214; wherein the allowing interaction step includes accessing information related to a first
  • Another exemplary method 220 includes the computer executed steps of running one or more single user applications on an online application platform at 221 , wherein the one or more single user applications includes one or more personal applications; running one or more multi-user applications on the online application platform at 222, wherein the one or more multi-user applications includes one or more collaboration-enabled multi-user applications, and wherein a plurality of users use the one or more collaboration-enabled multi-user applications; assigning access values to each one of the plurality of users at 223 , wherein the access values define the level of access that each one of the plurality of users have to at least one of personal applications or the collaboration-enabled multi-user applications; and allowing interaction between at least one of the one or more personal applications and the one or more collaboration-enabled multi-user applications and at least one of the one or more personal applications and the one or more collaboration-enabled multi-user applications at 224; wherein the allowing interaction step includes at least one of allowing a first one of
  • Another exemplary method includes the computer executed steps of running one or more single user applications on an online application platform, wherein the one or more single user applications includes one or more personal applications; running one or more multi-user applications on the online application platform, wherein the one or more multi-user applications includes one or more collaboration-enabled multi-user applications, and wherein a plurality of users use the one or more collaboration-enabled multi-user applications; assigning access values to each one of the plurality of users, wherein the access values define the level of access that each one of the plurality of users have to at least one of personal applications or the collaboration-enabled multi-user applications; and allowing interaction between at least one of the one or more personal applications and the one or more collaboration-enabled multi-user applications and at least one of the one or more personal applications and the one or more collaboration- enabled multi-user applications, wherein the allowing interaction step includes at least one of: allowing a first one of the plurality of users to see what another one of the plurality of users is doing with respect to the plurality
  • contexts/applications/users showing the other user's current application layout and actions in real time or delayed; user receiving real time updates or delayed updates; user receiving one or more processed or unprocessed updates/actions of other users; allowing two or more users to directly communicate with each other, text chat, audio, video, other methods; allowing two or more users to share files or information with each other, including files, pictures, messages and videos; request or cause an application to act in a certain way; request or cause an application to provide data or information; request or cause an application to change parameters or data; request or subscribe to an application so requestor is notified on any change on requested triggers; request or directly remove, update or modify an application from the software platform; and request or directly modify an target application to alter its behavior.
  • Another exemplary method includes the computer executed steps of: creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications.
  • Another exemplary method includes the computer executed steps of: creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, wherein the plurality of contexts includes a plurality of collaboration-enabled contexts.
  • Another exemplary method includes the computer executed steps of: creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, further including the step of enabling a plurality of users to change the value of the context set, by adding or deleting at least one of the one or more common characteristics, and to change the value of the software set, by adding or deleting at or changing least one of the one or more software applications.
  • Another exemplary method includes the computer executed steps of: creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, further including the step of enabling a plurality of users to change the value of the context set, by adding or deleting at least one of the one or more common characteristics, and to change the value of the software set, by adding or deleting at or changing least one of the one or more software applications, wherein the plurality of users enabled to change the value of the context set and the software set are limited to a selected one or more of the plurality of users.
  • Another exemplary method includes the computer executed steps of: creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, further including the step of enabling a plurality of users to change the value of the context set, by adding or deleting at least one of the one or more common characteristics, and to change the value of the software set, by adding or deleting at or changing least one of the one or more software applications, wherein the selected one or more of the plurality of users includes those one or more of the plurality of users who share an interest in the one or more common characteristics.
  • Another exemplary method includes the computer executed steps of: creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, wherein the plurality of contexts includes a plurality of collaboration-enabled contexts, and wherein the one or more software applications includes: one or more Web applications.
  • Another exemplary method includes the computer executed steps of: creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, further including the step of enabling a plurality of users to change the value of the context set, by adding or deleting at least one of the one or more common characteristics, and to change the value of the software set, by adding or deleting at or changing least one of the one or more software applications, wherein the plurality of users enabled to change the value of the context set and the software set are limited to a selected one or more of the plurality of users; wherein the one or more software applications includes: one or
  • Another exemplary method includes the computer executed steps of: creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, wherein the plurality of contexts includes a plurality of collaboration-enabled contexts; wherein the one of more software applications includes at least one of the following: project management software; tasks management software; issue management software; business software; source code management software; public website software; discussion group software; accounting software; enterprise resource management software; contact management software; customer relationship management software; e-commerce software; business intelligence software; inventory management software; bug tracking software; knowledge management software; knowledge creation software; or information sharing software.
  • Another exemplary method includes the computer executed steps of: creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, further including the step of enabling a plurality of users to change the value of the context set, by adding or deleting at least one of the one or more common characteristics, and to change the value of the software set, by adding or deleting at or changing least one of the one or more software applications, wherein the plurality of users enabled to change the value of the context set and the software set are limited to a selected one or more of the plurality of users; wherein the one of more software applications includes at least one
  • Another exemplary method includes the computer executed steps of running one or more single user applications on an online application platform; and running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes providing one or more personal applications on the software platform; providing one or more multi-user applications on the software platform.
  • Another exemplary method includes the computer executed steps of running one or more single user applications on an online application platform; and running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes providing one or more personal applications on the software platform; providing one or more multi-user applications on the software platform; providing data storage on the platform; and providing a user interface for the platform; wherein a user may provide a customized set of at least one of the one or more personal applications, at least one of the one or more multi-user applications, at least one of a data storage, and at least one of a user interface.
  • Another exemplary method includes the computer executed steps of running one or more single user applications on an online application platform; and running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes providing one or more personal applications on the software platform; providing one or more multi-user applications on the software platform; wherein the one or more multi-user applications includes one or more collaboration-enabled multi-user applications.
  • Another exemplary method includes the computer executed steps of running one or more single user applications on an online application platform; and running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes providing one or more personal applications on the software platform; providing one or more multi-user applications on the software platform; and providing one or more business applications on the software platform.
  • Another exemplary method includes the computer executed steps of running one or more single user applications on an online application platform; and running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes providing one or more personal applications on the software platform; providing one or more multi-user applications on the software platform; and providing one or more business applications on the software platform; and further including: allowing a plurality of usages, wherein the plurality of usages includes use by one person of the software platform; and use by a plurality of persons of the software platform, wherein each one of the plurality of persons interacts via the software platform with at least another one of the plurality of persons.
  • Another exemplary method includes the computer executed steps of running one or more single user applications on an online application platform; and running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes providing one or more personal applications on the software platform; providing one or more multi-user applications on the software platform; and providing one or more business applications on the software platform; and further including: allowing a plurality of usages, wherein the plurality of usages includes use by one person of the software platform; and use by a plurality of persons of the software platform, wherein each one of the plurality of persons interacts via the software platform with at least another one of the plurality of persons.; and wherein the plurality of usages further includes: use by a third party, wherein the third party uses a third party software platform different from the software platform, and wherein the third party may use the software platform on at least one of pay for use basis or free basis.
  • Another exemplary method includes the computer executed steps of running one or more single user applications on an online application platform; and running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes providing one or more personal applications on the software platform; providing one or more multi-user applications on the software platform; providing data storage on the platform; and providing a user interface for the platform; wherein a user may provide a customized set of at least one of the one or more personal applications, at least one of the one or more multi-user applications, at least one of a data storage, and at least one of a user interface; and further includes making the platform available via the Internet.
  • Another exemplary method includes the computer executed steps of running one or more single user applications on an online application platform; and running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes providing one or more personal applications on the software platform; providing one or more multi-user applications on the software platform; providing data storage on the platform; and providing a user interface for the platform; wherein a user may provide a customized set of at least one of the one or more personal applications, at least one of the one or more multi-user applications, at least one of a data storage, and at least one of a user interface; and further includes installing the platform on each one of a plurality of computers; and communicating information relating to a first platform installed on a first one of the plurality of computers to a second platform installed on a second one of the plurality of computers.
  • Another exemplary method includes the computer executed steps of running one or more single user applications on an online application platform; and running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes providing one or more personal applications on the software platform; providing one or more multi-user applications on the software platform; providing data storage on the platform; and providing a user interface for the platform; wherein a user may provide a customized set of at least one of the one or more personal applications, at least one of the one or more multi-user applications, at least one of a data storage, and at least one of a user interface; and further includes installing the platform on each one of a plurality of computers; and communicating information relating to a first platform installed on a first one of the plurality of computers to a second platform installed on a second one of the plurality of computers; and wherein the information is communicated via the Internet.
  • Another exemplary system includes a module for running one or more single user applications on an online application platform, wherein the one or more single user applications includes one or more personal applications; module for running one or more multi-user applications on the online application platform, wherein the one or more multi-user applications includes one or more collaboration-enabled multi-user applications, and wherein a plurality of users use the one or more collaboration-enabled multi-user applications; module for assigning access values to each one of the plurality of users, wherein the access values define the level of access that each one of the plurality of users have to at least one of personal applications or the collaboration-enabled multi-user applications; and module for allowing interaction between at least one of the one or more personal applications and the one or more collaboration-enabled multi-user applications and at least one of the one or more personal applications and the one or more
  • the allowing interaction module includes at least one of: module for allowing a first one of the plurality of users to see what another one of the plurality of users is doing with respect to the plurality of collaboration-enabled multi-user applications; module for changing the value of what one of the plurality of users has inputted into one of the one or more collaboration-enabled multi-user applications into another one of the plurality of collaboration-enabled multiuser applications; adding a new one of the plurality of collaboration-enabled multi-user applications; module for deleting at least one of the plurality of collaboration-enabled multi-user applications; module for allowing a user to receive updates regarding changes in the application, made by other applications or users; module for allowing a user to receive any information from other users operating same or other applications; module for modifying an application; module for notifying a user about updates available in an application or in other applications; module for allowing a user to subscribe to an application or multiple applications for latest updates or changes; module for allowing a user
  • Another exemplary system includes module for creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; module for creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; module for changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and module for changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications.
  • Another exemplary system includes module for creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; module for creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; module for changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and module for changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, wherein the plurality of contexts includes a plurality of collaboration-enabled contexts.
  • Another exemplary system includes module for creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; module for creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; module for changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and module for changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, further including a module for enabling a plurality of users to change the value of the context set, by adding or deleting at least one of the one or more common characteristics, and to change the value of the software set, by adding or deleting at or changing least one of the one or more software applications.
  • Another exemplary system includes module for creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; module for creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; module for changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and module for changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, further including module for enabling a plurality of users to change the value of the context set, by adding or deleting at least one of the one or more common characteristics, and to change the value of the software set, by adding or deleting at or changing least one of the one or more software applications, wherein the plurality of users enabled to change the value of the context set and the software set are limited to a selected one or more of the plurality of users.
  • Another exemplary system includes module for creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; module for creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; module for changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and module for changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, further including module for enabling a plurality of users to change the value of the context set, by adding or deleting at least one of the one or more common characteristics, and to change the value of the software set, by adding or deleting at or changing least one of the one or more software applications, wherein the selected one or more of the plurality of users includes those one or more of the plurality of users who share an interest in the one or more common characteristics.
  • Another exemplary system includes module for creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; module for creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; module for changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and module for changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, wherein the plurality of contexts includes a plurality of collaboration-enabled contexts, and wherein the one or more software applications includes: one or more Web applications.
  • Another exemplary system includes module for creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; module for creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; module for changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and module for changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, further including module for enabling a plurality of users to change the value of the context set, by adding or deleting at least one of the one or more common characteristics, and to change the value of the software set, by adding or deleting at or changing least one of the one or more software applications, wherein the plurality of users enabled to change the value of the context set and the software set are limited to a selected one or more of the plurality of users; wherein the one or more software applications includes: one
  • Another exemplary system includes module for creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; module for creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; module for changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and module for changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, wherein the plurality of contexts includes a plurality of collaboration-enabled contexts; wherein the one of more software applications includes at least one of the following: project management software; tasks management software; issue management software; business software; source code management software; public website software;
  • discussion group software accounting software; enterprise resource management software; contact management software; customer relationship management software; e- commerce software; business intelligence software; inventory management software; bug tracking software; knowledge management software; knowledge creation software; or information sharing software.
  • Another exemplary system includes module for creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; module for creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; module for changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and module for changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, further including module for enabling a plurality of users to change the value of the context set, by adding or deleting at least one of the one or more common characteristics, and to change the value of the software set, by adding or deleting at or changing least one of the one or more software applications, wherein the plurality of users enabled to change the value of the context set and the software set are limited to a selected one or more of the plurality of users; wherein the one of more software applications includes at least
  • Another exemplary system includes module for running one or more single user applications on an online application platform; and module for running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes providing one or more personal applications on the software platform; providing one or more multi-user applications on the software platform.
  • Another exemplary system includes module for running one or more single user applications on an online application platform; and module for running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes module for providing one or more personal applications on the software platform; module for providing one or more multi-user applications on the software platform; providing data storage on the platform; and module for providing a user interface for the platform; wherein a user may provide a customized set of at least one of the one or more personal applications, at least one of the one or more multi-user applications, at least one of a data storage, and at least one of a user interface.
  • Another exemplary system includes module for running one or more single user applications on an online application platform; and module for running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes module for providing one or more personal applications on the software platform; providing one or more multi-user applications on the software platform; wherein the one or more multi-user applications includes one or more collaboration-enabled multi-user applications.
  • Another exemplary system includes module for running one or more single user applications on an online application platform; and module for running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes module for providing one or more personal applications on the software platform; providing one or more multi-user applications on the software platform; and module for providing one or more business applications on the software platform.
  • Another exemplary system includes module for running one or more single user applications on an online application platform; and module for running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further module for providing one or more personal applications on the software platform; module for providing one or more multi-user applications on the software platform; and module for providing one or more business applications on the software platform; and further including: module for allowing a plurality of usages, wherein the plurality of usages includes use by one person of the software platform; and use by a plurality of persons of the software platform, wherein each one of the plurality of persons interacts via the software platform with at least another one of the plurality of persons.
  • Another exemplary system includes module for running one or more single user applications on an online application platform; and module for running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes module for providing one or more personal applications on the software platform; module for providing one or more multi-user applications on the software platform; and module for providing one or more business applications on the software platform; and further including: module for allowing a plurality of usages, wherein the plurality of usages includes use by one person of the software platform; and use by a plurality of persons of the software platform, wherein each one of the plurality of persons interacts via the software platform with at least another one of the plurality of persons.; and wherein the plurality of usages further includes: use by a third party, wherein the third party uses a third party software platform different from the software platform, and wherein the third party may use the software platform on at least one of pay for use basis or free basis.
  • Another exemplary system includes module for running one or more single user applications on an online application platform; and module for running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes module for providing one or more personal applications on the software platform; module for providing one or more multi-user applications on the software platform; providing data storage on the platform; and module for providing a user interface for the platform; wherein a user may provide a customized set of at least one of the one or more personal applications, at least one of the one or more multi-user applications, at least one of a data storage, and at least one of a user interface; and further includes making the platform available via the Internet.
  • Another exemplary system includes module for running one or more single user applications on an online application platform; and module for running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes module for providing one or more personal applications on the software platform; module for providing one or more multi-user applications on the software platform; module for providing data storage on the platform; and module for providing a user interface for the platform; wherein a user may provide a customized set of at least one of the one or more personal applications, at least one of the one or more multi-user applications, at least one of a data storage, and at least one of a user interface; and further includes module for installing the platform on each one of a plurality of computers; and module for communicating information relating to a first platform installed on a first one of the plurality of computers to a second platform installed on a second one of the plurality of computers; and wherein the information is communicated via the Internet.
  • Another exemplary system includes a means for running one or more single user applications on an online application platform, wherein the one or more single user applications includes one or more personal applications; means for running one or more multi-user applications on the online application platform, wherein the one or more multi-user applications includes one or more collaboration-enabled multi-user applications, and wherein a plurality of users use the one or more collaboration-enabled multi-user applications; means for assigning access values to each one of the plurality of users, wherein the access values define the level of access that each one of the plurality of users have to at least one of personal applications or the collaboration-enabled multi-user applications; and means for allowing interaction between at least one of the one or more personal applications and the one or more collaboration-enabled multi-user applications and at least one of the one or more personal applications and the one or more
  • collaboration-enabled multi-user applications wherein the allowing interaction means includes at least one of: means for allowing a first one of the plurality of users to see what another one of the plurality of users is doing with respect to the plurality of collaboration-enabled multi-user applications; means for changing the value of what one of the plurality of users has inputted into one of the one or more collaboration-enabled multi-user applications into another one of the plurality of collaboration-enabled multiuser applications; adding a new one of the plurality of collaboration-enabled multi-user applications; means for deleting at least one of the plurality of collaboration-enabled multi-user applications; means for allowing a user to receive updates regarding changes in the application, made by other applications or users; means for allowing a user to receive any information from other users operating same or other applications; means for modifying an application; means for notifying a user about updates available in an application or in other applications; means for allowing a user to subscribe to an application or multiple applications for latest updates or changes; means for allowing a user
  • contexts/applications/users means for showing the other user's current application layout and actions in real time or delayed; means for user receiving real time updates or delayed updates; means for user receiving one or more processed or unprocessed updates/actions of other users; means for allowing two or more users to directly communicate with each other, text chat, audio, video, other methods; allowing two or more users to share files or information with each other, including files, pictures, messages and videos; request or cause an application to act in a certain way; request or cause an application to provide data or information; request or cause an application to change parameters or data; request or subscribe to an application so requestor is notified on any change on requested triggers; request or directly remove, update or modify an application from the software platform; and request or directly modify an target application to alter its behavior.
  • Another exemplary system includes means for creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; means for creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; means for changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and means for changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications.
  • Another exemplary system includes means for creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; means for creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; means for changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and means for changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, wherein the plurality of contexts includes a plurality of collaboration-enabled contexts.
  • Another exemplary system includes means for creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; means for creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; means for changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and means for changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, further including a means for enabling a plurality of users to change the value of the context set, by adding or deleting at least one of the one or more common characteristics, and to change the value of the software set, by adding or deleting at or changing least one of the one or more software applications.
  • Another exemplary system includes means for creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; means for creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; means for changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and means for changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, further including means for enabling a plurality of users to change the value of the context set, by adding or deleting at least one of the one or more common characteristics, and to change the value of the software set, by adding or deleting at or changing least one of the one or more software applications, wherein the plurality of users enabled to change the value of the context set and the software set are limited to a selected one or more of the plurality of users.
  • Another exemplary system includes means for creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; means for creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; means for changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and means for changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, further including means for enabling a plurality of users to change the value of the context set, by adding or deleting at least one of the one or more common characteristics, and to change the value of the software set, by adding or deleting at or changing least one of the one or more software applications, wherein the selected one or more of the plurality of users includes those one or more of the plurality of users who share an interest in the one or more common characteristics.
  • Another exemplary system includes means for creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; means for creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; means for changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and means for changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, wherein the plurality of contexts includes a plurality of collaboration-enabled contexts, and wherein the one or more software applications includes: one or more Web applications.
  • Another exemplary system includes means for creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; means for creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; means for changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and means for changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, further including means for enabling a plurality of users to change the value of the context set, by adding or deleting at least one of the one or more common characteristics, and to change the value of the software set, by adding or deleting at or changing least one of the one or more software applications, wherein the plurality of users enabled to change the value of the context set and the software set are limited to a selected one or more of the plurality of users; wherein the one or more software applications includes: one
  • Another exemplary system includes means for creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; means for creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; means for changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and means for changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, wherein the plurality of contexts includes a plurality of collaboration-enabled contexts; wherein the one of more software applications includes at least one of the following: project management software; tasks management software; issue management software; business software; source code management software; public website software; discussion group software; accounting software; enterprise resource management software; contact management software; customer relationship management software; e-commerce software; business intelligence software; inventory management software; bug tracking software; knowledge management software; knowledge creation software; or information sharing
  • Another exemplary system includes means for creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts includes a context set comprising one or more common characteristics; means for creating a plurality of elements on the software platform, wherein each one of the plurality of elements includes a software set comprising one or more software applications; means for changing the value of the context set, by adding, deleting or changing at least one of the one or more common characteristics; and means for changing the value of the software set, by adding, deleting or changing at least one of the one or more software applications, further including means for enabling a plurality of users to change the value of the context set, by adding or deleting at least one of the one or more common characteristics, and to change the value of the software set, by adding or deleting at or changing least one of the one or more software applications, wherein the plurality of users enabled to change the value of the context set and the software set are limited to a selected one or more of the plurality of users; wherein the one of more software applications includes at least
  • Another exemplary system includes means for running one or more single user applications on an online application platform; and means for running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes providing one or more personal applications on the software platform; providing one or more multi-user applications on the software platform.
  • Another exemplary system includes means for running one or more single user applications on an online application platform; and means for running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes means for providing one or more personal applications on the software platform; means for providing one or more multi-user applications on the software platform; providing data storage on the platform; and means for providing a user interface for the platform; wherein a user may provide a customized set of at least one of the one or more personal applications, at least one of the one or more multi-user applications, at least one of a data storage, and at least one of a user interface.
  • Another exemplary system includes means for running one or more single user applications on an online application platform; and means for running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes means for providing one or more personal applications on the software platform; providing one or more multi-user applications on the software platform; wherein the one or more multi-user applications includes one or more collaboration-enabled multi-user applications.
  • Another exemplary system includes means for running one or more single user applications on an online application platform; and means for running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes means for providing one or more personal applications on the software platform; providing one or more multi-user applications on the software platform; and means for providing one or more business applications on the software platform.
  • Another exemplary system includes means for running one or more single user applications on an online application platform; and means for running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further means for providing one or more personal applications on the software platform; means for providing one or more multi-user applications on the software platform; and means for providing one or more business applications on the software platform; and further including: means for allowing a plurality of usages, wherein the plurality of usages includes use by one person of the software platform; and use by a plurality of persons of the software platform, wherein each one of the plurality of persons interacts via the software platform with at least another one of the plurality of persons.
  • Another exemplary system includes means for running one or more single user applications on an online application platform; and means for running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes means for providing one or more personal applications on the software platform; means for providing one or more multi-user applications on the software platform; and means for providing one or more business applications on the software platform; and further including: means for allowing a plurality of usages, wherein the plurality of usages includes use by one person of the software platform; and use by a plurality of persons of the software platform, wherein each one of the plurality of persons interacts via the software platform with at least another one of the plurality of persons.; and wherein the plurality of usages further includes: use by a third party, wherein the third party uses a third party software platform different from the software platform, and wherein the third party may use the software platform on at least one of pay for use basis or free basis.
  • Another exemplary system includes means for running one or more single user applications on an online application platform; and means for running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes means for providing one or more personal applications on the software platform; means for providing one or more multi-user applications on the software platform; providing data storage on the platform; and means for providing a user interface for the platform; wherein a user may provide a customized set of at least one of the one or more personal applications, at least one of the one or more multi-user applications, at least one of a data storage, and at least one of a user interface; and further includes making the platform available via the Internet.
  • Another exemplary system means for running one or more single user applications on an online application platform; and means for running one or more multiuser applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes means for providing one or more personal applications on the software platform; means for providing one or more multi-user applications on the software platform; providing data storage on the platform; and means for providing a user interface for the platform; wherein a user may provide a customized set of at least one of the one or more personal applications, at least one of the one or more multi-user applications, at least one of a data storage, and at least one of a user interface; and further includes means for installing the platform on each one of a plurality of computers; and means for communicating information relating to a first platform installed on a first one of the plurality of computers to a second platform installed on a second one of the plurality of computers.
  • Another exemplary system includes means for running one or more single user applications on an online application platform; and means for running one or more multi-user applications on the online application platform, wherein the online application platform includes one or more of a software platform or an online application platform; and further includes means for providing one or more personal applications on the software platform; means for providing one or more multi-user applications on the software platform; means for providing data storage on the platform; and means for providing a user interface for the platform; wherein a user may provide a customized set of at least one of the one or more personal applications, at least one of the one or more multi-user applications, at least one of a data storage, and at least one of a user interface; and further includes means for installing the platform on each one of a plurality of computers; and means for communicating information relating to a first platform installed on a first one of the plurality of computers to a second platform installed on a second one of the plurality of computers; and wherein the information is communicated via the Internet.
  • An exemplary system provides an online application platform which allows single-user and multi-user applications to coexist, run and interact on the same platform. For example, personal applications and collaboration-enabled multi-user applications are supported on the platform. Multiple users can utilize multi-user applications or a common set of them. Applications can be provided by the system or by third parties.
  • an online application platform allows single -user and multi-user applications to coexist, run and interact on the same platform.
  • personal applications and collaboration-enabled multi-user applications are supported on the platform.
  • Multiple users can utilize multi-user applications or a common set of them.
  • Applications can be provided by the system or by third parties.
  • a user can access multiple applications if access control allows. Access values can be set on users where the access values define the level of access a user has to an application.
  • applications on the platform can interact.
  • a personal application can communicate with or access information of a collaboration-enabled multi-user application.
  • a user can see what another user is doing in an application, such as adding or modifying a data.
  • contexts may belong to an application or a user. However it is often useful to group data in a context that is consistent across applications, users and data.
  • a context is used consistently across applications, users and data.
  • a context can be accessed by one or more users, and can be associated to one or more applications and data.
  • Applications, contexts, data and users can be added, removed or changed on the platform.
  • each context can contain multiple users, applications and data.
  • a context can be collaboration-enabled so multiple people can collaborate within the context using applications provided by the context. Users, applications and data can be modified, added or removed from a context.
  • Single -user applications and multi-user applications in the context can be used and shown to a context user using a common interface.
  • context access can be subject to access control.
  • Contexts can be created, modified or deleted by users who have access privileges.
  • Context content can also be limited to be created, modified or deleted by users who have access privileges.
  • applications available on the platform can be web applications.
  • Applications on the platform can include software such as project management software, tasks management software, discussion group software, business software, accounting software, information management software.
  • a context can be configured to suit one or more target usages.
  • a context can contain various project management applications to suit project management usage.
  • system operators, users or third parties can create, modify, customize or remove applications on the platform including single-user and multi-user applications if access control permits.
  • the platform can provide data storage and user interfaces for these applications.
  • one or multiple users can use applications and contexts on the platform. These users can interact with other users via the platform.
  • third parties that use a third-party platform can also use applications and contexts on the platform on a pay for use or free basis.
  • the application platform may be accessed via the Internet. It may also be installed on a plurality of computers in which the computers may communicate with each other. Such communication may be done via the Internet.
  • a user can configure a context to contain applications such as single-user or multi-user applications.
  • the user may also add, edit or remove applications from the context.
  • the user can also enable additional features in applications linked to or belonging to the context.
  • the user may link or un-link applications and data to a context.
  • Platform data may be associated with contexts and applications simultaneously.
  • users belonging to a context may access applications that are associated with the context.
  • applications within a context may access other application's data within the same context. For example, when creating a discussion thread, the user can link to a file that is already uploaded in another context application. Applications associated with a context may store different types of data.
  • applications and social network functions are run on the platform at the same level, on the same platform and infrastructure, to unify the system and reduce development complexity of the system and applications.
  • the online application platform with social networking functions may also support contexts and context applications.
  • a context for project management can contain project management applications that allow social networking functions. It is useful for the application platform with multi-user contexts to support social networking features so user can easily communicate with other people that the user knows or collaborates with in the application platform.
  • non-work and work applications can be created on the platform.
  • Non-work and work applications can include personal applications and collaborative multi-user applications.
  • Non-work and work applications can be created on the platform. Users of the work and non-work applications may also communicate through the social networking functions provided on the platform.
  • Non-work and work applications can be accessed in the same manner on the application platform.
  • the user can access multiple types of applications through a common interface.
  • Non-work and work applications can also be associated or linked with each other. Data can be entered simultaneously into work and non-work applications. In addition, non-work and work applications can interact or share data. This allows applications to provide a more complete view to the user. For example, a user's personal to-do application can include items from the user's work task list from a work application.
  • color or shape coding where a color or shape coding represents each context.
  • the color or shape coding can be chosen by the user, and may be unique if desired. For example, using color-coding, the user can specify a green color context represents one for personal usage; a blue color context represents for work usage; a red context represents a context for holiday planning.
  • shape coding for example, a user can use the square shape to indicate a context is for personal usage while a round shape indicates a context is for work usage.
  • color and shape coding can be applied to contexts in an application platform.
  • the color or shape coding can also be used to indicate the associated context for data. Using the above example, a message in the holiday planning context is marked red in a discussion list that shows discussions from multiple contexts at once. This allows the user to quickly identify which context an item belongs to. [00117] A color-coding of a context can use multiple colors at once. For example, a holiday planning context can use the colors blue, yellow and white for its color-coding to relate to colors of the beach.
  • a blue color can represent a document where a green color represents a photo.
  • Color-coding of contexts and types can be displayed in multiple ways, such as in a color bar, a color shading, colored shape, or colored text.
  • Color-coding can be combined with shape coding.
  • color-coding can be applied on a context and shape coding applied on a data type, and vice versa.
  • color and shape coding when used together can create a visual indicator that is easy to understand. For example, a green square represents a personal photo. Then in a list view of multiple data items, the user can easily visually identify both the context and the data type of an item at the same time.
  • color and shape coding can be used together to indicate contexts, types or a combination of them.
  • Assignments of color and shape coding can be determined by the user or determined automatically by the system.
  • An algorithm can be used by the system to generate a unique set of colors and shapes to minimize the total number of coding assignments within a certain scope, wherein the scope can be a user, a context, a type, an application, or a platform.
  • color and shape coding can be automatically generated or determined by indirect or direct user input.
  • Colors can be transformed or mixed using various methods and formulas.
  • predetermined theme describes a theme that consists of a complete set of styling including colors, images or display rules that have to be defined by an operator, such as a user, developer, publisher or designer. [00127] This approach is simple but can be limiting to the user. For example, the user wants a red theme but only blue and green themes are provided.
  • a color generator is used.
  • the user chooses a set of colors as input; the input is passed into the color generator that generates an output of a set of colors. For example, the user selects 3 colors as input and the output consists of 10 colors.
  • the output is then used to color the user interface. This way, the user only needs to choose a rather small set of colors in order to color a user interface that uses numerous colors.
  • a theme in terms of the color generator is a set of coloring formulas.
  • a theme that takes one color input to color a user interface contains a color formula that creates multiple shades of the input color for different parts of the interface.
  • the operator can define each theme as a set of color formulas entered in the generator. There is no necessary relationship between number of color formulas and the number of input or output colors.
  • a color formula can take zero or more input colors to generate output colors using characteristics such as shade, pattern, brightness, contrast, hue, saturation, value and complementary color.
  • a color formula can produce one or more colors.
  • the color generator is further based on a user interface generator that input and output are not limited to colors.
  • the user interface generator works identically as the color generator but just allows more types of input and output.
  • the user interface generator can combine an indeterministic value together with the input colors, the output colors become indeterministic to the input colors. This is useful if the user wants to add a randomness element to the user interface generated.
  • the user interface generator can take other parameters such as date, time, weather conditions, images and other values to generate the user interface. For example, on a sunny day, the user interface background can be more towards the blue color, while on a rainy day more towards gray.
  • the user interface generator can also compose themes that output images. For example, when the user chose blue, yellow and white as input colors, the user interface generator can set the user interface background to an image that most closely matches the specified colors, like a photo from the beach.
  • mutual information is calculated and displayed.
  • a user is shown information of other users, mutual information between two users is displayed.
  • mutual information is listed next to each user.
  • mutual information such as mutual contexts or mutual applications may allow users to discover other interesting contexts or
  • user A may discover another user B has many mutual contexts as himself or herself, and user A may feel that they share some common interest. Then user A can view user B's list of contexts and see if any of user B's contexts are of interest to user A to join.
  • Mutual information can be used to indicate items of interest to users, contexts or applications. For example, if the user is not a member of a certain context, but has mutual connections that are members, the system can determine that the user can be related to and more likely to join the context.
  • a context-centric application platform uses contexts as a basic unit of the application platform, and applications, users and data can be linked to contexts. The contexts can be used as collaborative units where multiple users access.
  • the platform supports generic contexts and also specialized contexts.
  • a generic context can be used for personal use or business use.
  • a specialized context such as a 'project management context' is more suitable for organizing a project as it may contain enhancements for project management.
  • a context can contain users, applications, data or other contexts.
  • a context for a company can contain a context representing a department or a project. Users, applications, data and contexts can be added and removed to a context.
  • a context belonging to another context can be treated the same way as a stand-alone context.
  • Applications in the context can belong to multiple contexts. Applications can be developed, customized or enhanced by the system, users, contexts or third parties. A web application can also be used as an application in the platform.
  • the context-centric application platform and its applications can be accessible through the Internet.
  • the platform may use a multi-tenant structure.
  • a context template is a context configuration used to apply to a generalized context. When applied, the target context gains the configuration of the context template.
  • a context template can contain settings, applications, users, content types and data. For example, by applying a 'project management' context template to a context, the context can gain project management applications and related settings.
  • a 'personal' context template may contain applications such as messaging and to-dos.
  • the system, users, contexts or third parties can provide context templates.
  • One context can also apply multiple context templates to gain the combined benefits of different templates.
  • a new context can be created using a context template.
  • a user with access to a 'project management' context template can create a 'project
  • Access, creation, removal, modification and usage of context templates can be subject to access control.
  • the templates can be shared to the public, to other users or other contexts if allowed. For example, a company may have a special context template for 'engagement project', and do not wish to share this context template to other users for usage or modifications.
  • online application platforms designate the server as the application platform, where the client is an application but not an application platform.
  • the server in this case performs more intense workloads while the client displays a user interface and performs simpler workloads.
  • an online application platform structure can include a server platform and a client platform.
  • a server or client platform can contain users, applications, contexts and data. Server and client platforms are separate parts but can reside on a single computing device or on separate computing devices.
  • a server platform can serve multiple client platforms.
  • a client platform can also connect to multiple server platforms for access to different data or other purposes such as redundancy.
  • Different server platforms may contain different content, such as users, applications, contexts or data.
  • a client platform can connect to server platform 1 to access context A and connect to server platform 2 to access context B.
  • server platforms may serve the same content. For example, if both server platform 1 and server platform 2 contain a same context, a client can connect to both servers to access the same context. The client may need to do so for reliability, performance or other reasons.
  • a client platform is connected to multiple server platforms, the multiple server platforms can simultaneously manage the client platform. If multiple server platforms have access to a context or an application, the multiple server platforms can simultaneously manage the context or application.
  • server platforms can share client state or data to facilitate communication with a client platform.
  • Contexts or applications on these server platforms can also share client state and data, including context data and application data, to facilitate communication with contexts or applications on the client platform.
  • a server platform can connect to multiple server platforms. Multiple server platforms can be connected to create a server network. In the server network, content on one server platform can be made available to other server or client platforms in this network. For example, if server platform 1 and server platform 2 belong to the same server network, a client platform connected to server platform 1 can access content on server platform 2 if allowed.
  • a server platform may connect to another server platform to improve performance for a user, a context or an application.
  • Server platforms in a server network can be grouped into multiple server groups for common access control policy. Access control policies can be set to control contexts and applications available to server platforms or server groups.
  • a server network can be structured in a tree formation or a peer-to-peer formation.
  • Server and client platforms can be portable and platform- independent. Server and client platforms can be implemented in many ways, such as an operating system extension or process, a processing thread, a virtual machine extension or process, an extension to a browser, an application inside a browser or an application inside a browser extension.
  • a server platform connected to it may not have the same set of contexts or applications, vice versa.
  • the client platform can still interact with the server platform on a set of contexts and applications that are common to both.
  • the applications on the application platform can share information with each other in the same context or cross contexts if allowed by access controls. Hence the application can show a more complete picture to represent available data to a user. This interaction between applications can happen on server platform or the client platform.
  • Two applications implemented on the client platform and server platform can interact or communicate. An application on the client platform can interact or communicate with the same or a different application on the server platform.
  • Two users who belong to the same context may use different devices to access the same application.
  • the application used by the two users can interact with both users at the same time, and can also facilitate interaction between the two users.
  • the two users can interact on a drawing board application and can see each other's actions as they happen. Therefore an application implemented on the client or server platform on one computing device may interact or communicate with the same or different application on another computing device.
  • One client application platform can interact with multiple server application platforms and their applications. For example, a user has a context available through both the server platform in corporate headquarters and the server platform in a branch office. Both server platforms serve different applications to this same context. In order for the client to achieve full functionality in this context, the user would need to connect to both server platforms. In addition, one server application platform can interact with multiple client application platforms and their applications.
  • a client or server platform can contain data store, logic, computing resource, communication resource, user interface, and a connection manager.
  • Application logic can be located on both client platform and server platform. For example, heavy workloads can be performed at the server while light workloads are performed at the client.
  • User interface can be generated on the server platform or on the client platform.
  • a connection manager can be used at both server and client platforms to manage communication with other server and client platforms.
  • This structure can allow offline operation of the client platform. For example, if a user on a client platform was accessing an application from the server platform but suddenly got disconnected, the user can continue to access the application with the data it already has on the client platform, and is able to re-synchronize to and from the server platform after re-connecting.
  • a client platform can be installed on a user's computing device or can be temporary. For example, if the user only uses the client platform to access the server platform occasionally, the user may not want to install the client platform permanently. Instead, the client platform can be distributed to the client on an as-needed basis.
  • Applications, data and contexts can be downloaded to the client platform as needed when the client accesses them. Applications, data and contexts can also be distributed to or installed on the client on as as-needed basis from a server platform. A client can also automatically download applications, data and contexts from a server platform when connected to the server platform.
  • a client platform is up to date to obtain latest feature additions and defect fixes.
  • a client platform can be upgraded while disconnected from the server platform or when the client platform is still connected to the server platform.
  • an application on it can contain both server and client components, which runs on the server and client platforms respectively.
  • This structure gives the application creator the flexibility to organize work coordination between server components and client components, and allows the creator the ability to create high performance and scalable applications on the platform. For example, an application may designate non-time- sensitive workloads to be performed at the server component while time-sensitive workloads are performed at the client component.
  • a client or server component of an application can contain data store, logic, computing resource, communication resource, user interface, and a client or connection manager.
  • the server and client components of an application can be synchronized so they can keep track of latest changes and actions.
  • the server and client components maybe non-synchronized, synchronized, or partially synchronized. For example, if a user's latest change occurred on the data store or logic of the client component, the data store or logic on the server component becomes out-of-sync. The client component can then notify the server component about such change to bring them back to a synchronized state. This method minimizes the chances that the server component acts on an outdated state.
  • the server and client components may also hold temporary data. For example, if a user's latest change occurred on the client component, the client component may keep that change as a temporary change and requests the server component to first accept the change. Once the server component accepts the change, the client component registers the change. This method allows the both components to stay in a synchronized state.
  • An application and its components can be updated, added or removed in realtime. For example, if the application author updates an application, the users who use that application can immediately benefit from the update. A context administrator can choose whether to immediately update to the latest version or stay with a previous version.
  • the server platform operator can also push such an update to client platforms, for example in a case of an application security flaw that needs to be fixed urgently.
  • Such a change can be propagated to and through multiple nodes.
  • the application author can choose to push out an application update to all client platforms that are connected to a server platform network.
  • a server or client platform can also choose to block the propagated changes.
  • Distributable items such as application, data, client platform, server platform, and context can be distributed on an as-needed basis. For example, if a user only occasionally uses the client component, as-needed distribution can save storage space on the user's computing device.
  • These items can also be downloaded and installed from the web interface, application platform or client and server components. In addition, they can also be downloaded automatically when connected to the client or server component.
  • An application can be associated with multiple contexts. For example, an application can belong to a personal context and a work context. An application in one context can interact or share data with the same or another application in another context if allowed. For example, an application in a branch office context may want to share data with an application in the headquarters context.
  • a context can be associated with multiple applications.
  • a project management context may contain multiple project management applications.
  • Plugins can provide one or more functions to extend application features. For example, an application for file management can be extended to show top 10 files that have most activity.
  • a plugin may provide additional functions to more than one application.
  • a plugin can apply to an application in a specific context, so the additional functions can only be used in the specific context.
  • a plugin may interact with other plugins or applications in a same or a different context.
  • a plugin may also access data and resources of an application with the plugin applied.
  • a plugin to a file management application may access files within the application in order to calculate file metadata or activities.
  • Synchronicity of data and state is important in an application platform that has server and client components. For example, if a client modified a data on the server but did not notify other clients, those clients may have an incorrect view of the data and may take potentially incorrect actions.
  • the application platform supports real-time data updates between server and client components. Both server and client components can generate updates. Logic for processing the updates can be located in the server component, in the client component, or in both. For example, once a project management application client component receives the latest changes on a task object, the client component logic can immediately update the task object in its data store.
  • the updates can also be propagated to other nodes via a server platform network. If the application platform uses a peer-to-peer structure, each node can consists of a client and a server and can support updates. Updates can also be used to synchronize data and updating a client platform.
  • a server or client component that supports real-time data updates can be implemented in many ways, such as an operating system extension or process, a processing thread, a virtual machine extension or process, an extension to a browser, an application inside a browser or an application inside a browser extension.
  • a subscription system is used to keep track of which client or server components need updates. For example, a client component can subscribe to all file updates in the context if it is running an application that monitors latest file uploads to that context.
  • a provider provides updates to subscribers about changes in subscription targets that are managed by the provider.
  • a subscriber subscribes to subscription targets on providers and receives changes about subscribed targets.
  • Server and client server components can be providers, subscribers or both.
  • a provider can have multiple subscribers, and a subscriber can use multiple providers.
  • An update can contain various actions or notifications about subscription targets such as contexts, elements, applications, users or data.
  • the provider can request to change an item on the subscriber to a new value, or directly change the item's value, or simply notify the subscriber that a target's value has changed.
  • a provider can send such updates in real-time.
  • Subscriptions can be managed by the provider, subscriber or both.
  • the provider can monitor subscriber activity in a context to keep track of what the subscriber needs and only send relevant data to the subscriber.
  • the subscriber may manage its own subscriptions to keep up to date. For example, a subscriber is interested in and therefore subscribes to the project management application of one context. When updates occur in the project management application in that context, the update will be sent to the subscriber regardless if the subscriber is viewing it. The subscriber can also subscribe to more relevant updates to the user through monitoring user usage.
  • a provider may provide multiple subscription targets for subscription, and a subscriber may subscribe to multiple subscription targets.
  • a provider can track which subscribers it is responsible for which subscription targets and send updates to those subscribers when changes in the subscription targets occur.
  • a subscriber can also track what updates are available from a provider for subscription. For example, if multiple providers provide subscriptions to the same context, a subscriber can use the multiple providers at once to minimize update delay, or keep track of them for backup purposes.
  • a provider can store a dependency tree between subscribers and subscription targets, and can relay or proxy requests of subscribers. For example, if a subscriber subscribes to a context to a provider that does not serve the context directly but through a server network, this provider can subscribe to the direct provider of the context to provide data for the subscriber.
  • a subscriber can unsubscribe to subscription targets. For example, once a user exited an application, the client component no longer needs updates for that application and can proceed to unsubscribe from it. Subscription targets termination can also happen due to events such as disconnection or timeouts.
  • a provider may monitor activity on subscription targets to provide updates to subscribers. It is important for the system to send out updates to subscribers efficiently, therefore there needs to be a way of tracking a subscription target with a list of subscribers that will be affected once the target is updated.
  • a data structure can be used to link subscribers and subscription targets together for dependency tracking. Through dependency tracking, the provider can determine if and how activity or updates affect subscribers and can know which subscribers it should send updates to if a target changes.
  • Subscriber 1 is viewing application A
  • subscriber 2 is viewing application B. If data X is changed, the provider should notify both subscribers 1 and 2 to make sure their applications reflects the change.
  • a subscriber can keep track of which update streams it has subscribed to. When an update is received, the subscriber can update its own state. It can find out whether there are local changes to the affected data and can find a way to merge the changes.
  • a subscriber may monitor activity on subscription targets to be able to respond to updates efficiently. For example, if a user is using a user interface on a client component, the client component should know the dependencies between updates and the user's current user interface. For example, the user is currently viewing all file previews of the context, and one of the files shown had just been updated. The client component needs to know that a file is updated, and therefore obtain the new preview and update the user interface for the user. The subscriber can also use a dependency tree to do so.
  • the provider can calculate the dependencies between the subscriptions and the actual change to be to send an appropriate or optimized update.
  • the provider can split or join updates to target specific subscribers. For example, a provider may have two subscribers who are subscribed to the same context. If one of the subscribers initiated a change in the context, the update generated does not need to be sent to that particular subscriber who initiated the change.
  • Updates can be split and aggregated by providers to send to subscribers. In certain cases splitting or aggregation of updates allows better tailoring of updates for performance and bandwidth reasons. For example, in a case where bandwidth to the subscriber is limited, it can be more efficient for the provider to group all file updates within 1 minute to be sent as a batch to the subscriber.
  • a provider receives a bulk update from another provider that covers multiple contexts.
  • the provider must split and combine the bulk update's various parts in order to fulfill its multiple subscriptions for subscribers.
  • An update can contain various actions or notices about subscription targets such as contexts, elements, applications, users or data.
  • the provider can request to change an item on the subscriber to a new value, or directly change the item's value, or simply notify the subscriber that an item's value has changed.
  • An update that contains updated data can be in several formats, including log update, delta update and full update.
  • a log update includes all changes that happened on a subscription target between the subscriber's version to the destination version.
  • a delta update contains the difference of a subscription target between the subscriber's version to the destination version.
  • a full update contains the destination version of a subscription target.
  • Subscribers who receive updates can update their components such as user interfaces or data storage in real time.
  • a provider or subscriber may intentionally or unintentionally leave the system. Therefore it is important for the subscription system to be resilient to nodes joining and leaving the system.
  • the provider can announce to the system that it is available to be subscribed to for the various subscription targets it provides.
  • the provider can either hand over responsibility of its subscriptions to another provider or notify its subscribers that the provider is no longer available.
  • Data can be transmitted through different channels and with different priorities. These channels may run on different network protocols, may be through an operating system or other implementations, and may be on separate physical network channels. For example, with two data channels, high priority traffic can be assigned to the first channel and other traffic can be assigned to the second channel. As another example, the two channels can be combined into one channel while giving the different priority traffic a proportionate share to the combined capacity calculated via parameters of the channels.
  • Various configurations can be achieved by using multiple channels for priority traffic differentiation for various focuses, such as reliability or performance.
  • an application can designate that application control messages are more important than application data messages, and can use the method to differentiate between different types of application traffic in terms of priority and performance.
  • the application platform can act on behalf of an application to configure data priority and channels, or can delegate such decisions directly to an application. For example, data updates can be set higher priority than bulk data transfers.
  • a node is capable of using multiple physical network channels to increase its bandwidth to another node.
  • One method is to group the multiple physical network channels as one, by using one logical channel to multiplex into multiple network channels. This combined channel may be of best-effort or reliable nature.
  • the multiple network channels can use the same or different specifications such as bandwidth, latency or network protocol. These channels can be implemented in an operating system, a browser or other various structures. Data can be transmitted through an operating system, a browser or other various structures.
  • both server and client components may support such parallel transmission. If both server and client component support parallel transmission, they can communicate through multiple network channels.
  • the degree of parallelism in a parallel transmission depends on the number of network channels between two nodes. For example, if two nodes have 3 independent network paths between them, it is most advantageous to have 3 separate network channels between them to fully utilize bandwidth.
  • the maximum degree of parallelism is determined by the network structure, but the combined channel can determine how many network channels to connect between the two nodes, which is 3 in this case.
  • the combined channel itself, or the application platform, or the application on the application platform can determine the degree of parallelism of the combined channel.
  • the nodes may wish to share or update data to each other. For example, if an application on the application platform utilizes one shared data store, and if data has been changed on the server node, the server node needs to send this update to the client node to bring it up to date.
  • Updates can be in multiple formats, such as full update, differential update, and adaptive update. These different update methods allow a subscriber to get up to date in different ways.
  • Data in updates can be data of a context or an application in full or in part, a temporary data, a notice that new or updated data is available, or actions.
  • a full update can be used to bootstrap the node; a differential update can quickly update a bootstrapped node; and an adaptive update allows the node to update by actions, and allows storage of offline actions after the node is disconnected from the node network.
  • a full update comprises of a new value, which a receiver should update to.
  • a differential update involves calculation of data difference between two nodes, and only the data difference is transmitted.
  • the receiver can update data once the data difference is received.
  • the data difference is calculated between the receiver's version of data and the sender's version of data.
  • An adaptive update also calculates data differences. Instead, a calculated action is sent to the receiver wherein acting upon achieves the same effect as a full update. Each update is calculated into a data difference format, so when multiple updates are sent in the same message, the transmission is a log of previous actions.
  • the sender may need to know the last action performed by the receiver so as not to send duplicated data. To do so, the sender can remember the last point of communication between them or ask another source for receiver's most recent action. If local data has been modified since disconnected from the node network, the actions performed offline can be logged and the log sent to the node network to update the network. If conflicts occur during sending or receiving an adaptive update, the original changes are not lost as they are still stored on the node.
  • Nodes can also forward, modify, replace and combine updates to other nodes. This is useful for efficiency and bandwidth conservation. For example, node A received an update for items 1 and 2. Since node A knows that node B is not interested in item 2, it modifies the update to remove the item 2's update and forwards to node B. [00219] Suppose two users are viewing the same piece of data at the same time on an application platform. The first user modifies and saves the data. If the second user's view does not reflect the newest update, his or her view may be outdated. Then, if the second user modifies the data with the outdated information, the first user's modifications may be corrupted or lost. To alleviate this problem, the platform can identify each user action together with the state of the data it is intended to modify at that time. This way the system can differentiate whether this modification action should apply to the most current data or the data at some previous time.
  • the system can either reject the outdated action, requiring the user to only submit an action on the most updated version; or can transform the outdated action into an action that can apply to the current data version.
  • the platform To transform that old action into an action that acts on the current data, the platform must look at all actions occurred to that piece of data between the old version of the data and the most updated data to determine whether this is possible.
  • merge The process of transforming a data or an action to a different version is called merge.
  • the result of the conflict resolution can depend on the company hierarchy. If the context belongs to an application, the context can also delegate the conflict to the application or vice versa. Similarly if the application belongs to the context, the application can delegate the conflict to the context or vice versa.
  • conflict resolution on a platform can be performed at the platform level, or delegated to a context, an application, or a
  • conflict resolution strategies can be used to resolve conflicts on a platform, a context, an application or a combination of them.
  • conflicts can also happen on applications and contexts in the same way with outdated modifications. For example, it happens when two users try to modify the same application or the same context. Therefore the application platform must be aware of and know how to resolve or delegate such conflicts.
  • the platform can choose which conflicts to resolve and which conflicts to delegate to which application or context depending on what the conflict is about, the type of conflict, and its own settings.
  • an application or context can also delegate the conflict to other or specific components in the system. If the platform, applications and contexts are unable to successfully resolve the conflict, the conflict can also be presented to the user for manual conflict resolution.
  • the component that faces the conflict can also choose to present to the user for decision before delegating to other components or resolving by itself.
  • the following description indicates a potential workflow for a conflict merge.
  • two users are both in the edit form of a calendar event. Each user has a temporary storage of the calendar event. The first user now updates the calendar event's start date. At this moment, both the second user's data and edit form are outdated. Assume that the first user's change has been processed.
  • the second user's platform needs to both update the temporary data and the edit form. If the second user did not enter or change the form data, the update will be successful and no merge is necessary. If the second user has already changed form data other than the start date, then the platform needs to merge the data and also merge the displayed data. However, if the second user changed the start date in the form, there is a conflict on the form. In this case, the platform may choose to ask the user to manually resolve this conflict visually on the form: the user may choose to keep or replace the first user's change.
  • transformations, merges, conflict resolution and conflict delegation logic can exist and be executed on at least one of the client or server components.
  • Event-driven architecture describes a software architecture that is centered around and consists of around events and event processing. Upon receiving a new event, an event processor is triggered to process the data. Events that are received during processing are queued until a relevant event processor becomes available. For example, in the case of a network server, an event can be an incoming network data, which when received will trigger an event processor to process that data.
  • Concurrent processing is the ability to serve more than one client at a time in a network application.
  • An event-driven network application supports concurrent processing by organizing long or blocking operations into immediately processable non-blocking operations and deferring long processing tasks. Such style also increases efficiency and responsiveness by not allowing the main application code to stall.
  • An online application platform itself should be an event-driven system to allow host applications that utilize an event-driven architecture to inherit its scalability and high-performance. Performance of an online application platform that utilizes event- driven architecture can also be improved when its applications utilize an event-driven framework.
  • An online application platform can support an application's use of an event- driven architecture by providing an event-driven framework including various application programming interfaces and primitives.
  • Such framework allows the application to take advantage of the event-driven architecture of the online application platform to achieve high-performance.
  • Some structures of an event-driven framework include at least one of an event model, callbacks to trigger event processing, a deferred processing framework and a scheduler.
  • the event-driven framework supports at least one of generic processing, network, data, and user-interface operations.
  • An online application platform can contain both server and client platform components.
  • An application that resides on such platform contains application components on at least one of server and client.
  • Such client platform can be implemented at multiple levels and can also be implemented as a component in a browser.
  • the event-driven framework is provided both on the server-side platform and client-side platform.
  • an application will have a client-side event-driven component that interacts with a server-side event-driven component.
  • the event-driven framework supports at least one of generic processing, network, data, and user-interface operations on both client-side and server-side platforms.
  • a differentiator of the operations can be used to determine the schedule of execution of processable operations in the framework.
  • Parameters available as differentiators can be priority, time of original execution request, queuing order, length of execution, time sensitivity, time parameters such as not-before-date or deadline, or estimated amount of resources needed.
  • a schedule or a queue can then use the differentiator with differentiator values to manage the schedule of operation execution.
  • the differentiator value of an operation can be manually set by the developer or by the platform.
  • the framework can also provide a priority differentiator to help automatically schedule execution in a more efficient or desired way.
  • Blocking operations tasks that involve waiting time
  • IO or heavy processing events can be put into a background processing framework manually by the developer or automatically by the platform.
  • Application parts can be categorized into either immediately processable or non-immediately processable parts (that involve waiting time).
  • the application developer can manually specify which application parts belong to which category, or the platform can automatically detect and decide which category an application part belongs to.
  • the platform can detect whether an application part involves waiting time.
  • an application can have multiple executable parts
  • the order of execution of these parts can cause the total execution time to differ.
  • an application has 3 parts but 2 are dependent: part 2 is dependent on part 1 's result. Therefore if part 2 is run before part 1 , it will still have to wait until part 1 is finished. Therefore the order of executing parts 1 , 2, 3 will be faster than executing in the order of parts 3, 2, 1.
  • the online application platform should be able to execute the application parts in an order that maximizes efficiency or minimizes delay, without affecting application correctness.
  • Application parts execution order can be adjusted using parameters on application parts, such as importance, priority, time-sensitivity, delay or expected delay, execution time or estimated execution time. These parameters can be set by the application developer or by the platform. The platform can determine the execution priority of a part by code analysis or other methods.
  • a data process can be stored in the platform and executed in an order to maximize efficiency. If some parts of an application are not time-sensitive, the platform should first execute time-sensitive parts to minimize overall delay, and only run the non- time-sensitive parts when the system is free. If a part of an application is not time- sensitive until a certain threshold, the platform can consider that requirement and schedule a more efficient execution order with all the other application parts. If some application parts are safely -parallel, the platform would gain in performance by executing them in parallel whenever possible.
  • a context-centric application platform can provide computing, data and UI frameworks to support applications.
  • An application developer can utilize these provided frameworks to develop an application that is designed to run on the application platform.
  • the computing framework can contain or support event-driven, multi-process or multi-thread frameworks, and may also contain queues, schedulers or work priority differentiators.
  • the computing framework can execute logic, applications or application parts. The execution order in the computing framework can also be adjusted by parameters. If the platform has separate client and server components, the computing framework can be supported on both components.
  • an online application platform needs to provide a method for executing blocking, non-immediate, less important or time-consuming tasks without reducing performance and responsiveness of the main components of the application.
  • An online application platform can provide at least one background or deferred processing framework to execute these tasks efficiently.
  • the processing framework can be on the same computing device that runs the application or can be a system with one or more computing devices that execute these tasks on behalf of the application.
  • the order of execution of these tasks can be according to their time of original request, queuing order, priority, length of execution, time sensitivity, time parameters such as not-before-date or deadline, or estimated amount of resources needed.
  • the framework can provide a scheduler to determine this execution order according to various parameters.
  • the framework can also provide a priority differentiator to help scheduling execution in a more efficient or desired way.
  • the online application platform will notify the one or more applications that have scheduled this task or are interested in this task's completion for potential further action.
  • a data store on an online application platform can store content for multiple applications and for the platform. If the platform or application is context-enabled, the data store can also store data for contexts. Content storage can be in multiple data formats, including data, video, text, audio, and other data formats.
  • client-side data store If the client-side data store is connected with a server-side data store, they can be partially or fully synchronized with each other, or not at all synchronized. Such synchronization operations may be performed by the application itself or by the application platform.
  • the client-side data store can also function as a cache or temporary storage on client-side for local operations regardless if it is connected to a data store on server-side.
  • the client-side application component may be a temporary resource, so permanent data is stored on server-side while temporary data is stored on client-side.
  • the client-side data store only proceeds to retrieve (and stay synchronized) on a data record from the server-side data store on demand. Therefore although the server-side data store may contain thousands of data records, the client-side data store may only contain a fraction of it, just to allow some offline local operations while disconnected.
  • the client and server can be disconnected for long periods of time, then the client-side application component is not a temporary resource, and there is a benefit for the client-side data store to be partially or fully synchronized with the server-side data store to allow unlimited offline local operations.
  • the online application platform can provide a user interface framework to an application.
  • the application can use the user interface framework to utilize various built- in user interface features in the platform. If the application platform contains server and client platforms, the user interface generation can happen on either or both server and client sides. For example, the application user interface can be generated on the server side and sent to client side. Or, the client side can be charged with the task of generating the user interface from scratch for the application. Or the server can generate parts of the user interface and sends them to the client for additional user interface generation.
  • the online application platform can provide a communication framework to an application. The communication framework can be used by the application to communicate and transfer data with other nodes in a network or between server and client.
  • the application also allows the application to deal with network events such as send, receive and updates, and transfer data such as code, application data, contexts, messages, alerts or actions. If the application or application platform has separate client and server components, or has to be downloaded to the client, the communication framework can bootstrap the client with required logic and data to enable the client to use the application.
  • An application on an online application platform usually is restricted to using and monitoring only events generated by the platform itself. However, since the platform may be implemented on top of some underlying platform, it is beneficial to directly expose lower level events from the underlying platform to the application itself for efficiency and performance reasons.
  • the underlying platform can be but are not limited to, a browser, a virtual machine, a process, an operating system, an input/output device, a software platform or a hardware platform.
  • the lower level events exposed to the application can differ as the underlying platform can be of different types and varieties.
  • Another example using the operating system as an underlying platform is, if the operating system is under heavy load, and if the application can know about this condition, the application can choose to first execute time-critical tasks while delaying the other less sensitive tasks for reliability reasons.
  • the events that applications on the online application platform can obtain include at least one of hardware events, input/output device events, network events, operating system events, process events and data storage events.
  • An online application platform needs to be scalable and high performance. Parallel processing is a technique to utilize multiple processing cores or computing devices concurrently to speed up applications.
  • the online application platform supports parallel processing of an application. It supports multiple concurrent processing models, including multi-process, multi-thread, and parallel event-driven.
  • the framework determines which operations or blocks can be processed concurrently through safe-parallism detection and resolution.
  • a scheduler can be used to support scheduling execution order in the framework to maximize efficiency and minimize delay.
  • Parallel processing is used to fully utilize processing power of multiple processing devices or cores. It is important for an online application platform to support parallel processing as the platform may utilize multiple processing devices or cores at once.
  • an online application platform can support parallel processing to utilize multiple processing devices or cores at once.
  • parallel processing provides various benefits, running an application using multiple processing cores may create data or access conflicts, which causes potential corruption in calculations and data.
  • the online application platform can provide locking mechanisms for applications that use threaded or multi-process architectures, so the application can employ locking on sections of code that cause conflict, to ensure only one processing device can access it at a time.
  • STM Transactional Memory
  • the online application platform can also detect and analyze which code blocks can be run together, on which data sets, via historical, statistical or static code analysis to achieve the goal of conflict avoidance.
  • the context-centric application platform can support multiple content types. It is important for the application platform to support storage of data in multiple content types.
  • Data stored can be linked to contexts, applications, users or data.
  • An instance of the application platform can support multiple of such data stores.
  • Data of different content types can be stored in the same data store, or can be stored in separate data stores.
  • the data storage can act as context- centric data storage and allows schema change dynamically while staying online.
  • the data store allows creating and defining new content types, mapping new content types to objects stored in the data store, dynamically changing a schema of the data store, changing content types for existing data, and doing any combination of the above while the system is online.
  • Implementation of the data store can be based on a database, a hash table, a distributed database, a distributed hash table, storage systems, computer memory media, or any combination thereof.
  • the data store can be implemented on a single node or span multiple generic or specialized nodes. Data can be propagated to different nodes within the data store for scalability, availability and reliability.
  • the data store may store multiple copies of a data, and can calculate or propagate metadata of data pieces.
  • the storage nodes can be organized in a ring, tree, hypercube, peer-to-peer, hierarchical or other log- based logical structures.
  • Access control is also important for a data store.
  • the data store supports setting access control parameters on each data piece, such as access restrictions for users, contexts and applications. Data can also be marked with different priorities to differentiate importance and service level of the different data pieces for better service.
  • the context-centric application platform can utilize multiple dynamic data stores, and can store multiple contexts, applications and data on them. If the context- centric application platform supports server and client components, the data store can also have server and client components to support aforementioned operations on both server side and client side by using methods such as bootstrapping, bulk data transfer, partial or full synchronization of data.
  • a context-centric platform can organize multiple computing nodes towards high performance and scalability.
  • the platform can use a ring, tree, hypercube, peer-to-peer, hierarchical or log- based logical structures to organize distributed computing nodes.
  • the nodes themselves can also contribute in a specialized ways to the platform; for example, a node that has large storage can contribute more by specializing as a storage node.
  • Node types include storage nodes, computing nodes and communication nodes.
  • a storage node has access to platform storage information, and can direct, replicate or propagates data to other nodes.
  • a computing node can obtain or receive work from other nodes.
  • a communication node can redirect messages and data among nodes to shorten the communication distance between nodes.
  • the node structure can be re-organized and nodes re-assigned to different types in live environment.
  • the platform can organize nodes in a layered architecture.
  • a layered architecture describes a structure that allows a single request to the system be split up or passed into multiple layers to generate a single response from the system.
  • Each layer may contain multiple nodes.
  • Each layer may process different parts of a request and may create additional requests to other layers in order to complete a request.
  • the layered structure allows multiple nodes to act as one entity.
  • the layered architecture differs from a multi-tiered architecture that the nodes can be dynamically moved to another layer to perform different duties, while in a multi- tiered architecture the various software or systems are tied to a certain tier.
  • any node in the system may communicate with the requestor, while in a multi-tiered architecture only the client tier communicates with the requestor.
  • the layered architecture fundamentally differs from other client-server architectures that it is mainly a methodology to organize potentially generic nodes into an efficient system, not just to organize stages of processing a client request.
  • the application platform uses a combination of at least three layers including the front-end layer, processing layer, and data layer.
  • the application platform can automatically separate a set of nodes into different layers.
  • nodes within a layer can be members of groups that work on certain responsibilities assigned to the group. Examples of responsibilities include, being a cache to another node, a node manager, a network router, a data store access point, an access point linking two layers, and a data aggregation node.
  • Each node in the platform can have different performance and characteristics, as well has different architectures and peripherals.
  • parts of the server platform processing framework can be also implemented on general purpose GPUs (GPGPUs).
  • a context-centric application platform can be implemented on a distributed system built using at least one general-purpose computer as nodes.
  • the nodes can connect with each other in some network topology that allows information sharing and cooperative or aggregation in processing to increase performance, scalability and availability of the platform.
  • a network topology to organize the nodes can be in a ring or a tree structure.
  • Networked storage nodes can be responsible for part or whole of the storage system in the platform, and can selectively replicate or propagate data to other nodes to increase efficiency, availability and performance of the platform.
  • the storage nodes can be organized in a ring, a tree, a hypercube, a peer-to-peer, a hierarchical, or a log-based logical structure.
  • An application platform can be implemented to utilize specialized computing chips such as programmable VLSI, low power, RISC, GPU, offload engine, network processor, wireless chip, or system-on-a-chip to improve performance. For example, if the application platform has a network processor available to it, it can offload taxing tasks such as encryption and decryption of network data to the network processor to free up the main processor for applications.
  • specialized computing chips such as programmable VLSI, low power, RISC, GPU, offload engine, network processor, wireless chip, or system-on-a-chip to improve performance.
  • the application platform has a network processor available to it, it can offload taxing tasks such as encryption and decryption of network data to the network processor to free up the main processor for applications.
  • the application platform can be implemented directly on a specialized computing chip, like a GPGPU that has high number of processing cores for parallel processing.
  • the application platform can utilize different specialized computing chips for different purposes.
  • it can use a network processor at the same time as a GPGPU, for network offloading and parallel calculation, respectively, for higher efficiency and to increase performance of the application or the platform.
  • the application platform can also utilize multiple processing cores of the same type for different tasks to increase efficiency. For example, for the same application, one processor works on data processing while the other process works on user interface generation.
  • the application platform can also utilize hardware peripherals for
  • hardware peripherals such as printers or input/output devices can be used by an application to print or to detect movement.
  • Access control is important on an online application platform that allows multiple users to access sensitive data, especially when the platform supports single -user, multi-user and social applications. Therefore the online application platform that supports single user, multi-user and social applications, provides a permissions system.
  • the system allows setting access privileges to access-control-enabled objects, for example, roles, contexts, context types, applications, application actions, data, and users.
  • a user cannot perform an action on an access-control -enabled object if the user does not have adequate access privileges.
  • Each application determines which access privileges it allows and which of its actions require which access privileges.
  • roles can be assigned access privileges on access-control-enabled objects. Users can then be assigned to roles and inherit access privileges from the roles. Each role can have multiple access privileges. Each user can have multiple roles.
  • each context can contain multiple roles to which context users can be assigned and where access to the context can be controlled. In a context, access to its applications, actions and data can be also controlled by the permissions system.
  • Authorized users such as the platform operator or context operator can add, remove or modify roles, access privileges, and users' roles in real-time. They can also change the access privileges of an access-control-enabled object in real-time. These changes can be pushed to all or selected nodes in the platform to ensure the latest access privileges are followed system-wide.
  • a user can create context types with access control. Only users with permissions can access certain context types depending on setting of the context type owner.
  • the owner of context type can control which roles or users can access the context type or create a context with the context type.
  • company A can create a context type called "Engagement Project" with a predetermined set of applications and settings available for use only within company A.
  • An application platform that support single-user and multi-user applications, and contains contexts is extensible in a sense that a third party can provide additional features to a context or to a user.
  • a store is used to manage available extensions, related items and also access to them on the application platform.
  • the application platform provides a store for users to gain access to items such as applications on the platform for the user's use or context's use. Items that can be purchased on the store are called store items. Publishers are users that can publish store items; while subscribers are users and contexts that can purchase store items. Subscribers can purchase store items to install to contexts or applications.
  • Publishers are allowed to distribute applications, application sets, plugins, contexts, context types, access to any of the above, any other items such as services offered by the publisher, or combinations of any of the above.
  • Store items can be set to be free of charge or set to a purchase price.
  • Payment schedule for store items are allowed to be schemes such as one-time, in installments, advanced payment, as a recurring payment for certain duration or a combination of them.
  • a store item can apply to a context, a user, an application, or a combination of them.
  • a third party developer who developed an application applicable to contexts can list the application in the store. All contexts that have purchased access to this application can use this application in their context.
  • the context owner decides that his or her context is particularly interesting and wants to charge for access, the context owner can list his or her context membership as a store item, so users who purchased the store item can access this particular context.
  • a third party developer developed a plugin that applies to a personal and a context application. The user may then use the plugin in both the applicable context application and the personal application subject to terms of the subscription.
  • the application platform can charge fees for listing, subscription management or any actions for facilitating a transaction.
  • versioning can be a problem for the publisher.
  • the publisher of an application may have updated the application to have fixed a defect from a previous version, but users may still see the old defect if their applications haven't been updated.
  • the application platform store also supports price modifications from the publisher.
  • the publisher can choose to modify payment terms and conditions for store items published by the publisher. Conditions can be changed for existing subscribers or new subscribers. When payment conditions have changed, the subscriber will be notified by the application platform store about the change and the subscriber can decide whether to follow the new store item conditions.
  • context owners or administrators can subscribe to store items through the application platform store for use in their contexts. If a user has access to a context, the user may access applications that the context has subscribed to, subject to access controls of the context. As subscribers, users can subscribe to store items for use personally. A user may be able to access personal store items in contexts if the store items conditions allows.
  • the application platform provides various services and items, and some features of it may require payment.
  • the platform provides multiple pricing schemes for flexibility of the platform operator and the subscriber.
  • the operator can price items using multiple pricing methods provided, including pricing per-user, per-context, per application, per application set, per user-per-context, per user-per-application, per application-set-per-context, per application-per-context, per application-per-user-per- context and per application-set-per-user-per-context or a combination of above.
  • a user In order to use paid functions of the application platform, a user also can subscribe to a payment plan.
  • the subscriber can subscribe using supported payment schedules such as one-time, in installments, advanced payment, recurring payment for certain duration or a combination of them if offered by the application platform operator.
  • the application platform can charge fees for platform access, application access, development support, updates, data storage, plugins, contexts, context access, bandwidth, processing, reliability, responsiveness, priority service, quality of service guarantees and for any other resources or services or a combination of them.
  • the application platform may require payment to create a context and its associated applications. It can be paid for by a single subscriber, shared by multiple subscribers, or via voluntary payment by users.
  • Payment to the platform operator can be made via supported payment schedules such as one-time, in installments, advanced payment, recurring payment for certain duration or a combination of them if offered by the platform operator.
  • a context operator can charge fees for providing access to the context, different roles in the context, or different application access in the context and other items.
  • Payment to the context operator can be made via supported payment schedules such as one-time, in installments, advanced payment, recurring payment for certain duration or a combination of them if offered by the context operator.
  • a context type owner can charge fees for providing access to the context type or allowing usage of the context type for a new or existing context.
  • Payment to the context type owner can be made via supported payment schedules such as one-time, in installments, advanced payment, recurring payment for certain duration or a combination of them if offered by the context type owner.
  • An application or plugin provider can charge fees for providing access to the application or plugin for personal or context use, for bundling the application or plugin in a context type, and other items.
  • a plugin provider can also charge for usage of the plugin in an application to the application provider.
  • Payment to the application or plugin provider can be made via supported payment schedules such as one-time, in installments, advanced payment, recurring payment for certain duration or a combination of them if offered by the application or plugin provider.
  • Some contexts require extra paid features and the context operator may choose to pay for those features for everyone that has access to the context.
  • a company may use a specialized paid application in a context for 10 employees, but wants to pay for the application, the context and the 10 employee's access in a centralized way. Therefore, the application platform allows separate payment by each user or centralized payment for multiple users. In this case, the company can pay for the 10 users to access the platform, the context and the application in the context through a subscription account.
  • One or more users can control a subscription account.
  • a user can also control one or more subscription accounts.
  • a subscription account can pay for multiple store items such as contexts or access for multiple users. If a user's store item that require payment has been already taken into account in a subscription account, the user will not be charged. Every user can have a subscription account unless the user has no chargeable store item assigned to the user.
  • Store items paid personally and store items paid from a group subscription account are charged separately. For example, store items purchased for personal use should not be charged to the company's subscription account.
  • the application platform supports a payment system based on points. Points can be purchased and also can be provided in a subscription plan to the application platform. Points stored in the subscription account can be deducted for store items such as platform access, application access, development support, updates, data storage, plugins, contexts, context access, bandwidth, processing, reliability, responsiveness, priority service, quality of service guarantees and for any other resources or services or a combination of them.
  • a monthly platform access plan may provide 100 points to the subscription account each month, where the points can be deducted to redeem for store items. Points may be also purchased separately. For example, 100 points can be purchased for a certain dollar amount.
  • certain acts need not be performed in the order described, and may be modified, and/or may be omitted entirely, depending on the circumstances.
  • the acts described may be implemented by a computer, controller, processor, programmable device, or any other suitable device, and may be based on instructions stored on one or more computer-readable media or otherwise stored or programmed into such devices.
  • the computer-readable media can be any available media that can be accessed by a device to implement the instructions stored thereon.
  • the implementer may opt for a mainly software implementation.
  • the implementer may opt for some combination of hardware, software, and/or firmware.
  • the processes and/or devices and/or other technologies described herein may be effected, and which may be desired over another may be a choice dependent upon the context in which the vehicle will be deployed and the specific concerns (e.g., speed, flexibility, or predictability) of the implementer, any of which may vary.
  • optical aspects of implementations will typically employ optically-oriented hardware, software, and or firmware.
  • ASICs Application Specific Integrated Circuits
  • FPGAs Field Programmable Gate Arrays
  • DSPs digital signal processors
  • a signal bearing media include, but are not limited to, the following: recordable type media such as floppy disks, hard disk drives, CD ROMs, digital tape, and computer memory; and transmission type media such as digital and analog communication links using TDM or IP based communication links (e.g., packet links).

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Engineering & Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Au cours d'un procédé selon l'invention, un ordinateur fait fonctionner une ou plusieurs applications personnelles sur une plateforme d'applications Internet, et fait fonctionner une ou plusieurs applications multiutilisateurs dédiées à la collaboration sur ladite plateforme d'applications Internet. Au cours d'un procédé selon l'invention, un ordinateur fait fonctionner une ou plusieurs applications personnelles sur une plateforme d'applications en ligne, et fait fonctionner une ou plusieurs applications multiutilisateurs sur ladite plateforme d'applications en ligne.
PCT/IB2011/002411 2010-09-02 2011-09-02 Système et procédé permettant de faire fonctionner des applications sur une plateforme WO2012028957A2 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP11821185.3A EP2663931A4 (fr) 2010-09-02 2011-09-02 Système et procédé permettant de faire fonctionner des applications sur une plateforme

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US37972410P 2010-09-02 2010-09-02
US61/379,724 2010-09-02

Publications (2)

Publication Number Publication Date
WO2012028957A2 true WO2012028957A2 (fr) 2012-03-08
WO2012028957A3 WO2012028957A3 (fr) 2012-06-28

Family

ID=45773315

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2011/002411 WO2012028957A2 (fr) 2010-09-02 2011-09-02 Système et procédé permettant de faire fonctionner des applications sur une plateforme

Country Status (2)

Country Link
EP (1) EP2663931A4 (fr)
WO (1) WO2012028957A2 (fr)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9300690B2 (en) 2013-07-03 2016-03-29 Red Hat, Inc. Secure network labeling to control inter-process communications in a multi-tenant platform-as-a-service (PaaS) system
US9389807B2 (en) 2014-01-23 2016-07-12 International Business Machines Corporation Conflict management for application directed data placement in storage environments
US9594841B2 (en) 2014-10-07 2017-03-14 Jordan Ryan Driediger Methods and software for web document specific messaging
US10114672B2 (en) 2013-12-31 2018-10-30 Thomson Licensing User-centered task scheduling for multi-screen viewing in cloud computing environment
US20240031423A1 (en) * 2022-07-25 2024-01-25 Servicenow, Inc. Unified cross-application navigation and routing

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10810185B2 (en) 2016-09-22 2020-10-20 At&T Intellectual Property I, L.P. Temporary shared storage

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024661B2 (en) * 2001-10-18 2011-09-20 Autodesk, Inc. Collaboration framework
ATE367603T1 (de) * 2001-02-16 2007-08-15 United Parcel Service Inc System und verfahren zur selektiven aktivierung und deaktivierung des zugangs zu software- anwendungen über ein netzwerk
US20060053194A1 (en) * 2004-09-03 2006-03-09 Schneider Ronald E Systems and methods for collaboration
US20080183811A1 (en) * 2007-01-25 2008-07-31 Kotras Timothy W Collaborative Multi-User Method and System

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of EP2663931A4 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9300690B2 (en) 2013-07-03 2016-03-29 Red Hat, Inc. Secure network labeling to control inter-process communications in a multi-tenant platform-as-a-service (PaaS) system
US10114672B2 (en) 2013-12-31 2018-10-30 Thomson Licensing User-centered task scheduling for multi-screen viewing in cloud computing environment
US9389807B2 (en) 2014-01-23 2016-07-12 International Business Machines Corporation Conflict management for application directed data placement in storage environments
US9652151B2 (en) 2014-01-23 2017-05-16 International Business Machines Corporation Conflict management for application directed data placement in storage environments
US9594841B2 (en) 2014-10-07 2017-03-14 Jordan Ryan Driediger Methods and software for web document specific messaging
US20240031423A1 (en) * 2022-07-25 2024-01-25 Servicenow, Inc. Unified cross-application navigation and routing

Also Published As

Publication number Publication date
WO2012028957A3 (fr) 2012-06-28
EP2663931A4 (fr) 2015-07-22
EP2663931A2 (fr) 2013-11-20

Similar Documents

Publication Publication Date Title
US20190370263A1 (en) Crowdsourcing data into a data lake
US8751626B2 (en) Model-based composite application platform
CN110402431B (zh) 使用有向无环图进行事件驱动的调度
US20230333906A1 (en) Discovering and publishing api information
US20090165021A1 (en) Model-Based Composite Application Platform
US20150128152A1 (en) Systems and methods for event driven object management and distribution among multiple client applications
US20130318207A1 (en) Systems and methods for managing mobile app data
WO2012028957A2 (fr) Système et procédé permettant de faire fonctionner des applications sur une plateforme
US11775561B2 (en) Extensible file synchronization
US11195216B2 (en) Federated marketplace portal
Park et al. Approach for selecting and integrating cloud services to construct hybrid cloud
González et al. Towards dynamic adaptation within an ESB-based service infrastructure layer
Raj Enriching the ‘integration as a service’paradigm for the cloud era
US20220335106A1 (en) Cloud-native content management system
Chelliah et al. Architectural Patterns: Uncover essential patterns in the most indispensable realm of enterprise architecture
Birkenheuer et al. Infrastructure Federation Through Virtualized Delegation of Resources and Services: DGSI: Adding Interoperability to DCI Meta Schedulers
Wesner et al. Dynamic virtual organizations in engineering
Aranha et al. IBM WebSphere MQ V7. 1 and V7. 5 Features and Enhancements
Chawla et al. Data ingestion
Kikuchi et al. Evolution of distributed monitoring for scalable business process management in cloud-based databases
Ortiz et al. Akka Cookbook
Patra et al. Fundamentals of Cloud Computing: Technologies and Applications
Marosi et al. SZTAKI desktop grid: adapting clusters for desktop grids
Indrasiri et al. APIs, Events, and Streams
Vilensten et al. Aggregating and utilizing sensor data

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11821185

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase in:

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2011821185

Country of ref document: EP