DA09 – 为什么用Data Abstract?
来源:互联网 发布:c语言 面向对象 界面 编辑:程序博客网 时间:2024/05/18 01:32
DA09 – 为什么用Data Abstract?
作者Lauchlan Mackinnon
RemObjects提示:虽然我们相信本文的正确性,但是我们不对此作任何保证. 非常感谢Lauchlan提供的大作.
RemObjects Data Abstract是强大的分布式N层架构.本文的目的是使你对分布式N层数据驱动应用程序的优势和Data Abstract如何实现这个架构有一个总体的认识.点击DA01 查看更多深层次讨论这个架构的信息,点击DA02 查看使用Data Abstract创建一个N层项目有多么简单.
Data Abstract 综述
Data Abstract是一个高级N层架构,基于RemObjects SDK 技术支持RAD和灵活的N层现代分布式应用开发.对业务逻辑和实际的数据源提供了高级别的抽象并严格封装数据和业务逻辑. 这些都没有牺牲性能,效率,灵活性.
Data Abstract为开发者提供了如下好处:
- 为N层开发提供了RAD架构.
- It allows you to use a wide range of transports since it's based on the RemObjects SDK.
- 提供了数据抽象层,允许你在不同的RDBM(SQL Server, Oracle, Interbase etc)中转换而没有牺牲性能,效率或为每个数据库自定义SQL.
- 允许你在特定的单元中封装业务逻辑,与组件的所有者DataModule隔离.
客户端/服务器方式
很多开发者可能对客户端/服务器架构非常熟悉.
客户端/服务器架构有很多优点, 例如:
- 多个客户端可以连接到同一个数据库,数据库处理存取冲突问题.
- 客户端在存取数据文件前可被验证.
- 数据存储层与程序分离并集中在单一的场所.
如此,为什么需要N层呢?
n-tier 架构,如下所示,比客户端/服务器架构有很多优点:
- 不但是数据库服务器,就连业务逻辑以移到服务端.这导致集中管理, 更新简单和增强的安全性.另外业务逻辑只保存在服务端.
- 应用程序可以有一个或多个业务逻辑中间层.可以在不同的层或服务端功能模块中自然优美的分隔应用程序功能.
- 多层架构是一个瘦层结构加上RemObjects服务,使之成为良好的现代分布式应用设计.
- 对数据库的存取封装在服务端,客户端不需要知道它与什么类型的数据库通信.
Data Abstract 应用程序象什么?
Data Abstract实现了一个N层架构,其典型的应用如下图所示:
分解开来.我们可以看到Data Abstract 应用程序包含四个层: 数据层,中间层,传输层,表示层.
首先看服务端. Data Abstract最关键的特性是抽象数据库- 在业务逻辑和实际使用的数据库间有一个逻辑层, 以便于业务逻辑层不必关心数据库的细节如不同的SQL方言,或正在使用哪个特定的数据库.这是通过Data Abstract的Schema Modeler和驱动及连接管理实现的. Schema Modeler 是一个强大的工具通过RAD的环境定义你要连接的不同数据库,要在这些数据库中使用的数据集以及每种不同的SQL方言.
Data Abstract 客户端从叫做数据服务(Data Service)的Data Abstract服务中存取数据. 数据服务使用通过Schema Modeler在Schema中定义的数据集做实际的操作. Data Abstract 主要提供两种方式处理数据: 基于DARemoteService提供的预先定义的DA数据服务RAD扩展一个新的数据服务,或灵活的实现你自己的服务.每个方法在不同的情形下有不同的优势.
然而,这只限制于面向数据的服务.使用RemObjects Service Builder,你可以定义很多方法,例如无数据处理功能的获取服务器时间的方法,在N层应用程序中使用非常强大的RemObjects 服务.
同时考虑到在服务端需要数据服务, Data Abstract客户端也需要将数据变化Delta发送回服务端. 处理这些功能的操作封装在了业务处理器(Business Processor). 一个数据集的业务处理器负责解析客户端发回的数据集的变化并适当的修改回数据库. 另外一些处理这些操作的业务逻辑也可以加入到这些业务处理器之中.
Data Abstract客户端和服务端使用RemObjects SDK提供的通道和Adapter通信. 点击RemObjects articles 查看更多通信层的详细信息.
在Data Abstract 客户端, 表示层 (列表,编辑框等) 通过Data Abstract的 DataTables存取服务端数据,调用数据服务发送或请求数据,并调用其它服务(如authentication服务). DataTables是一个扩展出Data Abstract架构必要功能的内存数据集.通过调用数据服务实现存取和修改服务数据.
如何做!
好了, 你可能说"这足够了",告诉我怎么做吧!如果这样,请看DA02, 这里提供了一个按部就班的指南展示了创建一个N层应用程序的所有步骤. 现在需要分别创建客户端和服务端, 详细的展示这个过程以及使用Data Abstract VCL Server模板同时创建客户端和服务端的结论清单.
如果你希望更多了解Data Abstract细节信息,看详细讨论工作原理的DA01.
总结
在本文我们回顾了典型的N层DataAbstract应用程序的结构.此外文章为成熟的分布式N层应用详细的探究如何进一步促进变通强大的RemObjects和Data Abstract架构.
- DA09 – 为什么用Data Abstract?
- WP01 – 为什么实现Multi-Tier, 为什么使用 Data Abstract?
- WP01 – 为什么实现Multi-Tier, 为什么使用 Data Abstract?
- java为什么要用abstract与Interface?
- DA01 - Data Abstract 总览
- DA20 - Data Abstract Adapters
- Abstract Data Type(ADT)
- MSDN-Abstract Data Models
- ADT(Abstract data type)
- DA02 – 创建Data Abstract 应用程序的简单步骤
- DA13 – 在Data Abstract中使用NexusDB数据库
- DA26 – 升级到Data Abstract 'Vinci' 的Delphi版本
- DA28 – 创建Data Abstract 应用程序的简单步骤-.NET
- abstract为什么不可以用static native或synchronized修饰
- abstract为什么不可以用static native或synchronized修饰
- Data Abstract多层次框架控件
- 抽象数据类型(Abstract Data Type)
- ADT(Abstract Data Type)
- freemarker学习笔记
- 了解AndroMDA
- 临界区的互斥控制
- db2 805 错误解释以及解决办法
- 统计学悖论
- DA09 – 为什么用Data Abstract?
- ./configure的问题
- eclipse反编译插件Jadclipse介绍
- VBA 一条语句分多行和多条语句并在同一行
- Query the first 31 to 40 records in the Table A
- 1-6章试卷及答案
- WEB xml 画图 (javascript包装)用到 prototype.js wz_jsgraphics.js
- IGMP V1/V2/V3 比较 以及IGMP snooping
- 以太网综述