1461167174-bd7d2a5c-f572-41ee-ad3f-302e539f8bc0

1. A method for migrating a database from a source database platform to a target database platform, said method comprising:
querying a source database of the source database platform for one or more source database objects, wherein the source database comprises data, a schema that defines attributes of the data to form the one or more database objects, and stored procedures implemented in a source SQL code compatible with the source database platform, where the source database implements a first dialect of SQL comprised of first SQL statement syntaxes that are specific to the first SQL dialect and that define textual syntax of respective SQL statements, where the source database is configured to receive and execute first SQL statements comprising strings that conform to the first SQL syntaxes, and where the source SQL code of the stored procedures comprises SQL statement strings that conform to one or more of the first SQL statement syntaxes;
creating and loading into a memory a source meta-database, wherein the source meta-database represents a data model of the source database, wherein the source meta-database comprises the source database objects queried from the source database;
converting the schema of the source database into a schema of a target database of the target database platform by migrating the source database objects in the source meta-database into target database objects, wherein during the conversion one or more of parameters, number of fields, and structure of one or more source database objects are changed in accordance with characteristics of the target database platform, where the target database implements a second dialect of SQL comprised of second SQL statement syntaxes that are specific to the second SQL dialect and that define textual syntax of respective SQL statements, where the target database is configured to receive and execute second SQL statements comprising strings that conform to the second SQL syntaxes, where the first dialect of SQL and the second dialect of SQL differ in that, for a plurality of SQL statements, corresponding first SQL statement syntaxes define textual syntaxes that differ from textual syntaxes defined by corresponding second SQL statement syntaxes that correspond to the plurality of SQL statements;
extracting the source SQL code of the stored procedures from the source database;
parsing the source SQL code and, for each SQL statement string therein, generating a corresponding source database tree that represents the SQL statement string according to the first SQL dialect;
for each source database tree, converting the source database tree into a target database tree that represents the corresponding SQL statement string according to the second SQL dialect, and generating target source code from the target database tree, the target source code comprising a corresponding SQL statement string that conforms to a SQL statement syntax of the second SQL dialect;
loading the target SQL code into the target database platform to create the target database; and
implementing a converter wrapper on a driver of the target database, wherein the converter wrapper receives SQL statement strings of the first SQL dialect from an application configured to communicate with the source database, and converts the SQL statement strings into SQL statement strings of the second SQL dialect, and the target database executes the converted SQL statement strings.
2. The method of claim 1, wherein when a source database object structure does not have a corresponding target database object structure, the source database object is emulated in the target database in the form of a table.
3. The method of claim 1, wherein said converter wrapper comprises a cache having entries of source calls and corresponding converted calls.
4. The method of claim 3, wherein when a new call is received, the converter wrapper queries the cache to determine whether such a call is stored in the cache and:
if so, the converter wrapper fetches the corresponding converted call; if not, the converter wrapper converts the new call into a new converted call and stores in the cache the new call and the new converted call.
5. The method of claim 4, wherein the converter wrapper sends the converted call or the new converted call to the target database.
6. The method of claim 4, wherein the converter wrapper sends the converted call or the new converted call to said driver.
7. The method of claim 5, further comprising a virtual database server interposed between said driver and said target database.
8. The method of claim 7, wherein said converter wrapper comprises a plurality of meta-databases.
9. A method of allowing a source client application implemented to run against a source database on a source platform to run against a target database on a target platform different from the source platform, where the source database implements a first dialect of SQL comprised of first SQL statement syntaxes that are specific to the first SQL dialect and that define textual syntax of respective SQL statements, where the source database is configured to receive and execute first SQL statements comprising strings that conform to the first SQL syntaxes, where the target database implements a second dialect of SQL comprised of second SQL statement syntaxes that are specific to the second SQL dialect and that define textual syntax of respective SQL statements, where the target database is configured to receive and execute second SQL statements comprising strings that conform to the second SQL syntaxes, the method comprising:
receiving, at a database virtualization middleware, a source SQL statement string from an application driver, the source SQL statement string conforming to a corresponding one of the SQL statement syntaxes of the first SQL dialect, wherein the source SQL statement string is incompatible with the target database in that the one of the SQL statement syntaxes differs from a corresponding one of the SQL statement syntaxes of the second SQL dialect, the application driver being configured to permit communication between the source client application and the target database by converting source SQL statement string to a target SQL statement string that conforms to the one of the SQL statement syntaxes of the second SQL dialect implemented by the target database;
querying a cache to determine whether the source SQL statement string has been previously stored by the database virtualization middleware, wherein the cache is queried by searching among cache entries comprised of previously converted source SQL statement strings and corresponding converted target SQL statement strings;
if cache entry corresponding to the received SQL statement string is found, retrieving the corresponding target SQL statement string from the cache, the retrieved SQL statement string conforming to the one of the SQL statement syntaxes of the second SQL dialect;
if a cache entry corresponding to the source SQL statement string is not found, converting the source SQL statement string into a target converted SQL statement string that conforms to the one of SQL statement syntaxes of the second SQL dialect;
providing either of the target SQL statement strings to the application driver; and
invoking, by the application driver, execution of the provided target SQL statement string by the target database.
10. The method of claim 9, further comprising storing in the cache the converted SQL statement string if it is determined that the converted SQL statement string is not stored in the cache.
11. The method of claim 9, further comprising emulating said target database to the source client application.
12. The method of claim 9, further comprising storing logical representations of corresponding target databases in a plurality of meta-databases.
13. A database virtualization middleware system that allows a source client application implemented to run against a source database on a source platform to run against a plurality of target databases, where the source database implements a first dialect of SQL comprised of first SQL statement syntaxes that are specific to the first SQL dialect and that define textual syntax of respective SQL statements, where the source database is configured to receive and execute first SQL statements comprising strings that conform to the first SQL syntaxes, where each target database implements a different dialect of SQL comprised of SQL statement syntaxes that are specific to its SQL dialect and that define textual syntax of respective SQL statements, where each target source database is configured to receive and execute SQL statements comprising strings that conform to its SQL syntaxes, the first SQL dialect and the SQL dialects of the target databases different with respect to each other, comprising:
an SQL converter memory configured to store source SQL statement strings and corresponding target SQL statement strings in the different SQL dialects of the target databases;
an SQL converter engine that receives from a client application a source SQL statement string conforming to the first SQL dialect and specifically compatible with the source platform, wherein the SQL converter engine is configured to query the SQL converter memory to determine whether the source SQL statement string is stored therein, wherein the SQL converter engine fetches from the SQL converter memory a target SQL statement string for one of the target databases if the SQL converter engine determines that the source SQL statement string is available in the converter memory, wherein the SQL converter engine converts the corresponding target SQL statement string, according to an appropriate meta-database, to a target SQL statement string for the target database if the SQL converter engine determines that the source SQL statement string is not available in the converter memory, the SQL converter engine being further configured to submit the target SQL statement string to the target database, the target SQL statement string conforming to the SQL dialect of the target database.
14. The system of claim 13, wherein the SQL converter engine stores in the SQL converter memory the target SQL statement string for the target database after converting the corresponding source SQL statement string to the target SQL statement string for the target database.
15. The system of claim 13, wherein the source SQL statement string does not conform to the SQL dialect of the target database.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A system for implementing Multimedia Ring Back Tone (MRBT) service, comprising:
a communication network;
a Video Interactive Gateway (VIG), for establishing a communication link from a calling terminal to an MRBT platform through a Multimedia Gateway (MGW) and the VIG during the interval of a call being initiated through a Service Switch Center by the calling terminal and the call being put through;
the MRBT platform, connected to the Service Switch Center dominating the calling terminal and the MGW in the communication network via the VIG respectively, for storing multimedia ring back tones and playing a multimedia ring back tone for the calling terminal via the established communication link.
2. The system of claim 1, wherein the communication network is one of a 3G communication network, a 4G communication network and a Next Generation Network (NGN); the Service Switch Center is Mobile Service Switch Center (MSC) Server.
3. The system of claim 1, wherein the VIG terminates the communication link between the VIG and the MRBT platform after the call is put through, and establishes a communication link from the Service Switch Center of called terminal to the called terminal to make the calling terminal and the called terminal communicate with each other.
4. A method for implementing Multimedia Ring Back Tone service, comprising:
configuring a multimedia ring back tone (MRBT) platform for storing multimedia ring back tones and a Video Interactive Gateway (VIG) for interacting with the MRBT platform and a calling terminal in the communication network;
establishing a communication link from the MRBT platform to the calling terminal via the VIG during the interval of the calling terminal initiating a call to a called terminal and the call being put through;
playing the multimedia ring back tone subscribed by the called terminal for the calling terminal via the communication link by the MRBT platform.
5. The method of claim 4, further comprising:
sending an Address Complete Message (ACM) to the Mobile switching center (MSC) Server by the VIG to which the calling terminal belongs when establishing the communication link;
upon receiving the ACM, putting through the calling terminal while not charging the calling terminal by the MSC Server.
6. The method of claim 5, further comprising:
terminating the communication link between the MRBT platform and the VIG when the call initiated by the calling terminal to the called terminal is put through;
establishing a communication link from VIG to the called terminal to make the calling terminal communicate with the called terminal through the VIG.
7. The method of claim 6, further comprising:
receiving an Answer Message (ANM) sent by the called terminal after the communication link from the VIG to the called terminal is established;
sending an ANM to the MSC Server to which the calling terminal belongs;
charging the calling terminal upon receiving the ANM.
8. The method of claim 4, further comprising:
determining whether the called terminal has subscribed a multimedia ring back tone on the MRBT platform and paging the called terminal before establishing the communication link.
9. The method of claim 4, wherein before the process of playing a multimedia ring back tone on the MRBT platform further comprises:
inquiring subscription information of the called terminal from the Home Location Register (HLR) by the MSC Server to which the calling terminal belongs;
returning a message indicating whether the called terminal has subscribed a multimedia ring back tone on the MRBT platform from the HLR to the MSC Server.
10. The method of claim 9, wherein the message indicating whether the called terminal has subscribed a multimedia ring back tone on the MRBT platform is a Send Routing Information acknowledge (SRI-ACK) Message carrying the information indicating whether the called terminal has subscribed a multimedia ring back tone.
11. The method of claim 9, further comprising:
deciding whether the call initiated by the calling terminal is a video phone call and the communication network supports the video phone call, and if yes, implement the process of inquiring subscription information of the called terminal; otherwise, establishing a bearer link from the calling terminal to the MRBT platform, and sending the ring back tone subscribed by the called terminal and stored on the MRBT platform to the calling terminal through the bearer link.
12. The method of claim 11, further comprising:
terminating the bearer link from the MRBT platform to the calling terminal after the call initiated by the calling terminal to the called terminal is put through and the ring back tone subscribed by the called terminal and stored by the MRBT platform is sent to the calling terminal through the bearing link;
establishing a communication link from the calling terminal to the called terminal to make the calling terminal and the called terminal communicate with each other.
13. The method of claim 4, further comprising: configuring media format for the calling terminal in the VIG;
wherein the ring back tone subscribed by the called terminal and stored by the MRBT platform and is sent to the calling terminal according to said media format.
14. The method of claim 13, wherein the media format for the calling terminal is configured according to the result of Call Capacity Negotiation between the VIG and the calling terminal or call capacity level of the calling terminal which is stored in the MRBT platform in advance and sent from the MRBT platform to the VIG.
15. A system for implementing Multimedia Ring Back Tone (MRBT) service, comprising:
a Wideband Code Division Multiple Access (WCDMA) network;
a Video Interactive Gateway (VIG), for establishing a communication link from a calling terminal to an MRBT platform through a Multimedia Gateway (MGW) and the VIG during the interval of a call being initiated through a Service Switch Center by the calling terminal and the call being put through;
the MRBT platform, connected to the Service Switch Center dominating the calling terminal and the MGW in the WCDMA network via the VIG respectively, for storing multimedia ring back tones and playing a multimedia ring back tone for the calling terminal via the established communication link.
16. A Multimedia Ring Back Tone (MRBT) platform, connected to a Service Switch Center dominating a calling terminal and a Multimedia Gateway (MGW) in a communication network via a Video Interactive Gateway (VIG) respectively, comprising:
a unit for storing multimedia ring back tones; and
a unit for playing a multimedia ring back tone for the calling terminal via an established communication link between the MRBT platform and the calling terminal via the VIG and the MGW.
17. A method for implementing Multimedia Ring Back Tone (MRBT) service, comprising: establishing a communication link from an MRBT platform to a calling terminal via a Video Interactive Gateway (VIG) during the interval of the calling terminal initiating a call to a called terminal and the call being put through; playing a stored multimedia ring back tone subscribed by the called terminal for the calling terminal via a communication link by the MRBT platform.