viernes, 24 de julio de 2015

Tecnologías Aplicadas de .NET - Parte 2: Tecnologías Backend

Índice

0. Introducción
1. Tecnologías Backend
2. ADO.NET
2.1 Definición
2.2 Arquitectura
2.3 Componentes de bajo nivel
2.3.1 Capa de proveedor
2.3.2 Modelo DataSet
2.4 ORM
2.4.1 Entity Framework
2.4.2 LINQ 
3. Windows Workflow (WF)
4. COM+ y MSMQ
5. Conclusiones
6. Glosario
7. Literatura & Enlaces

0. Introducción

En esta segunda parte de la serie de artículos .NET dedicada a la exploración de las tecnologías aplicadas de Microsoft .NET Framework, haremos una exploración de los conceptos y características principales de las tecnologías backend disponibles en .NET. En particular:
  • ADO.NET
  • Windows Workflow, y 
  • COM+ y MSMQ.

1. Tecnologías Backend

Una tecnología backend [2, 3] en este contexto se refiere a aplicaciones de .NET Framework que soportan servicios de infraestructura y la comunicación con recursos (e.g., motor de base datos, almacenamiento, red), como: 
  • acceso a datos administrado, 
  • acceso de bajo nivel a proveedores de base de datos, 
  • mensajería, 
  • flujos de trabajo en procesos de negocio, 
  • interoperabilidad con servicios (e.g., transacciones distribuidas), 
Y en conjunto, su propósito es proveer la funcionalidad al usuario de la aplicación a través del frontend, es decir, a través de una versión gráfica o textual.

En Microsoft .NET Framework existen varias tecnologías backend; las que exploraremos en las siguientes secciones serán:
  • ADO.NET
  • Windows Workflow, y
  • COM+ y MSMQ

2. ADO.NET

2.1 Definición

ADO.NET es una de las aplicaciones de .NET Framework diseñada exclusivamente para el acceso a datos o servicios de datos [4] administrado [1]. En la Figura 1 se muestra el lugar que ocupa en el stack de componentes y aplicaciones de .NET.
ADO.NET en .NET Framework
Figura 1. ADO.NET en .NET Framework.

2.2 Arquitectura

A nivel arquitectural, ADO.NET se clasifica en consumers y proveedores de datos [4]; donde: 
  • los consumidores corresponden con las aplicaciones que requieren de acceso a datos, y 
  • los proveedor son los componentes que proveen de de datos a las aplicaciones (proveedores).

2.3 Componentes de bajo nivel

Lo componentes de bajo nivel que integran a ADO.NET son capa de proveedor, y modelo DataSet.

2.3.1 Capa de proveedor

La capa de proveedor son todas las clases y interfaces para el acceso a bajo nivel de los proveedores de bases de datos [6]. Respecto a las interfaces tenemos: 
  • Conexiones, 
  • Comandos sobre la base de datos, 
  • Adaptadores, 
  • Lectores.
Por defecto, ADO.NET brinda soporte de forma nativa para Microsoft SQL Server [5], Oracle Database [6]. También se incluye soporte para proveedores OLE-DB [7] (API diseñada por Microsoft para permitir el acceso a diferentes fuentes de datos de forma uniforme), y ODBC [8] (API con abstracción para el acceso a múltiples sistemas gestores de bases de datos).

2.3.2 Modelo DataSet

En términos simples, podemos definir a un DataSet como una estructura para hacer caché de datos. Este caché puede contener las construcciones elementales de SQL: tablas, filas, columnas, relaciones, restricciones, y vistas. El propósito de este modelo basado en caché es la reducción del número de peticiones en una operación o transacción. En consecuencia, como se manifiesta en [1], permite alcanzar objetivos no funcionales como: 
  • escalabilidad: manejo eficiente del crecimiento o decrecimiento continuo de trabajo sin degradar la calidad del servicio, 
  • rendimiento: mejores tiempos de respuesta en un cliente (se traduce en mejor experiencia de usuario).

2.4 ORM

2.4.1 Entity Framework

En la Figura 1 también se resalta Entity Framework [9] como una aplicación de .NET Framework construida bajo ADO.NET. Con esta API de ORM [10] es posible generar entidades del dominio a partir de un modelo de base de datos, o viceversa; facilita, además, ejecutar operaciones básicas para crear, leer, actualizar y eliminar registros; manejo de relaciones de las entidades; generación de herencia entre entidades del dominio.

2.4.2 LINQ

Por su parte, LINQ [11] provee una abstracción para la extracción y procesamiento de datos sobre diferentes fuentes de datos: bases de datos relacionales, XML, arreglos, tipos enumerables, objetos en memoria, entre otras más. Cuenta, además, con soporte para ORM.

3. Windows Workflow

