Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » MobiLink - 入门 » MobiLink 技术简介 » 了解 MobiLink 同步

 

用于编写服务器端同步逻辑的选项

可以使用 SQL、Java(使用面向 Java 的 MobiLink 服务器 API)或者 .NET(使用面向 .NET 的 MobiLink 服务器 API)来编写 MobiLink 同步脚本。

如果要与受支持的统一数据库同步,则 SQL 同步逻辑通常是最佳选择。

如果不是要与受支持的统一数据库同步,使用 Java 或 .NET 会很有用。如果您的设计受到 SQL 语言的局限性或者数据库管理系统功能的限制,或者您只需要涵盖不同 RDBMS 类型的可移植性,Java 或 .NET 也非常有用。

Java 和 .NET 同步逻辑可以实现与 SQL 逻辑完全相同的功能。正如 MobiLink 服务器可以在 MobiLink 事件发生时访问 SQL 脚本一样,它也可以在 MobiLink 事件发生时调用 Java 或 .NET 方法。当使用 Java 或 .NET 工作时,可以使用事件进行一些额外处理,但当处理那些直接处理上载或下载行的事件的脚本时,您的实现必须返回 SQL 字符串。除了用于直接行处理的两个事件外,不能直接通过 Java 或 .NET 同步逻辑访问上载和下载:MobiLink 将 Java 或 .NET 返回的字符串作为 SQL 执行。

直接行处理(使用事件 handle_UploadData 和 handle_DownloadData 与某个数据源同步)真正实现了直接操纵上载和下载行的功能。

以下是在使用 Java 或 .NET 编写脚本时可能需要考虑的一些场景:

  • 直接行处理   利用 Java 和 .NET 同步逻辑,您可以使用 MobiLink 来访问除了统一数据库外的其它数据源(如应用程序服务器、Web 服务器和文件)中的数据。

  • 验证   可以使用 Java 或 .NET 编写用户验证过程,以使 MobiLink 验证可与公司安全策略相集成。

  • 存储过程   如果您的 RDBMS 不具备使用用户定义存储过程的功能,可使用 Java 或 .NET 创建一种方法。

  • 外部调用   如果程序需要在同步事件中途联系外部服务器,则可使用 Java 或 .NET 同步逻辑执行由同步事件触发的操作。可以在多个连接之间共享 Java 和 .NET 同步逻辑。

  • 变量   如果您的数据库无法处理变量,可使用 Java 或 .NET 创建一个在整个连接或同步中均有效的变量。(或者使用 SQL 脚本,您可以使用用于所有统一数据库类型的用户定义命名参数。请参见用户定义的命名参数。)

MobiLink 服务器 API

通过 MobiLink 服务器 API 可使用 Java 和 .NET 同步逻辑。MobiLink 服务器 API 是几组用于 MobiLink 同步的类和接口。

面向 Java 的 MobiLink 服务器 API 可以帮助您:

  • 像访问 JDBC 连接一样访问与统一数据库的现有 ODBC 连接。

  • 使用诸如 JDBC、Web 服务和 JNI 这样的接口访问替代数据源。

  • 实现创建与统一数据库的新 JDBC 连接的功能,以便能够在当前同步连接之外更改数据库。例如,即使同步连接执行回退,也可以使用此功能进行错误记录或者审计。

  • 与统一数据库同步时,实现在 MobiLink 服务器执行 Java 代码之前编写 Java 代码并进行调试的功能。与 Java 应用程序可以使用的开发环境相比,用于许多数据库管理系统的 SQL 开发环境要相对简单。

  • SQL 行处理和直接行处理。

  • 完整丰富的 Java 语言及其大量的现有代码和库。

请参见用于 Java 的 MobiLink 服务器 API 参考

面向 .NET 的 MobiLink 服务器 API 可以帮助您:

  • 使用从 .NET 调用 ODBC 的 iAnywhere 类访问与统一数据库的现有 ODBC 连接。

  • 使用诸如 ADO.NET、Web 服务和 OLE DB 这样的接口访问替代数据源。

  • 与统一数据库同步时,实现在 MobiLink 服务器执行 .NET 代码前编写 .NET 代码并进行调试的功能。与 .NET 应用程序可以使用的开发环境相比,用于许多数据库管理系统的 SQL 开发环境要相对简单。

  • SQL 行处理和直接行处理。

  • 在 .NET 公共语言运行库 (CLR) 中运行的代码,这些代码允许访问所有 .NET 库,包括 SQL 行处理和直接行处理。

请参见用于 .NET 参考的 MobiLink 服务器 API

另请参见