技术和行业的明显发展趋势已从根本上改变了应用程序的生成方式。在 10 至 20 年前,很多行业 (LOB) 应用程序是以一个关系数据库系统为中心作为各个整体构建而成,而如今它们必须与其他系统相关联并从多种异类源生成和使用数据。业务流程已经从半自动式发展为自治式。面向服务的体系结构 (SOA) 提出了新的一致性和共同协作要求。较高级的数据服务(例如报告、数据挖掘、分析、同步和复杂的集成)已从非主流发展为主流。
所有现代应用程序体系结构都有一个共同的主题,就是需要将数据从一种形式转换为另一种形式以使数据形式适用于现有任务。如今的各应用程序都具备大量数据转换程序。有一种常见转换通常封装为应用程序内部的一个专用数据访问层,旨在将应用程序对象与关系行之间的阻抗失谐程度降至最低。但对导航对象-xml 和关系-xml 的其他映射依然存在。这种阻抗失谐并不是应用程序所特有的。既然 SQL Server 已经演化为一个产品,它必须在其中提供的所有服务领域添加这些建模和映射机制。这些映射多数以点对点的形式生成,并且每个映射都需要使用一个不同方法来描述点对点转换。
有一个基本见解是,多数传统的以数据为中心的服务(例如查询、复制、ETL)已经在逻辑架构级别上得以实现。但是,大部分最适合在人工产物上运行的以数据为中心的新式服务通常都与一个概念数据模型相关联。我们的数据平台设想精髓是将遍及数种产品的 Microsoft 数据服务从其各自的逻辑架构级别提升到概念架构级别。将概念架构层具体化使我们可以围绕常见抽象来创建服务,并在我们的多数数据服务之间共享工具、定义和模型。在本文中,我们将论证这种转变将如何深刻影响我们在整个应用程序平台范围内实现价值的能力。
本文侧重讨论对数据的编程,以及如何通过将抽象级别从逻辑(关系)级别提高到概念(实体)级别来消除应用程序和数据服务(例如作为 SQL Server 产品一部分提供的报告、分析、复制服务)两方面的阻抗失谐。概念数据模型通过创建以下要素得以实现:作为第一类概念包含各实体和关系的扩展关系模型 [称为实体数据模型 (EDM)]、一种用于 EDM 的查询语言、一个从概念级别转变为逻辑(关系)级别的综合性映射引擎、以及一组帮助创建实体-对象、对象-xml、实体-xml 转换程序的模型驱动工具。所有这些服务都统称为“实体框架”。C# 和 Visual Basic 中的 ADO.NET(即实体框架)和 .NET 语言集成查询 (LINQ) 的创新代表了 Microsoft 的下一代数据访问平台。
简介
Microsoft 数据访问设想支持一系列产品和服务,以便客户从所有数据派生值,即通过存档生成。尽管设想陈述中未包含明确的用语,但设想的目标是为应用程序(解决方案)所有层的数据提供产品和服务。这样一个完整的数据平台必须具备下列特征:
所有层的数据。一个完整的数据平台应在每一处都提供数据管理和数据访问服务。在客户端-服务器领域中,“每一处”包括客户端和数据服务器上的数据服务;在企业领域中,“每一处”包括数据服务器层、应用程序服务器(中间)层和客户端层;在移动领域中则包括移动设备层;而在下一代 Web (Cloud) 领域中则包括共享 Web 空间中的数据。
所有类型的数据。各应用程序所合并的各种数据在日益增多,例如 XML、电子邮件、日历、文件、文档和结构化业务数据。Microsoft 数据访问设想支持一个集成式存储设想,即可以存储和管理所有此类数据,并对其进行保护、搜索、查询、分析、共享和同步等。这样一个集成式存储设想包含了核心数据管理功能和一个应用程序开发平台。
统一式数据访问。尽管位于不同层的应用程序需要不同类型的数据管理服务,但它们在应用程序开发环境(编程模型和工具)中都要求(需要)实现显著的一致性。通常,同一应用程序可能会部署于多个层(例如在设备上和在台式计算机上),这就极度需要一次性开发并在不同层上进行部署。另外,由于应用程序规模需要增大且应用程序会将各层向上移动,因此必须可以在无需(明显)更改应用程序的情况下扩大数据库(例如从 SQL Everywhere 到 SQL Express 再到 SQL Server)。支持统一的应用程序开发需要以下条件:丰富的数据建模以匹配应用程序数据所需的抽象、丰富且一致的编程环境以及用于所有数据的工具。
端对端业务见解。端对端业务见解指的是关于实现更有效决策的所有内容。它涉及到我们的客户在收集、清理、存储和准备要用于决策过程的业务数据时所应用的技术。它还涉及到业务用户和信息工作人员在收集决策的必需信息时访问、分析、直观化和报告数据所应具备的经验。
无处不在的数据服务。各应用程序通过接近于应用程序视角的抽象在遍及所有层中数据的一些服务(定制)开发方面投入了大量精力,这些服务包括数据安全性、同步、数据交换(或 Web 服务)的序列化、分析、报告等等。Microsoft 数据访问设想预期通过一种统一的方式对所有层中的数据提供上述服务。
丰富的“功能”。无论是对于企业、公司还是家庭用户,数据都是一项关键资产。客户的希望是,数据要始终可用、数据必须受到保护、必须可以进行访问,并且他们的应用程序必须具备可伸缩性和可支持性。Microsoft 数据访问设想意味着对所有数据实现丰富“功能”。另外,它还简化了对所有数据的管理,从而明显缩减了数据的总体拥有成本。