Patent ID: 7908610
Filing Date: 2011-03-15
Classification: G06F,G06Q

Abstract:
1. A method of enabling a business programming library for use by an enterprise resource planning system, the enterprise resource planning system comprising a business application, a metadata provider, a service tier, a database, and a client, the method comprising: a) providing a run-time environment to support the enterprise resource planning system, b) providing a run-time application program interface (API) for library services comprising: providing a set of business logic invocation APIs, comprising providing at least one API corresponding to at least one business method on a class of the enterprise resource planning system, the class comprising one of the group comprising a base class, a table class, and a codeunit class; providing a set of database access APIs comprising providing at least one API corresponding to at least one of a group comprising database retrieval, database modification, record insertion, and record deletion; providing a set of database administration APIs comprising providing at least one API corresponding to at least one of a group comprising database server configuration, database backup, database restore, database test, and database optimization; providing a set of metadata exposure APIs comprising providing at least one API corresponding to at least one of a group comprising providing table meta-data and providing form meta-data; and providing a set of common data types comprising at least one API corresponding to at least one member of the set of common data types; c) providing multiple thread access to the business programming library for a business application object corresponding to at least one of: the business application, the service tier and the metadata provider; and d) providing security permission checking for the business application object and for the service tier comprising providing security permission checking if the run-time API is invoked by the business application object or by the service tier; wherein providing multiple thread access comprises allocating a resource of the database to a first thread comprising: categorizing the resource as one of cross-connect and per-connect, if the resource is categorized as cross-connect and a connection of a first client requires a private copy of the resource, creating the private copy if the connection is created, and if a first thread invokes a first run-time API of a first requested library service to operate on the resource: obtaining a connection object comprising an association between the first thread, the first client and the connection of the first client; creating a requested reference comprising an association between the resource, the connection object and the first thread; if the resource is categorized as cross-connect, locking the resource while the first run-time API is operating on the resource and unlocking the resource if the first run-time API is finished operating; and if the resource is categorized as per-connect, selecting one of the group of actions comprising (1) storing the resource as a child of the connection object, and (2) representing the resource as stack-based data if the resource is per-service call.