Patent ID: 7694279
Filing Date: 2010-04-06
Classification: G06F

Abstract:
1. A method of providing a modifiable, extendable web service for a remotely accessible business software system comprising: storing, in computer-readable storage media of all computing devices of the remotely accessible business software system, computer-executable instructions for a schema for the modifiable, extendable web service, the schema including a base business object class, wherein: the base business object class includes an extensions property, the extensions property is defined by an extensions list, the extensions list includes zero or more extension classes, each of the extension classes includes an extension object, an XML serialized version of the extension object, and an extension object property, the extension object is derived from the base business object class, a serialization of a base business object of the base business object class and a serialization of each extension object corresponding to the base business object are performed independently in time, and a de-serialization of the base business object and a de-serialization of the each extension object corresponding to the base business object are performed independently in time; by a first computing device of the remotely accessible business software system, retrieving a particular extension object of a particular extension class of a particular base business object of the base business object class, the particular base business object being customized with the particular extension object, wherein the step of retrieving comprises: first, receiving a request for an action to be performed on the particular base business object; second, raising a first business event corresponding to the request; third de-serializing the particular base business object; fourth, executing base business logic corresponding to the action and to the particular base business object; fifth, calling an extensions-list-get-method to trigger de-serialization of a particular extensions property of the base business object class and to obtain the particular extension object; sixth, executing extension business logic corresponding to the action and to the particular extension object, and changing an extension state of the particular extension object; seventh, updating the particular base business object with the extension state of the particular extension object by setting a particular extension object property corresponding to the particular extension object to trigger serialization of the particular extension object property; and eighth, maintaining the particular extension object and an XML serialized version of the particular extension object in the particular extension class; and by the first computing device, publishing a second business event to all subscribers of the second business event, comprising: materializing a core business object of the base business object class corresponding to the second business event; raising a retrieve event; passing the retrieve event to the all subscribers of the second business event; adding more than one materialized extension objects to the core business object, wherein at least two of the more than one materialized extension objects are each materialized by a different subscriber of the second business event; raising the second business event; and passing, to the all subscribers of the second business event, the core business object as an event argument, the core business object containing more than one materialized extension objects.