A communities framework is disclosed which contains resources in a repository. The repository contains data stored in nodes wherein each node has data associated with a collaboration resource and each resource has a set of properties or attributes. A server can provide a content object for wrapping the node wherein the content object defines the type of resource contained by the data in the node. An extensible control is provided that performs operations on the node thereby providing an interface to manipulating the node's data. The extensible controls can allow developers to easily create new resources. A generic control can further wrap the extensible control and be adapted to provide an abstracted interface to the content object. An extensible portlet can implement the extensible controls in order to provide users with the ability to add new properties and edit existing properties of the resource.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A system for providing extensible controls for a communities framework, said system comprising: a computer that renders a portal including a plurality of portlets that provide access to a community framework, said community framework including at least one community of user members, wherein the user members share resources associated with the community; a repository containing data of said resources stored in nodes wherein each node has the data associated with a resource type, the resource type having one or more properties; a server that provides a content object class that is dynamically instantiated to form a runtime wrapper object that is associated with said node, wherein the runtime wrapper object defines the resource type associated with the node; an extensible control scoped to said community, the extensible control executing create, read, update and delete (CRUD) operations on at least one node stored in the repository by accessing the application programming interface (API) of said repository, wherein the extensible control is used to create both a new node in the repository and a new resource type within a single implementation, wherein the extensible control is annotated with a set of annotations to represent said properties of the new resource type and to create the runtime wrapper object that defines the new resource type upon node creation; and an extensible portlet of said plurality of portlets, said extensible portlet being rendered as part of said portal and being accessible by a user, wherein the extensible portlet is used to create new resources scoped to said community by invoking the extensible control to create new nodes and runtime wrapper objects associated with said nodes.
2. The system of claim 1 wherein: the extensible portlet enables a user to edit the properties for the resource type, wherein the extensible portlet implements the extensible control in order to manipulate the node data associated with the resource type.
3. The system of claim 1 further comprising: a community accessed via a portal, the community maintaining user membership including one or more members having access to the repository and capable of sharing data stored in the node and defined by the resource type.
4. The system of claim 1 , further comprising: a generic control that wraps the extensible control, the generic control adapted to provide an interface to the wrapper object, wherein the generic control implements the extensible control in order to manipulate the node data associated with the wrapper object.
5. The system of claim 1 wherein the extensible control is implemented as a Java class and managed at runtime by a Java 2 Enterprise Edition (J2EE) Enterprise Java Beans (EJB) container.
6. A method of providing extensible controls for a communities framework, said method comprising: rendering a portal on a computer, said portal including a plurality of portlets that provide access to a community framework, said community framework including at least one community of user members, wherein the user members share resources associated with the community; accessing a repository of resources containing data stored in one or more nodes, each node being associated with a resource type, the resource type having one or more properties; wrapping the node with a runtime wrapper object that is dynamically instantiated from a content object class, wherein the wrapper object represents the resource type associated with the node; providing an extensible control scoped to said community, the extensible control executing create, read, update and delete (CRUD) operations on the node stored in the repository by accessing the application programming interface (API) of said repository, wherein the extensible control is used to create both a new node in the repository and a new resource type within a single implementation, wherein the extensible control is annotated with a set of annotations to represent said properties of the new resource type and to create the runtime wrapper object that defines the new resource type upon node creation; and rendering an extensible portlet of said plurality of portlets, said extensible portlet being rendered as part of said portal and being accessible by a user, wherein the extensible portlet is used to create new resources scoped to said community by invoking the extensible control to create new nodes and runtime wrapper objects associated with said nodes.
7. The method of claim 6 wherein: the extensible portlet enables a user to edit the properties of the resource type, wherein the extensible portlet implements the extensible control in order to manipulate the node data associated with the resource type.
8. The method of claim 6 wherein the extensible control performs the CRUD operations on the node by invoking a content management application programming interface (API) of the repository.
9. The method of claim 6 , further comprising: providing a generic control that wraps the extensible control, the generic control adapted to provide an interface to the wrapper object, wherein the generic control implements the extensible control in order to manipulate the node data associated with the wrapper object.
10. A non-transitory computer-readable storage medium having instructions stored thereon that when executed by one or more processors cause the one or more processors to: render a portal on a computer, said portal including a plurality of portlets that provide access to a community framework, said community framework including at least one community of user members, wherein the user members share resources associated with the community; access a repository of resources containing data stored in one or more nodes, each node being associated with a resource type, the resource type having one or more properties; wrap the node with a runtime wrapper object that is dynamically instantiated from a content object class, wherein the wrapper object represents the resource type associated with the node; provide an extensible control scoped to said community, the extensible control executing create, read, update and delete (CRUD) operations on the node stored in the repository by accessing the application programming interface (API) of said repository, wherein the extensible control is used to create both a new node in the repository and a new resource type within a single implementation, wherein the extensible control is annotated with a set of annotations to represent said properties of the new resource type and to create the runtime wrapper object that defines the new resource type upon node creation; and render an extensible portlet of said plurality of portlets, said extensible portlet being rendered as part of said portal and being accessible by a user, wherein the extensible portlet is used to create new resources scoped to said community by invoking the extensible control to create new nodes and runtime wrapper objects associated with said nodes.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
March 2, 2006
December 13, 2011
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.