Abstract:
Embodiments relate to systems and methods for managing a collaboration space having application hosting capabilities. A collaboration space, such as a wiki site, can host a set of collaboration tools and resources, including, for example, content tools, communication tools, and other resources for the users of the space. The collaboration space can also incorporate a set of executable application resources, such as application programming tools to permit users to program, invoke, and execute applications directly from the wiki site or other collaboration space. The set of executable application resources can in turn be embedded or incorporated in a Web framework, for instance to permit the set of hosted applications to be served/run to remote clients as Web applications. Applications generated outside the collaboration space can in embodiments be migrated into the collaboration space and hosted and/or executed from within the collaboration space, even if not originally generated there.

Description:
FIELD 
       [0001]    The present teachings relate to systems and methods for managing a collaboration space having application hosting capabilities, and more particularly to platforms and techniques for deploying and managing wiki sites or other collaboration spaces, in which the space or site is equipped with executable application resources to develop and/or run software applications within the collaboration space itself. 
       BACKGROUND OF RELATED ART 
       [0002]    Community collaboration platforms and websites are known which allow members from a public or private community to contribute to or modify content which is shared on the platforms and websites. One form of these platforms and websites is known as “wikis.” In one application, software developers can utilize wikis as a platform for the developers and the community to submit updates, problems, fixes, messages and/or the like with the goal to help develop applications and other software. Opening up the platform to a community often facilitates the development of the software by providing users a platform to easily and freely submit bug fixes, updates and ideas. Existing collaboration platforms and software wikis, however, provide no mechanism to allow users to insert and execute software directly in the wiki site, itself. In other words, software development sites organized as wikis often contain content-management resources to accept source code, comments, email, or other content exchanges. However, those sites do not incorporate resources to permit contributors to the wiki to insert and execute applications within the wiki framework itself. Instead such sites typically present a link to redirect the user to another site or resource to attempt to run programs that may be stored or referenced in the wiki. It may be desirable to provide methods and systems for managing a wiki site or other collaboration space which include application hosting capabilities. 
     
    
     
       DESCRIPTION OF THE DRAWINGS 
         [0003]    The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the present teachings and together with the description, serve to explain the principles of the present teachings. In the figures: 
           [0004]      FIG. 1  illustrates an overall system for managing a collaboration space having application hosting capabilities, according to various embodiments; 
           [0005]      FIG. 2  illustrates an overall system for managing a collaboration space having application hosting capabilities, according to various embodiments in further regards; 
           [0006]      FIG. 3  illustrates an exemplary hardware configuration of a collaboration server that can be used in systems and methods for managing a collaboration space having application hosting capabilities, according to various embodiments; and 
           [0007]      FIG. 4  illustrates a flowchart of overall management processing for collaboration spaces having application hosting capabilities, according to various embodiments. 
       
    
    
     DESCRIPTION OF EMBODIMENTS 
       [0008]    Embodiments of the present teachings relate to systems and methods for managing a collaboration space having application hosting capabilities. More particularly, embodiments relate to platforms and techniques to support a wiki site or other collaboration space, incorporating a set of content resources or tools which permit a set of users to access the collaboration space, and upload, access and download content to and from the collaboration space. Those content tools can include, for example, email tools, code archive tools, instant messaging or other messaging tools, calendar or scheduling tools, or other tools or resources to help manage the content of information posted to and maintained by the wiki site or other collaboration space. In embodiments, the collaboration space can be supported by a collaboration server or other host. In embodiments, the collaboration server or other resources used to support the collaboration space can be extracted or maintained in a cloud computing environment. 
         [0009]    According to embodiments, the collaboration space can likewise be configured to contain a set of executable application resources to permit a user to execute or instantiate one or more applications, from within the collaboration space. The set of executable application resources can include, for example, available application language or other interpreters, compilers, runtime environments, or other application resources to allow applications to be hosted and execute in the collaboration space, itself. In embodiments, the resulting wiki site or other collaboration site or space, can be referred to as a “piki” site or space. In embodiments, the set of hosted applications that reside or are instantiated in the collaboration space, can be configured as Web applications. The hosted Web applications can be served to one or more of the set of users, directly from the collaboration space. 
         [0010]    Reference will now be made in detail to exemplary embodiments of the present teachings, which are illustrated in the accompanying drawings Where possible the same reference numbers will be used throughout the drawings to refer to the same or like parts. 
         [0011]      FIG. 1  illustrates an overall system  100  consistent with systems and methods for managing a collaboration space having application hosting capabilities, according to various embodiments of the present teachings. In embodiments as shown, a collaboration space  110  can host or contain a set of content  112 , as well as a set of applications  114 . In embodiments, the collaboration space  110  can be or include a wiki site, space, or community. In embodiments, collaboration space  110  can host or support resources related to the development of software, such as applications, operating systems, or other software. The set of content  112  can include, for example, email or other messaging content, code storage or archives, blogs, or other media or content. The set of applications  114  can include, for example, applications such as software development applications, for instance, debugging tools, performance metric tools, or other applications. 
         [0012]    The collaboration space  110  can be generated or supported by a collaboration server  102 . Collaboration server  102  can communicate with a data store  116  to store code, content, applications, and/or other resources related to collaboration space  110 . Collaboration server  102  can likewise comprise a set of content management resources  104 , and a set of executable application resources  106 . Set of content management resources  104  can comprise software and/or other tools to receive, maintain, and provide access to messaging, code, and other content or media hosted in collaboration space  110 . Set of executable application resources  106  can comprise software and/or other tools to maintain, configure, and/or execute or instantiate applications or other software within collaboration space  110 . Set of executable application resources  106  can comprise, for instance, application language frameworks, compilers or interpreters such as, for example, Python, PERL, Java™, Ruby on Rails, Visual Basic™ available from Microsoft Corp., Struts, or other languages, platforms, and/or other resources. Set of executable application resources  106  can comprise a Web application framework to permit collaboration server  102  to serve applications to one or more users in a set of users  108  via one or more networks  118 . One or more networks  118  can be or include the Internet, or other public or private networks. Set of users  108  can include, for instance, anonymous public users, registered or authenticated users, or other users who wish to access collaboration space  110 , for example, to participate in the development of applications or other software. 
         [0013]    As shown in  FIG. 2 , in operation the collaboration space  110  can present a set of content  112  and a set of applications  114  to any one or more users in the set of users  108  who access the collaboration space  110 . In embodiments, one or more applications in the set of applications  114  can be executed or instantiated via the set of executable application resources  106  of collaboration server  102 . In embodiments, the one or more executed or instantiated applications can be generated as a Web application  120 , and transmitted to users in the set of users  108  via one or more networks. In embodiments, the collaboration space  110  can be configured to permit users in the set of users  108  to transmit or upload a set of migrated applications  122  directly to the collaboration space  110 . The set of migrated applications  122  can comprise remotely generated application code, languages, or other resources that can access the set of executable application resources  106  once received in collaboration space  110  In embodiments, the set of migrated applications  122  can be stored to data store  116 , or other sites or storage. In embodiments, users in the set of users  108  can instead or in addition start and generate applications or other software entirely within collaboration space  110 . 
         [0014]      FIG. 3  illustrates an exemplary diagram of hardware and other resources that can be incorporated in collaboration server  102  supporting collaboration space  110 , collaboration space  110  in turn being configured to communicate with a set of users  108  via one or more networks  118 , according to various embodiments. In embodiments as shown, the collaboration server  102  can comprise a processor  124  communicating with memory  126 , such as electronic random access memory, operating under control of or in conjunction with operating system  130 . Operating system  130  can be, for example, a distribution of the Linux™ operating system, the Unix™ operating system, or other open-source or proprietary operating system or platform. Processor  124  can also communicate with the data store  116 . Processor  124  further communicates with network interface  128 , such as an Ethernet or wireless data connection, which in turn communicates with one or more networks  118 , such as the Internet or other public or private networks. Processor  124  can also communicate with the memory  126 , the network interface  128 , and the data store  116  to execute control logic and perform processing to carry out collaboration space management as described herein. Processor  124  can further communicate with set of content management resources  104  and/or set of executable application resources  106 , to execute management functions in the collaboration space  110 . Other configurations of the collaboration server  110 , associated network connections, and other hardware and software resources are possible. 
         [0015]      FIG. 4  illustrates overall processing for application development using a middleware platform, according to embodiments. In  402 , processing can begin. In  404 , a collaboration space  110 , such as a wiki site, can be generated via collaboration server  102 . In  406 , the collaboration server  102  can generate and/or access a set of content management resources  104  in the collaboration space  110 . In  408 , the collaboration server  102  can generate and/or access a set of executable application resources  106  in the collaboration space  110 . In embodiments, the set of executable application resources  106  can be or include, for example, programming language resources, such as interpreters, compilers, or other tools or platforms to access, modify, and/or execute application code in collaboration space  110 . In embodiments, set of executable application resources  106  can include, for example, languages or platforms such as Python, PERL, Ruby on Rails, Visual Basic™ available from Microsoft Corp., or other languages, platforms, and/or other resources to support hosted applications in collaboration space  110 . 
         [0016]    In  410 , the collaboration space  110  can receive user-supplied and/or user-selected application code, or other code or resources. For example, collaboration space  110  can receive an upload of application code from one or more of set of users  108 . In embodiments, the application code can in addition or instead be or include code stored in or retrieved from data store  116 . In  412 , collaboration server  102  can invoke or interface to set of executable application resources  106  to host, instantiate, and/or execute the user-supplied or user-selected application code in collaboration space  110 . For example, set of executable application resources  106  can be invoked to compile or interpret code, and instantiate or execute any resulting executable code. 
         [0017]    In  414 , the application hosted by or instantiated in collaboration space  110  can be inserted into a Web framework within the framework of the collaboration space  110 . For example, collaboration server  102  can configure network ports and/or other network connections and resources, such as security resources, to transmit or serve the application as a Web application to one or more remote users. In  416 , the application hosted by or instantiated in collaboration space  110  can be transmitted or served to one or more recipient users in set of users  108 , for example, via a secure channel via network  118 . In  418 , any updated application code and/or other resources can be stored to data store  116  or other data sites or storage, as appropriate. In  420 , as understood by persons skilled in the art, processing can repeat, return to a prior processing point, jump to a further processing point, or end. 
         [0018]    The foregoing description is illustrative, and variations in configuration and implementation may occur to persons skilled in the art. For example, while embodiments have been described in which one collaboration server supports a collaboration space and the set of users who participate in that space, in embodiments multiple servers or hosts can support the wiki site or other collaboration environment. Similarly, while embodiments have been described in which one collaboration host supports one collaboration space, in embodiments, one or more collaboration servers can support multiple wiki sites or other collaboration spaces. Other resources described as singular or integrated can in embodiments be plural or distributed, and resources described as multiple or distributed can in embodiments be combined. The scope of the present teachings is accordingly intended to be limited only by the following claims.