Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
A SYSTEM AND METHOD FOR RUNNING APPLICATIONS ON A PLATFORM
Document Type and Number:
WIPO Patent Application WO/2012/028957
Kind Code:
A2
Abstract:
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 personal applications on an online application platform, and running one or more multi-user applications on the online application platform.

Inventors:
TSE RONALD HENRY (CN)
Application Number:
PCT/IB2011/002411
Publication Date:
March 08, 2012
Filing Date:
September 02, 2011
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
TSE RONALD HENRY (CN)
International Classes:
G06F17/00
Foreign References:
US20060053194A12006-03-09
Other References:
See references of EP 2663931A4
Download PDF:
Claims:
What is claimed is:

1. A method comprising 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.

2. The method of claim 1 , wherein the one or more single user applications comprises one or more personal applications.

3. The method of claim 2, wherein the one or more multi-user applications comprises one or more collaboration-enabled multi-user applications.

4. The method of claim 1, wherein the online application platform comprises an Internet application platform.

5. The method of claim 1 , wherein the online application platform comprises one or more of a software platform or an online application platform.

6. The method of claim 3, wherein a plurality of users use the one or more collaboration-enabled multi-user applications.

7. The method of claim 3, wherein a plurality of users use a common set of the one or more collaboration-enabled multi-user applications.

8. The method of claim 6, further comprising:

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 multi-user applications.

9. The method of claim 1 , further comprising: allowing interaction between at least one of the one or more personal applications and the one or more multi-user applications and at least one of the one or more personal applications and the one or more multi-user applications.

10. The method of claim 9, wherein the allowing interaction step comprises:

communicating information related to a first one of the one or more personal applications or the one or more multi-user applications to a second one of the one or more personal applications or the one or more multi-user applications.

1 1. The method of claim 9, wherein the allowing interaction step comprises:

accessing information related to a first one of the one or more personal applications or the one or more multi-user applications to a second one of the one or more personal applications or the one or more multi-user applications.

12. The method of claim 9, wherein the allowing interaction step comprises 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 of multi-user applications;

changing the value of what one of the plurality of users has inputted into one of the one or more multi-user applications into another one of the plurality of multi-user applications;

adding a new one of the plurality of multi-user applications; and

deleting at least one of the plurality of multi-user applications.

13. The method of claim 9, wherein the allowing interaction step comprises 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 of multi-user applications;

changing the value of what one of the plurality of users has inputted into one of the one or more multi-user applications into another one of the plurality of multi-user applications; adding a new one of the plurality of multi-user applications;

deleting at least one of the plurality of multi-user applications;

allowing a user to receive updates regarding changes in the application, made by other applications or users;

allowing a user to receive any information from other users operating same or other applications;

modifying an application;

notifying a user about updates available in an application or in other applications; allowing a user to subscribe to an application or multiple applications for latest updates or changes;

allowing a user to receive updates from an application or multiple applications; allowing a user to receive computed information taking into account of other user's information and actions;

passing other users' information or actions into a black box and the results can be sent to the user;

notifying the current user that an update is available for refresh;

notifying the current user that the application does not have enough space and need to take action;

notifying another user that other users triggered security checks in the application; modifying access values of contexts/applications/users, adding

contexts/applications/users, removing 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.

14. A method comprising the computer executed steps of:

creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts comprises 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 comprises 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.

15. The method of claim 14, wherein the plurality of contexts comprises a plurality of collaboration-enabled contexts.

16. The method of claim 14, further comprising 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.

17. The method of claim 16, 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.

18. The method of claim 16, wherein the selected one or more of the plurality of users comprises those one or more of the plurality of users who share an interest in the one or more common characteristics.

19. The method of claim 14, wherein the one or more software applications comprises:

one or more Web applications.

20. The method of claim 16, wherein the one or more software applications comprises:

one or more Web applications.

21. The method of claim 14, wherein the one of more software applications comprises 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.

22. The method of claim 16, wherein the one of more software applications comprises 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.

The method of claim 5, further comprising:

providing one or more personal applications on the software platform; and providing one or more multi-user applications on the software platform.

24. The method of claim 23, further comprising:

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.

25. The method of claim 23, wherein the one or more multi-user applications comprises one or more collaboration-enabled multi-user applications.

26. The method of claim 23, further comprising:

providing one or more business applications on the software platform.

27. The method of claim 26, further comprising:

allowing a plurality of usages, wherein the plurality of usages comprises 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.

28. The method of claim 27, wherein the plurality of usages further comprises: 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.

29. The method of claim 26, further comprising:

making the platform available via the Internet.

The method of claim 26, further comprising:

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.

31. The method of claim 30, wherein the information is communicated via the Internet.

32. A method comprising the computer executed steps of:

allowing at least one of a plurality of users to configure a context, wherein the context comprises a plurality of software applications, wherein the plurality of software applications comprise at least one of a plurality of personal applications, a plurality of collaboration-enabled multi-user applications, and a plurality of business applications, and

wherein the at least one of the plurality of users may configure the context by adding or deleting or editing at least one of a plurality of personal applications, a plurality of collaboration-enabled multi-user applications, and a plurality of business applications.

33. A method comprising the computer executed steps of:

creating a plurality of collaborative contexts;

creating a plurality of software applications;

linking the plurality of software applications to a respective one of the plurality of collaborative contexts; and

enabling additional features in at least one of the plurality of software applications linked to the respective one of the plurality of collaborative contexts.

34. The method of claim 33, wherein each one of the plurality of collaborative contexts comprises the plurality of software applications.

35. A method comprising the computer executed steps of:

creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts comprises a common characteristic; providing a plurality of software applications on the software platform;

associating data inputted into the software platform with a respective one of the plurality of contexts and a respective one of the plurality of software applications, simultaneously.

36. The method of claim 35, further comprising:

linking the plurality of software applications to a respective one of the plurality of collaborative contexts.

37. The method of claim 35, wherein each one of the plurality of contexts comprises: an associated one or more of the plurality of software applications, wherein a user having access to the associated one or more of the plurality of software application has access to data relating to a respective one of the each one of the plurality of contexts.

38. The method of claim 37, wherein the access to data is determined by at least one of a context, an application or a user.

39. The method of claim 35, wherein each one of the plurality of contexts comprises: an associated set of the plurality of software applications, wherein each one of the set comprises different types of data.

40. The method of claim 35, wherein each one of the plurality of contexts comprises: an associated set of the plurality of software applications.

41. The method of claim 35, further comprising:

adding an association of data to at least one of a context or an application;

modifying an association of data to at least one of a context or an application; and removing an association of data to at least one of a context or an application.

42. The method of claim 41, wherein the modifying step is initiated by at least one of a user, a context and an application.

43. A method comprising the computer executed steps of:

creating an online software platform on an infrastructure, wherein the online software platform comprises a plurality of software applications; and

creating a social networking function on the infrastructure, wherein a plurality of users may communicate with each other via the social networking function.

44. The method of claim 43, further comprising:

creating a plurality of collaborative contexts, wherein each one of the plurality of collaborative contexts comprises a common characteristic; and

creating a plurality of software applications.

45. The method of claim 44, further comprising:

running one or more personal applications on the online software platform; and running one or more collaboration-enabled multi-user applications on the online software platform.

46. The method of claim 44, further comprising:

running one or more single-user applications on the online software platform; and running one or more multi-user applications on the online software platform.

47. The method of claim 45, wherein the plurality of users use the one or more collaboration-enabled multi-user applications.

48. The method of claim 45, wherein the plurality of users use a common set of the one or more collaboration-enabled multi-user applications.

49. The method of claim 47, further comprising:

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 the collaboration-enabled multi-user applications.

50. The method of claim 49, further comprising:

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.

51. The method of claim 50, wherein the allowing interaction step comprises:

communicating information related to a first one of the one or more personal applications or the one or more collaboration-enabled multi-user applications to a second one of the one or more personal applications or the one or more collaboration-enabled multi-user applications.

52. The method of claim 50, wherein the allowing interaction step comprises:

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;

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 multi-user applications;

adding a new one of the plurality of collaboration-enabled multi-user applications; and

deleting at least one of the plurality of collaboration-enabled multi-user applications.

53. The method of claim 43, further comprising:

creating a plurality of collaboration-enabled contexts on the online software platform, wherein each one of the plurality of collaboration-enabled contexts comprises a context set comprising one or more common characteristics; creating a plurality of collaboration-enabled elements on the online software platform, wherein each one of the plurality of collaboration-enabled elements comprises a software set comprising one or more software applications;

changing the value of the context set, by adding or deleting at least one of the one or more common characteristics; and

changing the value of the software set, by adding or deleting at least one of the one or more software applications.

54. The method of claim 53, further comprising the step of:

enabling the 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 least one of the one or more software applications.

55. The method of claim 54, 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.

56. The method of claim 55, wherein the selected one or more of the plurality of users comprises those one of the plurality of users who shares an interest in the one or more common characteristics.

57. The method of claim 55, wherein the plurality of software applications comprises: one or more Web applications.

58. The method of claim 57, wherein the one of more software applications comprises 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.

59. The method of claim 43, further comprising:

creating one or more personal applications on the online software platform; creating one or more collaboration-enabled multi-user applications on the online software platform;

creating data storage on the online software platform; and

creating a user interface for the online software platform;

wherein a user of the plurality of the users may create a customized set of at least one of the one or more personal applications, at least one of the one or more

collaboration-enabled multi-user applications, at least one of a data storage, and at least one of a user interface.

60. The method of claim 43, further comprising:

building one or more personal applications on the online software platform; building one or more collaboration-enabled multi-user applications on the online software platform; and

building one or more business applications on the online software platform.

61. The method of claim 60, further comprising:

allowing a plurality of usages, wherein the plurality of usages comprises use by one person of the plurality of users of the online software platform; and use by the plurality of persons of the online software platform, wherein each one of the plurality of persons interacts via the online software platform with at least another one of the plurality of persons.

62. The method of claim 61 , wherein the plurality of usages further comprises: use by a third party, wherein the third party uses a third party software platform different from the online software platform, and wherein the third party may use the online software platform on at least one of pay for use basis or free basis.

63. The method of claim 43, further comprising:

making the online software platform available via the Internet.

64. The method of claim 43, further comprising:

installing the online software platform on each one of a plurality of computers; and

communicating information relating to a first online software platform installed on a first one of the plurality of computers to a second online software platform installed on a second one of the plurality of computers.

65. The method of claim 64, wherein the information is communicated via the Internet.

66. The method of claim 43, further comprising:

allowing at least one of the plurality of users to configure a context, wherein the context comprises at least two of the plurality of software applications, wherein the plurality of software applications comprise at least one of a plurality of personal applications, a plurality of collaboration-enabled multi-user applications, and a plurality of business applications; and

wherein the at least one of the plurality of users may configure the context by adding or deleting the at least one of a plurality of personal applications, a plurality of collaboration-enabled multi-user applications, and a plurality of business applications.

67. The method of claim 43, further comprising:

creating a plurality of collaborative contexts, wherein each one of the plurality of collaborative contexts comprises at least two of the plurality of software applications; linking the at least two of the plurality of software applications to a respective one of the plurality of collaborative contexts; and

creating additional features in at least one of the at least two of the plurality of software applications linked to the respective one of the plurality of collaborative contexts.

68. The method of claim 43, further comprising:

creating a plurality of contexts on the software platform, wherein each one of the context comprises a common characteristic; and

associating data inputted into the software platform with a respective one of the plurality of contexts and a respective one of the plurality of software applications, simultaneously.

69. The method of claim 68, wherein each one of the plurality of contexts comprises: an associated one or more of the plurality of software applications, wherein a user having access to the associated one or more of the plurality of software application has access to the data relating to a respective one of the each one of the plurality of contexts.

70. The method of claim 68, wherein each one of the plurality of contexts comprises: an associated set of the plurality of software applications, wherein each one of the set comprises different types of data.

71. A method comprising the computer executed steps of:

creating one or more work-related applications on a software platform; and creating one or more non-work-related applications on the software platform.

72. The method of claim 71, wherein the software platform comprises an online software platform.

73. The method of claim 71 , wherein the one or more work-related applications comprises one or more collaborative multi-user applications; and wherein the one or more non-work-related applications comprises one or more online single-user personal applications.

74. The method of claim 71 , wherein the one or more work-related applications comprises one or more collaborative multi-user applications; and wherein the one or more non- work-related applications comprises one or more single -user personal applications.

75. The method of claim 71, further comprising:

creating one or more collaborative multi-user applications on the software platform; and

creating a social networking function on the software platform, wherein a plurality of users may communicate with each other via the social networking function.

76. The method of claim 75, wherein the software platform comprises an online software platform.

77. The method of claim 71, further comprising:

creating one or more multi-user applications on the software platform; and creating a social networking function on the software platform, wherein a plurality of users may communicate with each other via the social networking function.

78. The method of claim 72, further comprising:

creating one or more multi-user applications on the online software platform; and creating a social networking function on the online software platform, wherein a plurality of users may communicate with each other via the social networking function.

79. The method of claim 71, further comprising:

associating at least one of the one or more work-related applications to a respective at least one of the one or more non-work-related personal applications on the software platform.

80. The method of claim 79, wherein the associating step further comprises:

entering simultaneously information entered into the at least one of the one or more work-related applications into a respective one of the one or more non-work-related personal applications.

81. The method of claim 72, further comprising:

associating at least one of the one or more work-related applications to a respective at least one of the one or more non-work-related personal applications on the online software platform.

82. The method of claim 81, wherein the associating step further comprises:

entering simultaneously information entered into the at least one of the one or more work-related applications into a respective one of the one or more non-work-related personal applications.

83. The method of claim 71, further comprising:

creating one or more work-related applications on a software platform;

creating one or more non-work-related applications on the software platform; and associating at least one of the one or more work-related applications to a respective at least one of the one or more non-work-related applications on the software platform.

84. The method of claim 83, wherein the associating step further comprises:

entering simultaneously information entered into the at least one of the one or more work-related applications into a respective one of the one or more non-work-related applications.

85. The method of claim 83, wherein the associating step further comprises:

enabling interaction between the at least one of the one or more work-related applications and a respective one of the one or more non-work-related applications.

86. The method of claim 72, further comprising:

associating at least one of the one or more work-related applications to a respective at least one of the one or more non-work-related applications on the online software platform.

87. The method of claim 86, wherein the associating step further comprises:

entering simultaneously information entered into the at least one of the one or more work-related applications into a respective one of the one or more non-work-related applications.

88. The method of claim 86, wherein the associating step further comprises:

enabling interaction between the at least one of the one or more work-related applications into a respective one of the one or more non-work-related applications.

89. The method of claim 88, wherein the allowing interaction step comprises 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 of multi-user applications;

changing the value of what one of the plurality of users has inputted into one of the one or more multi-user applications into another one of the plurality of multi-user applications; adding a new one of the plurality of multi-user applications;

deleting at least one of the plurality of multi-user applications;

allowing a user to receive updates regarding changes in the application, made by other applications or users;

allowing a user to receive any information from other users operating same or other applications;

modifying an application;

notifying a user about updates available in an application or in other applications; allowing a user to subscribe to an application or multiple applications for latest updates or changes;

allowing a user to receive updates from an application or multiple applications; allowing a user to receive computed information taking into account of other user's information and actions;

passing other users' information or actions into a black box and the results can be sent to the user;

notifying the current user that an update is available for refresh;

notifying the current user that the application does not have enough space and need to take action;

notifying another user that other users triggered security checks in the application; modifying access values of contexts/applications/users, adding

contexts/applications/users, removing 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.

90. A method comprising the computer executed steps of:

creating a plurality of contexts, wherein each one of the plurality of contexts relate to a common characteristic;

creating a plurality of types, wherein each one of the plurality of types relate to a common type of at least one of an activity or a category;

color coding the plurality of contexts, wherein the color coding comprises a plurality of colors, and wherein each one of the plurality of contexts is coded with a respective one of the plurality of colors; and

shape coding the plurality of types, wherein the shape coding comprises a plurality of shapes, and wherein each one of the plurality of types is coded with a respective one of the plurality of shapes.

91. The method of claim 90, further comprising at least one of:

the shape coding assignment for at least one of a context and a type is consistent across at least a combination of at least a platform, application, context or user;

the color coding assignment for at least one of a context and a type is consistent across at least a combination of at least a platform, application, context or user;

the coding method and assignment can be changed by at least one platform, application, context and user;

the coding assignment for at least one user, context, application, platform can be different from the coding assignment from another at least another one of user, context, application, platform; a first coding information for at least one context or type can be identical as a second coding information for at least one context or type.

92. The method of claim 90, further comprising:

creating a plurality of items, wherein each one of the plurality of items is associated with at least one of the plurality of contexts.

93. The method of claim 90, wherein when one of the plurality of items is associated with at least two of the plurality of contexts, the color coding step comprises:

color coding the one of the plurality of items associated with a first one of the at least two of the plurality of contexts with a first color; and

color coding the one of the plurality of items associated with a second one of the at least two of the plurality of contexts with a second color.

94. The method of claim 90, further comprising:

color coding at least one of the plurality of types and the plurality of contexts, wherein the color coding comprises a plurality of colors, and wherein each one of the at least one of the plurality of types and plurality of contexts is coded with a respective one of the plurality of colors; and

shape coding at least one of the plurality of types and plurality of contexts, wherein the shape coding comprises a plurality of shapes, and wherein each one of the at least one of the plurality of types and plurality of contexts is coded with a respective one of the plurality of shapes.

95. The method of claim 90, further comprising:

creating a search engine, wherein the search engine provides a plurality of search results associated with a search query;

determining at least one of the plurality of search results associated with at least one of the plurality of contexts; and

displaying a plurality of search results utilizing the at least a color and shape coding information associated with the plurality of search results, wherein at least one of the plurality of search results is associated with at least a context and type that is associated with at least a color and shape coding.

96. The method of claim 90, further comprising:

using a coloring characteristic, wherein the coloring characteristic is used to indicate the color coding.

97. The method of claim 96, wherein the coloring characteristic comprises at least one of:

a color bar, color shading, color shape, or color text

98. The method of claim 90, further comprising at least one of:

performing by a user of the at least a color and shape coding assignment;

generating dynamically the least a color and shape coding assignment according to the content of at least one contexts and types; or

assigning the at least a color and shape coding assignment so as to minimize a total number of coding assignments in a scope, wherein the scope comprises at least one of a user, a context, a type, a application, and a platform.

99. A method comprising the computer executed steps of:

generating a design for a user interface;

selecting a color theme of the user interface, wherein the color theme comprises a plurality of colors; and

coloring the user interface using colors calculated from a chosen plurality of colors, wherein the chosen plurality of colors and the output color set has a deterministic relationship, wherein the output color set comprises of a plurality of colors.

100. The method of claim 99, further comprising:

selecting a parameter of the user interface, wherein the parameter comprises one or more predetermined characteristic; and

customizing the user interface based on the parameter.

101. The method of claim 100, wherein the parameter comprises at least one indeterministic value.

102. The method of claim 100, wherein the parameter comprises of at least one of: date; time; temperature; humidity; elevation; visibility; wind direction; wind speed; location; speed; acceleration; compass direction; level measurement; weather status; lighting condition; user information; user activity; context information; context activity; application information; application activity; financial activity; and financial information.

103. The method of claim 100, further comprising:

creating a plurality of color formulas, wherein each one of the plurality of color formulas define a plurality of colors used to color the user interface.

104. The method of claim 100, further comprising:

creating a plurality of color formulas, wherein each one of the plurality of color formulas define a plurality of characteristics relating to a plurality of colors used to color the user interface.

105. The method of claim 104, wherein the plurality of characteristics comprises at least one of:

a shade of color, a pattern of color, a brightness of color, a contrast, a hue, a saturation, a value, a complementary color, or a predetermined characteristic of color.

106. The method of claim 99, wherein the color theme further comprises at least one image.

107. The method of claim 100, wherein the color theme further comprises at least one image.

108. The method of claim 107, further comprising:

choosing at least one image of color theme of the user interface from a plurality of images according to at least one of the parameter and the selected plurality of colors.

109. The method of claim 108, wherein the choosing step considers whether the image will match the generated user interface.

1 10. A method comprising the computer executed steps of:

creating a plurality of contexts, wherein each one of the plurality of contexts comprises a common characteristic, and wherein each one of the plurality of contexts is enabled to be associated with one or more of a plurality of users; and

calculating one or more mutual contexts, wherein the one or more mutual context comprises at least one of the plurality of contexts that is associated with the one or more of a plurality of users.

1 11. A method comprising the computer executed steps of:

creating a plurality of contexts, wherein each one of the plurality of contexts comprises a common characteristic, and wherein each one of the plurality of contexts is enabled to be associated with one or more of a plurality of users; and

indicating one or more mutual contexts, wherein the one or more mutual context comprises at least one of the plurality of contexts that is associated with the one or more of a plurality of users.

1 12. The method of claim 1 10, wherein the plurality of contexts comprises a plurality of collaborative contexts and wherein the one or more mutual contexts comprises one or more mutual collaborative contexts.

1 13. The method of claim 1 11, wherein the indicating step comprises at least one of: graphically showing the one or more mutual contexts; and

textually showing the one or more mutual contexts.

1 14. The method of claim 110, further comprising:

defining a collaboration member set, wherein the collaboration member set comprises a plurality of users who are defined to be members of one the plurality of collaborative contexts; and

indicating one or more a plurality of users who are not members of the collaboration member set as being related to one of the collaborative contexts.

1 15. The method of claim 114, wherein the one or more plurality of users who are not members of the collaboration member set comprise at least one of being known to a member of the collaboration member set, being connected with a member of the collaboration member set, or affecting a member of the collaboration member set.

1 16. A method comprising the computer executed steps of:

creating a plurality of applications, wherein each one of the plurality of applications comprises at least one common function, and wherein each one of the plurality of applications is enabled to be associated with one or more of a plurality of users; and

calculating one or more mutual applications, wherein the one or more mutual applications comprises at least one of the plurality of applications that is associated with the one or more of a plurality of users.

1 17. A method comprising the computer executed steps of:

creating a generalized context on an online application platform, wherein the generalized context comprises a plurality of contexts, and wherein each one of the plurality of contexts comprises a common characteristic.

1 18. The method of claim 117, wherein the plurality of contexts comprises a plurality of collaborative contexts.

1 19. The method of claim 118, wherein the plurality of collaborative contexts comprises at least one of: at least one context, wherein the context comprises a shared characteristic;

at least one application, wherein the application comprises a software application; and

at least one application in context, wherein the application in context comprises a software application attributed to a predetermined context.

120. The method of claim 118, wherein the plurality of collaborative contexts comprises at least one of:

at least one second type of context, wherein the context comprises a shared characteristic;

at least one application, wherein the application comprises a software application; and

at least one application in context, wherein the application in context comprises a software application attributed to a predetermined context.

121. The method of claim 120, wherein each one of the plurality of collaborative contexts comprises a plurality of collaborative contexts, and wherein each one of the plurality of collaborative contexts comprises a common characteristic.

122. The method of claim 120, wherein a third party creates at least one of the at least one application.

123. The method of claim 120, wherein a third party may customize a characteristic of the at least one application.

124. The method of claim 120, wherein the at least one application comprises at least one web application.

125. The method of claim 120, wherein the online application platform comprises a cloud- based online application platform.

126. The method of claim 125, wherein the cloud-based online application platform is accessible via the Internet.

127. The method of claim 120, further comprising:

creating a plurality of context templates, wherein each one of the plurality of context templates comprises a predetermined one of the at least one context, a predetermined one of the at least one application, and a predetermined one of the at least one application in context.

128. The method of claim 127, wherein each one of the plurality of context templates comprises at least one of a predetermined one of the at least one context, a predetermined one of the at least one application, a predetermined one of the at least one application in context, and a predetermined set of settings related to the respective one of the at least one context, the at least one application, and the at least one application in common.

129. The method of claim 127, wherein each one of the plurality of context templates comprises a predetermined set of settings related to the respective one of the at least one context, the at least one application, and the at least one application in common.

130. The method of claim 127, wherein each one of the plurality of context templates comprises at least comprises a predetermined one of the at least one application, a predetermined one of a custom application, and a predetermined one of a third party application.

131. The method of claim 127, wherein each one of the plurality of context templates comprises at least one of a customized content type or a custom data.

132. The method of claim 127, wherein each one of the plurality of context templates may be at least one of having open access or having controlled access.

133. The method of claim 127, wherein the creating the generalized context step comprises:

selecting at least one of the plurality of context templates.

134. The method of claim 127, wherein each one of the plurality of context templates comprises at least comprises a predetermined one of the at least one context, a predetermined one of the at least one application, a predetermined one of the at least one application in context, and a predetermined set of settings related to the respective one of the at least one context, the at least one application, and the at least one application in common.

135. The method of claim 133, wherein the creating the generalized context step further comprises:

modifying an attribute of the at least one of the plurality of context templates.

136. A method comprising the computer executed steps of:

creating at least one server platform and at least one client platform on an online application platform.

137. The method of claim 136, wherein the at least one server platform and the at least one client platform reside on a single computing device.

138. The method of claim 137, wherein the at least one client platform connects to at least two of the at least one server platform.

139. The method of claim 137, wherein the at least one server platform connects to at least two of the at least one client platform.

140. The method of claim 136, wherein the at least one server platform comprises a plurality of contexts and an application data, wherein each one of the plurality of contexts comprises a common characteristic, and wherein the at least one client platform comprises at least one of an application processing, an application user interface, or a non-permanent data store for a respective one of the plurality of contexts.

141. The method of claim 136, wherein the at least one server platform comprises a plurality of contexts and application data, wherein each one of the plurality of contexts comprises a common characteristic, and wherein the at least one client platform comprises at least one of an application processing, an application user interface, or a data store for a respective one of the plurality of contexts.

142. The method of claim 141, further comprising:

wherein the at least one server platform comprises at least one of an application data and an application logic, wherein the at least one client platform comprises of at least one of an application logic, an application user interface, a respective one of the application data, and a respective one of the application logic.

143. The method of claim 141, further comprising:

wherein the at least one server platform comprises a plurality of contexts, wherein each one of the plurality of contexts comprises a common characteristic, and wherein the at least one client platform comprises at least a respective one of the plurality of contexts.

144. The method of claim 143, further comprising:

wherein the at least one server platform comprises at least one of an application data and an application logic, wherein the at least one client platform comprises of at least one of an application logic, an application user interface, a respective one of the application data, and a respective one of the application logic.

145. The method of claim 141 , wherein one of the at least one client platform connects to at least two of the at least one server platform.

146. The method of claim 136, wherein one of the at least one client platform connects to at least two of the at least one server platform.

147. The method of claim 146, wherein a respective one of the plurality of contexts associated with a first one of the at least two of the at least one server platform is different from a respective one of the plurality of contexts associated with a second one of the at least two of the at least one server platform.

148. The method of claim 141 , wherein one of the at least one server platform serves at least two of the at least one client platform.

149. The method of claim 148, wherein the at least two of the at least one client platform use a respective one of the plurality of contexts associated with the one of the at least one server platform.

150. The method of claim 141 , wherein one of the at least one client platform connects to at least two of the at least one server platform so as to use at least one of an application or one of the plurality of contexts associated with the at least two of the at least one server platform.

151. The method of claim 136, wherein the online application platform comprises an application platform and further comprises:

creating at least two server platforms on the application platform; and

connecting the at least two server platforms to the at least one client platform.

152. The method of claim 151 , wherein a first one of the at least two server platforms is connected to a second one of the at least two server platforms, and the at least one client platform is connected to the first one of the at least two server platforms.

153. The method of claim 152, further comprising:

creating at least one of an application or a context, wherein the context comprises a shared characteristic; associating the at least one of an application or a context with the at least two server platforms;

connecting the at least one client platform to the at least two server platforms; and simultaneously managing the at least one client platform via the at least two server platforms.

154. The method of claim 152, further comprising:

creating at least one of an application or a context, wherein the context comprises a shared characteristic;

associating the at least one of an application or a context with the at least two server platforms;

connecting the at least one client platform to the at least two server platforms; and simultaneously managing the at least one of an application or a context via the at least two server platforms.

155. The method of claim 120, further comprising:

connecting a first one of the at least two server platforms to a second one of the at least two server platforms based on performance parameters of the at least one of user, context, or application.

156. The method of claim 154, further comprising:

sharing via an online application platform at least one of a client state or data associated with a respective one of the client platform among the respective one of at least two server platforms so as to facilitate communication with a client platform.

157. The method of claim 154, further comprising:

sharing via an online application platform at least one of a client state or data associated with a respective one of the client platform among the at least two of an application or a context, each corresponding to one of at least two server platforms so as to facilitate communication with the at least two of an application or a context on the client platform.

158. The method of claim 157, further comprising:

sharing context data and application data between the server platforms.

159. The method of claim 151 , further comprising:

wherein at least a first one of the at least two server platforms are connected to a second one of the at least two server platforms, so as to create a server network.

160. The method of claim 159, wherein the server network can share at least one of a context, wherein the context comprises a common characteristic, and one or more applications.

161. The method of claim 159, further comprising:

grouping the at least two server platforms into at least two server groups for a common permissions policy.

162. The method of claim 160, further comprising:

creating a context for at least one of the at least two server platforms, wherein the context comprises a shared characteristic; and

making the context available on a respective one of the at least two server platforms or the at least two server groups.

163. The method of claim 159, further comprising:

creating at least one client platform;

connecting the at least one client platform to one of the at least two server platforms; and

allowing the viewing of an associated context corresponding to the at least two server platforms creating the server network.

164. The method of claim 160, further comprising:

creating an application on at least one of the at least two server platforms; and making the application available on a respective one of the at least two server platforms or the at least two server groups.

165. The method of claim 164, further comprising:

creating at least one client platform;

connecting the at least one client platform to one of the at least two server platforms; and

allowing the viewing of an associated application corresponding to the at least two server platforms creating the server network.

166. The method of claim 159, wherein each one of the at least two server platforms are connected to another one of the at least two server platforms in a network in at least one of a network tree formation or a peer-to-peer network.

167. A method comprising the computer executed steps of:

creating at least one client platform on an application platform; and

creating at least one server platform on the application platform;

implementing at least one of the at least one client platform or the at least one server platform as at least one of 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.

168. A method comprising the computer executed steps of:

creating at least one client platform on an online application platform;

creating at least one server platform on the online application platform; and implementing at least one application on at least one of the at least one client platform and the at least one server platform.

169. The method of claim 168, wherein the at least one client platform and the at least one server platform share a common one of the at least two applications.

170. The method of claim 168, wherein a first one of the at least two applications interact with another one of the at least two applications.

171. The method of claim 168, wherein a first one of the at least two applications interact with another one of the at least two applications, and wherein the client and the server have different sets of applications.

172. A method comprising the computer executed steps of:

creating at least one client platform on an application platform; and

creating at least one server platform on the application platform; and

implementing at least one application on at least one of the at least one client platform and the at least one server platform;

wherein a first one of the at least one application may interact with another one of the at least one application or at least one of the client platform or the server platform.

173. The method of claim 172, wherein the interaction of the at least one application occurs on the at least one server platform.

174. The method of claim 172, wherein the interaction of the at least one application occurs on the at least one client platform.

175. The method of claim 172, further comprising:

implementing at least two applications on at least one of the at least one client platform and the at least one server platform;

wherein a first one of the at least two applications may interact with another one of the at least two applications or at least one of the client platform or the server platform.

176. The method of claim 172, further comprising:

wherein one of the at least two applications on a first computing device may communicate with the same one of the at least two applications on a second computing device via the application platform.

177. The method of claim 172, further comprising:

wherein one of the at least two applications on a first computing device may communicate with at least one of another one of the at least two applications or the same one of the at least two applications on a second computing device via the application platform.

178. The method of claim 172, further comprising:

wherein the at least one client platform may interact with at least two of the at least two of the at least one server platform and at least two of an application associated with a respective one of the at least two of the at least one server platform.

179. The method of claim 172, further comprising:

wherein the at least one client platform may interact with at least two of the at least two of the at least one server platform.

180. The method of claim 172, further comprising:

wherein the at least one server platform may interact with at least two of the at least two of the at least one client platform and at least two of an application associated with a respective one of the at least two of the at least one client platform.

181. The method of claim 172, further comprising:

wherein the at least one server platform may interact with at least two of the at least two of the at least one client platform.

182. The method of claim 168, further comprising:

wherein the at least one server platform comprises at least one of data store, logic, computing resource, communication resource, user interface, and a connection manager, wherein the connection manager manages the at least one client platform.

183. The method of claim 168, further comprising: wherein the at least one client platform comprises at least one of data store, logic, computing resource, communication resource, user interface, and a connection manager, wherein the connection manager manages the at least one server platform.

184. The method of claim 168, further comprising:

distributing at least one of an application, a data, a client platform, a server platform, and a context, wherein the context comprises a shared characteristic, to a client on an as-needed basis.

185. The method of claim 168, further comprising:

distributing at least one of an application, a data, a client platform, a server platform, and a context, wherein the context comprises a shared characteristic, to at least one of the at least one client platform or the at least one server platform on an as-needed basis.

186. The method of claim 168, further comprising:

installing at least one of an application, a data, a client platform, a server platform, and a context, wherein the context comprises a shared characteristic, to a client on an as- needed basis.

187. The method of claim 168, further comprising:

downloading at least one of an application, a data, a client platform, a server platform, and a context, wherein the context comprises a shared characteristic, to a client automatically when connected to the at least one client platform or the at least one server platform.

188. The method of claim 168, further comprising:

installing at least one of an application, a data, a client platform, a server platform, and a context, wherein the context comprises a shared characteristic, to a client via an interface of the at least one client platform or the at least one server platform.

189. The method of claim 168, further comprising:

upgrading the client platform when the client platform is connected to the server platform.

190. The method of claim 168, wherein the client platform is temporary.

191. The method of claim 168, further comprising:

creating an application on the online application platform, wherein the application may contain both at least one server component and at least one client component.

192. The method of claim 191 , wherein the at least one server component comprises at least one of data store, logic, computing resource, communication resource, user interface, or client management.

193. The method of claim 191 , wherein the at least one client component comprises at least one of data store, logic, computing resource, communication resource, user interface, or a connection manager.

194. A method comprising the computer executed steps of:

creating at least one client platform on an application platform;

creating at least one server platform on the application platform; and

creating an application on the application platform, wherein the application may contain both at least one server component and at least one client component;

wherein the at least one server component comprises at least one of data store, logic, computing resource, communication resource, user interface, or client

management; and

wherein the at least one client component comprises at least one of data store, logic, computing resource, communication resource, user interface, or a connection manager.

I l l

195. The method of claim 191 , wherein at least one of the at least one server component and at least one client component may be at least one of non-synchronized, synchronized, or partially synchronized.

196. The method of claim 191 , at least a client component or server component may hold temporary data.

197. The method of claim 194, further comprising:

propagating automatically an updated application code, wherein an application component comprising at least one of data, logic, user interface, structure, server component code, or client component code may be updated substantially in real-time.

198. The method of claim 197, further comprising at least one of:

propagating a new application code; and

deleting an application code.

199. The method of claim 194, further comprising:

propagating at least one of an action.

200. The method of claim 197, wherein the updated application code is propagated to at least two nodes that run a shared application.

201. The method of claim 197, wherein the code may be pushed across the at least one server platform.

202. The method of claim 197, wherein a user of the at least one client platform may block the code that is pushed.

203. The method of claim 197, wherein a user of the at least one server platform may block the code that is pushed.

204. A method comprising the computer executed steps of:

creating at least one client platform on an online application platform;

creating at least one server platform on the online application platform; and creating an application on the online application platform, wherein the application may contain both at least one server component and at least one client component.

205. The method of claim 204, further comprising:

distributing the at least one client component to a client on an as-needed basis.

206. The method of claim 204, further comprising:

installing the at least one client component on a client.

207. The method of claim 204, further comprising:

downloading the at least one client component to a client automatically when connected to the server component.

208. The method of claim 204, further comprising:

downloading the at least one client component automatically to a client from the online application platform.

209. The method of claim 204, further comprising:

installing the at least one client component to a client via at least one of the server component or a web interface of the online application platform.

210. A method comprising the computer executed steps of:

creating at least one application on an application platform; and

creating at least two contexts on the at least one application, wherein each one of the at least two contexts share a common characteristic.

211. The method of claim 210, further comprising: sharing data corresponding to one of the at least one application among the at least two contexts.

212. The method of claim 210, wherein one of the at least two contexts may correspond to at least two of the at least one application.

213. The method of claim 210, wherein a first one of the at least one application corresponding a first one of the at least two contexts may interact with a second one of the at least one application corresponding to a second one of the at least two contexts.

214. The method of claim 204, further comprising:

extending the application by at least one plugin.

215. The method of claim 214, wherein the at least one plugin comprises at least one piece of code, wherein the at least one piece of code adds at least one functionality to the application.

216. The method of claim 215, wherein the at least one plugin may be added to the application in a specific context, wherein the specific context comprises a shared characteristic.

217. The method of claim 215, further comprising:

at least two of the application, wherein the at least one plugin provides the at least one functionality to a respective one of the at least two of the application.

218. The method of claim 216, wherein a first one of the at least one plugin may interact with another one of the at least one plugin, wherein the first one and the second one of the at least one plugin share at least one of a common specific context or a common application.

219. The method of claim 216, wherein a first one of the at least one plugin may interact with another one of the at least one plugin, wherein the first one and the second one of the at least one plugin each belong to at least one of a different specific context or a different application.

220. The method of claim 216, wherein the at least one plugin may access at least one of a data and a resource of the application.

221. A method comprising the computer executed steps of:

creating at least one client platform on an online application platform;

creating at least one server platform on the online application platform; and updating data between the at least one client platform and the at least one server platform on a real-time basis.

222. The method of claim 221 , further comprising:

placing a processing logic that performs the updating data step on at least one of the at least one client platform and the at least one server platform.

223. The method of claim 221, wherein the application platform comprises a peer-to-peer structure, wherein each node is both a server and a client.

224. The method of claim 221 , further comprising:

synchronizing data; and

managing the updating of the at least one client platform.

225. The method of claim 221 , wherein the updating data step supported on at least one of the at least one client platform and at least one server platform comprises at least one of at least one of 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.

226. The method of claim 221 , further comprising:

managing the updating data step of the at least one client platform and the at least one server platform on a subscription basis.

227. The method of claim 221 , further comprising:

at least one of sending or aggregating at least one hosts update to at least one of the at least one client platform and the at least one server platform.

228. The method of claim 227, further comprising:

monitoring by the at least one server platform of at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user or a data that is looked at by the at least one client platform.

229. The method of claim 227, further comprising:

subscribing by the at least one client platform to a data update stream via the at least one server platform.

230. The method of claim 227, further comprising:

monitoring by the at least one client platform of at least one of a context, wherein the context comprises a shared characteristic, an application, an element, or a data that is looked at by the at least one server platform.

231. The method of claim 227, further comprising:

monitoring by the at least one client platform of at least one of a context, wherein the context comprises a shared characteristic, an application, an element, or a data that is managed by the at least one server platform.

232. The method of claim 227, further comprising:

maintaining a list of at least one subscribed hosts to at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user or a data.

233. The method of claim 227, further comprising:

maintaining a data structure of at least one subscribed hosts to at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user or a data.

234. The method of claim 227, further comprising:

storing a state of the at least one client platform; and

determining a need for an update of the at least one client platform.

235. The method of claim 227, further comprising:

allowing a subscription of the at least one client platform to at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user or a data.

236. The method of claim 235, further comprising:

storing by the at least one client platform of a dependency tree between a responsibility of the at least at least one of a client platform, server platform, an application, a context, a client and the at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user or a data.

237. The method of claim 235, further comprising:

storing by the at least one server platform of a dependency tree between a subscription by the subscribers and the at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user or a data.

238. The method of claim 235, further comprising:

storing by the at least one server platform of a dependency tree between a subscription by the subscribers, wherein the subscribers can be a at least one of a client platform, server platform, an application, a context, a client and the at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user or a data.

239. The method of claim 235, further comprising:

unsubscribing by the at least one client platform of the at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user or a data.

240. The method of claim 235, further comprising:

unsubscribing, during at least one of a disconnect or a logout or a predetermined event, by the at least one client platform of the at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user, or a data.

241. The method of claim 235, further comprising:

unsubscribing, during at least one of a disconnect or a logout or a predetermined event, by the at least one subscriber of the at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user, or a data.

242. The method of claim 235, further comprising:

unsubscribing, during at least one of a disconnect or a logout or a predetermined event, by the at least one subscriber of the at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user, or a data and wherein the at least one subscriber can be a at least one of a client platform, server platform, an application, a context, a user, a client.

243. The method of claim 235, further comprising:

monitoring by the at least one server platform of at least one of the dependency tree and the subscription; and

determining whether changing the data will affect a respective one of the at least one client platform.

244. The method of claim 235, further comprising:

monitoring by the subscription provider of at least one of the dependency tree and the subscription; and

determining whether changing the data will affect a respective one of the at least one client platform.

245. The method of claim 238, further comprising:

monitoring by the at least one server platform of at least one of the dependency tree and the subscription; and

determining whether changing the data will affect a respective one of the at least one client platform.

246. The method of claim 238, further comprising:

monitoring by the subscription provider of at least one of the dependency tree and the subscription; and

determining whether changing the data will affect a respective one of the at least one client platform.

247. The method of claim 244, further comprising:

notifying by the at least one server platform of a need to change a value of the at least one of the context, wherein the context comprises a shared characteristic, an application, an element, a user, or a data of a respective one of the at least one client platform.

248. The method of claim 244, further comprising:

notifying by the subscription provider of a need to change a value of the at least one of the context, wherein the context comprises a shared characteristic, an application, an element, or a data of a respective one of the at least one client platform.

249. The method of claim 244, further comprising: notifying by the at least one server platform of a need to perform an action or request to perform an action.

250. The method of claim 246, further comprising:

notifying by the at least one server platform of a need to change a value of the at least one of the context, wherein the context comprises a shared characteristic, an application, an element, or a data of a respective one of the at least one client platform.

251. The method of claim 246, further comprising:

notifying by the provider of a need to change a value of the at least one of the context, wherein the context comprises a shared characteristic, an application, an element, or a data of a respective one of the at least one client platform.

252. The method of claim 247, further comprising:

changing the value.

253. The method of claim 248, further comprising:

changing the value.

254. The method of claim 250, further comprising:

changing the value.

255. The method of claim 251 , further comprising:

changing the value.

256. A method comprising the computer executed steps of:

creating at least one client platform on an application platform;

creating at least one server platform on the application platform;

updating data between the at least one client platform and the at least one server platform; and sending by the at least one server platform of at least one of a data update or a notice to the at least one client platform.

257. A method comprising the computer executed steps of:

wherein the at least one client platform requires the at least one of a notice or a data update.

258. The method of claim 256, further comprising:

updating in real-time by the at least one client platform of the at least one of a log update, a delta update or a full update.

259. The method of claim 256,further comprising:

combining at least two of the at least one of a log update, delta update or a full update into a single update for a host.

260. The method of claim 256, further comprising:

splitting a single update into at least two of the at least one of a log update, a delta update or a full update into a single update for a host.

261. The method of claim 256, further comprising:

combining at least two of the at least one of a log update, a delta update or a full update into a single update for a host among a plurality of hosts who is at a different state from another one of the plurality of hosts.

262. The method of claim 256, further comprising:

splitting one of the at least one of a log update, a delta update or a full update into at least two of the at least one of a delta update or a full update for a host among a plurality of hosts who is at a different state from another one of the plurality of hosts.

263. The method of claim 256, further comprising: combining at least two of the at least one of a log update, a delta update or a full update into a single update for a host among a plurality of hosts who is at a different state from another one of the plurality of hosts; and

splitting one of the at least one of a log update, a delta update or a full update into at least two of the at least one of a log update, a delta update or a full update for a host among a plurality of hosts who is at a different state from another one of the plurality of hosts.

264. The method of claim 256, wherein the notice indicates to the at least one client platform that an update is available.

265. The method of claim 264, wherein the notice is sent in real-time.

266. The method of claim 264, further comprising:

combining at least two of the at least one notice into a single notice.

267. The method of claim 264, further comprising:

splitting one of the at least one notice into at least two notices.

268. The method of claim 256, further comprising:

notifying by the at least one server platform to the at least one client platform that the at least one server platform is no longer responsible for at least one of an application, a user, an event, a context, wherein the context comprises a shared characteristic, or a data.

269. The method of claim 256, further comprising:

notifying by the at least one server platform to the at least one client platform that the at least one server platform is responsible for at least one of an application, a user, an event, a context, wherein the context comprises a shared characteristic, or a data.

270. The method of claim 256, further comprising: notifying by the at least one server platform to the at least one client platform that the at least one server platform is handing over a responsibility for at least one of an application, a user, an event, a context, wherein the context comprises a shared characteristic, or a data to another one of the at least one server platform.

271. The method of claim 256, further comprising:

notifying by the at least one server platform to the at least one client platform that the at least one server platform is no longer responsible for at least one of an application, a user, an event, a context, wherein the context comprises a shared characteristic, or a data;

notifying by the at least one server platform to the at least one client platform that the at least one server platform is responsible for at least one of an application, a user, an event, a context, wherein the context comprises a shared characteristic, or a data; and notifying by the at least one server platform to the at least one client platform that the at least one server platform is handing over a responsibility for at least one of an application, a user, an event, a context, wherein the context comprises a shared characteristic, or a data to another one of the at least one server platform.

272. A method comprising the computer executed steps of:

differentiating data into at least two types of data priority; and

transmitting the data corresponding to one of the at least two types of data priority to a respective one of at least two data channels.

273. The method of claim 272, further comprising at least one of:

transmitting data of different priority entirely on same data channel while keeping the other channel as backup;

transmitting data on same channel but allow the higher priority data to have a larger usage share or proportionate to its priority of the channel;

transmitting data of different priority alternately on each data channel;

transmitting data of different priority on separate data channels according to their priority, wherein a higher priority gets a better channel; and using both channels as one channel, giving the higher/lower priority data a proportionate share to the combined channel capacity. The share can be calculated by taking consideration of the channels' latency, bandwidth, protocol, reliability or loss rate.

274. The method of claim 272, wherein the at two data channels have different network protocols.

275. The method of claim 272, wherein the transmitting step may be accomplished through an operating system.

276. The method of claim 272, wherein transmitting step may be accomplished through at least one of an operating system, 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.

277. The method of claim 272, further comprising:

determining by an application of the at least two types of data priority; and determining by an application of the at least two data channels.

278. The method of claim 272, further comprising:

creating an application platform;

determining by the application platform of the at least two types of data priority and the at least two data channels.

279. The method of claim 272, further comprising:

creating an application platform;

delegating by the application platform to the application determining the at least two types of data priority and the at least two data channels.

280. A method comprising the computer executed steps of: creating an application platform;

transmitting data using a plurality of network channels.

281. The method of claim 253, wherein the data comprises data updates.

282. The method of claim 253, wherein each one of the plurality of network channels have at least one of a same or a different one of at least one of a bandwidth or a latency specification.

283. The method of claim 253, wherein at least two of the plurality of network channels correspond to a different one of at least two network protocols.

284. The method of claim 253, wherein each one of the plurality of network channels have at least one of a same or a different one of at least one of a bandwidth, a latency specification, or a network protocol.

285. The method of claim 280, wherein data updates are transmitted through an operating system.

286. The method of claim 280, wherein data updates are transmitted through at least one of an operating system, a virtual machine, a process or thread, an application, a browser, a browser extension, an application inside a browser or an application inside a browser extension.

287. The method of claim 280, wherein the data are transmitted through an operating system.

288. The method of claim 280, wherein the data are transmitted through at least one of an operating system, a virtual machine, a process or thread, an application, a browser, a browser extension, an application inside a browser or an application inside a browser extension.

289. The method of claim 272, further comprising:

creating an online application platform, wherein the online application platform comprises an application;

determining a degree of parallism by the application.

290. The method of claim 272, further comprising:

creating an online application platform, wherein the online application platform comprises an application;

determining by the online application platform of a degree of parallism.

291. The method of claim 231 , further comprising:

delegating by the online application platform to the application the determining of the degree of parallism.

292. A method comprising the computer executed steps of:

creating at least one client platform on an online application platform;

creating at least one server platform on the application platform; and

updating data between the at least one client platform and the at least one server platform.

293. A method comprising the computer executed steps of:

creating at least two computing nodes on an online application platform;

updating data between the at least two computing nodes on an online application platform.

294. The method of claim 293, wherein the updating data step consists of transmitting at least one of a data update, a new data, a removal of data, an action, a request, a notice, a platform, an application, a context, a platform element, a metadata, a data reference, a message or an alert.

295. The method of claim 293, wherein the updating comprises transmitting a full update and wherein the full update comprises a new value which a receiver should update to.

296. The method of claim 293, further comprising:

sending by a node among a plurality of nodes to another one of the plurality of nodes all data for at least one of a context, wherein the context comprises a shared characteristic, an application, or an application inside a context.

297. The method of claim 293, further comprising:

sending by a node among the plurality of nodes to another one of the plurality of nodes a partial data.

298. The method of claim 293, further comprising:

sending by a node among the plurality of nodes to another one of the plurality of nodes a temporary data.

299. The method of claim 293, further comprising:

sending by a node among the plurality of nodes to another one of the plurality of nodes no data; and

waiting for the another one of the plurality of nodes to request a data when the data is required for operation.

300. The method of claim 292, further comprising:

calculating a data difference between the at least one client platform and the at least one server platform; and

transmitting the data difference.

301. The method of claim 293, further comprising:

calculating a data difference between a node and another node; and

transmitting the data difference.

302. The method of claim 293, further comprising:

transmitting a calculated action to a receiver, wherein the calculated action comprises a data update;

acting upon the calculated action, wherein the acting upon step achieves a same effect as a full update.

303. The method of claim 292, further comprising:

transmitting at least one of data or action from the point last communicated by the at least one of the at least one client platform and the at least one server platform.

304. The method of claim 293, further comprising:

transmitting at least one of data or action from the point last communicated by at least one node to at least one another node.

305. The method of claim 293, further comprising:

transmitting at least one of data or action from the point last communicated by at least one node to at least one another node, wherein the last point of communication is known through direct or indirect communication between the two nodes, or through previous communication history known from at least one of locally, from another source or from a centralized source.

306. The method of claim 292, further comprising:

disconnecting the at least one client platform from the at least one server platform;

modifying local data, so as to obtain modified local data;

determining whether the modified local data conflicts with a change in the at least one server platform;

storing the change if the change conflicts with the modified local data.

307. The method of claim 293, further comprising:

disconnecting the at least one node from the at least one another node; modifying local data, so as to obtain modified local data;

determining whether the modified local data conflicts with a change in the at least one another node;

storing the change if the change conflicts with the modified local data.

308. A method comprising the computer executed steps of:

creating at least one client platform on an application platform;

creating at least one server platform on the application platform;

updating data between the at least one client platform and the at least one server platform; and

transmitting an update by one of a plurality of computing nodes to another one of the plurality of computing nodes.

309. A method comprising the computer executed steps of:

creating at least two nodes on an application platform;

transmitting an update by one of a plurality of nodes to another one of the plurality of nodes.

3 lO.The method of claim 309, further comprising:

replacing the update with different data.

31 l.The method of claim 309, further comprising:

combining the update with different data.

312. The method of claim 309, further comprising:

replacing the update with different data; and

combining the update with different data.

313. The method of 296, further comprising:

propagating by one of the plurality of nodes of an update directly to another one of the plurality of nodes without changing the update.

314. The method of 308, further comprising:

propagating by one of the plurality of nodes of an update directly to another one of the plurality of nodes without changing the update.

315. The method of 309, further comprising:

propagating by one of the plurality of nodes of an update directly to another one of the plurality of nodes without changing the update.

316. A method comprising the computer executed steps of:

creating at least one client platform on an application platform;

creating at least one server platform on the application platform;

updating data between the at least one client platform and the at least one server platform; and

creating a conflict resolution logic on at least one of the at least one client platform, at least one server platform, and a general node, wherein the conflict resolution logic may determine how to resolve at least one of a data conflict or an action conflict.

317. A method comprising the computer executed steps of:

creating at least one sender on an application platform;

creating at least one receiver on the application platform;

updating data between the at least sender and the at least one receiver; and creating a conflict resolution logic on at least one of the at least one sender, at least receiver, and a general node, wherein the conflict resolution logic may determine how to resolve at least one of a data conflict or an action conflict.

318. The method of claim 317, wherein the conflict resolution logic comprises at least one of an application logic, a context logic, or an application platform logic.

319. The method of claim 317, further comprising: automatically resolving by the application platform logic a conflict among a plurality of conflicts.

320. The method of claim 319, further comprising:

requiring by the application platform logic that at least one of the application logic or context logic resolve another one of the plurality of conflicts.

321. The method of claim 318, further comprising:

automatically resolving by the context logic a conflict among a plurality of conflicts.

322. The method of claim 321, further comprising:

requiring by the context logic that the application logic resolve another one of the plurality of conflicts.

323. The method of claim 322, further comprising:

requiring by the context logic that another one of the plurality of conflicts be resolved manually.

324. The method of claim 318, further comprising:

automatically resolving by the application logic a conflict among a plurality of conflicts.

325. The method of claim 324, further comprising:

requiring by the application logic that the context logic resolve another one of the plurality of conflicts.

326. The method of claim 325, further comprising:

requiring by the application logic that another one of the plurality of conflicts be resolved manually.

327. The method of claim 318, further comprising:

automatically resolving by at least one of the application logic or the context logic a conflict among a plurality of conflicts.

328. The method of claim 327, further comprising:

requiring by the application logic or the context logic that another one of the plurality of conflicts be resolved manually.

329. A method comprising the computer executed steps of:

creating at least one client platform on an application platform;

creating at least one server platform on an application platform; and

creating event-driven asynchronous applications on at least one of the at least one client platform, and the at least one server platform.

330. A method comprising the computer executed steps of:

creating event-driven asynchronous applications on at least one of the at least one client, the at least one server on an online application platform.

331. The method of claim 329, further comprising:

determining an order of execution on the application platform using a priority of task.

332. The method of claim 329, further comprising:

determining an order of execution on the application platform using at least one of a scheduler or a queue.

333. The method of claim 329, further comprising:

putting a blocking event in a background processing framework, wherein the blocking event comprises a task that involve waiting time.

334. The method of claim 329, wherein the putting the blocking event step is performed manually.

335. The method of claim 329, wherein the putting the blocking event step is performed automatically by the application platform.

336. The method of claim 329, further comprising:

identifying a blocking event in an application on the application platform, wherein the blocking event comprises a task that involve waiting time.

337. A method comprising the computer executed steps of:

creating an application on an online application platform;

processing a first part of the application immediately; and

processing a second part of the application delayed from the processing of the first part.

338. The method of claim 337, further comprising:

specifying by an application developer of the processing a first part of the application and the processing a second part of the application.

339. The method of claim 337, further comprising:

specifying by an application developer of the processing a first part of the application and the processing a second part of the application without affecting application operation, output or correctness.

340. The method of claim 337, further comprising:

automatically performing by the online application platform of the processing a first part of the application step and the processing a second part of the application step.

341. The method of claim 337, further comprising: automatically performing by the online application platform of the processing a first part of the application step and the processing a second part of the application step without affecting application operation, output or correctness.

342. The method of claim 337, further comprising:

setting at least one parameter on an application part; and

determining an execution priority of a part of the application based on the setting at least one parameter step.

343. The method of claim 337, further comprising:

setting at least one parameter on an application part; and

determining an execution priority of a part of the application based on the setting at least one parameter step without affecting application operation, output or correctness.

344. The method of claim 337, further comprising:

determining an execution priority of a part of the application based on a time- sensitivity.

345. The method of claim 344, wherein the determining step preserves correctness of the application operation and output.

346. The method of claim 337, further comprising at least one of:

determining an execution priority of a part of the application based on importance;

determining an execution priority by analyzing its code statically or during runtime;

determining an execution priority by the part's delay or expected delay, or by optimizing the total minimal delay or total expected minimal delay of all parts;

determining an execution priority by the part's execution time or expected execution time, or by optimizing the total execution time or expected total execution time of all parts; determining an execution priority by a function or a heuristic that calculates the expected execution time or expected delay; and

determining an execution priority by calculating the dependencies between application parts.

347. The method of claim 346, wherein the application operation, output or correctness is not affected.

348. The method of claim 337, further comprising:

storing at least one data process in the application platform; and

executing the at least one data process so as to minimize delay.

349. The method of claim 337, further comprising:

storing at least one data process in the application platform; and

executing the at least one data process so as to minimize delay without affecting application operation, output or correctness.

350. The method of claim 337, further comprising:

holding an execution of a part of the application until the application platform is available.

351. The method of claim 337, further comprising:

holding an execution of a part of the application until the application platform is available without affecting application operation, output or correctness.

352. The method of claim 337, further comprising:

executing concurrently a first one of a part of the application and a second one of a part of the application when the first one of a part of the application and the second one of a part of the application are safely parallel.

353. The method of claim 337, further comprising: executing concurrently a first one of a part of the application and a second one of a part of the application when the first one of a part of the application and the second one of a part of the application are safely parallel without affecting application operation, output or correctness.

354. A method comprising the computer executed steps of:

creating an application on an online application platform; and

providing at least one of a computing framework, a data framework, or a user interface framework on the online application platform, wherein the at least one of a computing framework, a data framework, or a user interface framework support the application.

355. The method of claim 354, wherein the computing framework comprises at least one of an event driven framework, a multi-process framework or a multi-thread framework.

356. The method of claim 354, further comprising:

providing a main processing framework, wherein the computing framework comprises at least one of a queue, a work priority-differentiation, or a scheduler.

357. A method comprising the computer executed steps of:

creating an application on an application platform;

creating at least one client platform on the application platform;

creating at least one server platform on the application platform and

providing a main processing framework, wherein the main processing framework comprises at least one of a queue, a work priority-differentiation, or a scheduler.

358. The method of claim 357, wherein the computing framework comprises at least one of an event driven framework, a multi-process framework or a multi-thread framework.

359. The method of claim 357, further comprising: providing at least one of an event driven framework, a multi-process framework or a multi-thread framework.

360. A method comprising the computer executed steps of:

creating an application on an application platform;

creating at least one client platform on the application platform;

creating at least one server platform on the application platform and

providing at least one of an event driven framework, a multi-process framework or a multi-thread framework.

361. The method of claim 356, further comprising:

running at least one of an application or an application part in the computing framework.

362. The method of claim 357, further comprising:

running at least one of an application or an application part in the computing framework.

363. The method of claim 360, further comprising:

running at least one of an application or an application part in the computing framework.

364. The method of claim 354, further comprising:

providing a background processing framework for at least one of a less-time sensitive task, an inactive task, a blocking task or a lower priority task.

365. The method of claim 354, further comprising:

providing a background processing framework for at least one of a less-time sensitive task, an inactive task, a blocking task or a lower priority task wherein the background processing framework comprises at least one of an event driven framework, a multi-process framework or a multi-thread framework.

366. The method of claim 364, wherein the background processing framework can be located on the server platform, client platform, or both.

367. The method of claim 354, further comprising:

providing at least one of a queue, a work priority-differentiation, or a scheduler on a client and a server.

368. The method of claim 367, wherein the client comprises at least one client platform and the server comprises at least one server platform.

369. The method of claim 357, further comprising:

providing a background processing framework for at least one of a less-time sensitive, inactive, blocking or lower priority task.

370. A method comprising the computer executed steps of:

creating an application on an application platform;

creating at least one client platform on the application platform;

creating at least one server platform on the application platform; and

providing a background processing framework for at least one of a less-time sensitive task, an inactive task, a blocking task or a lower priority task.

371. The method of claim 369, wherein the background processing framework can be located on the server platform, client platform, or on both.

372. The method of claim 370, wherein the background processing framework is used to process at least one of a less-time sensitive task, an inactive task, a blocking task or a lower priority task.

373. The method of claim 354, further comprising: providing a data store, wherein the data store may store a content for at least one of a different application and a different context, and wherein a first one of the content may be provided in different format from a second one of the content.

374. The method of claim 373, wherein the data store is on a client and a server.

375. The method of claim 374, wherein the client and the server have a temporary data cache so as to provide an efficient response.

376. The method of claim 374, wherein the data store on the client may be temporary.

377. The method of claim 374, further comprising:

storing partial information on at least one of the data store on the client and the data store on the server, wherein the partial information comprises a part of the complete data that is needed, wherein the complete data may comprise of data that is needed and data that is not needed.

378. The method of claim 374, further comprising:

requesting data from source only when needed.

379. The method of claim 377, further comprising:

requesting data from source only when needed.

380. The method of claim 354, further comprising:

providing a user interface framework;

generating a user interface via the user interface framework, using resources of at least one of client-only, server-only, or a combination of server and client resources.

381. The method of claim 354, further comprising:

providing a communication framework; and dealing with via the communication framework at least one of a network send update event and a network receive update event.

382. The method of claim 354, further comprising:

providing a communication framework; and

dealing with via the communication framework at least one of a network send event and a network receive event.

383. The method of claim 354, further comprising:

providing a communication framework; and

dealing with via the communication framework at least one of an update event.

384. The method of claim 383, further comprising:

updating data in real-time.

385. The method of claim 383, further comprising:

transferring bulk data.

386. The method of claim 383, further comprising:

bootstrapping a client with at least one of a required code and a required data.

387. The method of claim 383, further comprising at least one of:

bootstrapping a client with at least one of a required code and a required data; transferring an application code;

transferring a context;

transferring an application data or a context data;

transferring system messages and alerts;

transferring actions or request to actions; and

transferring messages, data or actions to other nodes reachable via the communication framework.

388. A method comprising the computer executed steps of:

creating an application on an online application platform; and

providing application access to low-level event on the online application platform.

389. The method of claim 388, further comprising:

providing application access to an event from at least one of a browser, a virtual machine, a process, an operating system, an input/output device, or a hardware.

390. The method of claim 388, further comprising:

providing application access to a hardware event, wherein the hardware event comprises at least one of an interrupt or an error.

391. The method of claim 388, further comprising:

providing application access to a network event, wherein the network event comprises at least one of a received, a sent, a free to send, a timeout, or an error.

392. The method of claim 388, further comprising:

providing application access to at least one of an input event or an output event or a network event, wherein the at least one of an input event or an output event comprises at least one of a received, a sent, a free to send, a timeout, or an error.

393. The method of claim 388, further comprising:

providing application access to an I/O event, wherein the I/O event comprises at least one of a disk event or a hardware peripheral event.

394. The method of claim 388, further comprising:

providing application access to an I/O event, wherein the I/O event comprises at least one of an input/output device event, a storage event or a hardware peripheral event.

395. The method of claim 388, further comprising: providing application access to an OS event, wherein the OS event comprises at least one of an interrupt or an error.

396. The method of claim 388, further comprising:

providing application access to an OS event, wherein the OS event comprises at least one of an interrupt, an error, a message event, semaphore event, a communication event or a system event.

397. The method of claim 388, further comprising:

providing application access to a process event, wherein the process event comprises at least one of error, free, start, or completed.

398. The method of claim 388, further comprising:

providing application access to a process event, wherein the process event comprises at least one of error, free, start, completed, a message event, semaphore event or a communication event.

399. The method of claim 388, further comprising:

providing application access to a data store event, wherein the data store event comprises at least one of a data added, a data changed, a data removed, a saved, or an error.

400. The method of claim 388, further comprising:

providing application access to a data store event, wherein the data store event comprises at least one of a data added, a data changed, a data removed, a saved, an error, a data read, a data cached, a space freed, a space consumed, a free to write data, a free to read data, or a data full.

401. A method comprising the computer executed steps of:

creating an application on an online application platform; and

processing the application on a plurality of processing cores.

402.The method of claim 401 , further comprising:

providing a plurality of threads concurrently within a process.

403.The method of claim 401 , further comprising:

providing a plurality of processes.

404. The method of claim 401 , further comprising:

providing a plurality of computing blocks concurrently via a scheduler.

405. The method of claim 401 , further comprising:

providing an event-driven processing framework capable of utilizing multiple processing cores.

406.The method of claim 401 , further comprising:

providing safe parallism for a data.

407.The method of claim 401 , further comprising:

providing safe parallism for the application, wherein the application uses at least one of multiple threads or processes concurrently on the online application platform.

408.The method of claim 401 , further comprising:

using at least one of locks, semaphores, or access control to prevent code conflicts.

409.The method of claim 401 , further comprising:

utilizing software transactional memory.

410.The method of claim 401 , further comprising:

determining at least two of a plurality of blocks that can be run concurrently without conflicts.

411. The method of claim 401 , further comprising:

determining at least two of a plurahty of contexts that can be processed concurrently without conflicts.

412. The method of claim 410, further comprising:

determining at least two of a plurahty of contexts that can be processed concurrently without conflicts.

413. The method of claim 401 , further comprising:

determining at least two of a plurahty of data that can be processed concurrently without conflicts.

414. The method of claim 410, further comprising:

determining at least two of a plurahty of data that can be processed concurrently without conflicts.

415. The method of claim 411 , further comprising:

determining at least two of a plurahty of data that can be processed concurrently without conflicts.

416. The method of claim 412, further comprising:

determining at least two of a plurahty of data that can be processed concurrently without conflicts.

417. A method comprising the computer executed steps of:

creating an application on an application platform; and

processing the application on a plurahty of processing cores.

418. The method of claim 417, further comprising:

providing a plurahty of threads concurrently within a process.

419. The method of claim 417, further comprising:

providing a plurality of processes.

420. The method of claim 417, further comprising:

providing a plurality of computing blocks concurrently via a scheduler.

421. The method of claim 417, further comprising:

providing an event-driven processing framework capable of utilizing multiple processing cores.

422. The method of claim 417, further comprising:

providing safe parallism for a data.

423. The method of claim 417, further comprising:

providing safe parallism for the application, wherein the application uses at least one of multiple threads or processes concurrently on the online application platform.

424. The method of claim 417, further comprising:

using at least one of locks, semaphores, or access control to prevent code conflicts.

425. The method of claim 417, further comprising:

utilizing software transactional memory.

426. The method of claim 417, further comprising:

determining at least two of a plurality of blocks that can be run concurrently without conflicts.

427. The method of claim 417, further comprising:

determining at least two of a plurality of contexts that can be processed concurrently without conflicts.

428. The method of claim 426, further comprising:

determining at least two of a plurahty of contexts that can be processed concurrently without conflicts.

429. The method of claim 417, further comprising:

determining at least two of a plurahty of data that can be processed concurrently without conflicts.

430. The method of claim 426, further comprising:

determining at least two of a plurahty of data that can be processed concurrently without conflicts.

431. The method of claim 427, further comprising:

determining at least two of a plurahty of data that can be processed concurrently without conflicts.

432. The method of claim 428, further comprising:

determining at least two of a plurahty of data that can be processed concurrently without conflicts.

433. A method comprising the computer executed steps of:

creating a plurality of applications on an application platform; and

providing safe parallism for the plurahty of applications using an event driven framework of the application platform.

434. The method of claim 433, further comprising:

resolving unsafe conflicts to run code blocks in parallel

executing at least one of same blocks or different blocks in parallel under a condition.

435. The method of claim 433, further comprising: resolving unsafe conflicts to run code blocks in parallel.

436. The method of claim 435, further comprising:

analyzing at least one of data conflicts, processing conflicts, context conflicts, content conflicts, data dependencies, processing dependencies, context dependencies, or content dependencies.

437. The method of claim 436, the analyzing step is accomplished via a static program analysis.

438. The method of claim 436, the analyzing step is accomplished via a runtime program analysis.

439. The method of claim 436, the analyzing step is accomplished via a predetermined configuration.

440. The method of claim 435, further comprising:

analyzing at least one of code conflicts or dependencies.

441. The method of claim 440, the analyzing step is accomplished via a static program analysis.

442. The method of claim 440, the analyzing step is accomplished via a runtime program analysis.

443. The method of claim 440, the analyzing step is accomplished via a predetermined configuration.

444. The method of claim 433, further comprising: using a conflict table to manage possible conflicts between at least one of a code block, a context, wherein the context comprises a shared characteristic, a content, and a data.

445. The method of claim 433, further comprising:

running at least one of same blocks or different blocks in parallel under a condition.

446. The method of claim 445, wherein the condition comprises if at least two of one or more codes will not access the same data at the same time, if at least two of one or more contexts are different, if the at least two of the one or more contexts is same but the at least one of the one or more codes will not access the same data at the same time, or if an application author specifically allows at least two of the blocks, contexts, content or data to be processed together.

447. A method comprising the computer executed steps of:

creating a context-centric online application platform, wherein the platform supports a plurality of content types.

448. The method of claim 447, wherein the plurality of content types may be in at least one of a context, an application, the same data store, or different data stores for different content types.

449. The method of claim 448, wherein the data store allows the following:

creating new content types.

450. The method of claim 448, wherein the data store allows the following:

mapping new content types to objects stored in the data store.

451. The method of claim 448, wherein the data store allows the following:

changing dynamically a schema of the data store.

452. The method of claim 448, wherein the data store allows the following:

changing content types for existing data.

453. The method of claim 448, wherein when a system is online the data store allows the following:

creating new content types;

mapping new content types to objects stored in the data store;

changing dynamically a schema of the data store; and

changing content types for existing data.

454. The method of claim 448, further comprising:

providing a data store for a structure of the application platform.

455. The method of claim 454, wherein the data store is dynamic.

456. The method of claim 454, further comprising:

using a database.

457. The method of claim 454, further comprising:

using a hash table.

458. The method of claim 454, further comprising:

using a storage area network.

459. The method of claim 454, further comprising:

using a computer memory media.

460.The method of claim 454, further comprising:

using at least one of a distributed hash table or a distributed key-value- storage.

461. The method of claim 454, further comprising:

using a system combination of using a database, using a hash table, using a storage area network, using a computer memory media, and using at least one of a distributed hash table or a distributed key -value -pair storage.

462. The method of claim 454, further comprising:

using a distributed system combination of using a database, using a hash table, using a storage area network, using a computer memory media, and using at least one of a distributed hash table or a distributed key -value -pair storage.

463. The method of claim 454, further comprising:

propagating data storage within the data store.

464. The method of claim 454, further comprising:

storing multiple replicas of a piece of data within the data store.

465. The method of claim 454, further comprising:

storing calculated metadata of data pieces.

466. The method of claim 454, further comprising:

replicating metadata of data pieces to one or more computing nodes.

467. The method of claim 454, further comprising:

replicating at least one of data or metadata of data to one or more computing nodes.

468. The method of claim 454, further comprising:

organizing storage nodes using at least one of a ring, a tree, a hypercube, a peer- to-peer, a hierarchical structure, a log-based logical structure.

469. The method of claim 454, further comprising:

allowing permissions to be set on each data for access control among at least one of a user, a context, an application, or within contexts.

470. The method of claim 454, further comprising:

allowing priorities to be set on each data to indicate at least one of importance and service level.

471. The method of claim 454, further comprising:

creating a server platform;

utilizing by the server platform of multiple dynamic data stores; and

storing at least one of different contexts or different applications.

472. The method of claim 454, further comprising:

utilizing by the platform of multiple data stores; and

storing at least one of different contexts or different applications.

473. The method of claim 454, further comprising:

creating at least one of a server platform or client platform;

utilizing by at least one of a server platform or client platform of multiple data stores; and

storing at least one of different contexts or different applications.

474. A method comprising the computer executed steps of:

creating a context-centric application platform, wherein the platform supports a plurality of content types.

475. The method of claim 474, wherein the plurality of content types may be in at least one of a context, an application, the same data store, or different data stores for different content types.

476. The method of claim 475, wherein the data store allows the following:

creating new content types.

477. The method of claim 475, wherein the data store allows the following:

mapping new content types to objects stored in the data store.

478. The method of claim 475, wherein the data store allows the following:

changing dynamically a schema of the data store.

479. The method of claim 475, wherein the data store allows the following:

changing content types for existing data.

480. The method of claim 475, wherein when a system is online the data store allows the following:

creating new content types;

mapping new content types to objects stored in the data store;

changing dynamically a schema of the data store; and

changing content types for existing data.

481. The method of claim 474, further comprising:

providing a data store for a structure of the application platform.

482. The method of claim 481 , wherein the data store is dynamic.

483. The method of claim 481 , further comprising:

using a database.

484. The method of claim 481 , further comprising:

using a hash table.

485. The method of claim 481 , further comprising: using a storage area network.

486. The method of claim 481 , further comprising:

using a computer memory media.

487. The method of claim 481 , further comprising:

using at least one of a distributed hash table or a distributed key-value-pair storage.

488. The method of claim 481 , further comprising:

using a system combination of using a database, using a hash table, using a storage area network, using a computer memory media, and using at least one of a distributed hash table or a distributed key -value -pair storage.

489. The method of claim 481 , further comprising:

using a distributed system combination of using a database, using a hash table, using a storage area network, using a computer memory media, and using at least one of a distributed hash table or a distributed key -value -pair storage.

490. The method of claim 481 , further comprising:

propagating data storage within the data store.

491. The method of claim 481 , further comprising:

storing multiple replicas of a piece of data within the data store.

492. The method of claim 481 , further comprising:

storing calculated metadata of data pieces.

493. The method of claim 481 , further comprising:

replicating metadata of data pieces to one or more computing nodes.

494. The method of claim 481 , further comprising:

replicating at least one of data or metadata of data to one or more computing nodes.

495. The method of claim 481 , further comprising:

organizing storage nodes using at least one of a ring, a tree, a hypercube, a peer- to-peer, a hierarchical structure, a log-based logical structure.

496. The method of claim 481 , further comprising:

allowing permissions to be set on each data for access control among at least one of a user, a context, an application, or within contexts.

497. The method of claim 481 , further comprising:

allowing priorities to be set on each data to indicate at least one of importance and service level.

498. The method of claim 481 , further comprising:

creating a server platform;

utilizing by the server platform of multiple dynamic data stores; and

storing at least one of different contexts or different applications.

499. The method of claim 481 , further comprising:

utilizing by the platform of multiple data stores; and

storing at least one of different contexts or different applications.

500. The method of claim 481 , further comprising:

creating at least one of a server platform or client platform;

utilizing by at least one of a server platform or client platform of multiple data stores; and

storing at least one of different contexts or different applications.

501. A method comprising the computer executed steps of:

creating a context-centric application platform; and

implementing a server platform backend using one or more networked computing nodes.

502. The method of claim 501 , wherein the application platform comprises an online application platform.

503. A method comprising the computer executed steps of:

creating a context-centric online application platform; and

implementing a platform backend using one or more networked computing nodes.

504. The method of claim 501 , wherein each one of the one or more networked computing nodes may have at least one of a performance or a characteristic different from another one of the one or more networked computing nodes.

505. The method of claim 501 , wherein each one of the one or more networked computing nodes may have at least one of an architecture or a peripheral different from another one of the one or more networked computing nodes.

506. The method of claim 501 , wherein each one of the one or more networked computing nodes may have at least one of a performance, a characteristic, an architecture, or a peripheral different from another one of the one or more networked computing nodes.

507. The method of claim 501 , further comprising:

using one or more computing devices.

508. The method of claim 501 , further comprising:

using one or more computing clusters.

509. The method of claim 501 , further comprising: using at least one of a ring, a tree, a hypercube, a peer-to-peer, a hierarchical, a log-based logical structure to organize distributed computing nodes.

510. The method of claim 501 , further comprising:

using at least one of a ring, a tree, a hypercube, a peer-to-peer, a hierarchical, and a log-based logical structure to organize storage nodes.

511. The method of claim 501 , further comprising:

replicating data by one or more storage nodes, wherein the replicating may be performed at least one of fully or partially replicating;

propagating data by one of the one or more storage nodes to another one of the one or more storage nodes; and

selecting by the one or more storage nodes to perform at least one of the replicating step and the propagating step.

512. The method of claim 501 , further comprising:

re-organizing the one or more networked computing nodes in a live environment.

513. A method comprising the computer executed steps of:

creating an application platform;

implementing a platform backend using one or more networked computing nodes; replicating data by one or more storage nodes, wherein the replicating may be performed at least one of fully or partially replicating;

propagating data by one of the one or more storage nodes to another one of the one or more storage nodes; and

selecting by the one or more storage nodes to perform at least one of the replicating step and the propagating step.

514. A method comprising the computer executed steps of:

creating an application platform; implementing a platform backend using one or more networked computing nodes; and

re-organizing the one or more networked computing nodes in a live environment.

515. The method of claim 502, further comprising:

providing a layer-based architecture, wherein the layer-based architecture comprises a front-end, a processing, and a data storage.

516. A method comprising the computer executed steps of:

creating a context-centric application platform; and

providing a layer-based architecture, wherein the layer-based architecture comprises at least one of a front stage, a processing stage, and a storage stage.

517. A method comprising the computer executed steps of:

creating an application platform;

creating one or more nodes;

providing a layer-based architecture, wherein the layer-based architecture comprises one or more layers; and

separating automatically by the application platform each one of the one or more nodes into a different respective one of the one or more layers.

518. The method of claim 517, further comprising:

providing one or more groups;

providing one or more responsibilities;

splitting the one or more nodes within each one of the one or more layers into a respective different one of at least one of the one or groups or the one or more responsibilities.

519. The method of claim 518, wherein the splitting step results in at least one of the following: a cache to another one of the one or more nodes; a node manager; a node monitor; a network router; a data store access point; an access point to another one of the one or more layers; or a data aggregation node.

520. A method comprising the computer executed steps of:

creating a context-centric application platform;

creating one or more nodes; and

using general purpose computing nodes to organize computing.

521. The method of claim 520, further comprising:

using at least one of a ring, a tree, a hypercube, a peer-to-peer, a hierarchical, and a log-based logical structure to organize nodes.

522. The method of claim 520, wherein the application platform comprises an online application platform.

523. A method comprising the computer executed steps of:

creating a context-centric online application platform;

creating one or more nodes; and

using at least one of a ring, a tree, a hypercube, a peer-to-peer, a hierarchical, and a log-based logical structure to organize storage nodes.

524. A method comprising the computer executed steps of:

creating a context-centric online application platform;

creating one or more storage nodes; and

replicating data the by one or more storage nodes, wherein the replicating may be performed at least one of fully or partially replicating;

propagating data by the one of the one or more storage nodes to another one of the one or more storage nodes; and

selecting by the one or more storage nodes to either perform the replicating step or the propagating step.

525. A method comprising the computer executed steps of:

creating a context-centric application platform;

creating one or more storage nodes; and

replicating data the by one or more storage nodes, wherein the replicating may be performed at least one of fully or partially replicating;

propagating data by the one of the one or more storage nodes to another one of the one or more storage nodes; and

selecting by the one or more storage nodes to either perform the replicating step or the propagating step.

526. A method comprising the computer executed steps of:

creating an application platform;

creating one or more nodes; and

using one or more specialized computing chips.

527. The method of claim 526, wherein the one or more specialized computing chips comprises at least one of a programmable VLSI, a low power processor, a RISC, a GPU, a GPGPU, an offload engine, a network processor, a quantum processor or a system-on- a-chip.

528. The method of claim 527, wherein the offload engine comprises at least one of encryption, networking, virtual machine, graphical or computing functions and wherein the network processor comprises a packet, a routing, a forwarding, a labeling or a switching processor.

529. The method of claim 526, further comprising:

using a different type of the one or more specialized computing chips for a respective one of a one or more functions.

530. The method of claim 526, further comprising: using a different one of at least one of one or more processing cores or one or more hardware peripherals for a respective one of one or more different applications.

531. A method comprising the computer executed steps of:

running one or more single user applications on an online application platform; running one or more multi-user applications on the online application platform; running one or more social applications on the online application platform; and providing a permissions setting on at least one of a context, an application, an action, and a data.

532. The method of claim 531 , wherein the one or more single user applications comprises one or more personal applications and wherein the one or more multi-user applications comprises one or more collaboration-enabled multi-user applications.

533. The method of claim 532, further comprising:

providing the permissions setting per context.

534. The method of claim 532, further comprising:

providing the permissions setting per context per application.

535. The method of claim 532, further comprising:

providing the permissions setting per application.

536. The method of claim 532, wherein each context may have a set of one or more roles.

537. The method of claim 532, wherein each one of the one or more roles has at least two permissions.

538. The method of claim 532, wherein each of one or more user in context may have at least two roles.

539. The method of claim 538, further comprising:

providing by the at least two roles of one or more permissions as set by the permissions setting, wherein the one or more permissions control at least one of an action or a data in context.

540. The method of claim 538, further comprising:

providing by the at least two roles of one or more permissions as set by the permissions setting, wherein the one or more permissions control at least one of an action, a data, an application, or an action in context, a data in context, or an application in context.

541. The method of claim 532, further comprising:

determining by each one of the one or more personal applications, the one or more collaboration-enabled multi-user applications, or one or more social applications of which of at least one of its action or data require a permission.

542. The method of claim 532, further comprising:

determining by each one of the one or more single-user applications, the one or more multi-user applications, or one or more social applications of which of at least one of its action or data require a permission.

543. The method of claim 532, further comprising:

determining by the context which of its at least one of an application, an action, or a data require permission.

544. The method of claim 532, further comprising:

changing by at least one of one or more personal applications, the one or more collaboration-enabled multi-user applications, or one or more social applications of its required at least one of permissions or roles on the platform in real-time; and

propagating a change of this changing step to all nodes that run the same application.

545. The method of claim 531 , further comprising:

changing by at least one of one or more single user applications, the one or more multi-user applications, or one or more social applications of its required at least one of permissions or roles on the platform in real-time; and

propagating a change of this changing step to all nodes that run the same application.

546. The method of claim 532, further comprising:

changing by at least one of one or more personal applications, the one or more collaboration-enabled multi-user applications, or one or more social applications of its required at least one of permissions or roles on the platform in real-time; and

propagating a change of this changing step to at least one of a plurality of nodes that run the same application, contain the same context or access the same data.

547. The method of claim 531 , further comprising:

changing by at least one of one or more single user applications, the one or more multi-user applications, or one or more social applications of its required at least one of permissions or roles on the platform in real-time; and

propagating a change of this changing step to at least one of a plurality of nodes that run the same application, contain the same context or access the same data.

548. The method of claim 532, further comprising:

changing by the context of its required at least one of permissions or roles on the platform in real-time; and

propagating a change of this changing step to at least one of a plurality of nodes that run the same application among the one of one or more personal applications, the one or more collaboration-enabled multi-user applications, or the one or more social applications, or to at least one of the nodes that access the same context or accesses the same data.

549. The method of claim 531 , further comprising:

changing by the context of its required at least one of permissions or roles on the platform in real-time; and

propagating a change of this changing step to at least one of a plurality of nodes that run the same application among the one of one or more single user applications, the one or more multi-user applications, the one or more social applications, or to at least one of a plurality of nodes that access the same context or access the same data.

550. The method of claim 532, further comprising:

adding a role in real-time;

editing a role in real-time; and

removing a role in real-time

551. The method of claim 532, further comprising at least one of:

adding permissions of a role in real-time;

editing permissions of a role in real-time;

removing permissions of a role in real-time;

assigning at least one role to a user in real-time; and

removing at least one role from a user in real-time.

552. The method of claim 532, further comprising:

creating one or more context types with access control.

553. The method of claim 552, further comprising:

allowing access to the one or more context types only users with permission as decided by a predetermined setting.

554. The method of claim 552, further comprising:

controlling access to the one or more context types only users or groups with permission as decided by a predetermined setting.

555. The method of claim 552, further comprising:

controlling access to the one or more context types only users or groups with permission as decided by a predetermined setting; and

creating a context with the one or more context types.

556. The method of claim 552, further comprising:

allowing access for members of a context to access a specific context type.

557. A method comprising the computer executed steps of:

running one or more applications on an application platform; and

allowing a third-party to distribute at least one of an application or a plugin on the application platform.

558. A method comprising the computer executed steps of:

running one or more applications on a context-enabled application platform; and allowing a third-party to distribute at least one of an application or a plugin on the application platform.

559. A method comprising the computer executed steps of:

running one or more applications on a context-enabled online application platform; and

allowing a third-party to distribute at least one of an application or a plugin on the application platform.

560. The method of claim 558, further comprising:

creating an interface for a publisher to provide contexts.

561. The method of claim 558, further comprising:

creating an interface for a user to subscribe to contexts.

562. The method of claim 558, further comprising: creating a place for a user to install the one or more applications.

563. The method of claim 558, further comprising:

creating a place for a user to remove the one or more applications.

564. The method of claim 558, further comprising:

registering an item to offer a user in a store, wherein the item comprises at least one of an application, a plugin, or a related service and wherein the store may take payment via at least one of a subscription or a one-time fee.

565. The method of claim 558, further comprising:

registering a context for a fee.

566. The method of claim 558, further comprising:

registering an application for a fee.

567.The method of claim 558, further comprising:

registering an application set for a fee, wherein the application set comprises at least one application, wherein the application can be owned by the user, licensed from another party with permission, or freely usable.

568. The method of claim 558, further comprising:

registering a plugin for a fee.

569. The method of claim 558, further comprising:

providing a context for a fee.

570. The method of claim 558, further comprising:

providing a context type for a fee.

571. The method of claim 558, further comprising: providing a service for a fee.

572. The method of claim 558, further comprising:

providing a fee for the distributing step, wherein the fee comprises at least one of a subscription for duration, wherein duration comprises a time period, a lump sum, in installments, or advance payment for subscription.

573. The method of claim 558, further comprising:

charging by the platform a fee for at least one of a listing, a subscription management, or an action for facilitating a transaction.

574. The method of claim 558, further comprising:

updating at least one of an application, an application set, a context type, a context to a latest version.

575. The method of claim 558, further comprising:

determining a fee to charge for at least one of a new subscription or a new order.

576. The method of claim 558, further comprising:

updating a fee to charge for at least one of a new subscription, existing subscription, new order or existing order.

577. The method of claim 576, further comprising:

notifying a subscriber of an update made in accordance with the updating step.

578. The method of claim 558, further comprising:

purchasing the application or plugin by a context.

579. The method of claim 558, further comprising:

purchasing or subscribing to the application, plugin, or context type by a context.

580. The method of claim 558, further comprising:

accessing by a user in context of the application or plugin if the user has permissions to do so.

581. The method of claim 558, further comprising:

accessing by a user in a context of the application, plugin or context type if the user has permissions to do so

582. A method comprising the computer executed steps of:

running one or more single-user applications on an application platform;

running one or more multi-user applications on the application platform; and charging at least one of an account or a user for using the application platform.

583. The method of claim 582, wherein the one or more single -user applications comprises one or more personal applications and wherein the one or more multi-user applications comprises one or more collaboration-enabled multi-user applications.

584. A method comprising the computer executed steps of:

running one or more applications on a context-centric application platform; charging at least one of an account or a user for using the application platform.

585. The method of claim 584, further comprising:

pricing for using application platform per user.

586. The method of claim 584, further comprising:

pricing for using application platform per context.

587. The method of claim 584, further comprising:

pricing for using application platform per an application.

588. The method of claim 584, further comprising: pricing for using application platform per an application set.

589.The method of claim 584, further comprising:

pricing for using application platform per application-per-context.

590.The method of claim 584, further comprising:

pricing for using application platform per user-per-context.

591. The method of claim 584, further comprising:

pricing for using application platform per user-per-application.

592.The method of claim 584, further comprising:

pricing for using application platform per user-per-application-per-context.

593.The method of claim 584, further comprising:

pricing for using application platform per user-per-application set-per-context.

594.The method of claim 584, further comprising:

pricing for using application platform per application set-per-context.

595.The method of claim 584, further comprising:

pricing for using application platform per at least one of the following: user, context, application, application set, user-per-context, user-per-application, user-per- application-per-context, user-per-application set-per-context, application per-context or application set-per-context.

596.The method of claim 584, further comprising:

pricing for using application platform per at least one of a subscription for duration, wherein duration comprises a time period, a lump sum, in installments, or advance payment for subscription.

597. The method of claim 585, further comprising:

subscribing to an application platform payment plan.

598. The method of claim 597, further comprising:

obtaining one or more quotas to use the application platform.

599. The method of claim 597, further comprising:

obtaining one or more quotas to use the application platform,

wherein the quotas comprise at least one of context quotas, data quota, user quotas, or application quotas.

600. The method of claim 585, further comprising:

configuring one or more contexts, wherein each one of the one or more contexts comprises a shared characteristic so as to allow free public access to the one or more contexts.

601. The method of claim 585, further comprising:

charging a fee by the application platform for at least one of a context, a context type, a data storage, an application, an application plugin, a quality of service and a resource, priority or guarantee for speed, bandwidth, processing, reliability or responsiveness.

602. The method of claim 584, further comprising:

requiring a payment for creating a context, wherein the context comprises a shared characteristic.

603. The method of claim 584, further comprising:

requiring a payment for accessing a context, wherein the context comprises a shared characteristic.

604. The method of claim 603, further comprising: requiring a single entity payment, wherein the single entity payment comprises a payment in full by at least one of a single user or a group.

605. The method of claim 603, further comprising:

requiring a members payment, wherein the members payment comprises a payment by a plurality of users, wherein each one of the plurality of users pay a fair share.

606. The method of claim 603, further comprising:

requiring a social payment, wherein the social payment comprises a payment by a plurality of users, wherein each one of the plurality of users pay a voluntary sum.

607. The method of claim 603, further comprising:

providing access to the context; and

charging by a context owner a fee to a user for providing access to the context.

608. The method of claim 607, further comprising:

providing a plurality of different payment schemes for different roles in context.

609. The method of claim 607, further comprising:

providing a plurality of different payment schemes for different applications in context.

610. The method of claim 607, further comprising:

providing a plurality of different payment schemes for different content access in context.

611. The method of claim 607, further comprising:

providing a plurality of different payment schemes, wherein the plurality of different payment schemes comprises at least one of a subscription for duration, a onetime lump sum, or in installments.

612. The method of claim 584, further comprising:

allowing access to a context type for at least one of for free or for a fee.

613. The method of claim 584, further comprising:

allowing payment for a context type by a user who wants to create a context of a context type.

614. The method of claim 584, further comprising:

allowing payment for a context type by a user who wants to change a context of a context type.

615. The method of claim 584, further comprising:

charging a user a fee for allowing access to a context type.

616. The method of claim 584, further comprising:

providing a plurality of different payment schemes, wherein the plurality of different payment schemes comprises at least one of a subscription for duration, a onetime lump sum, or in installments.

617. The method of claim 584, further comprising:

allowing payment by a context, wherein the context comprises a shared characteristic, wherein the context is associated with the users who use the context type.

618. A method comprising the computer executed steps of:

running one or more applications on a context-centric application platform; charging at least one of an account or a user for using the application platform; and

allowing access to a content type for at least one of for free or for a fee.

619. The method of claim 618, further comprising:

allowing access to a content type for at least one of for free or for a fee.

620. The method of claim 618, further comprising:

allowing payment for a context type by a user who wants to create a context of a context type.

621. The method of claim 618, further comprising:

allowing payment for a context type by a user who wants to change a context of a context type.

622. The method of claim 618, further comprising:

charging a user a fee for allowing access to a context type.

623. The method of claim 622, further comprising:

providing a plurality of different payment schemes, wherein the plurality of different payment schemes comprises at least one of a subscription for duration, a onetime lump sum, or in installments.

624. The method of claim 587, further comprising:

allowing access to an application for at least one of for free or for a fee.

625. The method of claim 587, further comprising:

allowing payment for an application by a user who uses the application.

626. The method of claim 587, further comprising:

allowing payment by a context, wherein the context comprises a shared characteristic, wherein the context is associated with a user who uses the application.

627. The method of claim 587, further comprising:

charging a user a fee for allowing access to the application for one or more contexts, wherein each one of the one or more contexts comprises a shared characteristic.

628. The method of claim 587, further comprising:

providing access to the application for bundling in at least one of a context type or a set of applications.

629. The method of claim 587, further comprising:

providing a plurality of different payment schemes, wherein the plurality of different payment schemes comprises at least one of a subscription for duration, a onetime lump sum, or in installments.

630. A method comprising the computer executed steps of:

running one or more personal applications on an application platform;

running one or more collaboration-enabled multi-user applications on the Internet application platform; and

charging a user for accessing one or more application plugins.

631. The method of claim 4, further comprising:

charging a user for accessing one or more application plugins.

632. A method comprising the computer executed steps of:

running one or more applications on a context-centric application platform;

charging a user for accessing one or more application plugins.

633. The method of claim 632, further comprising:

allowing payment for the one or more application plugins by a user who uses the one or more application plugins.

634. The method of claim 632, further comprising:

allowing payment by a context, wherein the context comprises a shared characteristic, wherein the context is associated with one or more users who use the plugins.

635. The method of claim 632, further comprising:

allowing payment by the application, wherein the application is associated with one or more users who use the plugins.

636. The method of claim 632, further comprising:

providing access to the one or more application plugins for one or more applications; and

charging a fee for the providing access step.

637. The method of claim 632, further comprising:

providing access to the one or more application plugins for one or more contexts; and

charging a fee for the providing access step.

638. The method of claim 632, further comprising:

providing access to the application for bundling in at least one of a context type or a set of applications.

639. The method of claim 632, further comprising:

providing a plurality of different payment schemes, wherein the plurality of different payment schemes comprises at least one of a subscription for duration, a onetime lump sum, or in installments.

640. The method of claim 3, further comprising:

charging a user for accessing the application platform by a subscription account.

641. A method comprising the computer executed steps of:

running one or more single-user applications on an application platform;

running one or more multi-user applications on the application platform; and charging a user for accessing the application platform by a subscription account.

642. A method comprising the computer executed steps of:

running one or more applications on a context-centric application platform; charging a user for accessing the application platform by a subscription account.

643. The method of claim 641 , further comprising:

providing a subscription to each one of a plurality of users.

644. The method of claim 641 , further comprising:

providing a subscription to each one of a plurality of context owners.

645. The method of claim 644, further comprising:

paying for by one of the plurality of context owners of a context being used by a plurality of users sharing a context associated with the one of the plurality of context users.

646. The method of claim 641 , further comprising:

managing a subscription account by one or more users.

647. The method of claim 641 , further comprising:

providing a payment of a subscription account for at least one of a plurality of contexts, wherein each one of the plurality of contexts comprises a shared characteristic, a plurality of applications, and a plurality of users.

648. A method comprising the computer executed steps of:

running one or more personal applications on an application platform;

running one or more collaboration-enabled multi-user applications on the application platform; and

charging a user for accessing the application platform by a points system for a subscription plan.

649. A method comprising the computer executed steps of: running one or more single-user applications on an application platform;

running one or more multi-user applications on the application platform; and charging a user for accessing the application platform by a points system for a subscription plan.

650. The method of claim 649, further comprising:

providing a set number of points per a duration of subscription.

651. The method of claim 649, further comprising:

purchasing points separately.

652. The method of claim 649, further comprising:

redeeming at least one of an item or a service using points.

653. The method of claim 652, wherein the an item or a service comprises at least one of an application, an application update, a plugin, a context, a context type, a context access, a data storage, a bandwidth, a quality of service and a resource, priority or guarantee for speed, bandwidth, processing, reliability or responsiveness.

654. A system, comprising:

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.

655. The system of claim 654, wherein the one or more single user applications comprises one or more personal applications.

656. The system of claim 655, wherein the one or more multi-user applications comprises one or more collaboration-enabled multi-user applications.

657. The system of claim 654, wherein the online application platform comprises an Internet application platform.

658. The system of claim 654, wherein the online application platform comprises one or more of a software platform or an online application platform.

659. The system of claim 655 wherein a plurality of users use the one or more collaboration-enabled multi-user applications.

660. The system of claim 655, wherein a plurality of users use a common set of the one or more collaboration-enabled multi-user applications.

661. The system of claim 659, further comprising:

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 multi-user applications.

662. The system of claim 654, further comprising:

module for allowing interaction between at least one of the one or more personal applications and the one or more multi-user applications and at least one of the one or more personal applications and the one or more multi-user applications.

663. The system of claim 662, wherein the allowing interaction module comprises: module for communicating information related to a first one of the one or more personal applications or the one or more multi-user applications to a second one of the one or more personal applications or the one or more multi-user applications.

664. The system of claim 662, wherein the allowing interaction module comprises: module for accessing information related to a first one of the one or more personal applications or the one or more multi-user applications to a second one of the one or more personal applications or the one or more multi-user applications.

665. The system of claim 662, wherein the allowing interaction module comprises 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 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 multi-user applications into another one of the plurality of multi-user applications;

module for adding a new one of the plurality of multi-user applications; and module for deleting at least one of the plurality of multi-user applications.

666. The system of claim 662, wherein the allowing interaction module comprises 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 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 multi-user applications into another one of the plurality of multi-user applications;

module for adding a new one of the plurality of multi-user applications;

module for deleting at least one of the plurality of 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 to receive updates from an application or multiple applications; module for allowing a user to receive computed information taking into account of other user's information and actions;

module for passing other users' information or actions into a black box and the results can be sent to the user;

module for notifying the current user that an update is available for refresh; module for notifying the current user that the application does not have enough space and need to take action;

module for notifying another user that other users triggered security checks in the application;

module for modifying access values of contexts/applications/users, adding contexts/applications/users, removing contexts/applications/users;

module for showing the other user's current application layout and actions in real time or delayed;

module for user receiving real time updates or delayed updates;

module for user receiving one or more processed or unprocessed updates/actions of other users;

module for allowing two or more users to directly communicate with each other, text chat, audio, video, other methods;

module for allowing two or more users to share files or information with each other, including files, pictures, messages and videos;

module for requesting or causing an application to act in a certain way;

module for requesting or causing an application to provide data or information; module for requesting or causing an application to change parameters or data; module for requesting or subscribing to an application so requestor is notified on any change on requested triggers;

module for requesting or directly removing, updating or modifying an application from the software platform; and

module for requesting or directly modifying a target application to alter its behavior.

667. A system, comprising: module for creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts comprises 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 comprises 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.

668. The system of claim 667, wherein the plurality of contexts comprises a plurality of collaboration-enabled contexts.

669. The system of claim 667, further comprising the module of:

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.

670. The system of claim 669, 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.

671. The system of claim 669, wherein the selected one or more of the plurality of users comprises those one or more of the plurality of users who share an interest in the one or more common characteristics.

672. The system of claim 667, wherein the one or more software applications comprises:

one or more Web applications.

673. The system of claim 669, wherein the one or more software applications comprises:

one or more Web applications.

674. The system of claim 667, wherein the one of more software applications comprises 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.

675. The system of claim 669, wherein the one of more software applications comprises 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.

676. The system of claim 658, further comprising:

module for providing one or more personal applications on the software platform; and

module for providing one or more multi-user applications on the software platform.

677. The system of claim 676, further comprising:

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.

678. The system of claim 676, wherein the one or more multi-user applications comprises one or more collaboration-enabled multi-user applications.

679. The system of claim 676, further comprising:

module for providing one or more business applications on the software platform.

680. The system of claim 679, further comprising:

module for allowing a plurality of usages, wherein the plurality of usages comprises

module for use by one person of the software platform; and

module for 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.

681. The system of claim 680, wherein the plurality of usages further comprises: module for 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.

682. The system of claim 679, further comprising:

module for making the platform available via the Internet.

683. The system of claim 679, further comprising:

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.

684. The system of claim 683, wherein the information is communicated via the Internet.

685. A system, comprising: module for allowing at least one of a plurality of users to configure a context, wherein the context comprises a plurality of software applications, wherein the plurality of software applications comprise at least one of a plurality of personal applications, a plurality of collaboration-enabled multi-user applications, and a plurality of business applications, and

wherein the at least one of the plurality of users may configure the context by adding or deleting or editing at least one of a plurality of personal applications, a plurality of collaboration-enabled multi-user applications, and a plurality of business applications.

686. A system, comprising:

module for creating a plurality of collaborative contexts;

module for creating a plurality of software applications;

module for linking the plurality of software applications to a respective one of the plurality of collaborative contexts; and

module for enabling additional features in at least one of the plurality of software applications linked to the respective one of the plurality of collaborative contexts.

687. The system of claim 686, wherein each one of the plurality of collaborative contexts comprises the plurality of software applications.

688. A system, comprising:

module for creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts comprises a common characteristic;

module for providing a plurality of software applications on the software platform;

module for associating data inputted into the software platform with a respective one of the plurality of contexts and a respective one of the plurality of software applications, simultaneously.

689. The system of claim 688, further comprising: module for linking the plurality of software applications to a respective one of the plurality of collaborative contexts.

690. The system of claim 688, wherein each one of the plurality of contexts comprises: an associated one or more of the plurality of software applications, wherein a user having access to the associated one or more of the plurality of software application has access to data relating to a respective one of the each one of the plurality of contexts.

691. The system of claim 690, wherein the access to data is determined by at least one of a context, an application or a user.

692. The system of claim 688, wherein each one of the plurality of contexts comprises: an associated set of the plurality of software applications, wherein each one of the set comprises different types of data.

693. The system of claim 688, wherein each one of the plurality of contexts comprises: an associated set of the plurality of software applications.

694. The system of claim 688, further comprising:

module for adding an association of data to at least one of a context or an application;

module for modifying an association of data to at least one of a context or an application; and

module for removing an association of data to at least one of a context or an application.

695. The system of claim 694, wherein the modifying module is initiated by at least one of a user, a context and an application.

696. A system, comprising: module for creating an online software platform on an infrastructure, wherein the online software platform comprises a plurality of software applications; and

module for creating a social networking function on the infrastructure, wherein a plurality of users may communicate with each other via the social networking function.

697. The system of claim 696, further comprising:

module for creating a plurality of collaborative contexts, wherein each one of the plurality of collaborative contexts comprises a common characteristic; and

module for creating a plurality of software applications.

698. The system of claim 697, further comprising:

module for running one or more personal applications on the online software platform; and

module for running one or more collaboration-enabled multi-user applications on the online software platform.

699. The system of claim 697, further comprising:

module for running one or more single-user applications on the online software platform; and

module for running one or more multi-user applications on the online software platform.

700. The system of claim 698, wherein the plurality of users use the one or more collaboration-enabled multi-user applications.

701. The system of claim 698, wherein the plurality of users use a common set of the one or more collaboration-enabled multi-user applications.

702. The system of claim 700, further comprising: 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 the collaboration-enabled multi-user applications.

703. The system of claim 702, further comprising:

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 collaboration- enabled multi-user applications.

704. The system of claim 703, wherein the allowing interaction module comprises: module for communicating information related to a first one of the one or more personal applications or the one or more collaboration-enabled multi-user applications to a second one of the one or more personal applications or the one or more collaboration- enabled multi-user applications.

705. The system of claim 703, wherein the allowing interaction module comprises: 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 multiuser 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 multi-user applications;

module for adding a new one of the plurality of collaboration-enabled multi-user applications; and

module for deleting at least one of the plurality of collaboration-enabled multiuser applications.

706. The system of claim 696, further comprising: module for creating a plurality of collaboration-enabled contexts on the online software platform, wherein each one of the plurality of collaboration-enabled contexts comprises a context set comprising one or more common characteristics;

module for creating a plurality of collaboration-enabled elements on the online software platform, wherein each one of the plurality of collaboration-enabled elements comprises a software set comprising one or more software applications;

module for changing the value of the context set, by adding or deleting at least one of the one or more common characteristics; and

module for changing the value of the software set, by adding or deleting at least one of the one or more software applications.

707. The system of claim 706, further comprising the module of:

module for enabling the 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 least one of the one or more software applications.

708. The system of claim 707, 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.

709. The system of claim 708, wherein the selected one or more of the plurality of users comprises those one of the plurality of users who shares an interest in the one or more common characteristics.

710. The system of claim 708, wherein the plurality of software applications comprises:

one or more Web applications.

711. The system of claim 710, wherein the one of more software applications comprises 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.

712. The system of claim 696, further comprising:

module for creating one or more personal applications on the online software platform;

module for creating one or more collaboration-enabled multi-user applications on the online software platform;

module for creating data storage on the online software platform; and module for creating a user interface for the online software platform;

wherein a user of the plurality of the users may create a customized set of at least one of the one or more personal applications, at least one of the one or more

collaboration-enabled multi-user applications, at least one of a data storage, and at least one of a user interface.

713. The system of claim 696, further comprising:

module for building one or more personal applications on the online software platform;

module for building one or more collaboration-enabled multi-user applications on the online software platform; and

module for building one or more business applications on the online software platform.

714. The system of claim 713, further comprising:

module for allowing a plurality of usages, wherein the plurality of usages comprises

module for use by one person of the plurality of users of the online software platform; and

module for use by the plurality of persons of the online software platform, wherein each one of the plurality of persons interacts via the online software platform with at least another one of the plurality of persons.

715. The system of claim 714, wherein the plurality of usages further comprises: module for use by a third party, wherein the third party uses a third party software platform different from the online software platform, and wherein the third party may use the online software platform on at least one of pay for use basis or free basis.

716. The system of claim 696, further comprising:

module for making the online software platform available via the Internet.

717. The system of claim 696, further comprising:

module for installing the online software platform on each one of a plurality of computers; and

module for communicating information relating to a first online software platform installed on a first one of the plurality of computers to a second online software platform installed on a second one of the plurality of computers.

718. The system of claim 717, wherein the information is communicated via the Internet.

719. The system of claim 696, further comprising:

module for allowing at least one of the plurality of users to configure a context, wherein the context comprises at least two of the plurality of software applications, wherein the plurality of software applications comprise at least one of a plurality of personal applications, a plurality of collaboration-enabled multi-user applications, and a plurality of business applications; and

wherein the at least one of the plurality of users may configure the context by adding or deleting the at least one of a plurality of personal applications, a plurality of collaboration-enabled multi-user applications, and a plurality of business applications.

720. The system of claim 696, further comprising:

module for creating a plurality of collaborative contexts, wherein each one of the plurality of collaborative contexts comprises at least two of the plurality of software applications;

module for linking the at least two of the plurality of software applications to a respective one of the plurality of collaborative contexts; and

module for creating additional features in at least one of the at least two of the plurality of software applications linked to the respective one of the plurality of collaborative contexts.

721. The system of claim 696, further comprising:

module for creating a plurality of contexts on the software platform, wherein each one of the context comprises a common characteristic; and

module for associating data inputted into the software platform with a respective one of the plurality of contexts and a respective one of the plurality of software applications, simultaneously.

722. The system of claim 721, wherein each one of the plurality of contexts comprises: an associated one or more of the plurality of software applications, wherein a user having access to the associated one or more of the plurality of software application has access to the data relating to a respective one of the each one of the plurality of contexts.

723. The system of claim 721, wherein each one of the plurality of contexts comprises: an associated set of the plurality of software applications, wherein each one of the set comprises different types of data.

724. A system, comprising:

module for creating one or more work-related applications on a software platform; and

module for creating one or more non-work-related applications on the software platform.

725. The system of claim 724, wherein the software platform comprises an online software platform.

726. The system of claim 724, wherein the one or more work-related applications comprises one or more collaborative multi-user applications; and wherein the one or more non-work-related applications comprises one or more online single-user personal applications.

727. The system of claim 724, wherein the one or more work-related applications comprises one or more collaborative multi-user applications; and wherein the one or more non- work-related applications comprises one or more single -user personal applications.

728. The system of claim 724, further comprising:

module for creating one or more collaborative multi-user applications on the software platform; and module for creating a social networking function on the software platform, wherein a plurality of users may communicate with each other via the social networking function.

729. The system of claim 728, wherein the software platform comprises an online software platform.

730. The system of claim 724, further comprising:

module for creating one or more multi-user applications on the software platform; and

module for creating a social networking function on the software platform, wherein a plurality of users may communicate with each other via the social networking function.

731. The system of claim 725, further comprising:

module for creating one or more multi-user applications on the online software platform; and

module for creating a social networking function on the online software platform, wherein a plurality of users may communicate with each other via the social networking function.

732. The system of claim 724, further comprising:

module for associating at least one of the one or more work-related applications to a respective at least one of the one or more non-work-related personal applications on the software platform.

733. The system of claim 732, wherein the associating module further comprises: module for entering simultaneously information entered into the at least one of the one or more work-related applications into a respective one of the one or more non-work- related personal applications.

734. The system of claim 725, further comprising:

module for associating at least one of the one or more work-related applications to a respective at least one of the one or more non-work-related personal applications on the online software platform.

735. The system of claim 734, wherein the associating module further comprises: module for entering simultaneously information entered into the at least one of the one or more work-related applications into a respective one of the one or more non-work- related personal applications.

736. The system of claim 724, further comprising:

module for creating one or more work-related applications on a software platform;

module for creating one or more non-work-related applications on the software platform; and

module for associating at least one of the one or more work-related applications to a respective at least one of the one or more non-work-related applications on the software platform.

737. The system of claim 736, wherein the associating module further comprises: module for entering simultaneously information entered into the at least one of the one or more work-related applications into a respective one of the one or more non-work- related applications.

738. The system of claim 736, wherein the associating module further comprises: module for enabling interaction between the at least one of the one or more work- related applications and a respective one of the one or more non-work-related

applications.

739. The system of claim 725, further comprising: module for associating at least one of the one or more work-related applications to a respective at least one of the one or more non-work-related applications on the online software platform.

740. The system of claim 739, wherein the associating module further comprises: module for entering simultaneously information entered into the at least one of the one or more work-related applications into a respective one of the one or more non-work- related applications.

741. The system of claim 739, wherein the associating module further comprises: module for enabling interaction between the at least one of the one or more work- related applications into a respective one of the one or more non- work-related

applications.

742. The system of claim 741 , wherein the allowing interaction module comprises 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 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 multi-user applications into another one of the plurality of multi-user applications;

module for adding a new one of the plurality of multi-user applications;

deleting at least one of the plurality of 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 to receive updates from an application or multiple applications;

module for allowing a user to receive computed information taking into account of other user's information and actions;

module for passing other users' information or actions into a black box and the results can be sent to the user;

module for notifying the current user that an update is available for refresh; module for notifying the current user that the application does not have enough space and need to take action;

module for notifying another user that other users triggered security checks in the application;

module for modifying access values of contexts/applications/users, adding contexts/applications/users, removing contexts/applications/users;

module for showing the other user's current application layout and actions in real time or delayed;

module for user receiving real time updates or delayed updates;

module for user receiving one or more processed or unprocessed updates/actions of other users;

module for allowing two or more users to directly communicate with each other, text chat, audio, video, other methods;

module for allowing two or more users to share files or information with each other, including files, pictures, messages and videos;

module for requesting or causing an application to act in a certain way;

module for requesting or causing an application to provide data or information; module for requesting or causing an application to change parameters or data; module for requesting or subscribing to an application so requestor is notified on any change on requested triggers;

module for requesting or directly removing, updating or modifying an application from the software platform; and module for requesting or directly modifying a target application to alter its behavior.

743. A system, comprising:

module for creating a plurality of contexts, wherein each one of the plurality of contexts relate to a common characteristic;

module for creating a plurality of types, wherein each one of the plurality of types relate to a common type of at least one of an activity or a category;

module for color coding the plurality of contexts, wherein the color coding comprises a plurality of colors, and wherein each one of the plurality of contexts is coded with a respective one of the plurality of colors; and

module for shape coding the plurality of types, wherein the shape coding comprises a plurality of shapes, and wherein each one of the plurality of types is coded with a respective one of the plurality of shapes.

744. The system of claim 743 , further comprising at least one of:

module for the shape coding assignment for at least one of a context and a type is consistent across at least a combination of at least a platform, application, context or user; module for the color coding assignment for at least one of a context and a type is consistent across at least a combination of at least a platform, application, context or user; module for the coding method and assignment can be changed by at least one platform, application, context and user;

module for the coding assignment for at least one user, context, application, platform can be different from the coding assignment from another at least another one of user, context, application, platform; and

module for a first coding information for at least one context or type can be identical as a second coding information for at least one context or type.

745. The system of claim 743, further comprising: module for creating a plurality of items, wherein each one of the plurality of items is associated with at least one of the plurality of contexts.

746. The system of claim 743, wherein when one of the plurality of items is associated with at least two of the plurality of contexts, the color coding module comprises:

module for color coding the one of the plurality of items associated with a first one of the at least two of the plurality of contexts with a first color; and

module for color coding the one of the plurality of items associated with a second one of the at least two of the plurality of contexts with a second color.

747. The system of claim 743, further comprising:

module for color coding at least one of the plurality of types and the plurality of contexts, wherein the color coding comprises a plurality of colors, and wherein each one of the at least one of the plurality of types and plurality of contexts is coded with a respective one of the plurality of colors; and

module for shape coding at least one of the plurality of types and plurality of contexts, wherein the shape coding comprises a plurality of shapes, and wherein each one of the at least one of the plurality of types and plurality of contexts is coded with a respective one of the plurality of shapes.

748. The system of claim 743, further comprising:

module for creating a search engine, wherein the search engine provides a plurality of search results associated with a search query;

module for determining at least one of the plurality of search results associated with at least one of the plurality of contexts; and

module for displaying a plurality of search results utilizing the at least a color and shape coding information associated with the plurality of search results, wherein at least one of the plurality of search results is associated with at least a context and type that is associated with at least a color and shape coding.

749. The system of claim 743, further comprising: module for using a coloring characteristic, wherein the coloring characteristic is used to indicate the color coding.

750. The system of claim 749, wherein the coloring characteristic comprises at least one of:

a color bar, color shading, color shape, or color text

751. The system of claim 743, further comprising at least one of:

module for performing by a user of the at least a color and shape coding assignment;

module for generating dynamically the least a color and shape coding assignment according to the content of at least one contexts and types; or

module for assigning the at least a color and shape coding assignment so as to minimize a total number of coding assignments in a scope, wherein the scope comprises at least one of a user, a context, a type, a application, and a platform.

752. A system, comprising:

module for generating a design for a user interface;

module for selecting a color theme of the user interface, wherein the color theme comprises a plurality of colors; and

module for coloring the user interface using colors calculated from a chosen plurality of colors, wherein the chosen plurality of colors and the output color set has a deterministic relationship, wherein the output color set comprises of a plurality of colors.

753. The system of claim 752, further comprising:

module for selecting a parameter of the user interface, wherein the parameter comprises one or more predetermined characteristic; and

module for customizing the user interface based on the parameter.

754. The system of claim 753, wherein the parameter comprises at least one indeterministic value.

755. The system of claim 753, wherein the parameter comprises of at least one of: date; time; temperature; humidity; elevation; visibility; wind direction; wind speed; location; speed; acceleration; compass direction; level measurement; weather status; lighting condition; user information; user activity; context information; context activity; application information; application activity; financial activity; and financial information.

756. The system of claim 753, further comprising:

module for creating a plurality of color formulas, wherein each one of the plurality of color formulas define a plurality of colors used to color the user interface.

757. The system of claim 753, further comprising:

module for creating a plurality of color formulas, wherein each one of the plurality of color formulas define a plurality of characteristics relating to a plurality of colors used to color the user interface.

758. The system of claim 757, wherein the plurality of characteristics comprises at least one of:

a shade of color, a pattern of color, a brightness of color, a contrast, a hue, a saturation, a value, a complementary color, or a predetermined characteristic of color.

759. The system of claim 752, wherein the color theme further comprises at least one image.

760. The system of claim 753, wherein the color theme further comprises at least one image.

761. The system of claim 760, further comprising: module for choosing at least one image of color theme of the user interface from a plurality of images according to at least one of the parameter and the selected plurality of colors.

762. The system of claim 761, wherein the choosing module considers whether the image will match the generated user interface.

763. A system, comprising:

module for creating a plurality of contexts, wherein each one of the plurality of contexts comprises a common characteristic, and wherein each one of the plurality of contexts is enabled to be associated with one or more of a plurality of users; and

module for calculating one or more mutual contexts, wherein the one or more mutual context comprises at least one of the plurality of contexts that is associated with the one or more of a plurality of users.

764. A system, comprising:

module for creating a plurality of contexts, wherein each one of the plurality of contexts comprises a common characteristic, and wherein each one of the plurality of contexts is enabled to be associated with one or more of a plurality of users; and

module for indicating one or more mutual contexts, wherein the one or more mutual context comprises at least one of the plurality of contexts that is associated with the one or more of a plurality of users.

765. The system of claim 763, wherein the plurality of contexts comprises a plurality of collaborative contexts and wherein the one or more mutual contexts comprises one or more mutual collaborative contexts.

766. The system of claim 764, wherein the indicating module comprises at least one of: module for graphically showing the one or more mutual contexts; and

module for textually showing the one or more mutual contexts.

767. The system of claim 763, further comprising:

module for defining a collaboration member set, wherein the collaboration member set comprises a plurality of users who are defined to be members of one the plurality of collaborative contexts; and

module for indicating one or more a plurality of users who are not members of the collaboration member set as being related to one of the collaborative contexts.

768. The system of claim 767, wherein the one or more plurality of users who are not members of the collaboration member set comprise at least one of being known to a member of the collaboration member set, being connected with a member of the collaboration member set, or affecting a member of the collaboration member set.

769. A system, comprising:

module for creating a plurality of applications, wherein each one of the plurality of applications comprises at least one common function, and wherein each one of the plurality of applications is enabled to be associated with one or more of a plurality of users; and

module for calculating one or more mutual applications, wherein the one or more mutual applications comprises at least one of the plurality of applications that is associated with the one or more of a plurality of users.

770. A system, comprising:

module for creating a generalized context on an online application platform, wherein the generalized context comprises a plurality of contexts, and wherein each one of the plurality of contexts comprises a common characteristic.

771. The system of claim 770, wherein the plurality of contexts comprises a plurality of collaborative contexts.

772. The system of claim 771 , wherein the plurality of collaborative contexts comprises at least one of: at least one context, wherein the context comprises a shared characteristic;

at least one application, wherein the application comprises a software application; and

at least one application in context, wherein the application in context comprises a software application attributed to a predetermined context.

773. The system of claim 771 , wherein the plurality of collaborative contexts comprises at least one of:

at least one second type of context, wherein the context comprises a shared characteristic;

at least one application, wherein the application comprises a software application; and

at least one application in context, wherein the application in context comprises a software application attributed to a predetermined context.

774. The system of claim 773, wherein each one of the plurality of collaborative contexts comprises a plurality of collaborative contexts, and wherein each one of the plurality of collaborative contexts comprises a common characteristic.

775. The system of claim 773, wherein a third party creates at least one of the at least one application.

776. The system of claim 773, wherein a third party may customize a characteristic of the at least one application.

777. The system of claim 773, wherein the at least one application comprises at least one web application.

778. The system of claim 773, wherein the online application platform comprises a cloud- based online application platform.

779. The system of claim 778, wherein the cloud-based online application platform is accessible via the Internet.

780. The system of claim 773, further comprising:

module for creating a plurality of context templates, wherein each one of the plurality of context templates comprises a predetermined one of the at least one context, a predetermined one of the at least one application, and a predetermined one of the at least one application in context.

781. The system of claim 780, wherein each one of the plurality of context templates comprises at least one of a predetermined one of the at least one context, a predetermined one of the at least one application, a predetermined one of the at least one application in context, and a predetermined set of settings related to the respective one of the at least one context, the at least one application, and the at least one application in common.

782. The system of claim 780, wherein each one of the plurality of context templates comprises a predetermined set of settings related to the respective one of the at least one context, the at least one application, and the at least one application in common.

783. The system of claim 780, wherein each one of the plurality of context templates comprises at least comprises a predetermined one of the at least one application, a predetermined one of a custom application, and a predetermined one of a third party application.

784. The system of claim 780, wherein each one of the plurality of context templates comprises at least one of a customized content type or a custom data.

785. The system of claim 780, wherein each one of the plurality of context templates may be at least one of having open access or having controlled access.

786. The system of claim 780, wherein the creating the generalized context module comprises:

module for selecting at least one of the plurality of context templates.

787. The system of claim 780, wherein each one of the plurality of context templates comprises at least comprises a predetermined one of the at least one context, a predetermined one of the at least one application, a predetermined one of the at least one application in context, and a predetermined set of settings related to the respective one of the at least one context, the at least one application, and the at least one application in common.

788. The system of claim 786, wherein the creating the generalized context module further comprises:

module for modifying an attribute of the at least one of the plurality of context templates.

789. A system, comprising:

module for creating at least one server platform and at least one client platform on an online application platform.

790. The system of claim 789, wherein the at least one server platform and the at least one client platform reside on a single computing device.

791. The system of claim 790, wherein the at least one client platform connects to at least two of the at least one server platform.

792. The system of claim 790, wherein the at least one server platform connects to at least two of the at least one client platform.

793. The system of claim 789, wherein the at least one server platform comprises a plurality of contexts and an application data, wherein each one of the plurality of contexts comprises a common characteristic, and wherein the at least one client platform comprises at least one of an application processing, an application user interface, or a non-permanent data store for a respective one of the plurality of contexts.

794. The system of claim 789, wherein the at least one server platform comprises a plurality of contexts and application data, wherein each one of the plurality of contexts comprises a common characteristic, and wherein the at least one client platform comprises at least one of an application processing, an application user interface, or a data store for a respective one of the plurality of contexts.

795. The system of claim 794, further comprising:

wherein the at least one server platform comprises at least one of an application data and an application logic, wherein the at least one client platform comprises of at least one of an application logic, an application user interface, a respective one of the application data, and a respective one of the application logic.

796. The system of claim 794, further comprising:

wherein the at least one server platform comprises a plurality of contexts, wherein each one of the plurality of contexts comprises a common characteristic, and wherein the at least one client platform comprises at least a respective one of the plurality of contexts.

797. The system of claim 796, further comprising:

wherein the at least one server platform comprises at least one of an application data and an application logic, wherein the at least one client platform comprises of at least one of an application logic, an application user interface, a respective one of the application data, and a respective one of the application logic.

798. The system of claim 794, wherein one of the at least one client platform connects to at least two of the at least one server platform.

799. The system of claim 789, wherein one of the at least one client platform connects to at least two of the at least one server platform.

800. The system of claim 799, wherein a respective one of the plurality of contexts associated with a first one of the at least two of the at least one server platform is different from a respective one of the plurality of contexts associated with a second one of the at least two of the at least one server platform.

801. The system of claim 794, wherein one of the at least one server platform serves at least two of the at least one client platform.

802. The system of claim 801 , wherein the at least two of the at least one client platform use a respective one of the plurality of contexts associated with the one of the at least one server platform.

803. The system of claim 794, wherein one of the at least one client platform connects to at least two of the at least one server platform so as to use at least one of an application or one of the plurality of contexts associated with the at least two of the at least one server platform.

804. The system of claim 789, wherein the online application platform comprises an application platform and further comprises:

module for creating at least two server platforms on the application platform; and module for connecting the at least two server platforms to the at least one client platform.

805. The system of claim 804, wherein a first one of the at least two server platforms is connected to a second one of the at least two server platforms, and the at least one client platform is connected to the first one of the at least two server platforms.

806. The system of claim 805, further comprising: module for creating at least one of an application or a context, wherein the context comprises a shared characteristic;

module for associating the at least one of an application or a context with the at least two server platforms;

module for connecting the at least one client platform to the at least two server platforms; and

module for simultaneously managing the at least one client platform via the at least two server platforms.

807. The system of claim 805, further comprising:

module for creating at least one of an application or a context, wherein the context comprises a shared characteristic;

module for associating the at least one of an application or a context with the at least two server platforms;

module for connecting the at least one client platform to the at least two server platforms; and

module for simultaneously managing the at least one of an application or a context via the at least two server platforms.

808. The system of claim 773, further comprising:

module for connecting a first one of the at least two server platforms to a second one of the at least two server platforms based on performance parameters of the at least one of user, context, or application.

809. The system of claim 807, further comprising:

module for sharing via an online application platform at least one of a client state or data associated with a respective one of the client platform among the respective one of at least two server platforms so as to facilitate communication with a client platform.

810. The system of claim 807, further comprising: module for sharing via an online application platform at least one of a client state or data associated with a respective one of the client platform among the at least two of an application or a context, each corresponding to one of at least two server platforms so as to facilitate communication with the at least two of an application or a context on the client platform.

811. The system of claim 810, further comprising:

module for sharing context data and application data between the server platforms.

812. The system of claim 804, further comprising:

wherein at least a first one of the at least two server platforms are connected to a second one of the at least two server platforms, so as to create a server network.

813. The system of claim 812, wherein the server network can share at least one of a context, wherein the context comprises a common characteristic, and one or more applications.

814. The system of claim 812, further comprising:

module for grouping the at least two server platforms into at least two server groups for a common permissions policy.

815. The system of claim 813, further comprising:

module for creating a context for at least one of the at least two server platforms, wherein the context comprises a shared characteristic; and

module for making the context available on a respective one of the at least two server platforms or the at least two server groups.

816. The system of claim 812, further comprising:

module for creating at least one client platform;

module for connecting the at least one client platform to one of the at least two server platforms; and module for allowing the viewing of an associated context corresponding to the at least two server platforms creating the server network.

817. The system of claim 813, further comprising:

module for creating an application on at least one of the at least two server platforms; and

module for making the application available on a respective one of the at least two server platforms or the at least two server groups.

818. The system of claim 817, further comprising:

module for creating at least one client platform;

module for connecting the at least one client platform to one of the at least two server platforms; and

module for allowing the viewing of an associated application corresponding to the at least two server platforms creating the server network.

819. The system of claim 812, wherein each one of the at least two server platforms are connected to another one of the at least two server platforms in a network in at least one of a network tree formation or a peer-to-peer network.

820. A system, comprising:

module for creating at least one client platform on an application platform; and module for creating at least one server platform on the application platform; module for implementing at least one of the at least one client platform or the at least one server platform as at least one of 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.

821. A system, comprising:

module for creating at least one client platform on an online application platform; module for creating at least one server platform on the online application platform; and

module for implementing at least one application on at least one of the at least one client platform and the at least one server platform.

822. The system of claim 821 , wherein the at least one client platform and the at least one server platform share a common one of the at least two applications.

823. The system of claim 821, wherein a first one of the at least two applications interact with another one of the at least two applications.

824. The system of claim 821 , wherein a first one of the at least two applications interact with another one of the at least two applications, and wherein the client and the server have different sets of applications.

825. A system, comprising:

module for creating at least one client platform on an application platform; and module for creating at least one server platform on the application platform; and module for implementing at least one application on at least one of the at least one client platform and the at least one server platform;

wherein a first one of the at least one application may interact with another one of the at least one application or at least one of the client platform or the server platform.

826. The system of claim 825, wherein the interaction of the at least one application occurs on the at least one server platform.

827. The system of claim 825, wherein the interaction of the at least one application occurs on the at least one client platform.

828. The system of claim 825, further comprising: module for implementing at least two applications on at least one of the at least one client platform and the at least one server platform;

wherein a first one of the at least two applications may interact with another one of the at least two applications or at least one of the client platform or the server platform.

829. The system of claim 825, further comprising:

wherein one of the at least two applications on a first computing device may communicate with the same one of the at least two applications on a second computing device via the application platform.

830. The system of claim 825, further comprising:

wherein one of the at least two applications on a first computing device may communicate with at least one of another one of the at least two applications or the same one of the at least two applications on a second computing device via the application platform.

831. The system of claim 825, further comprising:

wherein the at least one client platform may interact with at least two of the at least two of the at least one server platform and at least two of an application associated with a respective one of the at least two of the at least one server platform.

832. The system of claim 825, further comprising:

wherein the at least one client platform may interact with at least two of the at least two of the at least one server platform.

833. The system of claim 825, further comprising:

wherein the at least one server platform may interact with at least two of the at least two of the at least one client platform and at least two of an application associated with a respective one of the at least two of the at least one client platform.

834. The system of claim 825, further comprising: wherein the at least one server platform may interact with at least two of the at least two of the at least one client platform.

835. The system of claim 821, further comprising:

wherein the at least one server platform comprises at least one of data store, logic, computing resource, communication resource, user interface, and a connection manager, wherein the connection manager manages the at least one client platform.

836. The system of claim 821, further comprising:

wherein the at least one client platform comprises at least one of data store, logic, computing resource, communication resource, user interface, and a connection manager, wherein the connection manager manages the at least one server platform.

837. The system of claim 821, further comprising:

module for distributing at least one of an application, a data, a client platform, a server platform, and a context, wherein the context comprises a shared characteristic, to a client on an as-needed basis.

838. The system of claim 821, further comprising:

module for distributing at least one of an application, a data, a client platform, a server platform, and a context, wherein the context comprises a shared characteristic, to at least one of the at least one client platform or the at least one server platform on an as- needed basis.

839. The system of claim 821, further comprising:

module for installing at least one of an application, a data, a client platform, a server platform, and a context, wherein the context comprises a shared characteristic, to a client on an as-needed basis.

840. The system of claim 821, further comprising: module for downloading at least one of an application, a data, a client platform, a server platform, and a context, wherein the context comprises a shared characteristic, to a client automatically when connected to the at least one client platform or the at least one server platform.

841. The system of claim 821, further comprising:

module for installing at least one of an application, a data, a client platform, a server platform, and a context, wherein the context comprises a shared characteristic, to a client via an interface of the at least one client platform or the at least one server platform.

842. The system of claim 821, further comprising:

module for upgrading the client platform when the client platform is connected to the server platform.

843. The system of claim 821, wherein the client platform is temporary.

844. The system of claim 821, further comprising:

module for creating an application on the online application platform, wherein the application may contain both at least one server component and at least one client component.

845. The system of claim 844, wherein the at least one server component comprises at least one of data store, logic, computing resource, communication resource, user interface, or client management.

846. The system of claim 844, wherein the at least one client component comprises at least one of data store, logic, computing resource, communication resource, user interface, or a connection manager.

847. A system, comprising:

module for creating at least one client platform on an application platform; module for creating at least one server platform on the application platform; and module for creating an application on the application platform, wherein the application may contain both at least one server component and at least one client component;

wherein the at least one server component comprises at least one of data store, logic, computing resource, communication resource, user interface, or client

management; and

wherein the at least one client component comprises at least one of data store, logic, computing resource, communication resource, user interface, or a connection manager.

848. The system of claim 844, wherein at least one of the at least one server component and at least one client component may be at least one of non-synchronized, synchronized, or partially synchronized.

849. The system of claim 844, at least a client component or server component may hold temporary data.

850. The system of claim 847, further comprising:

module for propagating automatically an updated application code, wherein an application component comprising at least one of data, logic, user interface, structure, server component code, or client component code may be updated substantially in realtime.

851. The system of claim 850, further comprising at least one of:

module for propagating a new application code; and

module for deleting an application code.

852. The system of claim 847, further comprising:

module for propagating at least one of an action.

853. The system of claim 850, wherein the updated application code is propagated to at least two nodes that run a shared application.

854. The system of claim 850, wherein the code may be pushed across the at least one server platform.

855. The system of claim 850, wherein a user of the at least one client platform may block the code that is pushed.

856. The system of claim 850, wherein a user of the at least one server platform may block the code that is pushed.

857. A system, comprising:

module for creating at least one client platform on an online application platform; module for creating at least one server platform on the online application platform; and

module for creating an application on the online application platform, wherein the application may contain both at least one server component and at least one client component.

858. The system of claim 857, further comprising:

module for distributing the at least one client component to a client on an as- needed basis.

859. The system of claim 857, further comprising:

module for installing the at least one client component on a client.

860. The system of claim 857, further comprising:

module for downloading the at least one client component to a client

automatically when connected to the server component.

861. The system of claim 857, further comprising:

module for downloading the at least one client component automatically to a client from the online application platform.

862. The system of claim 857, further comprising:

module for installing the at least one client component to a client via at least one of the server component or a web interface of the online application platform.

863. A system, comprising:

module for creating at least one application on an application platform; and module for creating at least two contexts on the at least one application, wherein each one of the at least two contexts share a common characteristic.

864. The system of claim 863, further comprising:

module for sharing data corresponding to one of the at least one application among the at least two contexts.

865. The system of claim 863, wherein one of the at least two contexts may correspond to at least two of the at least one application.

866. The system of claim 863, wherein a first one of the at least one application corresponding a first one of the at least two contexts may interact with a second one of the at least one application corresponding to a second one of the at least two contexts.

867. The system of claim 857, further comprising:

module for extending the application by at least one plugin.

868. The system of claim 867, wherein the at least one plugin comprises at least one piece of code, wherein the at least one piece of code adds at least one functionality to the application.

869. The system of claim 868, wherein the at least one plugin may be added to the application in a specific context, wherein the specific context comprises a shared characteristic.

870. The system of claim 868, further comprising:

at least two of the application, wherein the at least one plugin provides the at least one functionality to a respective one of the at least two of the application.

871. The system of claim 869, wherein a first one of the at least one plugin may interact with another one of the at least one plugin, wherein the first one and the second one of the at least one plugin share at least one of a common specific context or a common application.

872. The system of claim 869, wherein a first one of the at least one plugin may interact with another one of the at least one plugin, wherein the first one and the second one of the at least one plugin each belong to at least one of a different specific context or a different application.

873. The system of claim 869, wherein the at least one plugin may access at least one of a data and a resource of the application.

874. A system, comprising:

module for creating at least one client platform on an online application platform; module for creating at least one server platform on the online application platform; and

module for updating data between the at least one client platform and the at least one server platform on a real-time basis.

875. The system of claim 874, further comprising:

module for placing a processing logic that performs the updating data module on at least one of the at least one client platform and the at least one server platform.

876. The system of claim 874, wherein the application platform comprises a peer-to-peer structure, wherein each node is both a server and a client.

877. The system of claim 874, further comprising:

module for synchronizing data; and

module for managing the updating of the at least one client platform.

878. The system of claim 874, wherein the updating data module supported on at least one of the at least one client platform and at least one server platform comprises at least one of at least one of 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.

879. The system of claim 874, further comprising:

module for managing the updating data module of the at least one client platform and the at least one server platform on a subscription basis.

880. The system of claim 874, further comprising:

at least one of sending or aggregating at least one hosts update to at least one of the at least one client platform and the at least one server platform.

881. The system of claim 880, further comprising:

module for monitoring by the at least one server platform of at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user or a data that is looked at by the at least one client platform.

882. The system of claim 880, further comprising:

module for subscribing by the at least one client platform to a data update stream via the at least one server platform.

883. The system of claim 880, further comprising:

module for monitoring by the at least one client platform of at least one of a context, wherein the context comprises a shared characteristic, an application, an element, or a data that is looked at by the at least one server platform.

884. The system of claim 880, further comprising:

module for monitoring by the at least one client platform of at least one of a context, wherein the context comprises a shared characteristic, an application, an element, or a data that is managed by the at least one server platform.

885. The system of claim 880, further comprising:

module for maintaining a list of at least one subscribed hosts to at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user or a data.

886. The system of claim 880, further comprising:

module for maintaining a data structure of at least one subscribed hosts to at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user or a data.

887. The system of claim 880, further comprising:

module for storing a state of the at least one client platform; and

module for determining a need for an update of the at least one client platform.

888. The system of claim 880, further comprising:

module for allowing a subscription of the at least one client platform to at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user or a data.

889. The system of claim 888, further comprising: module for storing by the at least one client platform of a dependency tree between a responsibility of the at least at least one of a client platform, server platform, an application, a context, a client and the at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user_or a data.

890. The system of claim 888, further comprising:

module for storing by the at least one server platform of a dependency tree between a subscription by the subscribers and the at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user or a data.

891. The system of claim 888, further comprising:

module for storing by the at least one server platform of a dependency tree between a subscription by the subscribers, wherein the subscribers can be a at least one of a client platform, server platform, an application, a context, a client and the at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user or a data.

892. The system of claim 888, further comprising:

module for unsubscribing by the at least one client platform of the at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user or a data.

893. The system of claim 888, further comprising:

module for unsubscribing, during at least one of a disconnect or a logout or a predetermined event, by the at least one client platform of the at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user, or a data.

894. The system of claim 888, further comprising:

module for unsubscribing, during at least one of a disconnect or a logout or a predetermined event, by the at least one subscriber of the at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user, or a data.

895. The system of claim 888, further comprising:

module for unsubscribing, during at least one of a disconnect or a logout or a predetermined event, by the at least one subscriber of the at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user, or a data and wherein the at least one subscriber can be a at least one of a client platform, server platform, an application, a context, a user, a client.

896. The system of claim 888, further comprising:

module for monitoring by the at least one server platform of at least one of the dependency tree and the subscription; and

module for determining whether changing the data will affect a respective one of the at least one client platform.

897. The system of claim 888, further comprising:

module for monitoring by the subscription provider of at least one of the dependency tree and the subscription; and

module for determining whether changing the data will affect a respective one of the at least one client platform.

898. The system of claim 891 , further comprising:

module for monitoring by the at least one server platform of at least one of the dependency tree and the subscription; and

module for determining whether changing the data will affect a respective one of the at least one client platform.

899. The system of claim 891 , further comprising:

module for monitoring by the subscription provider of at least one of the dependency tree and the subscription; and module for determining whether changing the data will affect a respective one of the at least one client platform.

900. The system of claim 897, further comprising:

module for notifying by the at least one server platform of a need to change a value of the at least one of the context, wherein the context comprises a shared characteristic, an application, an element, a user, or a data of a respective one of the at least one client platform.

901. The system of claim 897, further comprising:

module for notifying by the subscription provider of a need to change a value of the at least one of the context, wherein the context comprises a shared characteristic, an application, an element, or a data of a respective one of the at least one client platform.

902. The system of claim 897, further comprising:

module for notifying by the at least one server platform of a need to perform an action or request to perform an action.

903. The system of claim 899, further comprising:

module for notifying by the at least one server platform of a need to change a value of the at least one of the context, wherein the context comprises a shared characteristic, an application, an element, or a data of a respective one of the at least one client platform.

904. The system of claim 899, further comprising:

module for notifying by the provider of a need to change a value of the at least one of the context, wherein the context comprises a shared characteristic, an application, an element, or a data of a respective one of the at least one client platform.

905. The system of claim 900, further comprising:

module for changing the value.

906. The system of claim 901 , further comprising:

module for changing the value.

907. The system of claim 903, further comprising:

module for changing the value.

908. The system of claim 904, further comprising:

module for changing the value.

909. A system, comprising:

module for creating at least one client platform on an application platform;

module for creating at least one server platform on the application platform; module for updating data between the at least one client platform and the at least one server platform; and

module for sending by the at least one server platform of at least one of a data update or a notice to the at least one client platform.

910. A system, comprising:

wherein the at least one client platform requires the at least one of a notice or a data update.

911. The system of claim 909, further comprising:

module for updating in real-time by the at least one client platform of the at least one of a log update, a delta update or a full update.

912. The system of claim 909,further comprising:

module for combining at least two of the at least one of a log update, delta update or a full update into a single update for a host.

913. The system of claim 909, further comprising: module for splitting a single update into at least two of the at least one of a log update, a delta update or a full update into a single update for a host.

914. The system of claim 909, further comprising:

module for combining at least two of the at least one of a log update, a delta update or a full update into a single update for a host among a plurality of hosts who is at a different state from another one of the plurality of hosts.

915. The system of claim 909, further comprising:

module for splitting one of the at least one of a log update, a delta update or a full update into at least two of the at least one of a delta update or a full update for a host among a plurality of hosts who is at a different state from another one of the plurality of hosts.

916. The system of claim 909, further comprising:

module for combining at least two of the at least one of a log update, a delta update or a full update into a single update for a host among a plurality of hosts who is at a different state from another one of the plurality of hosts; and

module for splitting one of the at least one of a log update, a delta update or a full update into at least two of the at least one of a log update, a delta update or a full update for a host among a plurality of hosts who is at a different state from another one of the plurality of hosts.

917. The system of claim 909, wherein the notice indicates to the at least one client platform that an update is available.

918. The system of claim 917, wherein the notice is sent in real-time.

919. The system of claim 917, further comprising:

module for combining at least two of the at least one notice into a single notice.

920. The system of claim 917, further comprising:

module for splitting one of the at least one notice into at least two notices.

921. The system of claim 909, further comprising:

module for notifying by the at least one server platform to the at least one client platform that the at least one server platform is no longer responsible for at least one of an application, a user, an event, a context, wherein the context comprises a shared characteristic, or a data.

922. The system of claim 909, further comprising:

module for notifying by the at least one server platform to the at least one client platform that the at least one server platform is responsible for at least one of an application, a user, an event, a context, wherein the context comprises a shared characteristic, or a data.

923. The system of claim 909, further comprising:

module for notifying by the at least one server platform to the at least one client platform that the at least one server platform is handing over a responsibility for at least one of an application, a user, an event, a context, wherein the context comprises a shared characteristic, or a data to another one of the at least one server platform.

924. The system of claim 909, further comprising:

module for notifying by the at least one server platform to the at least one client platform that the at least one server platform is no longer responsible for at least one of an application, a user, an event, a context, wherein the context comprises a shared characteristic, or a data;

module for notifying by the at least one server platform to the at least one client platform that the at least one server platform is responsible for at least one of an application, a user, an event, a context, wherein the context comprises a shared characteristic, or a data; and module for notifying by the at least one server platform to the at least one client platform that the at least one server platform is handing over a responsibility for at least one of an application, a user, an event, a context, wherein the context comprises a shared characteristic, or a data to another one of the at least one server platform.

925. A system, comprising:

module for differentiating data into at least two types of data priority; and module for transmitting the data corresponding to one of the at least two types of data priority to a respective one of at least two data channels.

926. The system of claim 925, further comprising at least one of:

module for transmitting data of different priority entirely on same data channel while keeping the other channel as backup;

module for transmitting data on same channel but allow the higher priority data to have a larger usage share or proportionate to its priority of the channel;

module for transmitting data of different priority alternately on each data channel; module for transmitting data of different priority on separate data channels according to their priority, wherein a higher priority gets a better channel; and

module for using both channels as one channel, giving the higher/lower priority data a proportionate share to the combined channel capacity. The share can be calculated by taking consideration of the channels' latency, bandwidth, protocol, reliability or loss rate.

927. The system of claim 925, wherein the at two data channels have different network protocols.

928. The system of claim 925, wherein the transmitting module may be accomplished through an operating system.

929. The system of claim 925, wherein transmitting module may be accomplished through at least one of an operating system, 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.

930. The system of claim 925, further comprising:

module for determining by an application of the at least two types of data priority; and

module for determining by an application of the at least two data channels.

931. The system of claim 925, further comprising:

module for creating an application platform;

module for determining by the application platform of the at least two types of data priority and the at least two data channels.

932. The system of claim 925, further comprising:

module for creating an application platform;

module for delegating by the application platform to the application determining the at least two types of data priority and the at least two data channels.

933. A system, comprising:

module for creating an application platform;

module for transmitting data using a plurality of network channels.

934. The system of claim 906, wherein the data comprises data updates.

935. The system of claim 906, wherein each one of the plurality of network channels have at least one of a same or a different one of at least one of a bandwidth or a latency specification.

936. The system of claim 906, wherein at least two of the plurality of network channels correspond to a different one of at least two network protocols.

937. The system of claim 906, wherein each one of the plurality of network channels have at least one of a same or a different one of at least one of a bandwidth, a latency specification, or a network protocol.

938. The system of claim 933, wherein data updates are transmitted through an operating system.

939. The system of claim 933, wherein data updates are transmitted through at least one of an operating system, a virtual machine, a process or thread, an application, a browser, a browser extension, an application inside a browser or an application inside a browser extension.

940. The system of claim 933, wherein the data are transmitted through an operating system.

941. The system of claim 933, wherein the data are transmitted through at least one of an operating system, a virtual machine, a process or thread, an application, a browser, a browser extension, an application inside a browser or an application inside a browser extension.

942. The system of claim 925, further comprising:

module for creating an online application platform, wherein the online application platform comprises an application;

module for determining a degree of parallism by the application.

943. The system of claim 925, further comprising:

module for creating an online application platform, wherein the online application platform comprises an application;

module for determining by the online application platform of a degree of parallism.

944. The system of claim 884, further comprising:

module for delegating by the online application platform to the application the determining of the degree of parallism.

945. A system, comprising:

module for creating at least one client platform on an online application platform; module for creating at least one server platform on the application platform; and module for updating data between the at least one client platform and the at least one server platform.

946. A system, comprising:

module for creating at least two computing nodes on an online application platform;

module for updating data between the at least two computing nodes on an online application platform.

947. The system of claim 946, wherein the updating data module consists of transmitting at least one of a data update, a new data, a removal of data, an action, a request, a notice, a platform, an application, a context, a platform element, a metadata, a data reference, a message or an alert.

948. The system of claim 946, wherein the updating comprises transmitting a full update and wherein the full update comprises a new value which a receiver should update to.

949. The system of claim 946, further comprising:

module for sending by a node among a plurality of nodes to another one of the plurality of nodes all data for at least one of a context, wherein the context comprises a shared characteristic, an application, or an application inside a context.

950. The system of claim 946, further comprising: module for sending by a node among the plurality of nodes to another one of the plurality of nodes a partial data.

951. The system of claim 946, further comprising:

module for sending by a node among the plurality of nodes to another one of the plurality of nodes a temporary data.

952. The system of claim 946, further comprising:

module for sending by a node among the plurality of nodes to another one of the plurality of nodes no data; and

module for waiting for the another one of the plurality of nodes to request a data when the data is required for operation.

953. The system of claim 945, further comprising:

module for calculating a data difference between the at least one client platform and the at least one server platform; and

module for transmitting the data difference.

954. The system of claim 946, further comprising:

module for calculating a data difference between a node and another node; and module for transmitting the data difference.

955. The system of claim 946, further comprising:

module for transmitting a calculated action to a receiver, wherein the calculated action comprises a data update;

module for acting upon the calculated action, wherein the acting upon module achieves a same effect as a full update.

956. The system of claim 945, further comprising: module for transmitting at least one of data or action from the point last communicated by the at least one of the at least one client platform and the at least one server platform.

957. The system of claim 946, further comprising:

module for transmitting at least one of data or action from the point last communicated by at least one node to at least one another node.

958. The system of claim 946, further comprising:

module for transmitting at least one of data or action from the point last communicated by at least one node to at least one another node, wherein the last point of communication is known through direct or indirect communication between the two nodes, or through previous communication history known from at least one of locally, from another source or from a centralized source.

959. The system of claim 945, further comprising:

module for disconnecting the at least one client platform from the at least one server platform;

module for modifying local data, so as to obtain modified local data;

module for determining whether the modified local data conflicts with a change in the at least one server platform;

module for storing the change if the change conflicts with the modified local data.

960. The system of claim 946, further comprising:

module for disconnecting the at least one node from the at least one another node; module for modifying local data, so as to obtain modified local data;

module for determining whether the modified local data conflicts with a change in the at least one another node;

module for storing the change if the change conflicts with the modified local data.

961. A system, comprising: module for creating at least one client platform on an application platform;

module for creating at least one server platform on the application platform; module for updating data between the at least one client platform and the at least one server platform; and

module for transmitting an update by one of a plurality of computing nodes to another one of the plurality of computing nodes.

962. A system, comprising:

module for creating at least two nodes on an application platform;

module for transmitting an update by one of a plurality of nodes to another one of the plurality of nodes.

963. The system of claim 962, further comprising:

module for replacing the update with different data.

964. The system of claim 962, further comprising:

module for combining the update with different data.

965. The system of claim 962, further comprising:

module for replacing the update with different data; and

module for combining the update with different data.

966. The system of 949, further comprising:

module for propagating by one of the plurality of nodes of an update directly to another one of the plurality of nodes without changing the update.

967. The system of 961, further comprising:

module for propagating by one of the plurality of nodes of an update directly to another one of the plurality of nodes without changing the update.

968. The system of 962, further comprising: module for propagating by one of the plurality of nodes of an update directly to another one of the plurality of nodes without changing the update.

969. A system, comprising:

module for creating at least one client platform on an application platform;

module for creating at least one server platform on the application platform; module for updating data between the at least one client platform and the at least one server platform; and

module for creating a conflict resolution logic on at least one of the at least one client platform, at least one server platform, and a general node, wherein the conflict resolution logic may determine how to resolve at least one of a data conflict or an action conflict.

970. A system, comprising:

module for creating at least one sender on an application platform;

module for creating at least one receiver on the application platform;

module for updating data between the at least sender and the at least one receiver; and

module for creating a conflict resolution logic on at least one of the at least one sender, at least receiver, and a general node, wherein the conflict resolution logic may determine how to resolve at least one of a data conflict or an action conflict.

971. The system of claim 970, wherein the conflict resolution logic comprises at least one of an application logic, a context logic, or an application platform logic.

972. The system of claim 970, further comprising:

module for automatically resolving by the application platform logic a conflict among a plurality of conflicts.

973. The system of claim 972, further comprising: module for requiring by the application platform logic that at least one of the application logic or context logic resolve another one of the plurality of conflicts.

974. The system of claim 971 , further comprising:

module for automatically resolving by the context logic a conflict among a plurality of conflicts.

975. The system of claim 974, further comprising:

module for requiring by the context logic that the application logic resolve another one of the plurality of conflicts.

976. The system of claim 975, further comprising:

module for requiring by the context logic that another one of the plurality of conflicts be resolved manually.

977. The system of claim 971 , further comprising:

module for automatically resolving by the application logic a conflict among a plurality of conflicts.

978. The system of claim 977, further comprising:

module for requiring by the application logic that the context logic resolve another one of the plurality of conflicts.

979. The system of claim 978, further comprising:

module for requiring by the application logic that another one of the plurality of conflicts be resolved manually.

980. The system of claim 971 , further comprising:

module for automatically resolving by at least one of the application logic or the context logic a conflict among a plurality of conflicts.

981. The system of claim 980, further comprising:

module for requiring by the application logic or the context logic that another one of the plurality of conflicts be resolved manually.

982. A system, comprising:

module for creating at least one client platform on an application platform;

module for creating at least one server platform on an application platform; and module for creating event-driven asynchronous applications on at least one of the at least one client platform, and the at least one server platform.

983. A system, comprising:

module for creating event-driven asynchronous applications on at least one of the at least one client, the at least one server on an online application platform.

984. The system of claim 982, further comprising:

module for determining an order of execution on the application platform using a priority of task.

985. The system of claim 982, further comprising:

module for determining an order of execution on the application platform using at least one of a scheduler or a queue.

986. The system of claim 982, further comprising:

module for putting a blocking event in a background processing framework, wherein the blocking event comprises a task that involve waiting time.

987. The system of claim 982, wherein the putting the blocking event module is performed manually.

988. The system of claim 982, wherein the putting the blocking event module is performed automatically by the application platform.

989. The system of claim 982, further comprising:

module for identifying a blocking event in an application on the application platform, wherein the blocking event comprises a task that involve waiting time.

990. A system, comprising:

module for creating an application on an online application platform;

module for processing a first part of the application immediately; and

module for processing a second part of the application delayed from the processing of the first part.

991. The system of claim 990, further comprising:

module for specifying by an application developer of the processing a first part of the application and the processing a second part of the application.

992. The system of claim 990, further comprising:

module for specifying by an application developer of the processing a first part of the application and the processing a second part of the application without affecting application operation, output or correctness.

993. The system of claim 990, further comprising:

module for automatically performing by the online application platform of the processing a first part of the application module and the processing a second part of the application module.

994. The system of claim 990, further comprising:

module for automatically performing by the online application platform of the processing a first part of the application module and the processing a second part of the application module without affecting application operation, output or correctness.

995. The system of claim 990, further comprising: module for setting at least one parameter on an application part; and

module for determining an execution priority of a part of the application based on the setting at least one parameter module.

996. The system of claim 990, further comprising:

module for setting at least one parameter on an application part; and

module for determining an execution priority of a part of the application based on the setting at least one parameter module without affecting application operation, output or correctness.

997. The system of claim 990, further comprising:

module for determining an execution priority of a part of the application based on a time-sensitivity.

998. The system of claim 997, wherein the determining module preserves correctness of the application operation and output.

999. The system of claim 990, further comprising at least one of:

module for determining an execution priority of a part of the application based on importance;

module for determining an execution priority by analyzing its code statically or during runtime;

module for determining an execution priority by the part's delay or expected delay, or by optimizing the total minimal delay or total expected minimal delay of all parts;

module for determining an execution priority by the part's execution time or expected execution time, or by optimizing the total execution time or expected total execution time of all parts;

module for determining an execution priority by a function or a heuristic that calculates the expected execution time or expected delay; and module for determining an execution priority by calculating the dependencies between application parts.

1000. The system of claim 999, wherein the application operation, output or correctness is not affected.

1001. The system of claim 990, further comprising:

module for storing at least one data process in the application platform; and module for executing the at least one data process so as to minimize delay.

1002. The system of claim 990, further comprising:

module for storing at least one data process in the application platform; and module for executing the at least one data process so as to minimize delay without affecting application operation, output or correctness.

1003.The system of claim 990, further comprising:

module for holding an execution of a part of the application until the application platform is available.

1004. The system of claim 990, further comprising:

module for holding an execution of a part of the application until the application platform is available without affecting application operation, output or correctness.

1005. The system of claim 990, further comprising:

module for executing concurrently a first one of a part of the application and a second one of a part of the application when the first one of a part of the application and the second one of a part of the application are safely parallel.

1006. The system of claim 990, further comprising:

module for executing concurrently a first one of a part of the application and a second one of a part of the application when the first one of a part of the application and the second one of a part of the application are safely parallel without affecting application operation, output or correctness.

1007. A system, comprising:

module for creating an application on an online application platform; and module for providing at least one of a computing framework, a data framework, or a user interface framework on the online application platform, wherein the at least one of a computing framework, a data framework, or a user interface framework support the application.

1008. The system of claim 1007, wherein the computing framework comprises at least one of an event driven framework, a multi-process framework or a multi-thread framework.

1009. The system of claim 1007, further comprising:

module for providing a main processing framework, wherein the computing framework comprises at least one of a queue, a work priority-differentiation, or a scheduler.

1010. A system, comprising:

module for creating an application on an application platform;

module for creating at least one client platform on the application platform;

module for creating at least one server platform on the application platform and module for providing a main processing framework, wherein the main processing framework comprises at least one of a queue, a work priority-differentiation, or a scheduler.

1011. The system of claim 1010, wherein the computing framework comprises at least one of an event driven framework, a multi-process framework or a multi-thread framework.

1012. The system of claim 1010, further comprising:

module for providing at least one of an event driven framework, a multi-process framework or a multi-thread framework.

1013. A system, comprising:

module for creating an application on an application platform;

module for creating at least one client platform on the application platform; module for creating at least one server platform on the application platform and module for providing at least one of an event driven framework, a multi-process framework or a multi-thread framework.

1014. The system of claim 1009, further comprising:

module for running at least one of an application or an application part in the computing framework.

1015. The system of claim 1010, further comprising:

module for running at least one of an application or an application part in the computing framework.

1016. The system of claim 1013, further comprising:

module for running at least one of an application or an application part in the computing framework.

1017. The system of claim 1007, further comprising:

module for providing a background processing framework for at least one of a less-time sensitive task, an inactive task, a blocking task or a lower priority task.

1018. The system of claim 1007, further comprising:

module for providing a background processing framework for at least one of a less-time sensitive task, an inactive task, a blocking task or a lower priority task wherein the background processing framework comprises at least one of an event driven framework, a multi-process framework or a multi-thread framework.

1019. The system of claim 1017, wherein the background processing framework can be located on the server platform, client platform, or both.

1020. The system of claim 1007, further comprising:

module for providing at least one of a queue, a work priority-differentiation, or a scheduler on a client and a server.

1021.The system of claim 1020, wherein the client comprises at least one client platform and the server comprises at least one server platform.

1022.The system of claim 1010, further comprising:

module for providing a background processing framework for at least one of a less-time sensitive, inactive, blocking or lower priority task.

1023.A system, comprising:

module for creating an application on an application platform;

module for creating at least one client platform on the application platform; module for creating at least one server platform on the application platform; and module for providing a background processing framework for at least one of a less-time sensitive task, an inactive task, a blocking task or a lower priority task.

1024. The system of claim 1022, wherein the background processing framework can be located on the server platform, client platform, or on both.

1025. The system of claim 1023, wherein the background processing framework is used to process at least one of a less-time sensitive task, an inactive task, a blocking task or a lower priority task.

1026. The system of claim 1007, further comprising:

module for providing a data store, wherein the data store may store a content for at least one of a different application and a different context, and wherein a first one of the content may be provided in different format from a second one of the content.

1027. The system of claim 1026, wherein the data store is on a client and a server.

1028. The system of claim 1027, wherein the client and the server have a temporary data cache so as to provide an efficient response.

1029. The system of claim 1027, wherein the data store on the client may be temporary.

1030. The system of claim 1027, further comprising:

module for storing partial information on at least one of the data store on the client and the data store on the server, wherein the partial information comprises a part of the complete data that is needed, wherein the complete data may comprise of data that is needed and data that is not needed.

1031. The system of claim 1027, further comprising:

module for requesting data from source only when needed.

1032. The system of claim 1030, further comprising:

module for requesting data from source only when needed.

1033. The system of claim 1007, further comprising:

module for providing a user interface framework;

module for generating a user interface via the user interface framework, using resources of at least one of client-only, server-only, or a combination of server and client resources.

1034. The system of claim 1007, further comprising: module for providing a communication framework; and module for dealing with via the communication framework at least one of network send update event and a network receive update event.

1035. The system of claim 1007, further comprising:

module for providing a communication framework; and

module for dealing with via the communication framework at least one of network send event and a network receive event.

1036. The system of claim 1007, further comprising:

module for providing a communication framework; and

module for dealing with via the communication framework at least one of update event.

1037. The system of claim 1026, further comprising:

module for updating data in real-time.

1038. The system of claim 1026, further comprising:

module for transferring bulk data.

1039. The system of claim 1026, further comprising:

module for bootstrapping a client with at least one of a required code and ; required data.

1040. The system of claim 1026, further comprising at least one of:

module for bootstrapping a client with at least one of a required code and ; required data;

module for transferring an application code;

module for transferring a context;

module for transferring an application data or a context data;

module for transferring system messages and alerts; module for transferring actions or request to actions; and

module for transferring messages, data or actions to other nodes reachable via the communication framework.

1041. A system, comprising:

module for creating an application on an online application platform; and module for providing application access to low-level event on the online application platform.

1042. The system of claim 1041, further comprising:

module for providing application access to an event from at least one of a browser, a virtual machine, a process, an operating system, an input/output device, or a hardware.

1043.The system of claim 1041, further comprising:

module for providing application access to a hardware event, wherein the hardware event comprises at least one of an interrupt or an error.

1044. The system of claim 1041, further comprising:

module for providing application access to a network event, wherein the network event comprises at least one of a received, a sent, a free to send, a timeout, or an error.

1045. The system of claim 1041, further comprising:

module for providing application access to at least one of an input event or an output event or a network event, wherein the at least one of an input event or an output event comprises at least one of a received, a sent, a free to send, a timeout, or an error.

1046. The system of claim 1041, further comprising:

module for providing application access to an I/O event, wherein the I/O event comprises at least one of a disk event or a hardware peripheral event.

1047. The system of claim 1041, further comprising: module for providing application access to an I/O event, wherein the I/O event comprises at least one of an input/output device event, a storage event or a hardware peripheral event.

1048. The system of claim 1041, further comprising:

module for providing application access to an OS event, wherein the OS event comprises at least one of an interrupt or an error.

1049. The system of claim 1041, further comprising:

module for providing application access to an OS event, wherein the OS event comprises at least one of an interrupt, an error, a message event, semaphore event, a communication event or a system event.

1050. The system of claim 1041, further comprising:

module for providing application access to a process event, wherein the process event comprises at least one of error, free, start, or completed.

1051. The system of claim 1041, further comprising:

module for providing application access to a process event, wherein the process event comprises at least one of error, free, start, completed, a message event, semaphore event or a communication event.

1052. The system of claim 1041, further comprising:

module for providing application access to a data store event, wherein the data store event comprises at least one of a data added, a data changed, a data removed, a saved, or an error.

1053. The system of claim 1041, further comprising:

module for providing application access to a data store event, wherein the data store event comprises at least one of a data added, a data changed, a data removed, a saved, an error, a data read, a data cached, a space freed, a space consumed, a free to write data, a free to read data, or a data full.

1054. A system, comprising:

module for creating an application on an online application platform; and module for processing the application on a plurality of processing cores.

1055. The system of claim 1054, further comprising:

module for providing a plurality of threads concurrently within a process.

1056. The system of claim 1054, further comprising:

module for providing a plurality of processes.

1057. The system of claim 1054, further comprising:

module for providing a plurality of computing blocks concurrently via a scheduler.

1058. The system of claim 1054, further comprising:

module for providing an event-driven processing framework capable of utilizing multiple processing cores.

1059. The system of claim 1054, further comprising:

module for providing safe parallism for a data.

1060. The system of claim 1054, further comprising:

module for providing safe parallism for the application, wherein the application uses at least one of multiple threads or processes concurrently on the online application platform.

1061. The system of claim 1054, further comprising:

module for using at least one of locks, semaphores, or access control to prevent code conflicts.

1062.The system of claim 1054, further comprising:

module for utilizing software transactional memory.

1063.The system of claim 1054, further comprising:

module for determining at least two of a plurality of blocks that can be run concurrently without conflicts.

1064. The system of claim 1054, further comprising:

module for determining at least two of a plurality of contexts that can be processed concurrently without conflicts.

1065. The system of claim 1063, further comprising:

module for determining at least two of a plurality of contexts that can be processed concurrently without conflicts.

1066. The system of claim 1054, further comprising:

module for determining at least two of a plurality of data that can be processed concurrently without conflicts.

1067. The system of claim 1063, further comprising:

module for determining at least two of a plurality of data that can be processed concurrently without conflicts.

1068. The system of claim 1064, further comprising:

module for determining at least two of a plurality of data that can be processed concurrently without conflicts.

1069. The system of claim 1065, further comprising:

module for determining at least two of a plurality of data that can be processed concurrently without conflicts.

1070. A system, comprising:

module for creating an application on an application platform; and

module for processing the application on a plurality of processing cores.

1071. The system of claim 1070, further comprising:

module for providing a plurality of threads concurrently within a process.

1072. The system of claim 1070, further comprising:

module for providing a plurality of processes.

1073. The system of claim 1070, further comprising:

module for providing a plurality of computing blocks concurrently via a scheduler.

1074. The system of claim 1070, further comprising:

module for providing an event-driven processing framework capable of utilizing multiple processing cores.

1075. The system of claim 1070, further comprising:

module for providing safe parallism for a data.

1076. The system of claim 1070, further comprising:

module for providing safe parallism for the application, wherein the application uses at least one of multiple threads or processes concurrently on the online application platform.

1077. The system of claim 1070, further comprising:

module for using at least one of locks, semaphores, or access control to prevent code conflicts.

1078. The system of claim 1070, further comprising: module for utilizing software transactional memory.

1079. The system of claim 1070, further comprising:

module for determining at least two of a plurality of blocks that can be run concurrently without conflicts.

1080. The system of claim 1070, further comprising:

module for determining at least two of a plurality of contexts that can be processed concurrently without conflicts.

1081. The system of claim 1070, further comprising:

module for determining at least two of a plurality of contexts that can be processed concurrently without conflicts.

1082. The system of claim 1070, further comprising:

module for determining at least two of a plurality of data that can be processed concurrently without conflicts.

1083.The system of claim 1079, further comprising:

module for determining at least two of a plurality of data that can be processed concurrently without conflicts.

1084. The system of claim 1080, further comprising:

module for determining at least two of a plurality of data that can be processed concurrently without conflicts.

1085. The system of claim 1081, further comprising:

module for determining at least two of a plurality of data that can be processed concurrently without conflicts.

1086. A system, comprising: module for creating a plurality of applications on an application platform; and module for providing safe parallism for the plurality of applications using an event driven framework of the application platform.

1087. The system of claim 1086, further comprising:

module for resolving unsafe conflicts to run code blocks in parallel

module for executing at least one of same blocks or different blocks in parallel under a condition.

1088. The system of claim 1086, further comprising:

module for resolving unsafe conflicts to run code blocks in parallel.

1089. The system of claim 1088, further comprising:

module for analyzing at least one of data conflicts, processing conflicts, context conflicts, content conflicts, data dependencies, processing dependencies, context dependencies, or content dependencies.

1090. The system of claim 1089, the analyzing module is accomplished via a static program analysis.

1091. The system of claim 1089, the analyzing module is accomplished via a runtime program analysis.

1092. The system of claim 1089, the analyzing module is accomplished via a predetermined configuration.

1093.The system of claim 1088, further comprising:

module for analyzing at least one of code conflicts or dependencies.

1094.The system of claim 1093, the analyzing module is accomplished via a static program analysis.

1095. The system of claim 1093, the analyzing module is accomplished via a runtime program analysis.

1096. The system of claim 1093, the analyzing module is accomplished via a

predetermined configuration.

1097. The system of claim 1086, further comprising:

module for using a conflict table to manage possible conflicts between at least one of a code block, a context, wherein the context comprises a shared characteristic, a content, and a data.

1098. The system of claim 1086, further comprising:

module for running at least one of same blocks or different blocks in parallel under a condition.

1099. The system of claim 1098, wherein the condition comprises if at least two of one or more codes will not access the same data at the same time, if at least two of one or more contexts are different, if the at least two of the one or more contexts is same but the at least one of the one or more codes will not access the same data at the same time, or if an application author specifically allows at least two of the blocks, contexts, content or data to be processed together.

1 100. A system, comprising:

module for creating a context- centric online application platform, wherein the platform supports a plurality of content types.

1 101.The system of claim 1 100, wherein the plurality of content types may be in at least one of a context, an application, the same data store, or different data stores for different content types.

1 102.The system of claim 1101, wherein the data store allows the following:

module for creating new content types.

1 103.The system of claim 1101, wherein the data store allows the following:

module for mapping new content types to objects stored in the data store.

1 104. The system of claim 1101, wherein the data store allows the following:

module for changing dynamically a schema of the data store.

1 105. The system of claim 1101, wherein the data store allows the following:

module for changing content types for existing data.

1 106. The system of claim 1 101, wherein when a system is online the data store allows the following:

module for creating new content types;

module for mapping new content types to objects stored in the data store; module for changing dynamically a schema of the data store; and

module for changing content types for existing data.

1 107. The system of claim 1101, further comprising:

module for providing a data store for a structure of the application platform.

1 108. The system of claim 1 107, wherein the data store is dynamic.

1 109. The system of claim 1107, further comprising:

module for using a database.

1 1 lO.The system of claim 1107, further comprising:

module for using a hash table.

1 111.The system of claim 1107, further comprising: module for using a storage area network.

1 112. The system of claim 1107, further comprising:

module for using a computer memory media.

1 113. The system of claim 1107, further comprising:

module for using at least one of a distributed hash table or a distributed key -value- pair storage.

1 114. The system of claim 1107, further comprising:

module for using a system combination of using a database, using a hash table, using a storage area network, using a computer memory media, and using at least one of a distributed hash table or a distributed key -value -pair storage.

1 115. The system of claim 1107, further comprising:

module for using a distributed system combination of using a database, using a hash table, using a storage area network, using a computer memory media, and using at least one of a distributed hash table or a distributed key -value-pair storage.

1 116. The system of claim 1107, further comprising:

module for propagating data storage within the data store.

1 117. The system of claim 1107, further comprising:

module for storing multiple replicas of a piece of data within the data store.

1 118. The system of claim 1107, further comprising:

module for storing calculated metadata of data pieces.

1 119.The system of claim 1107, further comprising:

module for replicating metadata of data pieces to one or more computing nodes.

1 120. The system of claim 1107, further comprising:

module for replicating at least one of data or metadata of data to one or more computing nodes.

1 121. The system of claim 1107, further comprising:

module for organizing storage nodes using at least one of a ring, a tree, a hypercube, a peer-to-peer, a hierarchical structure, a log-based logical structure.

1 122. The system of claim 1107, further comprising:

module for allowing permissions to be set on each data for access control among at least one of a user, a context, an application, or within contexts.

1 123.The system of claim 1107, further comprising:

module for allowing priorities to be set on each data to indicate at least one of importance and service level.

1 124. The system of claim 1107, further comprising:

module for creating a server platform;

module for utilizing by the server platform of multiple dynamic data stores; and module for storing at least one of different contexts or different applications.

1 125. The system of claim 1107, further comprising:

module for utilizing by the platform of multiple data stores; and

module for storing at least one of different contexts or different applications.

1 126. The system of claim 1107, further comprising:

module for creating at least one of a server platform or client platform;

module for utilizing by at least one of a server platform or client platform of multiple data stores; and

module for storing at least one of different contexts or different applications.

1 127.A system, comprising:

module for creating a context- centric application platform, wherein the platform supports a plurality of content types.

1 128.The system of claim 1 107, wherein the plurality of content types may be in at least one of a context, an application, the same data store, or different data stores for different content types.

1 129. The system of claim 1108, wherein the data store allows the following:

module for creating new content types.

1 130. The system of claim 1108, wherein the data store allows the following:

module for mapping new content types to objects stored in the data store.

1 131. The system of claim 1108, wherein the data store allows the following:

module for changing dynamically a schema of the data store.

1 132. The system of claim 1108, wherein the data store allows the following:

module for changing content types for existing data.

1 133. The system of claim 1108, wherein when a system is online the data store allows the following:

module for creating new content types;

module for mapping new content types to objects stored in the data store;

module for changing dynamically a schema of the data store; and

module for changing content types for existing data.

1 134. The system of claim 1107, further comprising:

module for providing a data store for a structure of the application platform.

1 135. The system of claim 1 134, wherein the data store is dynamic.

1 136.The system of claim 1134, further comprising:

module for using a database.

1 137. The system of claim 1134, further comprising:

module for using a hash table.

1 138. The system of claim 1134, further comprising:

module for using a storage area network.

1 139. The system of claim 1134, further comprising:

module for using a computer memory media.

1 140. The system of claim 1134, further comprising:

module for using at least one of a distributed hash table or a distributed key -value- pair storage.

1 141. The system of claim 1134, further comprising:

module for using a system combination of using a database, using a hash table, using a storage area network, using a computer memory media, and using at least one of a distributed hash table or a distributed key -value -pair storage.

1 142. The system of claim 1134, further comprising:

module for using a distributed system combination of using a database, using a hash table, using a storage area network, using a computer memory media, and using at least one of a distributed hash table or a distributed key -value -pair storage.

1 143.The system of claim 1134, further comprising:

module for propagating data storage within the data store.

1 144.The system of claim 1134, further comprising: module for storing multiple replicas of a piece of data within the data store.

1 145. The system of claim 1134, further comprising:

module for storing calculated metadata of data pieces.

1 146. The system of claim 1134, further comprising:

module for replicating metadata of data pieces to one or more computing nodes.

1 147. The system of claim 1134, further comprising:

module for replicating at least one of data or metadata of data to one or more computing nodes.

1 148. The system of claim 1134, further comprising:

module for organizing storage nodes using at least one of a ring, a tree, a hypercube, a peer-to-peer, a hierarchical structure, a log-based logical structure.

1 149. The system of claim 1134,further comprising:

module for allowing permissions to be set on each data for access control among at least one of a user, a context, an application, or within contexts.

1 150. The system of claim 1134, further comprising:

module for allowing priorities to be set on each data to indicate at least one of importance and service level.

1 151. The system of claim 1134, further comprising:

module for creating a server platform;

module for utilizing by the server platform of multiple dynamic data stores; and module for storing at least one of different contexts or different applications.

1 152. The system of claim 1134, further comprising:

module for utilizing by the platform of multiple data stores; and module for storing at least one of different contexts or different applications.

1 153. The system of claim 1134, further comprising:

module for creating at least one of a server platform or client platform;

module for utilizing by at least one of a server platform or client platform of multiple data stores; and

module for storing at least one of different contexts or different applications.

1 154. A system, comprising:

module for creating a context-centric application platform; and

module for implementing a server platform backend using one or more networked computing nodes.

1 155. The system of claim 1 154, wherein the application platform comprises an online application platform.

1 156. A system, comprising:

module for creating a context-centric online application platform; and module for implementing a platform backend using one or more networked computing nodes.

1 157. The system of claim 1154, wherein each one of the one or more networked computing nodes may have at least one of a performance or a characteristic different from another one of the one or more networked computing nodes.

1 158. The system of claim 1154, wherein each one of the one or more networked computing nodes may have at least one of an architecture or a peripheral different from another one of the one or more networked computing nodes.

1 159. The system of claim 1154, wherein each one of the one or more networked computing nodes may have at least one of a performance, a characteristic, an architecture, or a peripheral different from another one of the one or more networked computing nodes.

1 160. The system of claim 1154, further comprising:

module for using one or more computing devices.

1 161. The system of claim 1154, further comprising:

module for using one or more computing clusters.

1 162. The system of claim 1154, further comprising:

module for using at least one of a ring, a tree, a hypercube, a peer-to-peer, a hierarchical, and a log-based logical structure to organize distributed computing nodes.

1 163.The system of claim 1154, further comprising:

module for using at least one of a ring, a tree, a hypercube, a peer-to-peer, a hierarchical, and a log-based logical structure to organize storage nodes.

1 164. The system of claim 1154, further comprising:

module for replicating data by one or more storage nodes, wherein the replicating may be performed at least one of fully or partially replicating;

module for propagating data by one of the one or more storage nodes to another one of the one or more storage nodes; and

module for selecting by the one or more storage nodes to perform at least one of the replicating module and the propagating module.

1 165. The system of claim 1154, further comprising:

module for re-organizing the one or more networked computing nodes in a live environment.

1 166. A system, comprising: module for creating an application platform;

module for implementing a platform backend using one or more networked computing nodes;

module for replicating data by one or more storage nodes, wherein the replicating may be performed at least one of fully or partially replicating;

module for propagating data by one of the one or more storage nodes to another one of the one or more storage nodes; and

module for selecting by the one or more storage nodes to perform at least one of the replicating module and the propagating module.

1 167. A system, comprising:

module for creating an application platform;

module for implementing a platform backend using one or more networked computing nodes; and

module for re-organizing the one or more networked computing nodes in a live environment.

1 168. The system of claim 1155, further comprising:

module for providing a layer-based architecture, wherein the layer-based architecture comprises a front-end, a processing, and a data storage.

1 169. A system, comprising:

module for creating a context-centric application platform; and

module for providing a layer-based architecture, wherein the layer-based architecture comprises at least one of a front stage, a processing stage, and a storage stage.

1 170. A system, comprising:

module for creating an application platform;

module for creating one or more nodes;

module for providing a layer-based architecture, wherein the layer-based architecture comprises one or more layers; and module for separating automatically by the application platform each one of the one or more nodes into a different respective one of the one or more layers.

1 171. The system of claim 1170, further comprising:

module for providing one or more groups;

module for providing one or more responsibilities;

module for splitting the one or more nodes within each one of the one or more layers into a respective different one of at least one of the one or groups or the one or more responsibilities.

1 172. The system of claim 1 171, wherein the splitting module results in at least one of the following: a cache to another one of the one or more nodes; a node manager; a node monitor; a network router; a data store access point; an access point to another one of the one or more layers; or a data aggregation node.

1 173.A system, comprising:

module for creating a context-centric application platform;

module for creating one or more nodes; and

module for using general purpose computing nodes to organize computing.

1 174. The system of claim 1173, further comprising:

module for using at least one of a ring, a tree, a hypercube, a peer-to-peer, a hierarchical, and a log-based logical structure to organize nodes.

1 175. The system of claim 1173, wherein the application platform comprises an online application platform.

1 176. A system, comprising:

module for creating a context-centric online application platform;

module for creating one or more nodes; and module for using at least one of a ring, a tree, a hypercube, a peer-to-peer, a hierarchical, and a log-based logical structure to organize storage nodes.

1 111.A system, comprising:

module for creating a context-centric online application platform;

module for creating one or more storage nodes; and

module for replicating data the by one or more storage nodes, wherein the replicating may be performed at least one of fully or partially replicating;

module for propagating data by the one of the one or more storage nodes to another one of the one or more storage nodes; and

module for selecting by the one or more storage nodes to either perform the replicating module or the propagating module.

1 178. A system, comprising:

module for creating a context- centric application platform;

module for creating one or more storage nodes; and

module for replicating data the by one or more storage nodes, wherein the replicating may be performed at least one of fully or partially replicating;

module for propagating data by the one of the one or more storage nodes to another one of the one or more storage nodes; and

module for selecting by the one or more storage nodes to either perform the replicating module or the propagating module.

1 179. A system, comprising:

module for creating an application platform;

module for creating one or more nodes; and

module for using one or more specialized computing chips.

1 180. The system of claim 1179, wherein the one or more specialized computing chips comprises at least one of a programmable VLSI, a low power processor, a RISC, a GPU, a GPGPU, an offload engine, a network processor, a quantum processor or a system-on- a-chip.

1 181. The system of claim 1 180, wherein the offload engine comprises at least one of encryption, networking, virtual machine, graphical or computing functions and wherein the network processor comprises a packet, a routing, a forwarding, a labeling or a switching processor.

1 182. The system of claim 1179, further comprising:

module for using a different type of the one or more specialized computing chips for a respective one of a one or more functions.

1 183.The system of claim 1179, further comprising:

module for using a different one of at least one of one or more processing cores or one or more hardware peripherals for a respective one of one or more different applications.

1 184. A system, comprising:

module for running one or more single user applications on an online application platform;

module for running one or more multi-user applications on the online application platform;

module for running one or more social applications on the online application platform; and

module for providing a permissions setting on at least one of a context, an application, an action, and a data.

1 185. The system of claim 1184, wherein the one or more single user applications comprises one or more personal applications and wherein the one or more multi-user applications comprises one or more collaboration-enabled multi-user applications.

1 186. The system of claim 1185, further comprising:

module for providing the permissions setting per context.

1 187. The system of claim 1185, further comprising:

module for providing the permissions setting per context per application.

1 188. The system of claim 1185, further comprising:

module for providing the permissions setting per application.

1 189. The system of claim 1185, wherein each context may have a set of one or more roles.

1 190. The system of claim 1 185, wherein each one of the one or more roles has at least two permissions.

1 191. The system of claim 1 185, wherein each of one or more user in context may have at least two roles.

1 192. The system of claim 1191, further comprising:

module for providing by the at least two roles of one or more permissions as set by the permissions setting, wherein the one or more permissions control at least one of an action or a data in context.

1 193.The system of claim 1191, further comprising:

module for providing by the at least two roles of one or more permissions as set by the permissions setting, wherein the one or more permissions control at least one of an action, a data, an application, or an action in context, a data in context, or an application in context.

1 194.The system of claim 1185, further comprising: module for determining by each one of the one or more personal applications, the one or more collaboration-enabled multi-user applications, or one or more social applications of which of at least one of its action or data require a permission.

1 195. The system of claim 1185, further comprising:

module for determining by each one of the one or more single-user applications, the one or more multi-user applications, or one or more social applications of which of at least one of its action or data require a permission.

1 196. The system of claim 1185, further comprising:

module for determining by the context which of its at least one of an application, an action, or a data require permission.

1 197. The system of claim 1185, further comprising:

module for changing by at least one of one or more personal applications, the one or more collaboration-enabled multi-user applications, or one or more social applications of its required at least one of permissions or roles on the platform in real-time; and

module for propagating a change of this changing module to all nodes that run the same application.

1 198. The system of claim 1184, further comprising:

module for changing by at least one of one or more single user applications, the one or more multi-user applications, or one or more social applications of its required at least one of permissions or roles on the platform in real-time; and

module for propagating a change of this changing module to all nodes that run the same application.

1 199. The system of claim 1185, further comprising:

module for changing by at least one of one or more personal applications, the one or more collaboration-enabled multi-user applications, or one or more social applications of its required at least one of permissions or roles on the platform in real-time; and module for propagating a change of this changing module to at least one of a plurality of nodes that run the same application, contain the same context or access the same data.

1200. The system of claim 1184, further comprising:

module for changing by at least one of one or more single user applications, the one or more multi-user applications, or one or more social applications of its required at least one of permissions or roles on the platform in real-time; and

module for propagating a change of this changing module to at least one of a plurality of nodes that run the same application, contain the same context or access the same data.

1201. The system of claim 1185, further comprising:

module for changing by the context of its required at least one of permissions or roles on the platform in real-time; and

module for propagating a change of this changing module to at least one of a plurality of nodes that run the same application among the one of one or more personal applications, the one or more collaboration-enabled multi-user applications, or the one or more social applications, or to at least one of the nodes that access the same context or accesses the same data.

1202. The system of claim 1184, further comprising:

module for changing by the context of its required at least one of permissions or roles on the platform in real-time; and

module for propagating a change of this changing module to at least one of a plurality of nodes that run the same application among the one of one or more single user applications, the one or more multi-user applications, the one or more social applications, or to at least one of a plurality of nodes that access the same context or access the same data.

1203.The system of claim 1185, further comprising: module for adding a role in real-time;

module for editing a role in real-time; and

module for removing a role in real-time

1204. The system of claim 1185, further comprising at least one of:

module for adding permissions of a role in real-time;

module for editing permissions of a role in real-time;

module for removing permissions of a role in real-time;

module for assigning at least one role to a user in real-time; and

module for removing at least one role from a user in real-time.

1205. The system of claim 1185, further comprising:

module for creating one or more context types with access control.

1206. The system of claim 1205, further comprising:

module for allowing access to the one or more context types only users with permission as decided by a predetermined setting.

1207. The system of claim 1205, further comprising:

module for controlling access to the one or more context types only users or groups with permission as decided by a predetermined setting.

1208. The system of claim 1205, further comprising:

module for controlling access to the one or more context types only users or groups with permission as decided by a predetermined setting; and

module for creating a context with the one or more context types.

1209. The system of claim 1205, further comprising:

module for allowing access for members of a context to access a specific context type.

1210. A system, comprising:

module for running one or more applications on an application platform; and module for allowing a third-party to distribute at least one of an application or a plugin on the application platform.

1211. A system, comprising:

module for running one or more applications on a context-enabled application platform; and

module for allowing a third-party to distribute at least one of an application or a plugin on the application platform.

1212. A system, comprising:

module for running one or more applications on a context-enabled online application platform; and

allowing a third-party to distribute at least one of an application or a plugin on the application platform.

1213. The system of claim 1211, further comprising:

module for creating an interface for a publisher to provide contexts.

1214. The system of claim 1211, further comprising:

module for creating an interface for a user to subscribe to contexts.

1215. The system of claim 1211, further comprising:

module for creating a place for a user to install the one or more applications.

1216. The system of claim 1211, further comprising:

module for creating a place for a user to remove the one or more applications.

1217. The system of claim 1211, further comprising: module for registering an item to offer a user in a store, wherein the item comprises at least one of an application, a plugin, or a related service and wherein the store may take payment via at least one of a subscription or a one-time fee.

1218.The system of claim 1211, further comprising:

module for registering a context for a fee.

1219.The system of claim 1211, further comprising:

module for registering an application for a fee.

1220.The system of claim 1211, further comprising:

module for registering an application set for a fee, wherein the application set comprises at least one application, wherein the application can be owned by the user, licensed from another party with permission, or freely usable.

1221. The system of claim 1211, further comprising:

module for registering a plugin for a fee.

1222.The system of claim 1211, further comprising:

module for providing a context for a fee.

1223.The system of claim 1211, further comprising:

module for providing a context type for a fee.

1224.The system of claim 1211, further comprising:

module for providing a service for a fee.

1225. The system of claim 1211, further comprising:

module for providing a fee for the distributing module, wherein the fee comprises at least one of a subscription for duration, wherein duration comprises a time period, a lump sum, in installments, or advance payment for subscription.

1226. The system of claim 1211, further comprising:

module for charging by the platform a fee for at least one of a listing, a subscription management, or an action for facilitating a transaction.

1227. The system of claim 1211, further comprising:

module for updating at least one of an application, an application set, a context type, a context to a latest version.

1228. The system of claim 1211, further comprising:

module for determining a fee to charge for at least one of a new subscription or a new order.

1229. The system of claim 1211, further comprising:

module for updating a fee to charge for at least one of a new subscription, existing subscription, new order or existing order.

1230. The system of claim 1229, further comprising:

module for notifying a subscriber of an update made in accordance with the updating module.

1231. The system of claim 1211, further comprising:

module for purchasing the application or plugin by a context.

1232. The system of claim 1211, further comprising:

module for purchasing or subscribing to the application, plugin, or context type by a context.

1233. The system of claim 1211, further comprising:

module for accessing by a user in context of the application or plugin if the user has permissions to do so.

1234. The system of claim 1211, further comprising:

module for accessing by a user in a context of the application, plugin or context type if the user has permissions to do so.

1235. A system, comprising:

module for running one or more single -user applications on an application platform;

module for running one or more multi-user applications on the application platform; and

module for charging at least one of an account or a user for using the application platform.

1236. The system of claim 1235, wherein the one or more single -user applications comprises one or more personal applications and wherein the one or more multi-user applications comprises one or more collaboration-enabled multi-user applications.

1237. A system, comprising:

module for running one or more applications on a context-centric application platform;

module for charging at least one of an account or a user for using the application platform.

1238. The system of claim 1237, further comprising:

module for pricing for using application platform per user.

1239. The system of claim 1237, further comprising:

module for pricing for using application platform per context.

1240. The system of claim 1237, further comprising:

module for pricing for using application platform per an application.

1241. The system of claim 1237, further comprising:

module for pricing for using application platform per an application set.

1242. The system of claim 1237, further comprising:

module for pricing for using application platform per application-per-context.

1243. The system of claim 1237, further comprising:

module for pricing for using application platform per user-per-context.

1244. The system of claim 1237, further comprising:

module for pricing for using application platform per user-per-application.

1245. The system of claim 1237, further comprising:

module for pricing for using application platform per user-per-application-per- context.

1246. The system of claim 1237, further comprising:

module for pricing for using application platform per user-per-application set-per- context.

1247. The system of claim 1237, further comprising:

module for pricing for using application platform per application set-per-context.

1248. The system of claim 1237, further comprising:

module for pricing for using application platform per at least one of the following: user, context, application, application set, user-per-context, user-per-application, user- per-application-per-context, user-per-application set-per-context, application per-context or application set-per-context.

1249. The system of claim 1237, further comprising: module for pricing for using application platform per at least one of a subscription for duration, wherein duration comprises a time period, a lump sum, in installments, or advance payment for subscription.

1250. The system of claim 1238, further comprising:

module for subscribing to an application platform payment plan.

1251. The system of claim 1250, further comprising:

module for obtaining one or more quotas to use the application platform.

1252. The system of claim 1250, further comprising:

module for obtaining one or more quotas to use the application platform, wherein the quotas comprise at least one of context quotas, data quota, user quotas, or application quotas.

1253. The system of claim 1238, further comprising:

module for configuring one or more contexts, wherein each one of the one or more contexts comprises a shared characteristic so as to allow free public access to the one or more contexts.

1254. The system of claim 1238, further comprising:

module for charging a fee by the application platform for at least one of a context, a context type, a data storage, an application, an application plugin, a quality of service and a resource, priority or guarantee for speed, bandwidth, processing, reliability or responsiveness.

1255. The system of claim 1237, further comprising:

module for requiring a payment for creating a context, wherein the context comprises a shared characteristic.

1256. The system of claim 1237, further comprising: module for requiring a payment for accessing a context, wherein the context comprises a shared characteristic.

1257. The system of claim 1256, further comprising:

module for requiring a single entity payment, wherein the single entity payment comprises a payment in full by at least one of a single user or a group.

1258. The system of claim 1256, further comprising:

module for requiring a members payment, wherein the members payment comprises a payment by a plurality of users, wherein each one of the plurality of users pay a fair share.

1259. The system of claim 1256, further comprising:

module for requiring a social payment, wherein the social payment comprises a payment by a plurality of users, wherein each one of the plurality of users pay a voluntary sum.

1260. The system of claim 1256, further comprising:

module for providing access to the context; and

module for charging by a context owner a fee to a user for providing access to the context.

1261. The system of claim 1260, further comprising:

module for providing a plurality of different payment schemes for different roles in context.

1262. The system of claim 1260, further comprising:

module for providing a plurality of different payment schemes for different applications in context.

1263.The system of claim 1260, further comprising: module for providing a plurality of different payment schemes for different content access in context.

1264. The system of claim 1260, further comprising:

module for providing a plurality of different payment schemes, wherein the plurality of different payment schemes comprises at least one of a subscription for duration, a one-time lump sum, or in installments.

1265. The system of claim 1237, further comprising:

module for allowing access to a context type for at least one of for free or for a fee.

1266. The system of claim 1237, further comprising:

module for allowing payment for a context type by a user who wants to create a context of a context type.

1267. The system of claim 1237, further comprising:

module for allowing payment for a context type by a user who wants to change a context of a context type.

1268. The system of claim 1237, further comprising:

module for charging a user a fee for allowing access to a context type.

1269. The system of claim 1237, further comprising:

module for providing a plurality of different payment schemes, wherein the plurality of different payment schemes comprises at least one of a subscription for duration, a one-time lump sum, or in installments.

1270. The system of claim 1237, further comprising:

module for allowing payment by a context, wherein the context comprises a shared characteristic, wherein the context is associated with the users who use the context type.

1271. A system, comprising:

module for running one or more applications on a context-centric application platform;

module for charging at least one of an account or a user for using the application platform; and

module for allowing access to a content type for at least one of for free or for a fee.

1272. The system of claim 1271, further comprising:

module for allowing access to a content type for at least one of for free or for a fee.

1273. The system of claim 1271, further comprising:

module for allowing payment for a context type by a user who wants to create a context of a context type.

1274. The system of claim 1271 , further comprising:

module for allowing payment for a context type by a user who wants to change a context of a context type.

1275. The system of claim 1271 , further comprising:

module for charging a user a fee for allowing access to a context type.

1276. The system of claim 1275, further comprising:

module for providing a plurality of different payment schemes, wherein the plurality of different payment schemes comprises at least one of a subscription for duration, a one-time lump sum, or in installments.

1277. The system of claim 1240, further comprising:

module for allowing access to an application for at least one of for free or for a fee.

1278. The system of claim 1240, further comprising:

module for allowing payment for an application by a user who uses the application.

1279. The system of claim 1240, further comprising:

module for allowing payment by a context, wherein the context comprises a shared characteristic, wherein the context is associated with a user who uses the application.

1280. The system of claim 1240, further comprising:

module for charging a user a fee for allowing access to the application for one or more contexts, wherein each one of the one or more contexts comprises a shared characteristic.

1281. The system of claim 1240, further comprising:

module for providing access to the application for bundling in at least one of a context type or a set of applications.

1282. The system of claim 1240, further comprising:

module for providing a plurality of different payment schemes, wherein the plurality of different payment schemes comprises at least one of a subscription for duration, a one-time lump sum, or in installments.

1283.A system, comprising:

module for running one or more personal applications on an application platform; module for running one or more collaboration-enabled multi-user applications on the Internet application platform; and

module for charging a user for accessing one or more application plugins.

1284.The system of claim 657, further comprising:

module for charging a user for accessing one or more application plugins.

1285. A system, comprising:

module for running one or more applications on a context-centric application platform;

module for charging a user for accessing one or more application plugins.

1286. The system of claim 1285, further comprising:

module for allowing payment for the one or more application plugins by a user who uses the one or more application plugins.

1287. The system of claim 1285, further comprising:

module for allowing payment by a context, wherein the context comprises a shared characteristic, wherein the context is associated with one or more users who use the plugins.

1288. The system of claim 1285, further comprising:

module for allowing payment by the application, wherein the application is associated with one or more users who use the plugins.

1289. The system of claim 1285, further comprising:

module for providing access to the one or more application plugins for one or more applications; and

module for charging a fee for the providing access module.

1290. The system of claim 1285, further comprising:

module for providing access to the one or more application plugins for one or more contexts; and

module for charging a fee for the providing access module.

1291. The system of claim 1285, further comprising: module for providing access to the application for bundling in at least one of a context type or a set of applications.

1292.The system of claim 1285, further comprising:

module for providing a plurality of different payment schemes, wherein the plurality of different payment schemes comprises at least one of a subscription for duration, a one-time lump sum, or in installments.

1293.The system of claim 656, further comprising:

module for charging a user for accessing the application platform by a subscription account.

1294. A system, comprising:

module for running one or more single -user applications on an application platform;

module for running one or more multi-user applications on the application platform; and

module for charging a user for accessing the application platform by a subscription account.

1295. A system, comprising:

module for running one or more applications on a context-centric application platform;

module for charging a user for accessing the application platform by a subscription account.

1296. The system of claim 1294, further comprising:

module for providing a subscription to each one of a plurality of users.

1297. The system of claim 1294, further comprising:

module for providing a subscription to each one of a plurality of context owners.

1298. The system of claim 1297, further comprising:

module for paying for by one of the plurality of context owners of a context being used by a plurality of users sharing a context associated with the one of the plurality of context users.

1299. The system of claim 1294, further comprising:

module for managing a subscription account by one or more users.

1300. The system of claim 1294, further comprising:

module for providing a payment of a subscription account for at least one of a plurality of contexts, wherein each one of the plurality of contexts comprises a shared characteristic, a plurality of applications, and a plurality of users.

1301. A system, comprising:

module for running one or more personal applications on an application platform; module for running one or more collaboration-enabled multi-user applications on the application platform; and

module for charging a user for accessing the application platform by a points system for a subscription plan.

1302. A system, comprising:

module for running one or more single -user applications on an application platform;

module for running one or more multi-user applications on the application platform; and

module for charging a user for accessing the application platform by a points system for a subscription plan.

1303. The system of claim 1302, further comprising:

module for providing a set number of points per a duration of subscription.

1304. The system of claim 1302, further comprising:

module for purchasing points separately.

1305. The system of claim 1302, further comprising:

module for redeeming at least one of an item or a service using points.

1306. The system of claim 1305, wherein the an item or a service comprises at least one of an application, an application update, a plugin, a context, a context type, a context access, a data storage, a bandwidth, a quality of service and a resource, priority or guarantee for speed, bandwidth, processing, reliability or responsiveness.

1307. A system, comprising:

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.

1308. The system of claim 1307, wherein the one or more single user applications comprises one or more personal applications.

1309. The system of claim 1308, wherein the one or more multi-user applications comprises one or more collaboration-enabled multi-user applications.

1310. The system of claim 1307, wherein the online application platform comprises an Internet application platform.

1311. The system of claim 1307, wherein the online application platform comprises one or more of a software platform or an online application platform.

1312. The system of claim 1308, wherein a plurality of users use the one or more collaboration-enabled multi-user applications.

1313. The system of claim 1308, wherein a plurality of users use a common set of the one or more collaboration-enabled multi-user applications.

1314. The system of claim 1312, further comprising:

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 multi-user applications.

1315. The system of claim 1307, further comprising:

means for allowing interaction between at least one of the one or more personal applications and the one or more multi-user applications and at least one of the one or more personal applications and the one or more multi-user applications.

1316. The system of claim 1315, wherein the allowing interaction means comprises: means for communicating information related to a first one of the one or more personal applications or the one or more multi-user applications to a second one of the one or more personal applications or the one or more multi-user applications.

1317. The system of claim 1315, wherein the allowing interaction means comprises: means for accessing information related to a first one of the one or more personal applications or the one or more multi-user applications to a second one of the one or more personal applications or the one or more multi-user applications.

1318. The system of claim 1315, wherein the allowing interaction means comprises 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 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 multi-user applications into another one of the plurality of multi-user applications;

means for adding a new one of the plurality of multi-user applications; and means for deleting at least one of the plurality of multi-user applications.

1319. The system of claim 1315, wherein the allowing interaction means comprises 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 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 multi-user applications into another one of the plurality of multi-user applications;

means for adding a new one of the plurality of multi-user applications;

means for deleting at least one of the plurality of 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 to receive updates from an application or multiple applications;

means for allowing a user to receive computed information taking into account of other user's information and actions;

means for passing other users' information or actions into a black box and the results can be sent to the user;

means for notifying the current user that an update is available for refresh; means for notifying the current user that the application does not have enough space and need to take action;

means for notifying another user that other users triggered security checks in the application;

means for modifying access values of contexts/applications/users, adding contexts/applications/users, removing 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;

means for allowing two or more users to share files or information with each other, including files, pictures, messages and videos;

means for requesting or causing an application to act in a certain way;

means for requesting or causing an application to provide data or information; means for requesting or causing an application to change parameters or data; means for requesting or subscribing to an application so requestor is notified on any change on requested triggers;

means for requesting or directly removing, updating or modifying an application from the software platform; and

means for requesting or directly modifying a target application to alter its behavior.

1320. A system, comprising:

means for creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts comprises 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 comprises 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.

1321. The system of claim 1320, wherein the plurality of contexts comprises a plurality of collaboration-enabled contexts.

1322. The system of claim 1320, further comprising the means of:

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.

1323. The system of claim 1322, 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.

1324. The system of claim 1322, wherein the selected one or more of the plurality of users comprises those one or more of the plurality of users who share an interest in the one or more common characteristics.

1325. The system of claim 1320, wherein the one or more software applications comprises:

one or more Web applications.

1326. The system of claim 1322, wherein the one or more software applications comprises: one or more Web applications.

1327. The system of claim 1320, wherein the one of more software applications comprises 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.

1328. The system of claim 1322, wherein the one of more software applications comprises 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.

1329. The system of claim 1311 , further comprising:

means for providing one or more personal applications on the software platform; and

means for providing one or more multi-user applications on the software platform.

1330. The system of claim 1329, further comprising:

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.

1331. The system of claim 1329, wherein the one or more multi-user applications comprises one or more collaboration-enabled multi-user applications.

1332. The system of claim 1329, further comprising:

means for providing one or more business applications on the software platform.

1333. The system of claim 1332, further comprising:

means for allowing a plurality of usages, wherein the plurality of usages comprises

means for use by one person of the software platform; and

means for 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.

1334. The system of claim 1333, wherein the plurality of usages further comprises: means for 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.

1335. The system of claim 1332, further comprising:

means for making the platform available via the Internet.

1336. The system of claim 1332, further comprising:

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.

1337. The system of claim 1336, wherein the information is communicated via the Internet.

1338. A system, comprising:

means for allowing at least one of a plurality of users to configure a context, wherein the context comprises a plurality of software applications, wherein the plurality of software applications comprise at least one of a plurality of personal applications, a plurality of collaboration-enabled multi-user applications, and a plurality of business applications, and wherein the at least one of the plurality of users may configure the context by adding or deleting or editing at least one of a plurality of personal applications, a plurality of collaboration-enabled multi-user applications, and a plurality of business applications.

1339. A system, comprising:

means for creating a plurality of collaborative contexts;

means for creating a plurality of software applications;

means for linking the plurality of software applications to a respective one of the plurality of collaborative contexts; and

means for enabling additional features in at least one of the plurality of software applications linked to the respective one of the plurality of collaborative contexts.

1340. The system of claim 1339, wherein each one of the plurality of collaborative contexts comprises the plurality of software applications.

1341. A system, comprising:

means for creating a plurality of contexts on a software platform, wherein each one of the plurality of contexts comprises a common characteristic;

means for providing a plurality of software applications on the software platform; means for associating data inputted into the software platform with a respective one of the plurality of contexts and a respective one of the plurality of software applications, simultaneously.

1342. The system of claim 1341 , further comprising:

means for linking the plurality of software applications to a respective one of the plurality of collaborative contexts.

1343. The system of claim 1341 , wherein each one of the plurality of contexts comprises: an associated one or more of the plurality of software applications, wherein a user having access to the associated one or more of the plurality of software application has access to data relating to a respective one of the each one of the plurality of contexts.

1344. The system of claim 1343, wherein the access to data is determined by at least one of a context, an application or a user.

1345. The system of claim 1341 , wherein each one of the plurality of contexts comprises:

an associated set of the plurality of software applications, wherein each one of the set comprises different types of data.

1346. The system of claim 1341 , wherein each one of the plurality of contexts comprises:

an associated set of the plurality of software applications.

1347. The system of claim 1341 , further comprising:

means for adding an association of data to at least one of a context or an application;

means for modifying an association of data to at least one of a context or an application; and

means for removing an association of data to at least one of a context or an application.

1348. The system of claim 1347, wherein the modifying means is initiated by at least one of a user, a context and an application.

1349. A system, comprising:

means for creating an online software platform on an infrastructure, wherein the online software platform comprises a plurality of software applications; and means for creating a social networking function on the infrastructure, wherein a plurality of users may communicate with each other via the social networking function.

1350. The system of claim 1349, further comprising:

means for creating a plurality of collaborative contexts, wherein each one of the plurality of collaborative contexts comprises a common characteristic; and

means for creating a plurality of software applications.

1351. The system of claim 1350, further comprising:

means for running one or more personal applications on the online software platform; and

means for running one or more collaboration-enabled multi-user applications on the online software platform.

1352. The system of claim 1350, further comprising:

means for running one or more single -user applications on the online software platform; and

means for running one or more multi-user applications on the online software platform.

1353. The system of claim 1351 , wherein the plurality of users use the one or more collaboration-enabled multi-user applications.

1354. The system of claim 1352, wherein the plurality of users use a common set of the one or more collaboration-enabled multi-user applications.

1355. The system of claim 1353, further comprising:

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 the collaboration-enabled multi-user applications.

1356. The system of claim 1355, further comprising:

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.

1357. The system of claim 1356, wherein the allowing interaction means comprises: means for communicating information related to a first one of the one or more personal applications or the one or more collaboration-enabled multi-user applications to a second one of the one or more personal applications or the one or more collaboration- enabled multi-user applications.

1358. The system of claim 1356, wherein the allowing interaction means comprises: 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 multiuser 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 multi-user applications;

means for adding a new one of the plurality of collaboration-enabled multi-user applications; and

means for deleting at least one of the plurality of collaboration-enabled multi-user applications.

1359. The system of claim 1349, further comprising:

means for creating a plurality of collaboration-enabled contexts on the online software platform, wherein each one of the plurality of collaboration-enabled contexts comprises a context set comprising one or more common characteristics;

means for creating a plurality of collaboration-enabled elements on the online software platform, wherein each one of the plurality of collaboration-enabled elements comprises a software set comprising one or more software applications; means for changing the value of the context set, by adding or deleting at least one of the one or more common characteristics; and

means for changing the value of the software set, by adding or deleting at least one of the one or more software applications.

1360. The system of claim 1360, further comprising the means of:

means for enabling the 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 least one of the one or more software applications.

1361. The system of claim 1360, 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.

1362. The system of claim 1361, wherein the selected one or more of the plurality of users comprises those one of the plurality of users who shares an interest in the one or more common characteristics.

1363. The system of claim 1361, wherein the plurality of software applications comprises:

one or more Web applications.

1364. The system of claim 1363, wherein the one of more software applications comprises 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.

1365. The system of claim 1349, further comprising:

means for creating one or more personal applications on the online software platform;

means for creating one or more collaboration-enabled multi-user applications on the online software platform;

means for creating data storage on the online software platform; and

means for creating a user interface for the online software platform;

wherein a user of the plurality of the users may create a customized set of at least one of the one or more personal applications, at least one of the one or more

collaboration-enabled multi-user applications, at least one of a data storage, and at least one of a user interface.

1366. The system of claim 1349, further comprising:

means for building one or more personal applications on the online software platform;

means for building one or more collaboration-enabled multi-user applications on the online software platform; and means for building one or more business applications on the online software platform.

1367. The system of claim 1367, further comprising:

means for allowing a plurality of usages, wherein the plurality of usages comprises

means for use by one person of the plurality of users of the online software platform; and

means for use by the plurality of persons of the online software platform, wherein each one of the plurality of persons interacts via the online software platform with at least another one of the plurality of persons.

1368. The system of claim 1367, wherein the plurality of usages further comprises: means for use by a third party, wherein the third party uses a third party software platform different from the online software platform, and wherein the third party may use the online software platform on at least one of pay for use basis or free basis.

1369. The system of claim 1349, further comprising:

means for making the online software platform available via the Internet.

1370. The system of claim 1349, further comprising:

means for installing the online software platform on each one of a plurality of computers; and

means for communicating information relating to a first online software platform installed on a first one of the plurality of computers to a second online software platform installed on a second one of the plurality of computers.

1371. The system of claim 1370, wherein the information is communicated via the Internet.

1372. The system of claim 1349, further comprising: means for allowing at least one of the plurality of users to configure a context, wherein the context comprises at least two of the plurality of software applications, wherein the plurality of software applications comprise at least one of a plurality of personal applications, a plurality of collaboration-enabled multi-user applications, and a plurality of business applications; and

wherein the at least one of the plurality of users may configure the context by adding or deleting the at least one of a plurality of personal applications, a plurality of collaboration-enabled multi-user applications, and a plurality of business applications.

1373. The system of claim 1349, further comprising:

means for creating a plurality of collaborative contexts, wherein each one of the plurality of collaborative contexts comprises at least two of the plurality of software applications;

means for linking the at least two of the plurality of software applications to a respective one of the plurality of collaborative contexts; and

means for creating additional features in at least one of the at least two of the plurality of software applications linked to the respective one of the plurality of collaborative contexts.

1374. The system of claim 1349, further comprising:

means for creating a plurality of contexts on the software platform, wherein each one of the context comprises a common characteristic; and

means for associating data inputted into the software platform with a respective one of the plurality of contexts and a respective one of the plurality of software applications, simultaneously.

1375. The system of claim 1374, wherein each one of the plurality of contexts comprises:

an associated one or more of the plurality of software applications, wherein a user having access to the associated one or more of the plurality of software application has access to the data relating to a respective one of the each one of the plurality of contexts.

1376. The system of claim 1374, wherein each one of the plurality of contexts comprises:

an associated set of the plurality of software applications, wherein each one of the set comprises different types of data.

1377. A system, comprising:

means for creating one or more work-related applications on a software platform; and

means for creating one or more non-work-related applications on the software platform.

1378. The system of claim 1377, wherein the software platform comprises an online software platform.

1379. The system of claim 1377, wherein the one or more work-related applications comprises one or more collaborative multi-user applications; and wherein the one or more non-work-related applications comprises one or more online single-user personal applications.

1380. The system of claim 1377, wherein the one or more work-related applications comprises one or more collaborative multi-user applications; and wherein the one or more non- work-related applications comprises one or more single -user personal applications.

1381. The system of claim 1377, further comprising:

means for creating one or more collaborative multi-user applications on the software platform; and

means for creating a social networking function on the software platform, wherein a plurality of users may communicate with each other via the social networking function.

1382. The system of claim 1381 , wherein the software platform comprises an online software platform.

1383. The system of claim 1377, further comprising:

means for creating one or more multi-user applications on the software platform; and

means for creating a social networking function on the software platform, wherein a plurality of users may communicate with each other via the social networking function.

1384. The system of claim 1378, further comprising:

means for creating one or more multi-user applications on the online software platform; and

means for creating a social networking function on the online software platform, wherein a plurality of users may communicate with each other via the social networking function.

1385. The system of claim 1377, further comprising:

means for associating at least one of the one or more work-related applications to a respective at least one of the one or more non-work-related personal applications on the software platform.

1386. The system of claim 1385, wherein the associating means further comprises: means for entering simultaneously information entered into the at least one of the one or more work-related applications into a respective one of the one or more non-work- related personal applications.

1387. The system of claim 1378, further comprising:

means for associating at least one of the one or more work-related applications to a respective at least one of the one or more non-work-related personal applications on the online software platform.

1388. The system of claim 1387, wherein the associating means further comprises: means for entering simultaneously information entered into the at least one of the one or more work-related applications into a respective one of the one or more non-work- related personal applications.

1389. The system of claim 1377, further comprising:

means for creating one or more work-related applications on a software platform; means for creating one or more non-work-related applications on the software platform; and

means for associating at least one of the one or more work-related applications to a respective at least one of the one or more non-work-related applications on the software platform.

1390. The system of claim 1389, wherein the associating means further comprises: means for entering simultaneously information entered into the at least one of the one or more work-related applications into a respective one of the one or more non-work- related applications.

1391. The system of claim 1389, wherein the associating means further comprises: means for enabling interaction between the at least one of the one or more work- related applications and a respective one of the one or more non-work-related

applications.

1392. The system of claim 1378, further comprising:

means for associating at least one of the one or more work-related applications to a respective at least one of the one or more non-work-related applications on the online software platform.

1393. The system of claim 1392, wherein the associating means further comprises: means for entering simultaneously information entered into the at least one of the one or more work-related applications into a respective one of the one or more non-work- related applications.

1394. The system of claim 1392, wherein the associating means further comprises: means for enabling interaction between the at least one of the one or more work- related applications into a respective one of the one or more non- work-related

applications.

1395. The system of claim 1394, wherein the allowing interaction means comprises 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 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 multi-user applications into another one of the plurality of multi-user applications;

means for adding a new one of the plurality of multi-user applications;

deleting at least one of the plurality of 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 to receive updates from an application or multiple applications;

means for allowing a user to receive computed information taking into account of other user's information and actions; means for passing other users' information or actions into a black box and the results can be sent to the user;

means for notifying the current user that an update is available for refresh;

means for notifying the current user that the application does not have enough space and need to take action;

means for notifying another user that other users triggered security checks in the application;

means for modifying access values of contexts/applications/users, adding contexts/applications/users, removing 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;

means for allowing two or more users to share files or information with each other, including files, pictures, messages and videos;

means for requesting or causing an application to act in a certain way;

means for requesting or causing an application to provide data or information; means for requesting or causing an application to change parameters or data; means for requesting or subscribing to an application so requestor is notified on any change on requested triggers;

means for requesting or directly removing, updating or modifying an application from the software platform; and

means for requesting or directly modifying a target application to alter its behavior.

1396. A system, comprising:

means for creating a plurality of contexts, wherein each one of the plurality of contexts relate to a common characteristic; means for creating a plurality of types, wherein each one of the plurality of types relate to a common type of at least one of an activity or a category;

means for color coding the plurality of contexts, wherein the color coding comprises a plurality of colors, and wherein each one of the plurality of contexts is coded with a respective one of the plurality of colors; and

means for shape coding the plurality of types, wherein the shape coding comprises a plurality of shapes, and wherein each one of the plurality of types is coded with a respective one of the plurality of shapes.

1397. The system of claim 1396, further comprising at least one of:

means for the shape coding assignment for at least one of a context and a type is consistent across at least a combination of at least a platform, application, context or user; means for the color coding assignment for at least one of a context and a type is consistent across at least a combination of at least a platform, application, context or user; means for the coding method and assignment can be changed by at least one platform, application, context and user;

means for the coding assignment for at least one user, context, application, platform can be different from the coding assignment from another at least another one of user, context, application, platform; and

means for a first coding information for at least one context or type can be identical as a second coding information for at least one context or type.

1398. The system of claim 1396, further comprising:

means for creating a plurality of items, wherein each one of the plurality of items is associated with at least one of the plurality of contexts.

1399. The system of claim 1396, wherein when one of the plurality of items is associated with at least two of the plurality of contexts, the color coding means comprises:

means for color coding the one of the plurality of items associated with a first one of the at least two of the plurality of contexts with a first color; and means for color coding the one of the plurality of items associated with a second one of the at least two of the plurality of contexts with a second color.

1400. The system of claim 1396, further comprising:

means for color coding at least one of the plurality of types and the plurality of contexts, wherein the color coding comprises a plurality of colors, and wherein each one of the at least one of the plurality of types and plurality of contexts is coded with a respective one of the plurality of colors; and

means for shape coding at least one of the plurality of types and plurality of contexts, wherein the shape coding comprises a plurality of shapes, and wherein each one of the at least one of the plurality of types and plurality of contexts is coded with a respective one of the plurality of shapes.

1401. The system of claim 1396, further comprising:

means for creating a search engine, wherein the search engine provides a plurality of search results associated with a search query;

means for determining at least one of the plurality of search results associated with at least one of the plurality of contexts; and

means for displaying a plurality of search results utilizing the at least a color and shape coding information associated with the plurality of search results, wherein at least one of the plurality of search results is associated with at least a context and type that is associated with at least a color and shape coding.

1402. The system of claim 1396, further comprising:

means for using a coloring characteristic, wherein the coloring characteristic is used to indicate the color coding.

1403. The system of claim 1402, wherein the coloring characteristic comprises at least one of:

a color bar, color shading, color shape, or color text

1404. The system of claim 1396, further comprising at least one of:

means for performing by a user of the at least a color and shape coding assignment;

means for generating dynamically the least a color and shape coding assignment according to the content of at least one contexts and types; or

means for assigning the at least a color and shape coding assignment so as to minimize a total number of coding assignments in a scope, wherein the scope comprises at least one of a user, a context, a type, a application, and a platform.

1405. A system, comprising:

means for generating a design for a user interface;

means for selecting a color theme of the user interface, wherein the color theme comprises a plurality of colors; and

means for coloring the user interface using colors calculated from a chosen plurality of colors, wherein the chosen plurality of colors and the output color set has a deterministic relationship, wherein the output color set comprises of a plurality of colors.

1406. The system of claim 1405, further comprising:

means for selecting a parameter of the user interface, wherein the parameter comprises one or more predetermined characteristic; and

means for customizing the user interface based on the parameter.

1407. The system of claim 1406, wherein the parameter comprises at least one indeterministic value.

1408. The system of claim 1406, wherein the parameter comprises of at least one of: date; time; temperature; humidity; elevation; visibility; wind direction; wind speed; location; speed; acceleration; compass direction; level measurement; weather status; lighting condition; user information; user activity; context information; context activity; application information; application activity; financial activity; and financial information.

1409. The system of claim 1406, further comprising:

means for creating a plurality of color formulas, wherein each one of the plurality of color formulas define a plurality of colors used to color the user interface.

1410. The system of claim 1406, further comprising:

means for creating a plurality of color formulas, wherein each one of the plurality of color formulas define a plurality of characteristics relating to a plurality of colors used to color the user interface.

1411. The system of claim 1410, wherein the plurality of characteristics comprises at least one of:

a shade of color, a pattern of color, a brightness of color, a contrast, a hue, a saturation, a value, a complementary color, or a predetermined characteristic of color.

1412. The system of claim 1405, wherein the color theme further comprises at least one image.

1413. The system of claim 1406, wherein the color theme further comprises at least one image.

1414. The system of claim 1413, further comprising:

means for choosing at least one image of color theme of the user interface from a plurality of images according to at least one of the parameter and the selected plurality of colors.

1415. The system of claim 1414, wherein the choosing means considers whether the image will match the generated user interface.

1416. A system, comprising: means for creating a plurality of contexts, wherein each one of the plurality of contexts comprises a common characteristic, and wherein each one of the plurality of contexts is enabled to be associated with one or more of a plurality of users; and

means for calculating one or more mutual contexts, wherein the one or more mutual context comprises at least one of the plurality of contexts that is associated with the one or more of a plurality of users.

1417. A system, comprising:

means for creating a plurality of contexts, wherein each one of the plurality of contexts comprises a common characteristic, and wherein each one of the plurality of contexts is enabled to be associated with one or more of a plurality of users; and

means for indicating one or more mutual contexts, wherein the one or more mutual context comprises at least one of the plurality of contexts that is associated with the one or more of a plurality of users.

1418. The system of claim 1416, wherein the plurality of contexts comprises a plurality of collaborative contexts and wherein the one or more mutual contexts comprises one or more mutual collaborative contexts.

1419. The system of claim 1417, wherein the indicating means comprises at least one of:

means for graphically showing the one or more mutual contexts; and

means for textually showing the one or more mutual contexts.

1420. The system of claim 1416, further comprising:

means for defining a collaboration member set, wherein the collaboration member set comprises a plurality of users who are defined to be members of one the plurality of collaborative contexts; and

means for indicating one or more a plurality of users who are not members of the collaboration member set as being related to one of the collaborative contexts.

1421. The system of claim 1420, wherein the one or more plurality of users who are not members of the collaboration member set comprise at least one of being known to a member of the collaboration member set, being connected with a member of the collaboration member set, or affecting a member of the collaboration member set.

1422. A system, comprising:

means for creating a plurality of applications, wherein each one of the plurality of applications comprises at least one common function, and wherein each one of the plurality of applications is enabled to be associated with one or more of a plurality of users; and

means for calculating one or more mutual applications, wherein the one or more mutual applications comprises at least one of the plurality of applications that is associated with the one or more of a plurality of users.

1423.A system, comprising:

means for creating a generalized context on an online application platform, wherein the generalized context comprises a plurality of contexts, and wherein each one of the plurality of contexts comprises a common characteristic.

1424. The system of claim 1423, wherein the plurality of contexts comprises a plurality of collaborative contexts.

1425. The system of claim 1424, wherein the plurality of collaborative contexts comprises at least one of:

at least one context, wherein the context comprises a shared characteristic;

at least one application, wherein the application comprises a software application; and

at least one application in context, wherein the application in context comprises a software application attributed to a predetermined context.

1426. The system of claim 1424, wherein the plurality of collaborative contexts comprises at least one of:

at least one second type of context, wherein the context comprises a shared characteristic;

at least one application, wherein the application comprises a software application; and

at least one application in context, wherein the application in context comprises a software application attributed to a predetermined context.

1427. The system of claim 1426, wherein each one of the plurality of collaborative contexts comprises a plurality of collaborative contexts, and wherein each one of the plurality of collaborative contexts comprises a common characteristic.

1428. The system of claim 1426, wherein a third party creates at least one of the at least one application.

1429. The system of claim 1426, wherein a third party may customize a characteristic of the at least one application.

1430. The system of claim 1426, wherein the at least one application comprises at least one web application.

1431. The system of claim 1426, wherein the online application platform comprises a cloud-based online application platform.

1432. The system of claim 1431, wherein the cloud-based online application platform is accessible via the Internet.

1433. The system of claim 1426, further comprising:

means for creating a plurality of context templates, wherein each one of the plurality of context templates comprises a predetermined one of the at least one context, a predetermined one of the at least one application, and a predetermined one of the at least one application in context.

1434.The system of claim 1433, wherein each one of the plurality of context templates comprises at least one of a predetermined one of the at least one context, a predetermined one of the at least one application, a predetermined one of the at least one application in context, and a predetermined set of settings related to the respective one of the at least one context, the at least one application, and the at least one application in common.

1435. The system of claim 1433, wherein each one of the plurality of context templates comprises a predetermined set of settings related to the respective one of the at least one context, the at least one application, and the at least one application in common.

1436. The system of claim 1433, wherein each one of the plurality of context templates comprises at least comprises a predetermined one of the at least one application, a predetermined one of a custom application, and a predetermined one of a third party application.

1437. The system of claim 1433, wherein each one of the plurality of context templates comprises at least one of a customized content type or a custom data.

1438. The system of claim 1433, wherein each one of the plurality of context templates may be at least one of having open access or having controlled access.

1439. The system of claim 1433, wherein the creating the generalized context means comprises:

means for selecting at least one of the plurality of context templates.

1440. The system of claim 1433, wherein each one of the plurality of context templates comprises at least comprises a predetermined one of the at least one context, a predetermined one of the at least one application, a predetermined one of the at least one application in context, and a predetermined set of settings related to the respective one of the at least one context, the at least one application, and the at least one application in common.

1441. The system of claim 1439, wherein the creating the generalized context means further comprises:

means for modifying an attribute of the at least one of the plurality of context templates.

1442. A system, comprising:

means for creating at least one server platform and at least one client platform on an online application platform.

1443.The system of claim 1442, wherein the at least one server platform and the at least one client platform reside on a single computing device.

1444. The system of claim 1443, wherein the at least one client platform connects to at least two of the at least one server platform.

1445. The system of claim 1443, wherein the at least one server platform connects to at least two of the at least one client platform.

1446. The system of claim 1442, wherein the at least one server platform comprises a plurality of contexts and an application data, wherein each one of the plurality of contexts comprises a common characteristic, and wherein the at least one client platform comprises at least one of an application processing, an application user interface, or a non-permanent data store for a respective one of the plurality of contexts.

1447. The system of claim 1442, wherein the at least one server platform comprises a plurality of contexts and application data, wherein each one of the plurality of contexts comprises a common characteristic, and wherein the at least one client platform comprises at least one of an application processing, an application user interface, or a data store for a respective one of the plurality of contexts.

1448. The system of claim 1447, further comprising:

wherein the at least one server platform comprises at least one of an application data and an application logic, wherein the at least one client platform comprises of at least one of an application logic, an application user interface, a respective one of the application data, and a respective one of the application logic.

1449. The system of claim 1447, further comprising:

wherein the at least one server platform comprises a plurality of contexts, wherein each one of the plurality of contexts comprises a common characteristic, and wherein the at least one client platform comprises at least a respective one of the plurality of contexts.

1450. The system of claim 1449, further comprising:

wherein the at least one server platform comprises at least one of an application data and an application logic, wherein the at least one client platform comprises of at least one of an application logic, an application user interface, a respective one of the application data, and a respective one of the application logic.

1451. The system of claim 1447, wherein one of the at least one client platform connects to at least two of the at least one server platform.

1452. The system of claim 1442, wherein one of the at least one client platform connects to at least two of the at least one server platform.

1453. The system of claim 1452, wherein a respective one of the plurality of contexts associated with a first one of the at least two of the at least one server platform is different from a respective one of the plurality of contexts associated with a second one of the at least two of the at least one server platform.

1454. The system of claim 1447, wherein one of the at least one server platform serves at least two of the at least one client platform.

1455. The system of claim 1454, wherein the at least two of the at least one client platform use a respective one of the plurality of contexts associated with the one of the at least one server platform.

1456. The system of claim 1447, wherein one of the at least one client platform connects to at least two of the at least one server platform so as to use at least one of an application or one of the plurality of contexts associated with the at least two of the at least one server platform.

1457. The system of claim 1442, wherein the online application platform comprises an application platform and further comprises:

means for creating at least two server platforms on the application platform; and means for connecting the at least two server platforms to the at least one client platform.

1458. The system of claim 1457, wherein a first one of the at least two server platforms is connected to a second one of the at least two server platforms, and the at least one client platform is connected to the first one of the at least two server platforms.

1459. The system of claim 1458, further comprising:

means for creating at least one of an application or a context, wherein the context comprises a shared characteristic;

means for associating the at least one of an application or a context with the at least two server platforms;

means for connecting the at least one client platform to the at least two server platforms; and

means for simultaneously managing the at least one client platform via the at least two server platforms.

1460. The system of claim 1458, further comprising:

means for creating at least one of an application or a context, wherein the context comprises a shared characteristic;

means for associating the at least one of an application or a context with the at least two server platforms;

means for connecting the at least one client platform to the at least two server platforms; and

means for simultaneously managing the at least one of an application or a context via the at least two server platforms.

1461. The system of claim 1426, further comprising:

means for connecting a first one of the at least two server platforms to a second one of the at least two server platforms based on performance parameters of the at least one of user, context, or application.

1462. The system of claim 1460, further comprising:

means for sharing via an online application platform at least one of a client state or data associated with a respective one of the client platform among the respective one of at least two server platforms so as to facilitate communication with a client platform.

1463.The system of claim 1460, further comprising:

means for sharing via an online application platform at least one of a client state or data associated with a respective one of the client platform among the at least two of an application or a context, each corresponding to one of at least two server platforms so as to facilitate communication with the at least two of an application or a context on the client platform.

1464.The system of claim 1463, further comprising:

means for sharing context data and application data between the server platforms.

1465. The system of claim 1457, further comprising:

wherein at least a first one of the at least two server platforms are connected to a second one of the at least two server platforms, so as to create a server network.

1466. The system of claim 1465, wherein the server network can share at least one of a context, wherein the context comprises a common characteristic, and one or more applications.

1467. The system of claim 1465, further comprising:

means for grouping the at least two server platforms into at least two server groups for a common permissions policy.

1468. The system of claim 1465, further comprising:

means for creating a context for 6t least one of the at least two server platforms, wherein the context comprises a shared characteristic; and

means for making the context available on a respective one of the at least two server platforms or the at least two server groups.

1469. The system of claim 1465, further comprising:

means for creating at least one client platform;

means for connecting the at least one client platform to one of the at least two server platforms; and

means for allowing the viewing of an associated context corresponding to the at least two server platforms creating the server network.

1470. The system of claim 1466, further comprising:

means for creating an application on at least one of the at least two server platforms; and

means for making the application available on a respective one of the at least two server platforms or the at least two server groups.

1471. The system of claim 1470, further comprising:

means for creating at least one client platform;

means for connecting the at least one client platform to one of the at least two server platforms; and

means for allowing the viewing of an associated application corresponding to the at least two server platforms creating the server network.

1472. The system of claim 1465, wherein each one of the at least two server platforms are connected to another one of the at least two server platforms in a network in at least one of a network tree formation or a peer-to-peer network.

1473.A system, comprising:

means for creating at least one client platform on an application platform; and means for creating at least one server platform on the application platform;

means for implementing at least one of the at least one client platform or the at least one server platform as at least one of 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.

1474. A system, comprising:

means for creating at least one client platform on an online application platform; means for creating at least one server platform on the online application platform; and

means for implementing at least one application on at least one of the at least one client platform and the at least one server platform.

1475. The system of claim 1474, wherein the at least one client platform and the at least one server platform share a common one of the at least two applications.

1476. The system of claim 1474, wherein a first one of the at least two applications interact with another one of the at least two applications.

1477. The system of claim 1474, wherein a first one of the at least two applications interact with another one of the at least two applications, and wherein the client and the server have different sets of applications.

1478. A system, comprising:

means for creating at least one client platform on an application platform; and means for creating at least one server platform on the application platform; and means for implementing at least one application on at least one of the at least one client platform and the at least one server platform;

wherein a first one of the at least one application may interact with another one of the at least one application or at least one of the client platform or the server platform.

1479. The system of claim 1478, wherein the interaction of the at least one application occurs on the at least one server platform.

1480. The system of claim 1478, wherein the interaction of the at least one application occurs on the at least one client platform.

1481. The system of claim 1478, further comprising:

means for implementing at least two applications on at least one of the at least one client platform and the at least one server platform;

wherein a first one of the at least two applications may interact with another one of the at least two applications or at least one of the client platform or the server platform.

1482. The system of claim 1478, further comprising:

wherein one of the at least two applications on a first computing device may communicate with the same one of the at least two applications on a second computing device via the application platform.

1483. The system of claim 1478, further comprising: wherein one of the at least two applications on a first computing device may communicate with at least one of another one of the at least two applications or the same one of the at least two applications on a second computing device via the application platform.

1484. The system of claim 1478, further comprising:

wherein the at least one client platform may interact with at least two of the at least two of the at least one server platform and at least two of an application associated with a respective one of the at least two of the at least one server platform.

1485. The system of claim 1478, further comprising:

wherein the at least one client platform may interact with at least two of the at least two of the at least one server platform.

1486. The system of claim 1478, further comprising:

wherein the at least one server platform may interact with at least two of the at least two of the at least one client platform and at least two of an application associated with a respective one of the at least two of the at least one client platform.

1487. The system of claim 1478, further comprising:

wherein the at least one server platform may interact with at least two of the at least two of the at least one client platform.

1488. The system of claim 1478, further comprising:

wherein the at least one server platfo4m comprises at least one of data store, logic, computing resource, communication resource, user interface, and a connection manager, wherein the connection manager manages the at least one client platform.

1489. The system of claim 1474, further comprising: wherein the at least one client platform comprises at least one of data store, logic, computing resource, communication resource, user interface, and a connection manager, wherein the connection manager manages the at least one server platform.

1490. The system of claim 1474, further comprising:

means for distributing at least one of an application, a data, a client platform, a server platform, and a context, wherein the context comprises a shared characteristic, to a client on an as-needed basis.

1491. The system of claim 1474, further comprising:

means for distributing at least one of an application, a data, a client platform, a server platform, and a context, wherein the context comprises a shared characteristic, to at least one of the at least one client platform or the at least one server platform on an as- needed basis.

1492. The system of claim 1474, further comprising:

means for installing at least one of an application, a data, a client platform, a server platform, and a context, wherein the context comprises a shared characteristic, to a client on an as-needed basis.

1493. The system of claim 1474, further comprising:

means for downloading at least one of an application, a data, a client platform, a server platform, and a context, wherein the context comprises a shared characteristic, to a client automatically when connected to the at least one client platform or the at least one server platform.

1494. The system of claim 1474, further comprising:

means for installing at least one of an application, a data, a client platform, a server platform, and a context, wherein the context comprises a shared characteristic, to a client via an interface of the at least one client platform or the at least one server platform.

1495. The system of claim 1474, further comprising:

means for upgrading the client platform when the client platform is connected to the server platform.

1496. The system of claim 1474, wherein the client platform is temporary.

1497. The system of claim 1474, further comprising:

means for creating an application on the online application platform, wherein the application may contain both at least one server component and at least one client component.

1498. The system of claim 1497, wherein the at least one server component comprises at least one of data store, logic, computing resource, communication resource, user interface, or client management.

1499. The system of claim 1497, wherein the at least one client component comprises at least one of data store, logic, computing resource, communication resource, user interface, or a connection manager.

1500. A system, comprising:

means for creating at least one client platform on an application platform;

means for creating at least one server platform on the application platform; and means for creating an application on the application platform, wherein the application may contain both at least one server component and at least one client component;

wherein the at least one server component comprises at least one of data store, logic, computing resource, communication resource, user interface, or client

management; and

wherein the at least one client component comprises at least one of data store, logic, computing resource, communication resource, user interface, or a connection manager.

1501. The system of claim 1497, wherein at least one of the at least one server component and at least one client component may be at least one of non-synchronized, synchronized, or partially synchronized.

1502. The system of claim 1497, at least a client component or server component may hold temporary data.

1503.The system of claim 1500, further comprising:

means for propagating automatically an updated application code, wherein an application component comprising at least one of data, logic, user interface, structure, server component code, or client component code may be updated substantially in realtime.

1504. The system of claim 1503, further comprising at least one of:

means for propagating a new application code; and

means for deleting an application code.

1505. The system of claim 1500, further comprising:

means for propagating at least one of an action.

1506. The system of claim 1503, wherein the updated application code is propagated to at least two nodes that run a shared application.

1507. The system of claim 1503, wherein the code may be pushed across the at least one server platform.

1508. The system of claim 1503, wherein a user of the at least one client platform may block the code that is pushed.

1509. The system of claim 1503, wherein a user of the at least one server platform may block the code that is pushed.

1510. A system, comprising:

means for creating at least one client platform on an online application platform; means for creating at least one server platform on the online application platform; and

means for creating an application on the online application platform, wherein the application may contain both at least one server component and at least one client component.

1511. The system of claim 1510, further comprising:

means for distributing the at least one client component to a client on an as- needed basis.

1512. The system of claim 1510, further comprising:

means for installing the at least one client component on a client.

1513. The system of claim 1510, further comprising:

means for downloading the at least one client component to a client automatically when connected to the server component.

1514. The system of claim 1510, further comprising:

means for downloading the at least one client component automatically to a client from the online application platform.

1515. The system of claim 1510, further comprising:

means for installing the at least one client component to a client via at least one of the server component or a web interface of the online application platform.

1516. A system, comprising: means for creating at least one application on an application platform; and means for creating at least two contexts on the at least one application, wherein each one of the at least two contexts share a common characteristic.

1517. The system of claim 1516, further comprising:

means for sharing data corresponding to one of the at least one application among the at least two contexts.

1518. The system of claim 1516, wherein one of the at least two contexts may correspond to at least two of the at least one application.

1519. The system of claim 1516, wherein a first one of the at least one application corresponding a first one of the at least two contexts may interact with a second one of the at least one application corresponding to a second one of the at least two contexts.

1520. The system of claim 1510, further comprising:

means for extending the application by at least one plugin.

1521. The system of claim 1520, wherein the at least one plugin comprises at least one piece of code, wherein the at least one piece of code adds at least one functionality to the application.

1522. The system of claim 1521, wherein the at least one plugin may be added to the application in a specific context, wherein the specific context comprises a shared characteristic.

1523.The system of claim 1521, further comprising:

at least two of the application, wherein the at least one plugin provides the at least one functionality to a respective one of the at least two of the application.

1524. The system of claim 1522, wherein a first one of the at least one plugin may interact with another one of the at least one plugin, wherein the first one and the second one of the at least one plugin share at least one of a common specific context or a common application.

1525. The system of claim 1522, wherein a first one of the at least one plugin may interact with another one of the at least one plugin, wherein the first one and the second one of the at least one plugin each belong to at least one of a different specific context or a different application.

1526. The system of claim 1522, wherein the at least one plugin may access at least one of a data and a resource of the application.

1527. A system, comprising:

means for creating at least one client platform on an online application platform; means for creating at least one server platform on the online application platform; and

means for updating data between the at least one client platform and the at least one server platform on a real-time basis.

1528. The system of claim 1527, further comprising:

means for placing a processing logic that performs the updating data means on at least one of the at least one client platform and the at least one server platform.

1529. The system of claim 1527, wherein the application platform comprises a peer-to- peer structure, wherein each node is both a server and a client.

1530. The system of claim 1527, further comprising:

means for synchronizing data; and

means for managing the updating of the at least one client platform.

1531. The system of claim 1527, wherein the updating data means supported on at least one of the at least one client platform and at least one server platform comprises at least one of at least one of 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.

1532. The system of claim 1527, further comprising:

means for managing the updating data means of the at least one client platform and the at least one server platform on a subscription basis.

1533. The system of claim 1527, further comprising:

at least one of sending or aggregating at least one hosts update to at least one of the at least one client platform and the at least one server platform.

1534. The system of claim 1533, further comprising:

means for monitoring by the at least one server platform of at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user or a data that is looked at by the at least one client platform.

1535. The system of claim 1533, further comprising:

means for subscribing by the at least one client platform to a data update stream via the at least one server platform.

1536. The system of claim 1533, further comprising:

means for monitoring by the at least one client platform of at least one of a context, wherein the context comprises a shared characteristic, an application, an element, or a data that is looked at by the at least one server platform.

1537. The system of claim 1533, further comprising: means for monitoring by the at least one client platform of at least one of a context, wherein the context comprises a shared characteristic, an application, an element, or a data that is managed by the at least one server platform.

1538. The system of claim 1533, further comprising:

means for maintaining a list of at least one subscribed hosts to at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user or a data.

1539. The system of claim 1533, further comprising:

means for maintaining a data structure of at least one subscribed hosts to at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user or a data.

1540. The system of claim 1533, further comprising:

means for storing a state of the at least one client platform; and

means for determining a need for an update of the at least one client platform.

1541. The system of claim 1533, further comprising:

means for allowing a subscription of the at least one client platform to at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user or a data.

1542. The system of claim 1541, further comprising:

means for storing by the at least one client platform of a dependency tree between a responsibility of the at least at least one of a client platform, server platform, an application, a context, a client and the at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user or a data.

1543.The system of claim 1541, further comprising: means for storing by the at least one server platform of a dependency tree between a subscription by the subscribers and the at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user or a data.

1544. The system of claim 1541, further comprising:

means for storing by the at least one server platform of a dependency tree between a subscription by the subscribers, wherein the subscribers can be a at least one of a client platform, server platform, an application, a context, a client and the at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user or a data.

1545. The system of claim 1541, further comprising:

means for unsubscribing by the at least one client platform of the at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user_or a data.

1546. The system of claim 1541, further comprising:

means for unsubscribing, during at least one of a disconnect or a logout or a predetermined event, by the at least one client platform of the at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user, or a data.

1547. The system of claim 1541, further comprising:

means for unsubscribing, during at least one of a disconnect or a logout or a predetermined event, by the at least one subscriber of the at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user, or a data.

1548. The system of claim 1541, further comprising:

means for unsubscribing, during at least one of a disconnect or a logout or a predetermined event, by the at least one subscriber of the at least one of a context, wherein the context comprises a shared characteristic, an application, an element, a user, or a data and wherein the at least one subscriber can be a at least one of a client platform, server platform, an application, a context, a user, a client.

1549. The system of claim 1541, further comprising:

means for monitoring by the at least one server platform of at least one of the dependency tree and the subscription; and

means for determining whether changing the data will affect a respective one of the at least one client platform.

1550. The system of claim 1541, further comprising:

means for monitoring by the subscription provider of at least one of the dependency tree and the subscription; and

means for determining whether changing the data will affect a respective one of the at least one client platform.

1551. The system of claim 1544, further comprising:

means for monitoring by the at least one server platform of at least one of the dependency tree and the subscription; and

means for determining whether changing the data will affect a respective one of the at least one client platform.

1552. The system of claim 1544, further comprising:

means for monitoring by the subscription provider of at least one of the dependency tree and the subscription; and

means for determining whether changing the data will affect a respective one of the at least one client platform.

1553. The system of claim 1550, further comprising:

means for notifying by the at least one server platform of a need to change a value of the at least one of the context, wherein the context comprises a shared characteristic, an application, an element, a user, or a data of a respective one of the at least one client platform.

1554. The system of claim 1550, further comprising:

means for notifying by the subscription provider of a need to change a value of the at least one of the context, wherein the context comprises a shared characteristic, an application, an element, or a data of a respective one of the at least one client platform.

1555. The system of claim 1550, further comprising:

means for notifying by the at least one server platform of a need to perform an action or request to perform an action.

1556. The system of claim c, further comprising:

means for notifying by the at least one server platform of a need to change a value of the at least one of the context, wherein the context comprises a shared characteristic, an application, an element, or a data of a respective one of the at least one client platform.

1557. The system of claim 1550, further comprising:

means for notifying by the provider of a need to change a value of the at least one of the context, wherein the context comprises a shared characteristic, an application, an element, or a data of a respective one of the at least one client platform.

1558. The system of claim 1553, further comprising:

means for changing the value.

1559. The system of claim 1554, further comprising:

means for changing the value.

1560. The system of claim 1556, further comprising:

means for changing the value.

1561. The system of claim 1557, further comprising:

means for changing the value.

1562. A system, comprising:

means for creating at least one client platform on an application platform;

means for creating at least one server platform on the application platform;

means for updating data between the at least one client platform and the at least one server platform; and

means for sending by the at least one server platform of at least one of a data update or a notice to the at least one client platform.

1563.A system, comprising:

wherein the at least one client platform requires the at least one of a notice or a data update.

1564. The system of claim 1562, further comprising:

means for updating in real-time by the at least one client platform of the at least one of a log update, a delta update or a full update.

1565. The system of claim 1562,further comprising:

means for combining at least two of the at least one of a log update, delta update or a full update into a single update for a host.

1566. The system of claim 1562, further comprising:

means for splitting a single update into at least two of the at least one of a log update, a delta update or a full update into a single update for a host.

1567. The system of claim 1562, further comprising:

means for combining at least two of the at least one of a log update, a delta update or a full update into a single update for a host among a plurality of hosts who is at a different state from another one of the plurality of hosts.

1568. The system of claim 1562, further comprising:

means for splitting one of the at least one of a log update, a delta update or a full update into at least two of the at least one of a delta update or a full update for a host among a plurality of hosts who is at a different state from another one of the plurality of hosts.

1569. The system of claim 1562, further comprising:

means for combining at least two of the at least one of a log update, a delta update or a full update into a single update for a host among a plurality of hosts who is at a different state from another one of the plurality of hosts; and

means for splitting one of the at least one of a log update, a delta update or a full update into at least two of the at least one of a log update, a delta update or a full update for a host among a plurality of hosts who is at a different state from another one of the plurality of hosts.

1570. The system of claim 1562, wherein the notice indicates to the at least one client platform that an update is available.

1571. The system of claim 1570, wherein the notice is sent in real-time.

1572. The system of claim 1570, further comprising:

means for combining at least two of the at least one notice into a single notice.

1573. The system of claim 1570, further comprising:

means for splitting one of the at least one notice into at least two notices.

1574. The system of claim 1562, further comprising:

means for notifying by the at least one server platform to the at least one client platform that the at least one server platform is no longer responsible for at least one of an application, a user, an event, a context, wherein the context comprises a shared characteristic, or a data.

1575. The system of claim 1562, further comprising:

means for notifying by the at least one server platform to the at least one client platform that the at least one server platform is responsible for at least one of an application, a user, an event, a context, wherein the context comprises a shared characteristic, or a data.

1576. The system of claim 1562, further comprising:

means for notifying by the at least one server platform to the at least one client platform that the at least one server platform is handing over a responsibility for at least one of an application, a user, an event, a context, wherein the context comprises a shared characteristic, or a data to another one of the at least one server platform.

1577. The system of claim 1562, further comprising:

means for notifying by the at least one server platform to the at least one client platform that the at least one server platform is no longer responsible for at least one of an application, a user, an event, a context, wherein the context comprises a shared characteristic, or a data;

means for notifying by the at least one server platform to the at least one client platform that the at least one server platform is responsible for at least one of an application, a user, an event, a context, wherein the context comprises a shared characteristic, or a data; and

means for notifying by the at least one server platform to the at least one client platform that the at least one server platform is handing over a responsibility for at least one of an application, a user, an event, a context, wherein the context comprises a shared characteristic, or a data to another one of the at least one server platform.

1578. A system, comprising:

means for differentiating data into at least two types of data priority; and means for transmitting the data corresponding to one of the at least two types of data priority to a respective one of at least two data channels.

1579. The system of claim 1578, further comprising at least one of:

means for transmitting data of different priority entirely on same data channel while keeping the other channel as backup;

means for transmitting data on same channel but allow the higher priority data to have a larger usage share or proportionate to its priority of the channel;

means for transmitting data of different priority alternately on each data channel; means for transmitting data of different priority on separate data channels according to their priority, wherein a higher priority gets a better channel; and

means for using both channels as one channel, giving the higher/lower priority data a proportionate share to the combined channel capacity. The share can be calculated by taking consideration of the channels' latency, bandwidth, protocol, reliability or loss rate.

1580. The system of claim 1578, wherein the at two data channels have different network protocols.

1581. The system of claim 1578, wherein the transmitting means may be accomplished through an operating system.

1582. The system of claim 1578, wherein transmitting means may be accomplished through at least one of an operating system, 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.

1583.The system of claim 1578, further comprising:

means for determining by an application of the at least two types of data priority; and

means for determining by an application of the at least two data channels.

1584. The system of claim 1578, further comprising:

means for creating an application platform;

means for determining by the application platform of the at least two types of data priority and the at least two data channels.

1585. The system of claim 1578, further comprising:

means for creating an application platform;

means for delegating by the application platform to the application determining the at least two types of data priority and the at least two data channels.

1586. A system, comprising:

means for creating an application platform;

means for transmitting data using a plurality of network channels.

1587. The system of claim 1554, wherein the data comprises data updates.

1588. The system of claim 1554, wherein each one of the plurality of network channels have at least one of a same or a different one of at least one of a bandwidth or a latency specification.

1589. The system of claim 1554, wherein at least two of the plurality of network channels correspond to a different one of at least two network protocols.

1590. The system of claim 1554, wherein each one of the plurality of network channels have at least one of a same or a different one of at least one of a bandwidth, a latency specification, or a network protocol.

1591. The system of claim 1586, wherein data updates are transmitted through an operating system.

1592.The system of claim 1586, wherein data updates are transmitted through at least one of an operating system, a virtual machine, a process or thread, an application, a browser, a browser extension, an application inside a browser or an application inside a browser extension.

1593.The system of claim 1586, wherein the data are transmitted through an operating system.

1594. The system of claim 1586, wherein the data are transmitted through at least one of an operating system, a virtual machine, a process or thread, an application, a browser, a browser extension, an application inside a browser or an application inside a browser extension.

1595. The system of claim 1578, further comprising:

means for creating an online application platform, wherein the online application platform comprises an application;

means for determining a degree of parallism by the application.

1596. The system of claim 1578, further comprising:

means for creating an online application platform, wherein the online application platform comprises an application;

means for determining by the online application platform of a degree of parallism.

1597. The system of claim 1537, further comprising:

means for delegating by the online application platform to the application the determining of the degree of parallism.

1598. A system, comprising:

means for creating at least one client platform on an online application platform; means for creating at least one server platform on the application platform; and means for updating data between the at least one client platform and the at least one server platform.

1599. A system, comprising:

means for creating at least two computing nodes on an online application platform;

means for updating data between the at least two computing nodes on an online application platform.

1600. The system of claim 1599, wherein the updating data means consists of transmitting at least one of a data update, a new data, a removal of data, an action, a request, a notice, a platform, an application, a context, a platform element, a metadata, a data reference, a message or an alert.

1601. The system of claim 1599, wherein the updating comprises transmitting a full update and wherein the full update comprises a new value which a receiver should update to.

1602. The system of claim 1599, further comprising:

means for sending by a node among a plurality of nodes to another one of the plurality of nodes all data for at least one of a context, wherein the context comprises a shared characteristic, an application, or an application inside a context.

1603.The system of claim 1599, further comprising:

means for sending by a node among the plurality of nodes to another one of the plurality of nodes a partial data.

1604.The system of claim 1599, further comprising:

means for sending by a node among the plurality of nodes to another one of the plurality of nodes a temporary data.

1605. The system of claim 1599, further comprising:

means for sending by a node among the plurality of nodes to another one of the plurality of nodes no data; and

means for waiting for the another one of the plurality of nodes to request a data when the data is required for operation.

1606. The system of claim 1599, further co8prising:

means for calculating a data difference between the at least one client platform and the at least one server platform; and

means for transmitting the data difference.

1607. The system of claim 1599, further comprising:

means for calculating a data difference between a node and another node; and means for transmitting the data difference.

1608. The system of claim 1599, further comprising:

means for transmitting a calculated action to a receiver, wherein the calculated action comprises a data update;

means for acting upon the calculated action, wherein the acting upon means achieves a same effect as a full update.

1609. The system of claim 1598, further comprising:

means for transmitting at least one of data or action from the point last communicated by the at least one of the at least one client platform and the at least one server platform.

1610. The system of claim 1599, further comprising:

means for transmitting at least one of data or action from the point last communicated by at least one node to at least one another node.

1611. The system of claim 1599, further comprising: means for transmitting at least one of data or action from the point last communicated by at least one node to at least one another node, wherein the last point of communication is known through direct or indirect communication between the two nodes, or through previous communication history known from at least one of locally, from another source or from a centralized source.

1612. The system of claim 1598, further comprising:

means for disconnecting the at least one client platform from the at least one server platform;

means for modifying local data, so as to obtain modified local data;

means for determining whether the modified local data conflicts with a change in the at least one server platform;

means for storing the change if the change conflicts with the modified local data.

1613. The system of claim 1599, further comprising:

means for disconnecting the at least one node from the at least one another node; means for modifying local data, so as to obtain modified local data;

means for determining whether the modified local data conflicts with a change in the at least one another node;

means for storing the change if the change conflicts with the modified local data.

1614. A system, comprising:

means for creating at least one client platform on an application platform;

means for creating at least one server platform on the application platform; means for updating data between the at least one client platform and the at least one server platform; and

means for transmitting an update by one of a plurality of computing nodes to another one of the plurality of computing nodes.

1615. A system, comprising:

means for creating at least two nodes on an application platform; means for transmitting an update by one of a plurality of nodes to another one of the plurality of nodes.

1616. The system of claim 1615, further comprising:

means for replacing the update with different data.

1617. The system of claim 1615, further comprising:

means for combining the update with different data.

1618. The system of claim 1615, further comprising:

means for replacing the update with different data; and

means for combining the update with different data.

1619. The system of 1602, further comprising:

means for propagating by one of the plurality of nodes of an update directly to another one of the plurality of nodes without changing the update.

1620. The system of 1614, further comprising:

means for propagating by one of the plurality of nodes of an update directly to another one of the plurality of nodes without changing the update.

1621. The system of 1615, further comprising:

means for propagating by one of the plurality of nodes of an update directly to another one of the plurality of nodes without changing the update.

1622. A system, comprising:

means for creating at least one client platform on an application platform;

means for creating at least one server platform on the application platform; means for updating data between the at least one client platform and the at least one server platform; and means for creating a conflict resolution logic on at least one of the at least one client platform, at least one server platform, and a general node, wherein the conflict resolution logic may determine how to resolve at least one of a data conflict or an action conflict.

1623.A system, comprising:

means for creating at least one sender on an application platform;

means for creating at least one receiver on the application platform;

means for updating data between the at least sender and the at least one receiver; and

means for creating a conflict resolution logic on at least one of the at least one sender, at least receiver, and a general node, wherein the conflict resolution logic may determine how to resolve at least one of a data conflict or an action conflict.

1624. The system of claim 1623, wherein the conflict resolution logic comprises at least one of an application logic, a context logic, or an application platform logic.

1625. The system of claim 1623, further comprising:

means for automatically resolving by the application platform logic a conflict among a plurality of conflicts.

1626. The system of claim 1625, further comprising:

means for requiring by the application platform logic that at least one of the application logic or context logic resolve another one of the plurality of conflicts.

1627. The system of claim 1624, further comprising:

means for automatically resolving by the context logic a conflict among a plurality of conflicts.

1628. The system of claim 1627, further comprising: means for requiring by the context logic that the application logic resolve another one of the plurality of conflicts.

1629. The system of claim 1628, further comprising:

means for requiring by the context logic that another one of the plurality of conflicts be resolved manually.

1630. The system of claim 1624, further comprising:

means for automatically resolving by the application logic a conflict among a plurality of conflicts.

1631. The system of claim 1630, further comprising:

means for requiring by the application logic that the context logic resolve another one of the plurality of conflicts.

1632. The system of claim 1631, further comprising:

means for requiring by the application logic that another one of the plurality of conflicts be resolved manually.

1633. The system of claim 1624, further comprising:

means for automatically resolving by at least one of the application logic or the context logic a conflict among a plurality of conflicts.

1634. The system of claim 1633, further comprising:

means for requiring by the application logic or the context logic that another one of the plurality of conflicts be resolved manually.

1635. A system, comprising:

means for creating at least one client platform on an application platform;

means for creating at least one server platform on an application platform; and means for creating event-driven asynchronous applications on at least one of the at least one client platform, and the at least one server platform.

1636. A system, comprising:

means for creating event-driven asynchronous applications on at least one of the at least one client, the at least one server on an online application platform.

1637. The system of claim 1635, further comprising:

means for determining an order of execution on the application platform using a priority of task.

1638. The system of claim 1635, further comprising:

means for determining an order of execution on the application platform using at least one of a scheduler or a queue.

1639. The system of claim 1635, further comprising:

means for putting a blocking event in a background processing framework, wherein the blocking event comprises a task that involve waiting time.

1640. The system of claim 1635, wherein the putting the blocking event means is performed manually.

1641. The system of claim 1635, wherein the putting the blocking event means is performed automatically by the application platform.

1642. The system of claim 1635, further comprising:

means for identifying a blocking event in an application on the application platform, wherein the blocking event comprises a task that involve waiting time.

1643.A system, comprising:

means for creating an application on an online application platform; means for processing a first part of the application immediately; and

means for processing a second part of the application delayed from the processing of the first part.

1644. The system of claim 1643, further comprising:

means for specifying by an application developer of the processing a first part of the application and the processing a second part of the application.

1645. The system of claim 1643, further comprising:

means for specifying by an application developer of the processing a first part of the application and the processing a second part of the application without affecting application operation, output or correctness.

1646. The system of claim 1643, further comprising:

means for automatically performing by the online application platform of the processing a first part of the application means and the processing a second part of the application means.

1647. The system of claim 1643, further comprising:

means for automatically performing by the online application platform of the processing a first part of the application means and the processing a second part of the application means without affecting application operation, output or correctness.

1648. The system of claim 1643, further comprising:

means for setting at least one parameter on an application part; and

means for determining an execution priority of a part of the application based on the setting at least one parameter means.

1649. The system of claim 1643, further comprising:

means for setting at least one parameter on an application part; and means for determining an execution priority of a part of the application based on the setting at least one parameter means without affecting application operation, output or correctness.

1650. The system of claim 1643, further comprising:

means for determining an execution priority of a part of the application based on a time-sensitivity.

1651. The system of claim 1650, wherein the determining means preserves correctness of the application operation and output.

1652. The system of claim 1643, further comprising at least one of:

means for determining an execution priority of a part of the application based on importance;

means for determining an execution priority by analyzing its code statically or during runtime;

means for determining an execution priority by the part's delay or expected delay, or by optimizing the total minimal delay or total expected minimal delay of all parts; means for determining an execution priority by the part's execution time or expected execution time, or by optimizing the total execution time or expected total execution time of all parts;

means for determining an execution priority by a function or a heuristic that calculates the expected execution time or expected delay; and

means for determining an execution priority by calculating the dependencies between application parts.

1653. The system of claim 1652, wherein the application operation, output or correctness is not affected.

1654. The system of claim 1643, further comprising:

means for storing at least one data process in the application platform; and means for executing the at least one data process so as to minimize delay.

1655. The system of claim 1643, further comprising:

means for storing at least one data process in the application platform; and means for executing the at least one data process so as to minimize delay without affecting application operation, output or correctness.

1656. The system of claim 1643, further comprising:

means for holding an execution of a part of the application until the application platform is available.

1657. The system of claim 1643, further comprising:

means for holding an execution of a part of the application until the application platform is available without affecting application operation, output or correctness.

1658. The system of claim 1643, further comprising:

means for executing concurrently a first one of a part of the application and a second one of a part of the application when the first one of a part of the application and the second one of a part of the application are safely parallel.

1659. The system of claim 1643, further comprising:

means for executing concurrently a first one of a part of the application and a second one of a part of the application when the first one of a part of the application and the second one of a part of the application are safely parallel without affecting application operation, output or correctness.

1660. A system, comprising:

means for creating an application on an online application platform; and means for providing at least one of a computing framework, a data framework, or a user interface framework on the online application platform, wherein the at least one of a computing framework, a data framework, or a user interface framework support the application.

1661. The system of claim 1660, wherein the computing framework comprises at least one of an event driven framework, a multi-process framework or a multi-thread framework.

1662. The system of claim 1660, further comprising:

means for providing a main processing framework, wherein the computing framework comprises at least one of a queue, a work priority-differentiation, or a scheduler.

1663.A system, comprising:

means for creating an application on an application platform;

means for creating at least one client platform on the application platform; means for creating at least one server platform on the application platform and means for providing a main processing framework, wherein the main processing framework comprises at least one of a queue, a work priority-differentiation, or a scheduler.

1664. The system of claim 1663, wherein the computing framework comprises at least one of an event driven framework, a multi-process framework or a multi-thread framework.

1665. The system of claim 1663, further comprising:

means for providing at least one of an event driven framework, a multi-process framework or a multi-thread framework.

1666. A system, comprising:

means for creating an application on an application platform;

means for creating at least one client platform on the application platform; means for creating at least one server platform on the application platform and means for providing at least one of an event driven framework, a multi-process framework or a multi-thread framework.

1667. The system of claim 1662, further comprising:

means for running at least one of an application or an application part in the computing framework.

1668. The system of claim 1663, further comprising:

means for running at least one of an application or an application part in the computing framework.

1669. The system of claim 1665, further comprising:

means for running at least one of an application or an application part in the computing framework.

1670. The system of claim 1660, further comprising:

means for providing a background processing framework for at least one of a less- time sensitive task, an inactive task, a blocking task or a lower priority task.

1671. The system of claim 1660, further comprising:

means for providing a background processing framework for at least one of a less- time sensitive task, an inactive task, a blocking task or a lower priority task wherein the background processing framework comprises at least one of an event driven framework, a multi-process framework or a multi-thread framework.

1672. The system of claim 1670, wherein the background processing framework can be located on the server platform, client platform, or both.

1673.The system of claim 1660, further comprising: means for providing at least one of a queue, a work priority-differentiation, or a scheduler on a client and a server.

1674. The system of claim 1673, wherein the client comprises at least one client platform and the server comprises at least one server platform.

1675. The system of claim 1663, further comprising:

means for providing a background processing framework for at least one of a less- time sensitive, inactive, blocking or lower priority task.

1676. A system, comprising:

means for creating an application on an application platform;

means for creating at least one client platform on the application platform;

means for creating at least one server platform on the application platform; and means for providing a background processing framework for at least one of a less- time sensitive task, an inactive task, a blocking task or a lower priority task.

1677. The system of claim 1675, wherein the background processing framework can be located on the server platform, client platform, or on both.

1678. The system of claim 1676, wherein the background processing framework is used to process at least one of a less-time sensitive task, an inactive task, a blocking task or a lower priority task.

1679. The system of claim 1660, further comprising:

means for providing a data store, wherein the data store may store a content for at least one of a different application and a different context, and wherein a first one of the content may be provided in different format from a second one of the content.

1680. The system of claim 1679, wherein the data store is on a client and a server.

1681. The system of claim 1680, wherein the client and the server have a temporary data cache so as to provide an efficient response.

1682. The system of claim 1680, wherein the data store on the client may be temporary.

1683.The system of claim 1680, further comprising:

means for storing partial information on at least one of the data store on the client and the data store on the server, wherein the partial information comprises a part of the complete data that is needed, wherein the complete data may comprise of data that is needed and data that is not needed.

1684. The system of claim 1680, further comprising:

means for requesting data from source only when needed.

1685. The system of claim 1683, further comprising:

means for requesting data from source only when needed.

1686. The system of claim 1660, further comprising:

means for providing a user interface framework;

means for generating a user interface via the user interface framework, using resources of at least one of client-only, server-only, or a combination of server and client resources.

1687. The system of claim 1660, further comprising:

means for providing a communication framework; and

means for dealing with via the communication framework at least one of a network send update event and a network receive update event.

1688. The system of claim 1660, further comprising:

means for providing a communication framework; and means for dealing with via the communication framework at least one of network send event and a network receive event.

1689. The system of claim 1660, further comprising:

means for providing a communication framework; and

means for dealing with via the communication framework at least one of update event.

1690. The system of claim 1680, further comprising:

means for updating data in real-time.

1691. The system of claim 1680, further comprising:

means for transferring bulk data.

1692. The system of claim 1680, further comprising:

means for bootstrapping a client with at least one of a required code and ; required data.

1693.The system of claim 1680, further comprising at least one of:

means for bootstrapping a client with at least one of a required code and ; required data;

means for transferring an application code;

means for transferring a context;

means for transferring an application data or a context data;

means for transferring system messages and alerts;

means for transferring actions or request to actions; and

means for transferring messages, data or actions to other nodes reachable communication framework.

1694.A system, comprising:

means for creating an application on an online application platform; and means for providing application access to low-level event on the online application platform.

1695. The system of claim 1694, further comprising:

means for providing application access to an event from at least one of a browser, a virtual machine, a process, an operating system, an input/output device, or a hardware.

1696. The system of claim 1694, further comprising:

means for providing application access to a hardware event, wherein the hardware event comprises at least one of an interrupt or an error.

1697. The system of claim 1694, further comprising:

means for providing application access to a network event, wherein the network event comprises at least one of a received, a sent, a free to send, a timeout, or an error.

1698. The system of claim 1694, further comprising:

means for providing application access to at least one of an input event or an output event or a network event, wherein the at least one of an input event or an output event comprises at least one of a received, a sent, a free to send, a timeout, or an error.

1699. The system of claim 1694, further comprising:

means for providing application access to an I/O event, wherein the I/O event comprises at least one of a disk event or a hardware peripheral event.

1700. The system of claim 1694, further comprising:

means for providing application access to an I/O event, wherein the I/O event comprises at least one of an input/output device event, a storage event or a hardware peripheral event.

1701. The system of claim 1694, further comprising: means for providing application access to an OS event, wherein the OS event comprises at least one of an interrupt or an error.

1702.The system of claim 1694, further comprising:

means for providing application access to an OS event, wherein the OS event comprises at least one of an interrupt, an error, a message event, semaphore event, a communication event or a system event.

1703.The system of claim 1694, further comprising:

means for providing application access to a process event, wherein the process event comprises at least one of error, free, start, or completed.

1704. The system of claim 1694, further comprising:

means for providing application access to a process event, wherein the process event comprises at least one of error, free, start, completed, a message event, semaphore event or a communication event.

1705. The system of claim 1694, further comprising:

means for providing application access to a data store event, wherein the data store event comprises at least one of a data added, a data changed, a data removed, a saved, or an error.

1706. The system of claim 1694, further comprising:

means for providing application access to a data store event, wherein the data store event comprises at least one of a data added, a data changed, a data removed, a saved, an error, a data read, a data cached, a space freed, a space consumed, a free to write data, a free to read data, or a data full.

1707. A system, comprising:

means for creating an application on an online application platform; and means for processing the application on a plurality of processing cores.

1708. The system of claim 1707, further comprising:

means for providing a plurality of threads concurrently within a process.

1709. The system of claim 1707, further comprising:

means for providing a plurality of processes.

1710. The system of claim 1707, further comprising:

means for providing a plurality of computing blocks concurrently via a scheduler.

1711. The system of claim 1707, further comprising:

means for providing an event-driven processing framework capable of utilizing multiple processing cores.

1712. The system of claim 1707, further comprising:

means for providing safe parallism for a data.

1713. The system of claim 1707, further comprising:

means for providing safe parallism for the application, wherein the application uses at least one of multiple threads or processes concurrently on the online application platform.

1714. The system of claim 1707, further comprising:

means for using at least one of locks, semaphores, or access control to prevent code conflicts.

1715. The system of claim 1707, further comprising:

means for utilizing software transactional memory.

1716. The system of claim 1707, further comprising: means for determining at least two of a plurality of blocks that can be run concurrently without conflicts.

1717. The system of claim 1707, further comprising:

means for determining at least two of a plurahty of contexts that can be processed concurrently without conflicts.

1718. The system of claim 1716, further comprising:

means for determining at least two of a plurahty of contexts that can be processed concurrently without conflicts.

1719. The system of claim 1707, further comprising:

means for determining at least two of a plurahty of data that can be processed concurrently without conflicts.

1720. The system of claim 1716, further comprising:

means for determining at least two of a plurahty of data that can be processed concurrently without conflicts.

1721. The system of claim 1717, further comprising:

means for determining at least two of a plurahty of data that can be processed concurrently without conflicts.

1722. The system of claim 1718, further comprising:

means for determining at least two of a plurahty of data that can be processed concurrently without conflicts.

1723.A system, comprising:

means for creating an application on an application platform; and

means for processing the application on a plurality of processing cores.

1724. The system of claim 1723, further comprising:

means for providing a plurality of threads concurrently within a process.

1725. The system of claim 1723, further comprising:

means for providing a plurality of processes.

1726. The system of claim 1723, further comprising:

means for providing a plurality of computing blocks concurrently via a scheduler.

1727. The system of claim 1723, further comprising:

means for providing an event-driven processing framework capable of utilizing multiple processing cores.

1728. The system of claim 1723, further comprising:

means for providing safe parallism for a data.

1729. The system of claim 1723, further comprising:

means for providing safe parallism for the application, wherein the application uses at least one of multiple threads or processes concurrently on the online application platform.

1730. The system of claim 1723, further comprising:

means for using at least one of locks, semaphores, or access control to prevent code conflicts.

1731. The system of claim 1723, further comprising:

means for utilizing software transactional memory.

1732. The system of claim 1723, further comprising:

means for determining at least two of a plurality of blocks that can be run concurrently without conflicts.

1733. The system of claim 1723, further comprising:

means for determining at least two of a plurahty of contexts that can be processed concurrently without conflicts.

1734. The system of claim 1723, further comprising:

means for determining at least two of a plurahty of contexts that can be processed concurrently without conflicts.

1735. The system of claim 1723, further comprising:

means for determining at least two of a plurahty of data that can be processed concurrently without conflicts.

1736. The system of claim 1732, further comprising:

means for determining at least two of a plurahty of data that can be processed concurrently without conflicts.

1737. The system of claim 1733, further comprising:

means for determining at least two of a plurahty of data that can be processed concurrently without conflicts.

1738. The system of claim 1734, further comprising:

means for determining at least two of a plurahty of data that can be processed concurrently without conflicts.

1739. A system, comprising:

means for creating a plurahty of applications on an application platform; and means for providing safe parallism for the plurality of applications using an event driven framework of the application platform.

1740. The system of claim 1739, further comprising: means for resolving unsafe conflicts to run code blocks in parallel

means for executing at least one of same blocks or different blocks in parallel under a condition.

1741. The system of claim 1739, further comprising:

means for resolving unsafe conflicts to run code blocks in parallel.

1742. The system of claim 1741, further comprising:

means for analyzing at least one of data conflicts, processing conflicts, context conflicts, content conflicts, data dependencies, processing dependencies, context dependencies, or content dependencies.

1743.The system of claim 1742, the analyzing means is accomplished via a static program analysis.

1744. The system of claim 1742, the analyzing means is accomplished via a runtime program analysis.

1745. The system of claim 1742, the analyzing means is accomplished via a predetermined configuration.

1746. The system of claim 1741, further comprising:

means for analyzing at least one of code conflicts or dependencies.

1747. The system of claim 1746, the analyzing means is accomplished via a static program analysis.

1748. The system of claim 1746, the analyzing means is accomplished via a runtime program analysis.

1749. The system of claim 1746, the analyzing means is accomplished via a

predetermined configuration.

1750. The system of claim 1739, further comprising:

means for using a conflict table to manage possible conflicts between at least one of a code block, a context, wherein the context comprises a shared characteristic, a content, and a data.

1751. The system of claim 1739, further comprising:

means for running at least one of same blocks or different blocks in parallel under a condition.

1752. The system of claim 1751, wherein the condition comprises if at least two of one or more codes will not access the same data at the same time, if at least two of one or more contexts are different, if the at least two of the one or more contexts is same but the at least one of the one or more codes will not access the same data at the same time, or if an application author specifically allows at least two of the blocks, contexts, content or data to be processed together.

1753. A system, comprising:

means for creating a context-centric online application platform, wherein the platform supports a plurality of content types.

1754. The system of claim 1753, wherein the plurality of content types may be in at least one of a context, an application, the same data store, or different data stores for different content types.

1755. The system of claim 1754, wherein the data store allows the following:

means for creating new content types.

1756. The system of claim 1754, wherein the data store allows the following: means for mapping new content types to objects stored in the data store.

1757. The system of claim 1754, wherein the data store allows the following:

means for changing dynamically a schema of the data store.

1758. The system of claim 1754, wherein the data store allows the following:

means for changing content types for existing data.

1759. The system of claim 1754, wherein when a system is online the data store allows the following:

means for creating new content types;

means for mapping new content types to objects stored in the data store;

means for changing dynamically a schema of the data store; and

means for changing content types for existing data.

1760. The system of claim 1754, further comprising:

means for providing a data store for a structure of the application platform.

1761. The system of claim 1760, wherein the data store is dynamic.

1762. The system of claim 1760, further comprising:

means for using a database.

1763.The system of claim 1760, further comprising:

means for using a hash table.

1764. The system of claim 1760, further comprising:

means for using a storage area network.

1765. The system of claim 1760, further comprising:

means for using a computer memory media.

1766. The system of claim 1760, further comprising:

means for using at least one of a distributed hash table or a distributed key-value- pair storage.

1767. The system of claim 1760, further comprising:

means for using a system combination of using a database, using a hash table, using a storage area network, using a computer memory media, and using at least one of a distributed hash table or a distributed key -value -pair storage.

1768. The system of claim 1760, further comprising:

means for using a distributed system combination of using a database, using a hash table, using a storage area network, using a computer memory media, and using at least one of a distributed hash table or a distributed key -value-pair storage.

1769. The system of claim 1760, further comprising:

means for propagating data storage within the data store.

1770. The system of claim 1760, further comprising:

means for storing multiple replicas of a piece of data within the data store.

1771. The system of claim 1760, further comprising:

means for storing calculated metadata of data pieces.

1772. The system of claim 1760, further comprising:

means for replicating metadata of data pieces to one or more computing nodes.

1773.The system of claim 1760, further comprising:

means for replicating at least one of data or metadata of data to one or more computing nodes.

1774. The system of claim 1760, further comprising:

means for organizing storage nodes using at least one of a ring, a tree, a hypercube, a peer-to-peer, a hierarchical structure, a log-based logical structure.

1775. The system of claim 1760, further comprising:

means for allowing permissions to be set on each data for access control among at least one of a user, a context, an application, or within contexts.

1776. The system of claim 1760, further comprising:

means for allowing priorities to be set on each data to indicate at least one of importance and service level.

1777. The system of claim 1760, further comprising:

means for creating a server platform;

means for utilizing by the server platform of multiple dynamic data stores; and means for storing at least one of different contexts or different applications.

1778. The system of claim 1760, further comprising:

means for utilizing by the platform of multiple data stores; and

means for storing at least one of different contexts or different applications.

1779. The system of claim 1760, further comprising:

means for creating at least one of a server platform or client platform;

means for utilizing by at least one of a server platform or client platform of multiple data stores; and

means for storing at least one of different contexts or different applications.

1780. A system, comprising:

means for creating a context-centric application platform, wherein the platform supports a plurality of content types.

1781. The system of claim 1760, wherein the plurality of content types may be in at least one of a context, an application, the same data store, or different data stores for different content types.

1782.The system of claim 1761, wherein the data store allows the following:

means for creating new content types.

1783.The system of claim 1761, wherein the data store allows the following:

means for mapping new content types to objects stored in the data store.

1784. The system of claim 1761, wherein the data store allows the following:

means for changing dynamically a schema of the data store.

1785. The system of claim 1761, wherein the data store allows the following:

means for changing content types for existing data.

1786. The system of claim 1761, wherein when a system is online the data store allows the following:

means for creating new content types;

means for mapping new content types to objects stored in the data store;

means for changing dynamically a schema of the data store; and

means for changing content types for existing data.

1787. The system of claim 1760, further comprising:

means for providing a data store for a structure of the application platform.

1788. The system of claim 1787, wherein the data store is dynamic.

1789. The system of claim 1787, further comprising:

means for using a database.

1790. The system of claim 1787, further comprising:

means for using a hash table.

1791. The system of claim 1787, further comprising:

means for using a storage area network.

1792. The system of claim 1787, further comprising:

means for using a computer memory media.

1793.The system of claim 1787, further comprising:

means for using at least one of a distributed hash table or a distributed key- value- pair storage.

1794.The system of claim 1787, further comprising:

means for using a system combination of using a database, using a hash table, using a storage area network, using a computer memory media, and using at least one of a distributed hash table or a distributed key -value -pair storage.

1795.The system of claim 1787, further comprising:

means for using a distributed system combination of using a database, using hash table, using a storage area network, using a computer memory media, and usin least one of a distributed hash table or a distributed key -value-pair storage.

1796.The system of claim 1787, further comprising:

means for propagating data storage within the data store.

1797.The system of claim 1787, further comprising:

means for storing multiple replicas of a piece of data within the data store.

1798.The system of claim 1787, further comprising:

means for storing calculated metadata of data pieces.

1799. The system of claim 1787, further comprising:

means for replicating metadata of data pieces to one or more computing nodes.

1800. The system of claim 1787, further comprising:

means for replicating at least one of data or metadata of data to one or more computing nodes.

1801. The system of claim 1787, further comprising:

means for organizing storage nodes using at least one of a ring, a tree, a hypercube, a peer-to-peer, a hierarchical structure, a log-based logical structure.

1802. The system of claim 1787,further comprising:

means for allowing permissions to be set on each data for access control among at least one of a user, a context, an application, or within contexts.

1803.The system of claim 1787, further comprising:

means for allowing priorities to be set on each data to indicate at least one of importance and service level.

1804. The system of claim 1787, further comprising:

means for creating a server platform;

means for utilizing by the server platform of multiple dynamic data stores; and means for storing at least one of different contexts or different applications.

1805. The system of claim 1787, further comprising:

means for utilizing by the platform of multiple data stores; and

means for storing at least one of different contexts or different applications.

1806. The system of claim 1787, further comprising:

means for creating at least one of a server platform or client platform; means for utilizing by at least one of a server platform or client platform of multiple data stores; and

means for storing at least one of different contexts or different applications.

1807. A system, comprising:

means for creating a context-centric application platform; and

means for implementing a server platform backend using one or more networked computing nodes.

1808. The system of claim 1807, wherein the application platform comprises an online application platform.

1809. A system, comprising:

means for creating a context-centric online application platform; and

means for implementing a platform backend using one or more networked computing nodes.

1810. The system of claim 1807, wherein each one of the one or more networked computing nodes may have at least one of a performance or a characteristic different from another one of the one or more networked computing nodes.

1811. The system of claim 1807, wherein each one of the one or more networked computing nodes may have at least one of an architecture or a peripheral different from another one of the one or more networked computing nodes.

1812. The system of claim 1807, wherein each one of the one or more networked computing nodes may have at least one of a performance, a characteristic, an architecture, or a peripheral different from another one of the one or more networked computing nodes.

1813. The system of claim 1807, further comprising:

means for using one or more computing devices.

1814. The system of claim 1807, further comprising:

means for using one or more computing clusters.

1815. The system of claim 1807, further comprising:

means for using at least one of a ring, a tree, a hypercube, a peer-to-peer, a hierarchical, a log-based logical structure to organize distributed computing nodes.

1816. The system of claim 1807, further comprising:

means for using at least one of a ring, a tree, a hypercube, a peer-to-peer, a hierarchical, and a log-based logical structure to organize storage nodes.

1817. The system of claim 1807, further comprising:

means for replicating data by one or more storage nodes, wherein the replicating may be performed at least one of fully or partially replicating;

means for propagating data by one of the one or more storage nodes to another one of the one or more storage nodes; and

means for selecting by the one or more storage nodes to perform at least one of the replicating means and the propagating means.

1818. The system of claim 1807, further comprising:

means for re-organizing the one or more networked computing nodes in a live environment.

1819. A system, comprising:

means for creating an application platform;

means for implementing a platform backend using one or more networked computing nodes;

means for replicating data by one or more storage nodes, wherein the replicating may be performed at least one of fully or partially replicating; means for propagating data by one of the one or more storage nodes to another one of the one or more storage nodes; and

means for selecting by the one or more storage nodes to perform at least one of the replicating means and the propagating means.

1820. A system, comprising:

means for creating an application platform;

means for implementing a platform backend using one or more networked computing nodes; and

means for re-organizing the one or more networked computing nodes in a live environment.

1821. The system of claim 1808, further comprising:

means for providing a layer-based architecture, wherein the layer-based architecture comprises a front-end, a processing, and a data storage.

1822. A system, comprising:

means for creating a context-centric application platform; and

means for providing a layer-based architecture, wherein the layer-based architecture comprises at least one of a front stage, a processing stage, and a storage stage.

1823.A system, comprising:

means for creating an application platform;

means for creating one or more nodes;

means for providing a layer-based architecture, wherein the layer-based architecture comprises one or more layers; and

means for separating automatically by the application platform each one of the one or more nodes into a different respective one of the one or more layers.

1824.The system of claim 1823, further comprising:

means for providing one or more groups; means for providing one or more responsibilities;

means for splitting the one or more nodes within each one of the one or more layers into a respective different one of at least one of the one or groups or the one or more responsibilities.

1825. The system of claim 1824, wherein the splitting means results in at least one of the following: a cache to another one of the one or more nodes; a node manager; a node monitor; a network router; a data store access point; an access point to another one of the one or more layers; or a data aggregation node.

1826. A system, comprising:

means for creating a context-centric application platform;

means for creating one or more nodes; and

means for using general purpose computing nodes to organize computing.

1827. The system of claim 1826, further comprising:

means for using at least one of a ring, a tree, a hypercube, a peer-to-peer, a hierarchical, and a log-based logical structure to organize nodes.

1828. The system of claim 1826, wherein the application platform comprises an online application platform.

1829. A system, comprising:

means for creating a context-centric online application platform;

means for creating one or more nodes; and

means for using at least one of a ring, a tree, a hypercube, a peer-to-peer, a hierarchical, and a log-based logical structure to organize storage nodes.

1830. A system, comprising:

means for creating a context-centric online application platform;

means for creating one or more storage nodes; and means for replicating data the by one or more storage nodes, wherein the replicating may be performed at least one of fully or partially replicating;

means for propagating data by the one of the one or more storage nodes to another one of the one or more storage nodes; and

means for selecting by the one or more storage nodes to either perform the replicating means or the propagating means.

1831.A system, comprising:

means for creating a context-centric application platform;

means for creating one or more storage nodes; and

means for replicating data the by one or more storage nodes, wherein the replicating may be performed at least one of fully or partially replicating;

means for propagating data by the one of the one or more storage nodes to another one of the one or more storage nodes; and

means for selecting by the one or more storage nodes to either perform the replicating means or the propagating means.

1832. A system, comprising:

means for creating an application platform;

means for creating one or more nodes; and

means for using one or more specialized computing chips.

1833. The system of claim 1832, wherein the one or more specialized computing chips comprises at least one of a programmable VLSI, a low power processor, a RISC, a GPU, a GPGPU, an offload engine, a network processor, a quantum processor or a system-on- a-chip.

1834. The system of claim 1833, wherein the offload engine comprises at least one of encryption, networking, virtual machine, graphical or computing functions and wherein the network processor comprises a packet, a routing, a forwarding, a labeling or a switching processor.

1835. The system of claim 1832, further comprising:

means for using a different type of the one or more specialized computing chips for a respective one of a one or more functions.

1836. The system of claim 1832, further comprising:

means for using a different one of at least one of one or more processing cores or one or more hardware peripherals for a respective one of one or more different applications.

1837. A system, comprising:

means for running one or more single user applications on an online application platform;

means for running one or more multi-user applications on the online application platform;

means for running one or more social applications on the online application platform; and

means for providing a permissions setting on at least one of a context, an application, an action, and a data.

1838. The system of claim 1837, wherein the one or more single user applications comprises one or more personal applications and wherein the one or more multi-user applications comprises one or more collaboration-enabled multi-user applications.

1839. The system of claim 1838, further comprising:

means for providing the permissions setting per context.

1840. The system of claim 1838, further comprising:

means for providing the permissions setting per context per application.

1841. The system of claim 1838, further comprising: means for providing the permissions setting per application.

1842.The system of claim 1838, wherein each context may have a set of one or more roles.

1843.The system of claim 1838, wherein each one of the one or more roles has at least two permissions.

1844. The system of claim 1838, wherein each of one or more user in context may have at least two roles.

1845. The system of claim 1844, further comprising:

means for providing by the at least two roles of one or more permissions as set by the permissions setting, wherein the one or more permissions control at least one of an action or a data in context.

1846. The system of claim 1844, further comprising:

means for providing by the at least two roles of one or more permissions as set by the permissions setting, wherein the one or more permissions control at least one of an action, a data, an application, or an action in context, a data in context, or an application in context.

1847. The system of claim 1838, further comprising:

means for determining by each one of the one or more personal applications, the one or more collaboration-enabled multi-user applications, or one or more social applications of which of at least one of its action or data require a permission.

1848. The system of claim 1838, further comprising:

means for determining by each one of the one or more single-user applications, the one or more multi-user applications, or one or more social applications of which of at least one of its action or data require a permission.

1849. The system of claim 1838, further comprising:

means for determining by the context which of its at least one of an application, an action, or a data require permission.

1850. The system of claim 1838, further comprising:

means for changing by at least one of one or more personal applications, the one or more collaboration-enabled multi-user applications, or one or more social applications of its required at least one of permissions or roles on the platform in real-time; and

means for propagating a change of this changing means to all nodes that run the same application.

1851. The system of claim 1837, further comprising:

means for changing by at least one of one or more single user applications, the one or more multi-user applications, or one or more social applications of its required at least one of permissions or roles on the platform in real-time; and

means for propagating a change of this changing means to all nodes that run the same application.

1852. The system of claim 1838, further comprising:

means for changing by at least one of one or more personal applications, the one or more collaboration-enabled multi-user applications, or one or more social applications of its required at least one of permissions or roles on the platform in real-time; and

means for propagating a change of this changing means to at least one of a plurality of nodes that run the same application, contain the same context or access the same data.

1853. The system of claim 1837, further comprising:

means for changing by at least one of one or more single user applications, the one or more multi-user applications, or one or more social applications of its required at least one of permissions or roles on the platform in real-time; and means for propagating a change of this changing means to at least one of a plurality of nodes that run the same application, contain the same context or access the same data.

1854. The system of claim 1838, further comprising:

means for changing by the context of its required at least one of permissions or roles on the platform in real-time; and

means for propagating a change of this changing means to at least one of a plurality of nodes that run the same application among the one of one or more personal applications, the one or more collaboration-enabled multi-user applications, or the one or more social applications, or to at least one of the nodes that access the same context or accesses the same data.

1855. The system of claim 1837, further comprising:

means for changing by the context of its required at least one of permissions or roles on the platform in real-time; and

means for propagating a change of this changing means to at least one of a plurality of nodes that run the same application among the one of one or more single user applications, the one or more multi-user applications, the one or more social applications, or to at least one of a plurality of nodes that access the same context or access the same data.

1856. The system of claim 1838, further comprising:

means for adding a role in real-time;

means for editing a role in real-time; and

means for removing a role in real-time

1857. The system of claim 1838, further comprising at least one of:

means for adding permissions of a role in real-time;

means for editing permissions of a role in real-time;

means for removing permissions of a role in real-time; means for assigning at least one role to a user in real-time; and means for removing at least one role from a user in real-time.

1858. The system of claim 1838, further comprising:

means for creating one or more context types with access control.

1859. The system of claim 1858, further comprising:

means for allowing access to the one or more context types only users with permission as decided by a predetermined setting.

1860. The system of claim 1858, further comprising:

means for controlling access to the one or more context types only users or groups with permission as decided by a predetermined setting.

1861. The system of claim 1858, further comprising:

means for controlling access to the one or more context types only users or groups with permission as decided by a predetermined setting; and

means for creating a context with the one or more context types.

1862. The system of claim 1858, further comprising:

means for allowing access for members of a context to access a specific context type.

1863.A system, comprising:

means for running one or more applications on an application platform; and means for allowing a third-party to distribute at least one of an application or a plugin on the application platform.

1864.A system, comprising:

means for running one or more applications on a context-enabled application platform; and means for allowing a third-party to distribute at least one of an application or a plugin on the application platform.

1865.A system, comprising:

means for running one or more applications on a context-enabled online application platform; and

allowing a third-party to distribute at least one of an application or a plugin on the application platform.

1866.The system of claim 1864, further comprising:

means for creating an interface for a publisher to provide contexts.

1867.The system of claim 1864, further comprising:

means for creating an interface for a user to subscribe to contexts.

1868.The system of claim 1864, further comprising:

means for creating a place for a user to install the one or more applications.

1869.The system of claim 1864, further comprising:

means for creating a place for a user to remove the one or more applications.

1870.The system of claim 1864, further comprising:

means for registering an item to offer a user in a store, wherein the item comprises at least one of an application, a plugin, or a related service and wherein the store may take payment via at least one of a subscription or a one-time fee.

1871. The system of claim 1864, further comprising:

means for registering a context for a fee.

1872.The system of claim 1864, further comprising:

means for registering an application for a fee.

1873.The system of claim 1864, further comprising:

means for registering an application set for a fee, wherein the application set comprises at least one application, wherein the application can be owned by the user, licensed from another party with permission, or freely usable.

1874. The system of claim 1864, further comprising:

means for registering a plugin for a fee.

1875. The system of claim 1864, further comprising:

means for providing a context for a fee.

1876. The system of claim 1864, further comprising:

means for providing a context type for a fee.

1877. The system of claim 1864, further comprising:

means for providing a service for a fee.

1878. The system of claim 1864, further comprising:

means for providing a fee for the distributing means, wherein the fee comprises at least one of a subscription for duration, wherein duration comprises a time period, a lump sum, in installments, or advance payment for subscription.

1879. The system of claim 1864, further comprising:

means for charging by the platform a fee for at least one of a listing, a

subscription management, or an action for facilitating a transaction.

1880. The system of claim 1864, further comprising:

means for updating at least one of an application, an application set, a context type, a context to a latest version.

1881. The system of claim 1864, further comprising:

means for determining a fee to charge for at least one of a new subscription or a new order.

1882. The system of claim 1864, further comprising:

means for updating a fee to charge for at least one of a new subscription, existing subscription, new order or existing order.

1883.The system of claim 1882, further comprising:

means for notifying a subscriber of an update made in accordance with the updating means.

1884. The system of claim 1864, further comprising:

means for purchasing the application or plugin by a context.

1885. The system of claim 1864, further comprising:

means for purchasing or subscribing to the application, plugin, or context type by a context.

1886. The system of claim 1864, further comprising:

means for accessing by a user in context of the application or plugin if the user has permissions to do so.

1887. The system of claim 1864, further comprising:

means for accessing by a user in a context of the application, plugin or context type if the user has permissions to do so.

1888. A system, comprising:

means for running one or more single -user applications on an application platform; means for running one or more multi-user applications on the application platform; and

means for charging at least one of an account or a user for using the application platform.

1889. The system of claim 1888, wherein the one or more single -user applications comprises one or more personal applications and wherein the one or more multi-user applications comprises one or more collaboration-enabled multi-user applications.

1890. A system, comprising:

means for running one or more applications on a context-centric application platform;

means for charging at least one of an account or a user for using the application platform.

1891. The system of claim 1890, further comprising:

means for pricing for using application platform per user.

1892. The system of claim 1890, further comprising:

means for pricing for using application platform per context.

1893.The system of claim 1890, further comprising:

means for pricing for using application platform per an application.

1894. The system of claim 1890, further comprising:

means for pricing for using application platform per an application set.

1895. The system of claim 1890, further comprising:

means for pricing for using application platform per application-per-context.

1896. The system of claim 1890, further comprising: means for pricing for using application platform per user-per-context.

1897. The system of claim 1890, further comprising:

means for pricing for using application platform per user-per-application.

1898. The system of claim 1890, further comprising:

means for pricing for using application platform per user-per-application-per- context.

1899. The system of claim 1890, further comprising:

means for pricing for using application platform per user-per-application set-per- context.

1900. The system of claim 1890, further comprising:

means for pricing for using application platform per application set-per-context.

1901. The system of claim 1890, further comprising:

means for pricing for using application platform per at least one of the following: user, context, application, application set, user-per-context, user-per-application, user- per-application-per-context, user-per-application set-per-context, application per-context or application set-per-context.

1902. The system of claim 1890, further comprising:

means for pricing for using application platform per at least one of a subscription for duration, wherein duration comprises a time period, a lump sum, in installments, or advance payment for subscription.

1903.The system of claim 1891, further comprising:

means for subscribing to an application platform payment plan.

1904.The system of claim 1903, further comprising: means for obtaining one or more quotas to use the application platform.

1905. The system of claim 1903, further comprising:

means for obtaining one or more quotas to use the application platform, wherein the quotas comprise at least one of context quotas, data quota, user quotas, or application quotas.

1906. The system of claim 1891, further comprising:

means for configuring one or more contexts, wherein each one of the one or more contexts comprises a shared characteristic so as to allow free public access to the one or more contexts.

1907. The system of claim 1891, further comprising:

means for charging a fee by the application platform for at least one of a context, a context type, a data storage, an application, an application plugin, a quality of service and a resource, priority or guarantee for speed, bandwidth, processing, reliability or responsiveness.

1908. The system of claim 1890, further comprising:

means for requiring a payment for creating a context, wherein the context comprises a shared characteristic.

1909. The system of claim 1890, further comprising:

means for requiring a payment for accessing a context, wherein the context comprises a shared characteristic.

1910. The system of claim 1909, further comprising:

means for requiring a single entity payment, wherein the single entity payment comprises a payment in full by at least one of a single user or a group.

1911. The system of claim 1909, further comprising: means for requiring a members payment, wherein the members payment comprises a payment by a plurality of users, wherein each one of the plurality of users pay a fair share.

1912. The system of claim 1909, further comprising:

means for requiring a social payment, wherein the social payment comprises a payment by a plurality of users, wherein each one of the plurality of users pay a voluntary sum.

1913. The system of claim 1909, further comprising:

means for providing access to the context; and

means for charging by a context owner a fee to a user for providing access to the context.

1914. The system of claim 1913, further comprising:

means for providing a plurality of different payment schemes for different roles in context.

1915. The system of claim 1913, further comprising:

means for providing a plurality of different payment schemes for different applications in context.

1916. The system of claim 1913, further comprising:

means for providing a plurality of different payment schemes for different content access in context.

1917. The system of claim 1913, further comprising:

means for providing a plurality of different payment schemes, wherein the plurality of different payment schemes comprises at least one of a subscription for duration, a one-time lump sum, or in installments.

1918. The system of claim 1890, further comprising:

means for allowing access to a context type for at least one of for free or for a fee.

1919. The system of claim 1890, further comprising:

means for allowing payment for a context type by a user who wants to create a context of a context type.

1920. The system of claim 1890, further comprising:

means for allowing payment for a context type by a user who wants to change a context of a context type.

1921. The system of claim 1890, further comprising:

means for charging a user a fee for allowing access to a context type.

1922. The system of claim 1890, further comprising:

means for providing a plurality of different payment schemes, wherein the plurality of different payment schemes comprises at least one of a subscription for duration, a one-time lump sum, or in installments.

1923.The system of claim 1890, further comprising:

means for allowing payment by a context, wherein the context comprises a shared characteristic, wherein the context is associated with the users who use the context type.

1924. A system, comprising:

means for running one or more applications on a context-centric application platform;

means for charging at least one of an account or a user for using the application platform; and

means for allowing access to a content type for at least one of for free or for a fee.

1925. The system of claim 1924, further comprising: means for allowing access to a content type for at least one of for free or for a fee.

1926. The system of claim 1924, further comprising:

means for allowing payment for a context type by a user who wants to create a context of a context type.

1927. The system of claim 1924, further comprising:

means for allowing payment for a context type by a user who wants to change a context of a context type.

1928. The system of claim 1924, further comprising:

means for charging a user a fee for allowing access to a context type.

1929. The system of claim 1924, further comprising:

means for providing a plurality of different payment schemes, wherein the plurality of different payment schemes comprises at least one of a subscription for duration, a one-time lump sum, or in installments.

1930. The system of claim 1893, further comprising:

means for allowing access to an application for at least one of for free or for a fee.

1931. The system of claim 1893, further comprising:

means for allowing payment for an application by a user who uses the application.

1932. The system of claim 1893, further comprising:

means for allowing payment by a context, wherein the context comprises a shared characteristic, wherein the context is associated with a user who uses the application.

1933. The system of claim 1893, further comprising: means for charging a user a fee for allowing access to the application for one or more contexts, wherein each one of the one or more contexts comprises a shared characteristic.

1934. The system of claim 1893, further comprising:

means for providing access to the application for bundling in at least one of a context type or a set of applications.

1935. The system of claim 1893, further comprising:

means for providing a plurality of different payment schemes, wherein the plurality of different payment schemes comprises at least one of a subscription for duration, a one-time lump sum, or in installments.

1936. A system, comprising:

means for running one or more personal applications on an application platform; means for running one or more collaboration-enabled multi-user applications on the Internet application platform; and

means for charging a user for accessing one or more application plugins.

1937. The system of claim 1310, further comprising:

means for charging a user for accessing one or more application plugins.

1938. A system, comprising:

means for running one or more applications on a context-centric application platform;

means for charging a user for accessing one or more application plugins.

1939. The system of claim 1938, further comprising:

means for allowing payment for the one or more application plugins by a user who uses the one or more application plugins.

1940. The system of claim 1938, further comprising:

means for allowing payment by a context, wherein the context comprises a shared characteristic, wherein the context is associated with one or more users who use the plugins.

1941. The system of claim 1938, further comprising:

means for allowing payment by the application, wherein the application is associated with one or more users who use the plugins.

1942. The system of claim 1938, further comprising:

means for providing access to the one or more application plugins for one or more applications; and

means for charging a fee for the providing access means.

1943.The system of claim 1938, further comprising:

means for providing access to the one or more application plugins for one or more contexts; and

means for charging a fee for the providing access means.

1944. The system of claim 1938, further comprising:

means for providing access to the application for bundling in at least one of a context type or a set of applications.

1945. The system of claim 1938, further comprising:

means for providing a plurality of different payment schemes, wherein the plurality of different payment schemes comprises at least one of a subscription for duration, a one-time lump sum, or in installments.

1946. The system of claim 1309, further comprising:

means for charging a user for accessing the application platform by a subscription account.

1947. A system, comprising:

means for running one or more single -user applications on an application platform;

means for running one or more multi-user applications on the application platform; and

means for charging a user for accessing the application platform by a subscription account.

1948. A system, comprising:

means for running one or more applications on a context-centric application platform;

means for charging a user for accessing the application platform by a subscription account.

1949. The system of claim 1947, further comprising:

means for providing a subscription to each one of a plurality of users.

1950. The system of claim 1947, further comprising:

means for providing a subscription to each one of a plurality of context owners.

1951. The system of claim 1950, further comprising:

means for paying for by one of the plurality of context owners of a context being used by a plurality of users sharing a context associated with the one of the plurality of context users.

1952. The system of claim 1947, further comprising:

means for managing a subscription account by one or more users.

1953. The system of claim 1947, further comprising: means for providing a payment of a subscription account for at least one of a plurality of contexts, wherein each one of the plurality of contexts comprises a shared characteristic, a plurality of applications, and a plurality of users.

1954. A system, comprising:

means for running one or more personal applications on an application platform; means for running one or more collaboration-enabled multi-user applications on the application platform; and

means for charging a user for accessing the application platform by a points system for a subscription plan.

1955. A system, comprising:

means for running one or more single -user applications on an application platform;

means for running one or more multi-user applications on the application platform; and

means for charging a user for accessing the application platform by a points system for a subscription plan.

1956. The system of claim 1955, further comprising:

means for providing a set number of points per a duration of subscription.

1957. The system of claim 1955, further comprising:

means for purchasing points separately.

1958. The system of claim 1955, further comprising:

means for redeeming at least one of an item or a service using points.

1959. The system of claim 1958, wherein the an item or a service comprises at least one of an application, an application update, a plugin, a context, a context type, a context access, a data storage, a bandwidth, a quality of service and a resource, priority or guarantee for speed, bandwidth, processing, reliability or responsiveness.

Description:
A SYSTEM AND METHOD FOR RUNNING

APPLICATIONS ON A PLATFORM

BACKGROUND

[0001] 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.

[0002] Conventionally, online application platforms have provided either just personal applications or just collaboration-enabled multi-user applications. However, there have been instances where it is time consuming and inefficient to switch back and forth between different platforms to access both personal applications and multi-user applications and where it may be desirable to run applications through other means. Thus, there is a need to run applications of differing types more efficiently and quickly.

SUMMARY

[0003] In one aspect, 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.

[0004] In another aspect, 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.

[0005] In addition to the foregoing, other system aspects are described in the claims, drawings, and text forming a part of the present disclosure

[0006] The foregoing summary is only illustrative and is not intended to be in any way limiting. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent by reference to the drawings and the following detailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

[0007] FIG 1 is an exemplary embodiment of the present invention.

[0008] FIG 2 is an exemplary embodiment of the present invention.

[0009] FIG 3 is an exemplary embodiment of the present invention.

[0010] FIG 4 is an exemplary embodiment of the present invention. [0011] FIG

[0012] FIG

[0013] FIG

[0014] FIG

[0015] FIG

[0016] FIG

[0017] FIG

[0018] FIG

DETAILED DESCRIPTION

[0019] In the following detailed description, reference is made to the accompanying drawings, which form a part hereof. In the drawings, similar symbols typically identify similar components, unless context dictates otherwise. The illustrative implementations described in the detailed description, drawings, and claims are not meant to be limiting. Other implementations may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented here.

[0020] Exemplary systems and methods for running applications on a platform are disclosed herein. Many details of exemplary implementations are set forth in the following description and in FIGS. 1 through 12 to provide an understanding of such implementations. One skilled in the art will understand from the teachings of the present disclosure, however, that the present disclosure may have other possible

implementations, and that such other implementations may be practiced with or without a detail or some of the details set forth in the following description. Again, it will be appreciated, however, that the following description of exemplary systems and environments is not exhaustive of all possible environments in which the teachings of the present disclosure may be implemented.

[0021] As shown in FIG. 1, 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. [0022] Another exemplary method 120, as shown in FIG. 2, 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.

[0023] Another exemplary method 130, as shown in FIG. 3, 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.

[0024] Another exemplary method 140, as shown in FIG. 4, 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.

[0025] Another exemplary method 150, as shown in FIG. 5, 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.

[0026] Another exemplary method 160, as shown in FIG. 6, 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.

[0027] Another exemplary method 170, as shown in FIG. 7, 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.

[0028] Another exemplary method 180, as shown in FIG. 8, 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.

[0029] Another exemplary method 190, as shown in FIG. 9, 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.

[0030] Another exemplary method 200, as shown in FIG. 10, 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 more personal applications or the one or more collaboration- enabled multi-user applications to a second one of the one or more personal applications or the one or more collaboration-enabled multi-user applications at 205.

[0031 ] Another exemplary method 210, as shown in FIG. 11 , 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 one of the one or more personal applications or the one or more collaboration- enabled multi-user applications to a second one of the one or more personal applications or the one or more collaboration-enabled multi-user applications at 215. [0032] Another exemplary method 220, as shown in FIG. 12, 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 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 at 225; 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 multi-user applications at 226; adding a new one of the plurality of collaboration-enabled multi-user applications at 227; and deleting at least one of the plurality of collaboration-enabled multi-user applications at 228.

[0033] For subsequent embodiments, the corresponding flowchart drawing will not be presented for brevity sake, but it will be known generally that steps may be represented with text in box format with lines connecting the boxes.

[0034] 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 of collaboration-enabled multi-user applications; 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 multi-user applications; adding a new one of the plurality of collaboration-enabled multi-user applications; deleting at least one of the plurality of collaboration-enabled multi-user applications; allowing a user to receive updates regarding changes in the application, made by other applications or users;

allowing a user to receive any information from other users operating same or other applications; modifying an application; notifying a user about updates available in an application or in other applications; allowing a user to subscribe to an application or multiple applications for latest updates or changes; allowing a user to receive updates from an application or multiple applications; allowing a user to receive computed information taking into account of other user's information and actions; passing other users' information or actions into a black box and the results can be sent to the user; notifying the current user that an update is available for refresh; notifying the current user that the application does not have enough space and need to take action; notifying another user that other users triggered security checks in the application; modifying access values of contexts/applications/users, adding contexts/applications/users, removing

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.

[0035] 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.

[0036] 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.

[0037] 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.

[0038] 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.

[0039] 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. [0040] 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.

[0041] 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 more Web applications.

[0042] 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.

[0043] 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 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.

[0044] 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.

[0045] 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.

[0046] 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.

[0047] 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.

[0048] 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.

[0049] 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.

[0050] 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.

[0051] 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.

[0052] 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.

[0053] 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

collaboration-enabled multi-user applications, wherein 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 to receive updates from an application or multiple applications; module for allowing a user to receive computed information taking into account of other user's information and actions; module for passing other users' information or actions into a black box and the results can be sent to the user; module for notifying the current user that an update is available for refresh; module for notifying the current user that the application does not have enough space and need to take action; module for notifying another user that other users triggered security checks in the application; module for modifying access values of contexts/applications/users, adding contexts/applications/users, removing

contexts/applications/users; module for showing the other user's current application layout and actions in real time or delayed; module for user receiving real time updates or delayed updates; module for user receiving one or more processed or unprocessed updates/actions of other users; module 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.

[0054] 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.

[0055] 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.

[0056] 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.

[0057] 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. [0058] 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.

[0059] 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.

[0060] 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 or more Web applications.

[0061] 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.

[0062] 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 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.

[0063] 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.

[0064] 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.

[0065] 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.

[0066] 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.

[0067] 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.

[0068] 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.

[0069] 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.

[0070] Another exemplary system 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 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.

[0071] 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.

[0072] 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 to receive updates from an application or multiple applications; means for allowing a user to receive computed information taking into account of other user's information and actions; means for passing other users' information or actions into a black box and the results can be sent to the user; means for notifying the current user that an update is available for refresh; means for notifying the current user that the application does not have enough space and need to take action; means for notifying another user that other users triggered security checks in the application; means for modifying access values of contexts/applications/users, adding contexts/applications/users, removing

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.

[0073] 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.

[0074] 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.

[0075] 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.

[0076] 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.

[0077] 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. [0078] 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.

[0079] 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 or more Web applications.

[0080] 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 software.

[0081] 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 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.

[0082] 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.

[0083] 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.

[0084] 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.

[0085] 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.

[0086] 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.

[0087] 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.

[0088] 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.

[0089] 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.

[0090] 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.

[0091] 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.

[0092] In an exemplary technology, an online application platform 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.

[0093] In an exemplary technology, 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.

[0094] In an exemplary technology, applications on the platform can interact. For example, a personal application can communicate with or access information of a collaboration-enabled multi-user application. As another example, a user can see what another user is doing in an application, such as adding or modifying a data.

[0095] In conventional platforms, 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. In the exemplary platform, 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. [0096] In an exemplary technology, 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.

[0097] In an exemplary technology, 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.

[0098] In an exemplary technology, 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.

[0099] In an exemplary technology, a context can be configured to suit one or more target usages. For example, a context can contain various project management applications to suit project management usage.

[00100] In an exemplary technology, 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.

[00101] In an exemplary technology, one or multiple users can use applications and contexts on the platform. These users can interact with other users via the platform. In addition, 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.

[00102] In an exemplary technology, 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.

[00103] In an exemplary technology, 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.

[00104] In an exemplary technology, the user may link or un-link applications and data to a context. Platform data may be associated with contexts and applications simultaneously.

[00105] In an exemplary technology, users belonging to a context may access applications that are associated with the context.

[00106] In an exemplary technology, 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.

[00107] Existing online application platforms that have social networking functions run applications and social networking functions on separate infrastructure, relying on linkages at a high level. However, there is value in running both applications and social network functions 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.

[00108] In an exemplary technology, 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.

[00109] In addition, the online application platform with social networking functions may also support contexts and context applications. For example, 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.

[00110] Conventionally, online application platforms only support non-work applications or work applications. However, there have been instances where it is time consuming and inefficient to switch back and forth between different platforms to access both non-work applications and work applications. For example, a user's non-work applications may be dependent on some information from the user's work applications. Therefore it is necessary to run applications of differing types on the same platform.

[001 11] In an exemplary technology, 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.

[001 12] 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.

[00113] 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.

[00114] In an application platform that supports contexts, it is helpful to the user to have alternative ways to differentiating contexts other than name. One method is through 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. Using 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.

[001 15] In an exemplary technology, color and shape coding can be applied to contexts in an application platform.

[001 16] 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.

[00118] Other than color or shape coding on contexts, the same coding methodology can apply to data types. For example, a blue color can represent a document where a green color represents a photo.

[001 19] Color and shape coding of contexts can be shown in all interfaces that display context-related data, such as in search results, applications and aggregators.

[00120] 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.

[00121] Color-coding can be combined with shape coding. For example, color-coding can be applied on a context and shape coding applied on a data type, and vice versa. In addition, 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.

[00122] In an exemplary technology, color and shape coding can be used together to indicate contexts, types or a combination of them.

[00123] 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.

[00124] In an exemplary technology, color and shape coding can be automatically generated or determined by indirect or direct user input.

[00125] Colors can be transformed or mixed using various methods and formulas.

[00126] Typically user interface designs or themes are predetermined. A

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.

[00128] On the other hand, user interfaces that use this approach can also overwhelm the user. For example, a user is allowed to set all colors of the user interface but if the number of used colors in the interface is numerous, the user can be overwhelmed by choices.

[00129] The following approach is used to mitigate this problem while allowing flexibility for the user. 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.

[00130] In the generating step, the input and output have a deterministic relationship, a set of input parameters always produce the same output. A theme in terms of the color generator is a set of coloring formulas. For example, 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.

[00131] 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. For example, 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.

[00132] In addition, 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.

[00133] 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.

[00134] In a social network, it is common to see mutual connections or mutual friends in a list of users. In a system, however, other than mutual connections or friends, other mutual information is also useful for a user. Our system allows calculation and display of mutual information between users, such as contexts, applications, connections and a combination of them. The display of mutual information can take a form of textual or graphical indication. For example, a text "3 mutual contexts" or a graphical list of which 3 mutual contexts are shared, both show the user the mutual information.

[00135] In a system that supports associating contexts or applications with users, different users may share the same contexts or applications. This information is useful for a user because since contexts or applications may represent interests, it may allow a user to identify users with common interests. For example, a user may want to spot other users that share same contexts or applications among a list of users.

[00136] In the system, mutual information is calculated and displayed. When a user is shown information of other users, mutual information between two users is displayed. For example, a user is viewing search results of a user search, mutual information is listed next to each user. In addition, mutual information such as mutual contexts or mutual applications may allow users to discover other interesting contexts or

applications. For example, 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.

[00137] 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. [00138] 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.

[00139] The platform supports generic contexts and also specialized contexts. For example, 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.

[00140] A context can contain users, applications, data or other contexts. For example, 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.

[00141] 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.

[00142] The context-centric application platform and its applications can be accessible through the Internet. The platform may use a multi-tenant structure.

[00143] 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.

[00144] 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.

[00145] A new context can be created using a context template. For example, a user with access to a 'project management' context template can create a 'project

management' context by using the template.

[00146] 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.

[00147] Conventionally, 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.

[00148] As clients become more powerful with the increase of user expectations on applications, there is a need for the online application platform to extend to the client side. For example, users hope to obtain desktop like behavior in applications on online application platforms. To achieve this, an online application platform structure that includes a server platform and a client platform is necessary.

[00149] In an exemplary technology, an online application platform structure can include a server platform and a client platform.

[00150] 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. On the other hand, a client platform can also connect to multiple server platforms for access to different data or other purposes such as redundancy.

[00151] Different server platforms may contain different content, such as users, applications, contexts or data. For example, a client platform can connect to server platform 1 to access context A and connect to server platform 2 to access context B.

[00152] Multiple 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.

[00153] If 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.

[00154] Multiple 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.

[00155] 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.

[00156] Content access and sharing among server platforms and on the server network can be subject to access control. For example, a corporate office headquarters may want to share only certain contexts and applications with a branch office. 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.

[00157] 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.

[00158] Since a client platform can contain multiple contexts and applications, 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.

[00159] 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. [00160] 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.

[00161] 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. For example, 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.

[00162] 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.

[00163] In the application platform with server and client platforms, the structure for client and server platforms can be similar. A client or server platform can contain data store, logic, computing resource, communication resource, user interface, and a connection manager.

[00164] There are cases where a user wants to have platform data always available through the Internet. In this case, permanent data can be stored in the server platform, temporary data can be stored in both client and server platforms.

[00165] 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.

[00166] 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.

[00167] 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.

Therefore, in this case, it is important for applications, data, and contexts to be also accessible on an as-needed basis to conserve storage and bandwidth.

[00168] 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.

[00169] It is important that 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.

[00170] Since the online application platform has server and client platforms, 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.

[00171] 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.

[00172] 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.

[00173] 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.

[00174] An application and its components, such as data, logic, UI, structure, server component code, or client component code, 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.

[00175] Such a change can be propagated to and through multiple nodes. For example, 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.

[00176] 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.

[00177] 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.

[00178] A context can be associated with multiple applications. For example, a project management context may contain multiple project management applications.

[00179] 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. In addition, a plugin can apply to an application in a specific context, so the additional functions can only be used in the specific context.

[00180] 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. For example, a plugin to a file management application may access files within the application in order to calculate file metadata or activities.

[00181] 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.

[00182] 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.

[00183] 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.

[00184] 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. [00185] 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.

[00186] In the subscription system there are providers and subscribers. 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.

[00187] An update can contain various actions or notifications about subscription targets such as contexts, elements, applications, users or data. For example, 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.

[00188] Subscriptions can be managed by the provider, subscriber or both. For example, 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.

[00189] On the other hand, 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.

[00190] 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. [00191] 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.

[00192] 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.

[00193] 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.

[00194] For example, suppose data X is shown in both applications A and B.

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.

[00195] 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.

[00196] It is also important for the subscriber to track dependency of subscription targets with its data. 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.

[00197] Since one change can affect multiple dependencies, 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.

[00198] 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.

[00199] In another example, 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.

[00200] An update can contain various actions or notices about subscription targets such as contexts, elements, applications, users or data. For example, 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.

[00201] 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. These formats can be combined or split into updates of a single or mixed formats. Notices can also be combined and split. For example, a provider or a provider relay can combine two consecutive full updates into log updates to conserve bandwidth.

[00202] Subscribers who receive updates can update their components such as user interfaces or data storage in real time. [00203] 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.

[00204] When a provider joins the system or has new targets to offer, the provider can announce to the system that it is available to be subscribed to for the various subscription targets it provides. When a provider leaves the system intentionally, the provider can either hand over responsibility of its subscriptions to another provider or notify its subscribers that the provider is no longer available. When a provider leaves

unintentionally and is unable to communicate to its subscribers, the subscribers will eventually know about this situation through network status checking and can transfer the subscriptions to another provider if available.

[00205] There are cases where data transmission between two nodes contains mixed traffic of different priorities, and transmission of data needs to follow such priority parameters. There are ways of doing so by queuing methods on a single network channel. However, there are cases where it is more desirable to utilize multiple network channels for differentiation of priority traffic, such as the ability to utilize multiple physical network channels, flexibility of priority assignment and flexibility of using multiple network protocols.

[00206] 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.

[00207] In an application platform, it is beneficial to offer prioritized traffic via multiple channels to applications. For example, 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.

[00208] There have been cases where 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.

[00209] In an application platform, it is beneficial to use multiple network channels because bandwidth is important for data transmission. Especially on an application platform that supports updates, it is important for updates to be transmitted with minimal delay and at a high speed.

[00210] 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.

[0021 1] In an application platform that contains server and client components, 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.

[00212] In an application platform that consists of at least two nodes, 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.

[00213] 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.

[00214] For example, 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.

[00215] A full update comprises of a new value, which a receiver should update to.

[00216] 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.

[00217] 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. In order to bring the receiver up to date, 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.

[00218] 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.

[00220] If the system receives an action for a previous version of the data, 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. 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. The process of transforming a data or an action to a different version is called merge.

[00221] Suppose two users are looking at an event that has two attributes, a start date and an end date. Both users want to change the same attribute, the event's start date. The first user's action is processed first, so the second user's action becomes outdated as it is linked to the previous version of the event. When the platform processes the second user's action, it notices that if this action is applied to the event, one of the previous changes (the first user's) will be lost. This is called a merge conflict.

[00222] Consider another case where both users attempt to change different attributes. The first user wants to change the event's start date, while the second user wants to change the event's end date. Again, the first user's action is processed first, and the second user's action becomes outdated. When the platform processes the second user's action, it notices that change does not conflict with any previous changes in between and this action can be transformed to apply on the latest version of the event. This is called a clean merge.

[00223] These conflicts can span many versions and can happen often. In case of a conflict, it is the choice of the platform on how to resolve it. A simple policy is to reject the new action, as the user who issued the action is probably unaware of those previous changes, and notify the user about the problem. However, if the data belongs to an application, the application is in a better position to resolve the conflict. Then the platform can delegate this conflict to the application for resolution. The application can also have different conflict resolution strategies, for example, an application that is time- critical such as a vote count viewing application, the latest change is most important, thus the latest change should be applied regardless. In the same way, if this data belongs to a context, the platform can delegate the conflict to the context. For example, if the context represents a company, 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.

[00224] In an exemplary technology, conflict resolution on a platform can be performed at the platform level, or delegated to a context, an application, or a

combination of them.

[00225] In an exemplary technology, different conflict resolution strategies can be used to resolve conflicts on a platform, a context, an application or a combination of them.

[00226] Merging and conflict resolution for different data types works generally as described above. If finer-grain control is required, different methods for different data types can be implemented and used. For example, a long text field is often changed by many people at the same time, so we want to reduce the chances of the later users having to re-submit what they typed. It is easy to provide finer-grain transformations and resolutions to solve this problem by using data-type specific transformations and conflict resolution strategies. In this case, a system can calculate the differences between versions of the text field (e.g. insert text between characters 2 and 3, delete text between characters 5 and 10), and those differences themselves can be merged and transformed.

[00227] Other than on data, 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. [00228] When facing 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. Similarly, 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.

[00229] On an application platform that has client and server components, transformations, merges, conflict resolution and conflict delegation can happen on both the server component and the client component. If the application platform supports updating the client component, potentially both data and views can be outdated at the client component.

[00230] In an exemplary technology, the following description indicates a potential workflow for a conflict merge. For example, 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. Upon receiving the first user's update, 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.

[00231] In an application platform that support both client and server components, transformations, merges, conflict resolution and conflict delegation logic can exist and be executed on at least one of the client or server components.

[00232] 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.

[00233] 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.

[00234] Applications on an online application platform benefit from using an event- driven architecture as they are networked applications that can potentially serve many clients at once.

[00235] 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.

[00236] 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.

[00237] 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. [00238] In order to extend benefits of the event-driven architecture of the platform on both server-side and client-side, the event-driven framework is provided both on the server-side platform and client-side platform.

[00239] For example, 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.

[00240] 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.

[00241] 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) such as IO or heavy processing events can be put into a background processing framework manually by the developer or automatically by the platform.

[00242] Traditionally, applications that reside on a platform exist as a single entity to provide services to the user. However, in an online application platform, performance and scalability are important concerns. In order to maximize scalability, the online application platform allows splitting an application into multiple application parts for execution. Such application parts may or may not have dependencies on each other. They may also be executed individually. These application parts may or may not contain waiting time (time when no processing is performed). The resulting order of execution must not affect the application's correctness. The order of execution may delay a second part of the application to first execute the third part of the application.

[00243] 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.

[00244] In an online application platform that an application can have multiple executable parts, the order of execution of these parts can cause the total execution time to differ. For example, 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.

[00245] 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.

[00246] 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.

[00247] 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.

[00248] 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.

[00249] In an application on an online application platform, some tasks are not time- sensitive or may be too time-consuming, for example, metadata extraction from files. Therefore, 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.

[00250] 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.

[00251] After completion of such background or deferred tasks, 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.

[00252] 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.

[00253] In an online application platform that supports client-side and server-side application components, it is important for the application to be able to store data on both server-side and client-side, especially when the client and server may not always be connected. On such platform, data stores can exist on both client-side and server-side, so data can be stored on both sides.

[00254] 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.

[00255] For example, if the client and server are mostly connected through a browser, then 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.

[00256] If 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.

[00257] In any case, when a client-side data store that contain changes connects with a respective server-side data store, the application or the platform will synchronize changes made on both sides to attempt to arrive at a synchronized state for both data stores. These data synchronization operations can involve merges of non-conflicting actions, which involve the application, platform or user. If any conflicting actions are detected during synchronization, the application, the platform or the user will be required to make a decision to determine the final state of such data.

[00258] 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. [00259] 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. It 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.

[00260] 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.

[00261] For example, suppose the online application platform is implemented on top of an operating system. When the application is sending data, if the operating system's network interface suddenly turns off, the application will keep retrying but will keep failing, which can cause the underlying platform to perform unnecessary work. If the application can obtain the operating system event that the network interface has gone offline, it can simply stop sending and wait until the network interface comes online again through another lower level event.

[00262] 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.

[00263] 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. [00264] 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. In the case of a non- parallel event-driven application, 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.

[00265] 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.

[00266] In an exemplary technology, an online application platform can support parallel processing to utilize multiple processing devices or cores at once. Although 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. There are various methods for an online application platform to allow parallel processing of an application while avoiding conflicts.

[00267] 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.

[00268] For event-driven applications, logic is already split into multiple event processing blocks by the application creator. To parallelize an event-driven application, various code blocks must be made to run in parallel. Safely-parallel describes a set of code blocks with a set of data that does not cause conflicts when run in parallel. In event- driven applications, there is a dependency of code block versus data set. For example, a code block may be able to be run in parallel on different data sets, but not on the same data set. Running two different code blocks in parallel also may cause conflicts if they are processing the same data set. Hence, the online application platform can provide mechanisms for the application to mark or create rules to tell the platform which code blocks on which data sets may cause conflicts if run together. With this information, the online application can run an event-driven application in parallel while avoiding conflicts, achieving safe-parallism.

[00269] Another paradigm for parallel application architecture is Software

Transactional Memory (STM), which is different from the above methods that it allows multiple code blocks to conflict on data, but all modifications done are stored in temporary memory. After the first result is committed, all following results that conflict the first result are forced to re -run until conflict-free. This architecture is much easier for application creators as the work of determining conflicts is done by the platform. An online application platform supports STM by providing the memory plumbing that allows storing such modifications in temporary memory, providing quick conflict detection and quick re-run of the failed code blocks.

[00270] For event-driven applications, other than requiring the application developer to provide instructions on which code blocks can be run together to avoid conflicts, 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.

[00271] 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.

[00272] 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.

[00273] 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. [00274] 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.

[00275] 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.

[00276] 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.

[00277] It is important for a context-centric application platform to be high performance and scalable. High performance and scalability is highly affected by the platform's ability to use multiple computing nodes and how the nodes are organized.

[00278] In an exemplary technology, a context-centric platform can organize multiple computing nodes towards high performance and scalability.

[00279] 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.

[00280] 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.

[00281] 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. In a layered architecture, 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.

[00282] 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. For more efficient processing and management, 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.

[00283] Each node in the platform can have different performance and characteristics, as well has different architectures and peripherals. For example, parts of the server platform processing framework can be also implemented on general purpose GPUs (GPGPUs).

[00284] A context-centric application platform can be implemented on a distributed system built using at least one general-purpose computer as nodes. In addition, 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.

[00285] Other than generic processing nodes, there can also be task-specific nodes such as storage nodes. 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.

[00286] 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.

[00287] On the other hand, 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.

[00288] In addition, the application platform can utilize different specialized computing chips for different purposes. For example, 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.

[00289] 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.

[00290] The application platform can also utilize hardware peripherals for

applications. For example, hardware peripherals such as printers or input/output devices can be used by an application to print or to detect movement.

[00291] 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.

[00292] For simpler access management, 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. For simpler management of context access, 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.

[00293] 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.

[00294] In the application platform, 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. For example, 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.

[00295] 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. In order to facilitate this, a store is used to manage available extensions, related items and also access to them on the application platform.

[00296] 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.

[00297] 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.

[00298] For example, 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. As another example, of a 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. Another example is, 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.

[00299] The application platform can charge fees for listing, subscription management or any actions for facilitating a transaction.

[00300] In a typical application platform store, 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.

[00301] In the application platform store, there can be multiple types of store items other than applications compared to typical application stores. Hence this problem can be exacerbated. Therefore our application platform store supports forced-updates of store items. If the publisher and subscriber mutually agree on the forced-update of a store item, the item can be automatically updated for the subscriber when the publisher decides to.

[00302] 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.

[00303] As subscribers, 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.

[00304] 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.

[00305] 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.

[00306] 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.

[00307] 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.

[00308] 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. [00309] 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.

[00310] 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.

[00311] 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.

[00312] 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.

[00313] 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.

[00314] 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.

[00315] 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. For example, 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.

[00316] 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.

[00317] 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.

[00318] 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.

[00319] For example, 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.

[00320] It should be appreciated that the particular embodiments of systems and processes described herein are merely possible implementations of the present disclosure, and that the present disclosure is not limited to the particular implementations described herein and shown in the accompanying figures. For example, in alternate

implementations, certain acts need not be performed in the order described, and may be modified, and/or may be omitted entirely, depending on the circumstances. Moreover, in various implementations, 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. In the event that computer-readable media are used, the computer-readable media can be any available media that can be accessed by a device to implement the instructions stored thereon.

[00321] Various methods, systems, and techniques may be described and implemented in the general context of computer-executable instructions, such as program modules, executed by one or more processors or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that performs particular tasks or implement particular abstract data types. Typically, the functionality of the program modules may be combined or distributed as desired in various alternate embodiments. In addition, embodiments of these methods, systems, and techniques may be stored on or transmitted across some form of computer readable media.

[00322] It may also be appreciated that there may be little distinction between hardware and software implementations of aspects of systems and methods disclosed herein. The use of hardware or software may generally be a design choice representing cost vs. efficiency tradeoffs; however, in certain contexts the choice between hardware and software can become significant. Those having skill in the art will appreciate that there are various vehicles by which processes, systems, and technologies described herein can be effected (e.g., hardware, software, firmware, or combinations thereof), and that a preferred vehicle may vary depending upon the context in which the processes, systems, and technologies are deployed. For example, if an implementer determines that speed and accuracy are paramount, the implementer may opt for a mainly hardware and/or firmware vehicle. Alternatively, if flexibility is paramount, the implementer may opt for a mainly software implementation. In still other implementations, the implementer may opt for some combination of hardware, software, and/or firmware. Hence, there are several possible vehicles by which 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. Those skilled in the art will recognize that optical aspects of implementations will typically employ optically-oriented hardware, software, and or firmware.

[00323] Those skilled in the art will recognize that it is common within the art to describe devices and/or processes in the fashion set forth herein, and thereafter use standard engineering practices to integrate such described devices and/or processes into workable systems having the described functionality. That is, at least a portion of the devices and/or processes described herein can be developed into a workable system via a reasonable amount of experimentation. [00324] The herein described aspects and drawings illustrate different components contained within, or connected with, different other components. It is to be understood that such depicted architectures are merely exemplary, and that in fact many other architectures can be implemented which achieve the same functionality. In a conceptual sense, any arrangement of components to achieve the same functionality is effectively "associated" such that the desired functionality is achieved.

[00325] Those skilled in the art will recognize that some aspects of the embodiments disclosed herein can be implemented in standard integrated circuits, and also as one or more computer programs running on one or more computers, and also as one or more software programs running on one or more processors, and also as firmware, as well as virtually any combination thereof. It will be further understood that designing the circuitry and/or writing the code for the software and/or firmware could be accomplished by a person skilled in the art in light of the teachings and explanations of this disclosure.

[00326] The foregoing detailed description has set forth various embodiments of the devices and/or processes via the use of block diagrams, flowcharts, and/or examples. Insofar as such block diagrams, flowcharts, and/or examples contain one or more functions and/or operations, it will be understood by those within the art that each function and/or operation within such block diagrams, flowcharts, or examples can be implemented, individually and/or collectively, by a wide range of hardware, software, firmware, or virtually any combination thereof. For example, in some embodiments, several portions of the subject matter described herein may be implemented via

Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), digital signal processors (DSPs), or other integrated formats. However, those skilled in the art will recognize that some aspects of the embodiments disclosed herein, in whole or in part, can be equivalently implemented in standard integrated circuits, as one or more computer programs running on one or more computers (e.g., as one or more programs running on one or more computer systems), as one or more programs running on one or more processors (e.g., as one or more programs running on one or more microprocessors), as firmware, or as virtually any combination thereof, and that designing the circuitry and/or writing the code for the software and or firmware would be well within the skill of one of skill in the art in light of this disclosure. [00327] In addition, those skilled in the art will appreciate that the mechanisms of the subject matter described herein are capable of being distributed as a program product in a variety of forms, and that an illustrative embodiment of the subject matter described herein applies equally regardless of the particular type of signal bearing media used to actually carry out the distribution. Examples of 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).

[00328] While particular aspects of the present subject matter described herein have been shown and described, it will be apparent to those skilled in the art that, based upon the teachings herein, changes and modifications may be made without departing from the subject matter described herein and its broader aspects and, therefore, the appended claims are to encompass within their scope all such changes and modifications as are within the true spirit and scope of this subject matter described herein. Furthermore, it is to be understood that the invention is defined by the appended claims. It will be understood by those within the art that, in general, terms used herein, and especially in the appended claims (e.g., bodies of the appended claims) are generally intended as "open" terms (e.g., the term "including" should be interpreted as "including but not limited to," the term "having" should be interpreted as "having at least," the term

"includes" should be interpreted as "includes but is not limited to," etc.). It will be further understood by those within the art that if a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation no such intent is present. For example, as an aid to

understanding, the following appended claims may contain usage of the introductory phrases "at least one" and "one or more" to introduce claim recitations. However, the use of such phrases should not be construed to imply that the introduction of a claim recitation by the indefinite articles "a" or "an" limits any particular claim containing such introduced claim recitation to inventions containing only one such recitation, even when the same claim includes the introductory phrases "one or more" or "at least one" and indefinite articles such as "a" or "an" (e.g., "a" and/or "an" should typically be interpreted to mean "at least one" or "one or more"); the same holds true for the use of definite articles used to introduce claim recitations. In addition, even if a specific number of an introduced claim recitation is explicitly recited, those skilled in the art will recognize that such recitation should typically be interpreted to mean at least the recited number (e.g., the bare recitation of "two recitations," without other modifiers, typically means at least two recitations, or two or more recitations). Furthermore, in those instances where a convention analogous to "at least one of A, B, and C, etc." is used, in general such a construction is intended in the sense one having skill in the art would understand the convention (e.g., "a system having at least one of A, B, and C" would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, and C together, etc.). In those instances where a convention analogous to "at least one of A, B, or C, etc." used, in general such a construction is intended in the sense one having skill in the art would understand the convention (e.g., "a system having at least one of A, B, or C" would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, and C together, etc.).

[00329] As a further example of "open" terms in the present specification and claims, it will be understood that usage of a language construction "A or B" is generally interpreted as a non-exclusive "open term" meaning: A alone, B alone, and/or A and B together.

[00330] Although various features have been described in considerable detail with reference to certain preferred embodiments, other embodiments are possible. Therefore, the spirit or scope of the appended claims should not be limited to the description of the embodiments contained herein.