Patent ID: 7565310
Filing Date: 2009-07-21
Classification: G06Q

Abstract:
1. A computer implemented method executed by a processor in a data processing system for a design pattern for automating service provisioning, the computer implemented method comprising: defining at least one service using a set of service functions and a set of catalog item management functions provided by a catalog item management system, wherein defining the at least one service includes defining a maximum number of service instances allowed for the at least one service, and wherein the set of service and catalog item management functions includes at least one of creation of service, modification of service, deletion of services, creation of catalog items, modification of catalog items, deletion of catalog items, publishing of catalog items, and un-publishing of catalog items; responsive to defining the at least one service, adding the at least one service to a service catalog with a service start time and a service end time using the set of service functions and the set of catalog item management functions provided by the catalog item management system; presenting a list of availabilities to a consumer for ordering of the at least one service from the service catalog, wherein the list of availabilities is determined using a calendar reservation and scheduling system comprising an algorithm that determines the list of availabilities based on a user defined service start time, and a user defined service end time, all currently available reservations, and the maximum number of service instances allowed for the at least one service, wherein the at least one service is a published and currently available catalog item; receiving an order placed by the consumer, wherein the order includes the user defined service start time, the user defined service end time, and user defined requirements; responsive to receiving the order placed by the consumer, managing a subscription for the order using an ordering fulfillment system comprising a set of order functions, subscription functions, and service instance functions, wherein the subscription functions include a subscribe method for managing the subscription for the order, wherein the order functions include a process order method comprising an order type, and wherein the order type includes one of a provision order type, a deprovision order type, and a modify order type; responsive to invoking the subscribe method, invoking the process order method with the provision order type; responsive to invoking the process order method with the provision order type, invoking a reserve method to reserve resources, wherein user defined workflows are plugged into the reserve method to perform reservations, and invoking a provision method to automatically provision an application based on the user defined service start time, wherein the user defined workflows are plugged into the provision method to deploy the application and associated resources; responsive to invoking the process order method with the deprovision order type, invoking a deprovision method to automatically deprovision the application based on the user defined service end time, wherein the user defined workflows are plugged into the deprovision method to undeploy the application and the associated resources; and responsive to invoking the process order method with the modify order type, invoking a modify method to perform modifying operations, wherein the modifying operations comprise terminating the at least one service before the service end time, and modifying the user defined service end time to a new end time; wherein the algorithm combines adjacent reservation entries by determining that an end time of the new reservation entry in the list of resource availabilities is equal to a start time of a next reservation entry in the list of resource availabilities, creating a combined reservation entry as a combined duration of the new reservation entry and the next reservation entry in the list of resource availabilities; removing from the list of resource availabilities reservation entries having shorter combined durations than a duration of a query to form a final list of resource availabilities.