Abstract:
The invention pertains to a system and method for an adaptable application platform developed with the concept of a system adapting to people&#39;s day-to-day tasks, as opposed to people adapting to many disjoint solutions that were developed to address specific problems. The invention is based on reducing the tasks people perform into a small set of basic tasks and implementing these tasks on the platform along with the necessary support functionality. This allows users to develop their specific solutions and interact with others over the platform using a simple common interface without any programming knowledge or special skills.

Description:
[0001]    The present application claims priority to U.S. Provisional Patent Application Ser. No. 62/027,580 for “Adaptable Application Platform”, filed Jul. 22, 2014, the disclosure of which is incorporated by reference. 
     
    
     FIELD OF THE DISCLOSURE 
       [0002]    This invention relates to a computer software application running on a network of computers such as the Internet. In particular, the invention presents a novel deviation from the traditional problem-centric approach used in offering solutions designed around specific problems, which has significant drawbacks as outlined below. 
       BACKGROUND 
       [0003]    Current applications such as Amazon, EBay, YouTube, Expedia, Odesk offer solutions to specific problems through their central platforms or websites, and the users conceptually gather around the platforms and trade their products or services by connecting to the platforms. This problem-centric model has the following drawbacks:
         1 . In this model, the use of the platform to the users is limited to the specific solution each platform offers.   2. We are forced to constantly switch between websites offering specific solutions.   3. We are also forced to learn and adapt to these solutions.   4. Solutions are scattered and are hard to find.   5. Many services are not available to common people, either they are too expensive, too complicated with technical jargon or proprietary in nature. Some are designed for high-level executives, technical people, planners, etc.   6. We end up using multiple accounts, managing different accounts and passwords.   7. Solutions don&#39;t work well together, which means we can&#39;t combine applications to receive their combined benefit.   8. There are also functional gaps in the available solutions, and as a result it becomes necessary to manually fill the gaps by the users. Typically, one needs multiple services and a lot of manual work in between to complete a task.   9. These solutions do not support the multiple roles we play in our lives.   10. The solutions are not designed for organizing and managing users&#39; own tasks.   11. Our ability to connect, share and apply information creatively is compromised.       
 
         [0015]    Because of the above reasons there is a need for a solution centered abound users or user-centric, which adapts to users day-to-day tasks and allows users to form networks of communities around them. 
       SUMMARY 
       [0016]    This invention discloses a solution that overcomes above drawbacks and allows users to develop specific solutions using a common interface over the platform without any programming skills. 
         [0017]    By providing an application platform that adapts to the way people work and live, the platform satisfies the needs of the people with superior functionality, system expandability, reduced cost and improved flexibility. 
         [0018]    The system adapts to users by supporting day-to-day tasks of what people naturally do. A person&#39;s tasks can be classified or reduced as: (1) items produced, (2) items consumed (3) working with others, usually in groups possibly with some working relationships and (4) converting or transforming the items consumed to Items produced using some process. Items consumed and produced can be either goods or services. 
         [0019]    Examples of items produced include: speaking/writing, offering/selling goods, offering services, showing a movie, cooking, making arts/crafts, teaching lessons, sending a message, and the like. 
         [0020]    Examples of consumed items include: listening/reading, buying goods, hiring services, watching a movie, eating/drinking, receiving arts/crafts, taking lessons, reading a message, and the like. 
         [0021]    A basic element of the system is an entity, which is a software representation of a person, a group of people, a business, an organization or an institution. The system supports the above three classifications of tasks. 
         [0022]    Entities can also be formed by other entities, and a basic entity that is not formed by other entities may represent a person. That is, when a person is represented as an entity in the system, it becomes a basic entity. When an entity represents something other than a person, it can be a basic entity or a non-basic or a complex entity. A complex entity manages one or more of other entities. 
         [0023]    The system allows formation of managing and managed entities to facilitate formation of management structures as in business and organizations, allowing expansion of entities vertically. 
         [0024]    An entity can organize some or all other entities it is associated with into various groups for efficiency and convenience. The entity can configure groups with various properties including privileges, privacy and other properties as needed. 
         [0025]    Groups differ from complex entities in that complex entities are formed by any combination of basic entities (e.g., a person) and other complex entities. Items produced and consumed are internally tied to a complex entity so there will be net produced and consumed items for the complex entities as seen externally. For example, a company or corporation can be a complex entity. As a whole, the company or corporation consumes certain products and services and produces certain products and services, yet it is formed internally by different entities including officers, administrators, and support staff. In contrast, a group can be a group of entities formed for convenience due to some functional relationship. For example, all suppliers can be in a group, and all consumers can be in another group. 
         [0026]    The system supports a flexible, selectively shareable calendar and a selective portions of which can be merged with calendars of other entities to provide necessary functionality between entities for performing various tasks. 
         [0027]    The system provides a task scheduler to entities to execute tasks (or service requests) in isolation, in series or in parallel with other tasks by allowing various pre and post task execution conditions. 
         [0028]    The system offers a flexible and convenient process management functionality to entities for setting up processes which convert or transform its consumed items to produced items or from its inputs to outputs. This process can be used from simple operations like reselling and cooking to complex manufacturing operations. This allows to track time, cost, and resources used for the entities&#39; operations. 
         [0029]    The system also provides material management functionality to compute material requirements, material cost, and generation of alerts upon shortages or excess production. These can also be computed at any intermediate production stages. 
         [0030]    The system offers bookkeeping functionality for computing various parameters over specific time periods. These include quantities of items used, cost of items, production or consumption sorted by entities, and more. 
         [0031]    The system offers flexible and effective search mechanism for finding producers and consumers of an item and allows the entities to connect and exchange goods and services. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0032]      FIG. 1  is a graphical illustration of a list of consumed items and a list of produced items, of a basic entity representing a person; 
           [0033]      FIG. 2  is a graphical illustration of a network of basic entities (persons) exchanging items; 
           [0034]      FIGS. 3A ,  3 B, and  3 C are graphical illustrations showing how the same items can be produced from the same consumed items using different processing structures inside a complex entity; 
           [0035]      FIG. 4A  is a graphical illustration of a management structure within a complex entity; 
           [0036]      FIG. 4B  is a graphical illustration of an entity hiding its internal details as there would be no difference for external interactions; 
           [0037]      FIG. 5  is graphical illustration of a network of entities including both basic and complex entities, using the same interface; 
           [0038]      FIG. 6A  is a graphical illustration of a person (basic entity) categorizing his/her connections as different groups for convenience; 
           [0039]      FIG. 6B  is a graphical illustration of a complex entity also categorizing its connections as different groups for convenience; 
           [0040]      FIG. 7  is an illustration of user interface for creating a user account or user login; 
           [0041]      FIG. 8A  is an illustration of user interface for produced items; 
           [0042]      FIG. 8B  is an illustration of user interface for consumed items;  FIG. 9  is an illustration of user interface for entity groups; 
           [0043]      FIG. 10  is an illustration of a user interface for activity reports; 
           [0044]      FIG. 11A  is an illustration of a user interface for searching; 
           [0045]      FIG. 11B  is an illustration of a user interface for a search item view details; 
           [0046]      FIG. 12  is an illustration of a task scheduler user interface; 
           [0047]      FIG. 13  is an exemplary user interface as webpage showing entities organized as bookmarks; 
           [0048]      FIG. 14  is an illustration of operations performed on multiple calendars; 
           [0049]      FIG. 15A  is a flowchart for finding and adding a consumed item; 
           [0050]      FIG. 15B  is a flowchart for adding a produced item; 
           [0051]      FIG. 16A  is a flowchart for creating a management structure; 
           [0052]      FIG. 16B  is a block diagram of a management structure; 
           [0053]      FIG. 17A  is an entity process graph illustrating process steps from consumed items to produced items; 
           [0054]      FIG. 17B  is an exemplary user interface for process steps; 
           [0055]      FIG. 18  is an overview of the system components; 
           [0056]      FIG. 19  shows an exemplary software architecture; 
           [0057]      FIG. 20  shows an exemplary logical data model of the system; 
           [0058]      FIG. 21  shows an exemplary sequence diagram of submitting form data; 
           [0059]      FIG. 22  shows an exemplary sequence diagram of notification subscription; 
           [0060]      FIG. 23  shows an exemplary sequence diagram of updating status of a goods or service; 
           [0061]      FIG. 24  shows an exemplary sequence diagram of triggering mechanism for timed tasks; and 
           [0062]      FIG. 25  shows an exemplary sequence diagram of event bus processing. 
       
    
    
     DETAILED DESCRIPTION 
       [0063]    The present application discloses an invention which is substantially different from the previously issued U.S. Pat. No. 8,515,831 titled “Peoples&#39; task management framework” by the same inventor, Bala Vatti. This patent discloses an invention whereby users can form entities representing individuals, groups of people, businesses, organizations and institutions, and share or trade products and services by defining them as produced and consumed items primarily as external interactions by adopting a novel people centric approach. The current patent application discloses an invention that primarily describes a system of building processes that transform or convert consumed items to produced items within an entity and how entities can be attached to the processes of the entity. This system can be used by common people as well as other entities to manage their day-to-day tasks in a networked environment. The process can send alerts and notifications to external entities for smooth operations. 
         [0064]    In particular, the present invention is directed to more than simply a software platform. The invention discloses a new adaptable goods and services exchange platform with a novel interface for creating from simple to complex processes and workflows. In contrast to prior art platforms, such as typical e-commerce websites which require an administrator or other third party to create and display content, the present invention adopts a novel people centric approach which allows for individual users to create, search for, and receive as well as offer goods and services without the need of an intermediary. This approach allows formation of networks of communities around users and manage their day-to-day tasks. In addition to finding items of interest, users can also find entities of interest for social or professional interactions. 
         [0065]    Practical applications include the following examples: Finding people of common interests like tennis players and scheduling matches. 
         [0066]    A small pizzeria owner setting up the process, connecting with his/her suppliers and customers and automatically tracking and ordering ingredients as orders come in from the customers. 
         [0067]    A knitting hobbies connecting with yarn suppliers and sharing ideas with co-hobbyists and others, which may evolve to become a profitable business as the word spreads. 
         [0068]    A plumbing business allowing its customers to order work, setup appointments with its plumbers and track their progress. 
         [0069]    A piano player sharing her expertise with the neighbors by setting up music sessions. 
         [0070]    A bicycle maker ordering parts from suppliers, setting up assembly process with some employees and supplying to the customers. 
         [0071]      FIG. 1  shows how a person&#39;s tasks can be classified as produced items (output) or consumed items (input). An item can be goods or a service. 
         [0072]      FIG. 2  shows how a network of people can connect and exchange matched items in a flat network. 
         [0073]    However, by nature, people work with others in order to achieve anything significant. When a group of people work together, the group can be treated as an entity and all tasks this group performs can also be classified as items produced and items consumed from an external point of view. 
         [0074]      FIG. 3   a  shows a scenario where the inputs are exclusively distributed to the group members and outputs are also exclusively produced by the members. All the people would be working independently here. 
         [0075]      FIG. 3   b  shows a scenario where the inputs are non-exclusively distributed among the members and the outputs are also created non-exclusively by the group members. 
         [0076]      FIG. 3   c  shows a scenario where the inputs are distributed to a set of people of the group and produce a first stage or an intermediate stage output, which then is processed by the remaining group member or members to produce the final output. This figure also shows some of the final output may also be used by the group members. There could be other possible scenarios where the inputs and outputs are distributed and processed differently. 
         [0077]      FIG. 4   a  shows a scenario where a simple management structure in which one manager manages three other people and this team, as a whole, takes the input and produces the output. From an external point of view there is no difference in the way the entity is interacted with externally regardless of how the group is internally organized or how they interact to produce the output. 
         [0078]    Hence, isolating the internal structure from an external point of interaction makes it possible to define an entity as a representation of a person, a group, a business, an organization or an institution. Inputs and outputs can be matched and exchanged the same way, regardless of the entity&#39;s internal structure. 
         [0079]    An entity can be a manager or a managed entity. An entity can be a managed entity (similar to an employee) if it contributes its services to a manager entity. Typically, a manager entity provides the inputs to the managed entities, and uses the managed entities&#39; outputs to form the manager entity outputs. 
         [0080]    By forming entity structures as described above, entity networks can grow infinitely both horizontally and vertically. 
         [0081]      FIG. 4   b  shows an entity as a pyramid. Horizontal slices on the pyramid indicate levels in the management. However, there is no difference the way other entities connect and interact with an entity, regardless of its management levels. 
         [0082]      FIG. 5  shows a network of entities involving people and organizations with different level management structures. 
         [0083]      FIG. 6   a  shows how a person works with other people by categorizing them into groups based on functions or other characteristics as needed. 
         [0084]      FIG. 6   b  shows how an entity, like a person, can also be working with other entities by categorizing them into groups based on functions or other characteristics as needed. 
         [0085]    In addition to producing and consuming items, a person naturally works with groups for fun, social, or functional interactions. The ability of the system to provide group interactions, as an individual or as an organization, results in an useful platform for users. 
         [0086]    Common web browsers could be used to present a user interface of the platform with multiple tabs for performing frequently used functions. Each tab may contain user interface elements such as buttons, menus, form fields, etc. 
         [0087]      FIG. 7  shows an example view of the entity Create/Login window for of the system. This allows users to create an entity account and allows them to login. Optionally, this view also allows new users to explore the features of the platform by clicking the “Take A Tour” button. 
         [0088]    After logging in the system, the user is presented with a set of tabbed windows.  FIG. 8A  shows an exemplary view of the Produced Items tab of the platform. This view shows a list of produced items of the entity and the consumer entities of the selected produced items. A Calendar view shows appointments, tasks and delivery schedules for the selected entities in the list. It also shows important status indicators for the selected items including inventory levels, delivery commitments, corresponding consumed items, inventory levels, etc. The “Create an Item” button takes to a window for creating a produced item. 
         [0089]      FIG. 8B  shows a view of the Consumed Items tab of the platform for managing the consumed items and interacting with the entities that are producing these items. This view includes a list of consumed entities and producing entities list of selected consumed items. This will enable interaction with the producing entities. This view also shows a Calendar view containing delivery schedules for selected items and appointments with producing entities. In addition, this also contains inventory levels for corresponding produced items and consumed items, as well as any alerts for these items. This also shows a button for creating consumed items which opens another window for searching producing entities and interacting with them. 
         [0090]      FIG. 9  shows a view of the Groups tab to configure and interact with groups. The Groups list shows all the configured groups for the entity. The Entities list shows the entities of a selected group. A Calendar view shows tasks, schedules, and appointments for the entities. The Message board shows the group or individual entity messages. Compose Message and Send Message are used to send messages to an entity or a group of entities. 
         [0091]      FIG. 10  shows a view of the Activity tab for the entity. Items, as well as entities associated with the items, can be selected, and additional options, as shown, can be selected to zoom in on the activities of interest. This can also be used for bookkeeping, business analysis, and reporting. 
         [0092]      FIG. 11A  shows a view of the Search tab for searching producing and consuming entities of an item using suitable key words and other search criteria. The user can also select if the results should include producers or consumers. The search returns a list of entities and the user can click on entities from the list to learn the details of the item and for further interaction. If the user decides to, then the user can connect with the entity and transact as needed. The connection can be dropped by any of the entities if it is no longer needed or desired. Buttons are also provided for bookmarking, ordering, scheduling orders, exchanging messages with the producing/consuming entity and reading/commenting on a message board regarding the item. 
         [0093]      FIG. 11B  shows a view of the entity details selected from the search list. Unlike the current web links presented from the search engines which take the users to their respective websites for further interaction, the target entity details are presented within the entity&#39;s own account, and further interactions can be performed from the entity&#39;s known environment. There is no learning curve involved related to the target link. Entity can perform all the operations from his or her account. 
         [0094]      FIG. 12  shows a view of the Scheduler tab with means to schedule tasks. The tasks can be conditionally started and terminated. Multiple tasks can be chained and executed in series or they can run in parallel, as needed, to accomplish necessary results. The tab also contains a list of tasks. The user can check the status of these tasks and perform certain operations on these tasks, including cancelling or rescheduling. 
         [0095]      FIG. 13  illustrates a view of the Bookmarks tab in which frequently accessed entities can be organized in a functionally meaningful manner. Normally, users interact with a few entities on a regular basis and this feature makes it more convenient for the user. The user can click on any entity list and further options are presented to interact with the selected entities. 
         [0096]      FIG. 14  shows an examples of the calendar uses. The calendar offers flexible and useful functionality to the users. It allows the creation of multiple views and entities can share specific views. Using the shared views, two or more entities can reserve timeslots, set up appointments, and schedule tasks. The calendar also allows addition, union, subtraction, and intersection operations between the calendars of two or more entities. The examples show some of the uses of these operations. 
         [0097]      FIG. 15A  shows a flow chart for adding a consumed item. 
         [0098]      FIG. 15B  shows a flow chart for adding a produced item. 
         [0099]      FIG. 16A  shows how to setup managed entities to function like a management structure of a business or organization.  FIG. 16B  shows the resulting managed entity structure of  16 A operations. 
         [0100]      FIG. 17A  is an exemplary view of an entity process graph showing conversion from the entity&#39;s inputs to its outputs or how consumed items are converted to produced entities within the entity&#39;s process. The graph nodes indicate the intermediate stages of the items in the conversion process and a process step is the process defined for an item undergoing from one stage to the next stage. These stages and process steps are defined by the entity. These may be multiple intermediate items produced before final produced items are produced. The system can traverse the process graph and compute item dependencies, process order, process time from any stage to any other stage, cost of the process, material requirements, etc. Users may be able to create and edit the process graph graphically or textually. 
         [0101]      FIG. 17B  shows how to create a process step for an item. Item is the target item, Made from is the item from which the target item is made. The target item may be made from several items which would be specified in different process steps. Quantity is the quantity of the Made from item to produce the target item. Time is the time for the process step, 
         [0102]    Cost is the cost of this operation (step), and Process is the description/specification of this step. An example step is also shown. 
         [0103]      FIG. 18  shows an exemplary system configuration. The system includes web and application servers and a database server connected to a network such as the Internet and the database server. 
         [0104]      FIG. 19  depicts the high level system architecture. User Interface Tier  500  consists of standard internet browsers  100  and custom applications  105  for mobile and internet devices. These are the primary frontend components allowing communication between the entities and the system. The user interface tier communicates with Web Services tier  505  using HTTP/HTTPS protocol. Web Services Tier  505  hosts the Secure Web Application Server  110  that allows secure HTTPS connections to the Application Services Tier  510 , the Web Application Server  115  that allows regular HTTP connection to the Application Services Tier, Secure Web Reports Server  120  that is used for report generation, Mobile Phone Locator  122  determines the current location of a mobile phone by interacting with mobile service providers and mobile device manager  125  that provides mobile user context for the rest of the components. The Web Services tier communicates with the Application Services tier  510  using XML/HTTP protocol. Optionally, surrounded by two firewalls, one restricting access from the internet, and the other restricting access to the application services tier, the system creates a demilitarized zone. This tier can be scalable independent of the rest of the tiers. 
         [0105]    Application Services Tier  510  consists of Ecommerce Server  130  that allows secure financial transactions through external payment gateways using SOAP, Status Server  135  that handles the task management logic of the system with the help of Timed Tasks Server  140 , Notification Server  145 , Communications Server  150  and Event Bus  155 . Accessible by the trusted servers of the web services tier, allowing access through XML over HTTP/HTTPS ports. This tier is computationally intensive and independently scalable. 
         [0106]    Persistence Tier  515  allows for persistence of system data such as Entity Data  160 , Item Data  161 , Process Data  162 , Notification Data  165 , and Activity Data  170 . 
         [0107]    The Entity Data  160  contains tables with fields including entity id, name, description, location, produced and consumed items references, entity relationships, group references, calendar references and other related fields. The item Data  161  contains tables with fields including item id, name, description, producing and consuming entity references, cost, stock, units of measurements and other related fields. Process Data  162  contains tables with fields including process step id, target item, source item, process, process cost, process time, and other related fields. Access to the persistence tier is through JDBC protocol. 
         [0108]    Integration Tier  520  hosts the Mobile Network  175  that allows connectivity with various mobile network providers and Partner Interfaces  180  that allows integration with third-party task management applications. The Integration tier communicates with Web Services tier using SOAP protocol. 
         [0109]    Status Server  135  carries out the core logic of searching entities based on attributes whose values are time and location bound. In other words, every search may involve a time range, which defaults, for example, to a time range of begin-time=“now” and end-time=“now+15 minutes.” Optionally, a search may involve geographical location of an entity. Status Server also carries-out attribute updates by entities, which may be effective over a time-range, which defaults to begin-time=“now” and endtime=“now+15 minutes.” Temporal search of entities based on attribute values over a period of time is accomplished by in-memory indexing of attribute values over time-range. The indexing will be kept manageable and efficient by remembering time-ranges that are current and in the future. An attribute&#39;s value over past range will be removed at the time of update. At the time of entity attribute value update, status server will also check for any pending item requests for the entity. If there are any, the status server evaluates such item requests and if any of them results in a success, posts a notification event to the Event Bus  155  for further processing by Notification Server  145 . 
         [0110]    Timed Tasks Server  140  is an enterprise task scheduling server, supporting the status server for scheduling time-based notification tasks. When the timer for a scheduled task expires, timed task server makes a callback to Status Server  135  with enough information regarding the task. Status server then performs the task, which may result in evaluating a specific item request and potentially notifying the interested entity. Notifying the interested entity is accomplished by posting a notification event on the Event Bus  155 . 
         [0111]    Notification Server  145  picks up and processes notification events from the Event Bus  155 . When the Event Bus is empty, the Notification Server stays idle. When a notification event gets successfully posted from the Event Bus, the Notification Server composes the notification message and sends out the notification message to the interested entity through Communications Server  150 . 
         [0112]    Communications Server  150  is used to deliver messages to the recipients through various communications channels, such as phone, fax or email. 
         [0113]    Event Bus  155  is the communication channel between the Status Server and the Notification Server. Whenever Status Server  135  needs to send a notification to an interested entity, Status Server posts a notification event that has enough information about the message and the interested entity, to the Event Bus. Notification Server  145  picks up the notification event, constructs the notification message, and sends it to the Communications Server  150  for delivery. 
         [0114]    Location Data  162  is a geographic information system (GIS) that indexes the items based on their location coordinates and allows searching of items relative to their geographical position. 
         [0115]      FIG. 20  depicts the logical data model of the entity. Entity  200  consists of a name and a set of attributes where each attribute is a name  250 , value/s  255  pair where the value/s are over a range of time. The default attribute value/s may be specified using attribute-value-patterns  260 . An entity may be associated with a location  275  that captures the geographical coordinates and address. 
         [0116]    An entity may be associated with a collection of other entities known as produced  205  entities and consumed  210  entities. An entity may also be associated with forms  230  that allow interaction between the producer and the consumer. Forms are composed of zero or more form-fields  235 . An entity may also be associated with item requests  215  that allow descriptions of items. The basic function of an item request is to identify matching items based on the item description. 
         [0117]    Attribute Class  245  is used to classify attribute/value pairs of an entity into categories based on business or functional criteria. Attribute Name  250  contains the name and type of an attribute that can have zero or more attribute values associated with it. Attribute Value  255  is the actual value of an attribute over a period of time. Attribute Value Pattern  260  is organized by effective date and defines the default values for an attribute over a period as defined in a Time Pattern  265 . For example, one can specify daily, weekly or monthly default values that can be used repetitively. 
         [0118]    Time Pattern  265  specifies the time pattern, such as daily, weekly or monthly. The Default Values  270  thus specified are used repeatedly daily, weekly or monthly respectively. 
         [0119]    The values of an attribute can be specified by the producing entity indirectly through a default value pattern or directly by overriding the default value. The consumer can view the effective value in real time. 
         [0120]    Default Value  270  specifies the default value of an attribute over a period of time. If an actual value of an attribute for a given period of time is absent, the system will use the default value, if any, that is applicable for the attribute over that specific period of time. 
         [0121]    Location  275  captures the address and geographical coordinates of entities allowing geographic location based search. The geographical coordinates of an address can be obtained by querying public geographical information systems (GIS). Items can be searched by considering user&#39;s current location or a specified location. The search results depict services, products, events which are closer to the specified location. A location request can be launched by the Mobile Phone Locator  122  to figure out the current location information of a particular user. Mobile Phone Locator sends a request to the user&#39;s mobile or mobile network which in turn responds back with its location. The location can be a close approximation of user&#39;s mobile geographical position as detected by a satellite or cell tower. Once the response is received, the system interacts with the location data (GIS)  162  to search for needed items. 
         [0122]    Produced Items  205  associates two entities, one as producing entity and the other as an item produced. The relationship between the producing entity and the item may be effective over a period of time. Producing entity can specify when the item is available for consumption. Producing entity can keep track of who is interested in the item produced. 
         [0123]    Similarly, Consumed  210  associates two entities, one as a consuming entity and the other as item. Consumed is used to determine and generate the appointment calendar of the consumer and the delivery schedule of the producer. A Calendar  285  with multiple views is used by the entity, each view is designed to share with a selective list of entities or Groups  280 . The calendar functionality also allows merging of multiple calendar views from different entities by performing operations such as addition, union, intersection, subtraction on the times lots of the calendars. Any change such as cancellation of consumption is notified to the consuming entity and/or the producing entity and the calendars of the consuming entity and the producing entity may reflect the change automatically. The entity may organize other entities into Groups  280  by specifying privileges, calendar views, etc. 
         [0124]    Item Request  215  is a named piece of Parameter Name  220 , Value  225  pairs that defines an entity&#39;s item request. An item request can be used to search for a list of matching items that an entity is interested in. It is also used to notify interested entities based on the conditions specified in the item request. 
         [0125]    Item Request can also be used to specify items of interest such as a request for proposal (RFP) to which interested producing entities can respond. 
         [0126]    Form  230  is a named collection of Field  235 , Value  240  pairs that defines a form associated with an entity. Form has a specified group, so that every entity that submits the form gets added to that group. Form also can be either published or not. Multiple forms belonging to a single entity are ordered for presentation purposes using the order attribute of the form. The System provides a library of predefined forms for user convenience. 
         [0127]    Field  235  is a collection of attributes such as Label, FieldType, Input, Password, Inventory and Order that are used to define a Form Field. Multiple fields belonging to a single form are ordered for presentation purposes using the order attribute of the field. 
         [0128]    Field Value  240  associates the value/s entered by an entity with the field belonging to a form. 
         [0129]      FIG. 21  shows submit form mechanism. When an entity  200  submits a form through the web, the web application  115  validates the form data and submits the form data to the status server  135 . Status server stores the form data in the data store  515 , adds the submitting entity to the group associated with the group of the form and posts a notification event for the entity that owns the form in context. 
         [0130]      FIG. 22  shows subscription for notification. When entity subscribes for notification through the web, the status server  135  does the following: 
         [0131]    1. Creates an item request  215  on behalf of the subscribing entity and saves it in the data store  515 . 
         [0132]    2. Checks to see if the item request is time based. If true, schedules a timed event in the Timed Tasks Server  145  to evaluate the item request at a specified time in the future. 
         [0133]    Else, the server figures out the next change in each of item request&#39;s attribute&#39;s default value in the near future, and schedules a timed event in the timed tasks server to evaluate the item request at that specific time in the future. 
         [0134]    The item requests are evaluated whenever an entity manually updates any attribute of an item. Apart from that, item requests must also be evaluated whenever an attribute change happens due to the default load pattern. To handle the automatic attribute change scenario, every time an item request is added, a timed task to evaluate the item requests at the next automatic attribute change is also scheduled. 
         [0135]      FIG. 23  shows Update Item mechanism. When an entity updates any of its produced and published entity&#39;s attribute value/s, the status server does the following: 
         [0136]    1. Saves the attribute value change in the data store  515 . 
         [0137]    2. Checks to see if there are any pending item requests associated with the produced entity. 
         [0138]    3. For each pending item request, the status server does the following:
       A. Evaluate the item request   B. If the evaluation results in true, then post a notification event on the event bus  155  and delete the item request from the produced entity.       
 
         [0141]      FIG. 24  shows the Triggering Mechanism for Timed Tasks. When the timed task server  140  triggers a previously scheduled timed event, the timed task server calls back Status 
         [0142]    Server  135  to evaluate the relevant item request. Status Server evaluates the item request and if the evaluation results in true, posts the notification event on the event bus  155  and removes the item request from its associated produced item. 
         [0143]      FIG. 25  shows the Event Bus Processing. When a notification event gets posted on the 
         [0144]    Event Bus  155 , Notification Server  145  picks up the event, constructs the relevant message and sends it to the Communications Server  150  for delivery to the interested entity. The notification event contains the source entity, the destination entity and other relevant notification data.