Extensible architecture for versioning APIs
First Claim
1. A client-side computer system architecture for a versioning application program interface, the system comprising:
- a processor to execute computer instructions;
a computer memory storing the computer instructions, which, when executed, establish system elements comprising;
an OLE DB interface for communicating with a client application, said interface receiving a data request command from said client application;
a first command parser operatively coupled to the OLE DB interface, said first command parser parsing said command to identify a protocol provider;
a command dispatcher operatively coupled to the first command parser; and
a first protocol provider and a second protocol provider respectively including a first versioning application program interface and a second versioning application program interface to receive at least one transaction request from the client application, and at least one first data session object and at least one second data session object, respectively, the at least one first data session object operatively coupled to the first versioning application program interface to receive at least one transaction request from the first versioning application program interface and the at least one second data session object operatively coupled to the second versioning application program interface to receive at least one transaction request from the second versioning application program interface, the first protocol provider and the second protocol provider operatively coupled to the command dispatcher, the first protocol provider and the second protocol provider including a second command parser and a third command parser respectively, the second command parser and the third command parser parsing at least a portion of said command, the first protocol provider and the second protocol provider communicatively coupled to a first version store and a second version store respectively, the first version store and the second version store located in at least one server;
wherein the command dispatcher receives search results in response to the data request command, the search results provided by the first and second protocol providers in the form of one or more rowsets, the command dispatcher aggregating the one or more rowsets received from the first protocol provider and the second protocol provider into a dispatcher rowset, the dispatcher rowset forwarded to the client application; and
a computer monitor which displays the dispatcher rowset via the client application.
1 Assignment
0 Petitions
Accused Products
Abstract
Some large software development projects need more than one versioning system to accommodate not only a diversity of document formats and data types, but also the geographic diversity of its programmers. However, having more than one versioning system is generally very expensive. A major factor in this expense is the requirement for a separate application program interface (API) for each separate versioning system. Accordingly, the inventors devised an exemplary API architecture that can be extended with “plug-in”protocol providers to include virtually any number of separate version stores or versioning systems. The exemplary architecture includes a generic command parser and a command dispatcher. The command dispatcher operatively couples to one or more protocol providers, each coupled to at least one version store. Inclusion of the OLE DB-compliant interface and the command parser in the exemplary embodiment saves the protocol providers the effort and expense of replicating these features, thereby reducing the cost of adding version stores.
42 Citations
10 Claims
-
1. A client-side computer system architecture for a versioning application program interface, the system comprising:
-
a processor to execute computer instructions; a computer memory storing the computer instructions, which, when executed, establish system elements comprising; an OLE DB interface for communicating with a client application, said interface receiving a data request command from said client application; a first command parser operatively coupled to the OLE DB interface, said first command parser parsing said command to identify a protocol provider; a command dispatcher operatively coupled to the first command parser; and a first protocol provider and a second protocol provider respectively including a first versioning application program interface and a second versioning application program interface to receive at least one transaction request from the client application, and at least one first data session object and at least one second data session object, respectively, the at least one first data session object operatively coupled to the first versioning application program interface to receive at least one transaction request from the first versioning application program interface and the at least one second data session object operatively coupled to the second versioning application program interface to receive at least one transaction request from the second versioning application program interface, the first protocol provider and the second protocol provider operatively coupled to the command dispatcher, the first protocol provider and the second protocol provider including a second command parser and a third command parser respectively, the second command parser and the third command parser parsing at least a portion of said command, the first protocol provider and the second protocol provider communicatively coupled to a first version store and a second version store respectively, the first version store and the second version store located in at least one server; wherein the command dispatcher receives search results in response to the data request command, the search results provided by the first and second protocol providers in the form of one or more rowsets, the command dispatcher aggregating the one or more rowsets received from the first protocol provider and the second protocol provider into a dispatcher rowset, the dispatcher rowset forwarded to the client application; and a computer monitor which displays the dispatcher rowset via the client application. - View Dependent Claims (2, 3, 4)
-
-
5. A method of operating a client side computer system with two or more server-side version stores, the method comprising:
-
receiving a data request from a client application on the client-side computer, the data request having at least first and second portions; parsing the first portion of the request, parsing the first portion resulting in a first identified protocol provider; parsing the second portion of the request based on results of parsing the first portion, the parsing the second portion resulting in a second identified protocol provider; dispatching the parsed first portion and the parsed second portion of the request from the first protocol provider and the second protocol provider respectively to a first version store and a second version store respectively, wherein the first protocol provider and the second protocol provider each have internal command parsers, an internal versioning application program interface, and at least one data session object operatively coupled to the internal versioning application program interface to receive at least one transaction request from the internal versioning application program interface for managing the at least one transaction request for the first version store and the second version store, respectively, and wherein the first version store and the second version store are located in at least one server; wherein search results are received in response to the data request, the search results received from the first version store and the second version store in the form of rowsets which are aggregated into a dispatcher rowset and forwarded to the client application; and displaying the rowsets on a client-side computer monitor. - View Dependent Claims (6, 7)
-
-
8. A computer-readable storage medium storing computer-executable instructions that, when executed by a computer, cause the computer to perform a method of operating a client side computer system with two or more server-side version stores, the method comprising:
-
receiving a data request from a client application on the client-side computer, the data request having at least first and second portions; parsing the first portion of the request, parsing the first portion resulting in a first identified protocol provider; parsing the second portion of the request based on results of parsing the first portion, the parsing the second portion resulting in a second identified protocol provider; dispatching the parsed first portion and the parsed second portion of the request from the first protocol provider and the second protocol provider respectively to a first version store and a second version store respectively, wherein the first protocol provider and the second protocol provider each have internal command parsers, an internal versioning application program interface, and at least one data session object operatively coupled to the internal versioning application program interface to receive at least one transaction request from the internal versioning application program interface for managing the at least one transaction request for the first version store and the second version store, respectively, and wherein the first version store and the second version store are located in at least one server; wherein search results are received in response to the data request, the search results received from the first version store and the second version store in the form of rowsets which are aggregated into a dispatcher rowset and forwarded to the client application; and displaying the rowsets on a client-side computer monitor. - View Dependent Claims (9, 10)
-
Specification