Windows Workflow Foundation (WF) es una API diseñada para la definición de flujos de trabajo integrables en una aplicación. Un flujo de trabajo o workflow es una serie de pasos o fases en un proceso de negocio. Cada paso se modela en WF como una actividad.

Continuando, un proceso de negocio está compuesto por distintas actividades; estas actividades pueden ser descritas visualmente en un diagrama, para ello en Visual Studio se provee de un diseñador visual integrado. Este mismo diseñador puede ser integrado en aplicaciones personalizadas para controlar procesos de negocios usando un enfoque visual.


Desde la versión 4.0 de .NET Framework los tipos de WF residen en el namespace System.Activities.
Arquitectura Windows Workflow Foundation
Figura 2. Arquitectura Windows Workflow Foundation (WF).

4. COM+ y MSMQ

4.1 COM+

COM (Component Object Model) es una plataforma de Microsoft para implementar objetos neutrales respecto al lenguaje de programación; esto con el propósito de permitir a otras plataformas de desarrollo usar los objetos neutros con los mecanismos nativos de los lenguajes de programación soportados por esa plataforma.

COM+ [13] fue la apuesta de Microsoft para convertir a su sistema operativo Windows en corporativo. Con la versión de Windows 2000COM+ viene incorporado en el sistema [13]. Lo que en esencia permite este componente es soportar otras operaciones avanzadas como transacciones distribuidas, intercomunicación entre procesos, creación dinámica de objetos, aplicaciones desconectadas, gestión mejorada de threads (eficiente uso de espacio de memoria y tiempo de procesador), etc. [13].

.NET Framework permite la interacción con COM+ a través de tipos definidos en el namespace System.EnterpriseServices.

4.2 MSMQ

Microsoft Message Queuing (MSMQ) es un protocolo de mensajería diseñado para enviar y recibir solicitudes de operaciones desde y hacia aplicaciones con intermitencias en la conexión o disponibilidad. El protocolo garantiza la entrega y recepción del mensaje siempre y cuando la línea de comunicación cumpla con las condiciones necesarias.

.NET Framework provee soporte para este protocolo por medio de tipos definidos en el namespace System.Messaging.

5. Conclusiones

Hasta aquí hemos estudiado varias de las tecnologías backend de Microsoft .NET Framework: ADO.NET, Windows WorkflowCOM+, y MSMQ. Distinguir estas tecnologías aplicadas de .NET Framework nos ha permitido entender la infraestructura y recursos con los que cuenta esta plataforma para tener una idea clara de la partición lógica de los grandes componentes que la integran.


En la última parte de esta serie de artículos .NET nos enfocaremos a estudiar las tecnologías de sistemas distribuidos.

6. Glosario

  • API
  • Aplicación
  • Backend
  • Base de datos
  • Frontend
  • Mensajería
  • ORM
  • Proceso de negocio
  • Protocolo
  • Servicio

7. Literatura & Enlaces

[1]: C# 5.0 in a Nutshell by Joseph Albahari and Ben Albahari. Copyright 2012 Joseph Albahari and Ben Albahari, 978-1-449-32010-2.
[2]: Front and back ends - Wikipedia, the free encyclopedia - https://en.wikipedia.org/wiki/Front_and_back_ends
[3]: What is back-end? - Definition from WhatIs.com - http://searchdatacenter.techtarget.com/definition/back-end
[4]: ADO.NET - Wikipedia, the free encyclopedia - https://en.wikipedia.org/wiki/ADO.NET
[5]: Microsoft SQL Server - Wikipedia, the free encyclopedia - https://en.wikipedia.org/wiki/Microsoft_SQL_Server
[6]: Oracle Database - Wikipedia, the free encyclopedia - https://en.wikipedia.org/wiki/Oracle_Database
[7]: OLE DB - Wikipedia, the free encyclopedia - https://en.wikipedia.org/wiki/OLE_DB
[8]: Open Database Connectivity - Wikipedia, the free encyclopedia - https://en.wikipedia.org/wiki/Open_Database_Connectivity
[9]: Entity Framework - Wikipedia, the free encyclopedia - https://en.wikipedia.org/wiki/Entity_Framework
[10]: Object-relational mapping - Wikipedia, the free encyclopedia - https://en.wikipedia.org/wiki/Object-relational_mapping
[11]: Language Integrated Query - Wikipedia, the free encyclopedia - https://en.wikipedia.org/wiki/Language_Integrated_Query
[12]: Windows Workflow Foundation - Wikipedia, the free encyclopedia - https://en.wikipedia.org/wiki/Windows_Workflow_Foundation
[13]: Component Object Model - Wikipedia, the free encyclopedia - https://en.wikipedia.org/wiki/Component_Object_Model#COM.2B_and_DCOM
[14]: Microsoft Message Queuing - Wikipedia, the free encyclopedia - https://en.wikipedia.org/wiki/Microsoft_Message_Queuing


V

No hay comentarios:

Publicar un comentario

Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.