Está en la página 1de 22

Exploración de los factores de tecnología informática

más relevantes en el desarrollo de aplicaciones


empresariales para la consolidación del e-business

Hermann Alvino

Marzo 2004
I- Introducción

La Sociedad de la Información ha permeado dentro de todas las categorías de la actividad


humana, siendo una de las destacadas la actividad económica; nace así el concepto de
Nueva Economía, que integra todas expresiones del intercambio de bienes y servicios
dentro del contexto de la Sociedad de la Información, esto es, en el que el conocimiento
prima sobre todos los demás elementos que tradicionalmente han servido de marco para
establecer lecturas de la Economía como ciencia.

La Nueva Economía tiene entonces como expresión material, el intercambio de bienes y


servicios, en un entorno que debe hacer posible la generación y transmisión de
conocimiento, como elemento indispensable de posicionamiento estratégico, que permita
a su vez competir, para que determinada actividad económica sea sostenible. Este entorno
está constituido por el elemento tecnológico.

El elemento tecnológico es así indispensable en la actual actividad económica, y se


compone de multitud de elementos disímiles, pero cuya convergencia ha hecho posible
estructurar aplicaciones -esto es, líneas de código- y dispositivos –hardware- para cumplir
con las variadísimas tareas –funcionalidades- que sustentan cada faceta de la economía.

En este trabajo nos vamos a concentrar en explorar cuáles han sido los elementos más
importantes, cuya convergencia y progresiva utilización, han provocado una evolución en
el diseño y funcionalidad de las aplicaciones de software, orientadas a optimizar la
actividad económica.

Debe resaltarse, por otra parte, que el intercambio B2B (actividad comercial entre
empresas, Business to Business), ha sido el que ha fijado la pauta de este proceso de
perfeccionamiento tecnológico, por el volumen de negocios que representa en la
economía en relación a otros tipos de intercambios, tales como B2C (Empresa-
Consumidor, Business to Consumer), C2C (actividad comercial entre individuos,
Consumer to Consumer, o P2P, Peer to Peer), o G2B (actividad comercial con el Sector
Público, Government to Business).

Debido a que dicho modelo B2B se constituye por actividades de intercambio entre
empresas, es por lo que se ha denominado el sustrato de software que lo mueve como
aplicaciones corporativas.

Lo relativo exclusivamente con la actividad de compra-venta a cliente final se


acostumbra a denominarlo como comercio electrónico (eCommerce), y al conjunto de
todas actividades se ha tendido a llamarlo como negocio electrónico (eBusiness);
En líneas generales, las aplicaciones corporativas pueden clasificarse entre aquellas que
contribuyen a generar mayores ingresos y las que ayudan a generar y controlar el
negocio. Entre las primeras se cuenta con los llamados CRMs, y entre las segundas con
los denominados ERPs, siendo CRM la abreviación de Customer Relationships
Management o aplicaciones de gestión de clientes que abordan la actividad de compra-
venta y servicio postventa con clientes y la recolección sistemática de patrones de
consumo y tendencias. Por otro lado, ERP es la abreviación del término Enterprise
Resources Planning, que agrupa los tipos de aplicaciones de gestión de una empresa que
tienen como objetivo optimizar la actividad dentro de las métricas fijadas para la
productividad.

Un esquema de aplicaciones corporativas se ilustra en la Figura 1

Ventas/ Analítica/
Producción: Administrativos: Marketing: Estrategia:

RRHH Ventas Data Mining


Extracción
Finanzas Post Venta Decisión
Manufactura
Compras Servicio ...
Distribución Inventarios Call Center

Servicios Contabilidad Campañas

..... .....

Productividad & ERP CRM EDS


Control Gestión & Costos Ingresos & Mercado Gestión del Cambio
operaciones transacciones transacciones decisiones

Funciones:Su utilidad y funciones agregan valor al proceso mediante:

Cálculo Análisis

Procesamiento Ajuste

Figura 1. Sistemas y Ámbitos de Gestión

Un CRM se compone de aplicaciones cuyas funcionalidades se orientan a conocer el


mercado, cada cliente, su actividad y sus necesidades, satisfacer cada una de estas
facetas, y anticiparse en el tiempo de acuerdo a cambios en cada uno de dichos
elementos. Las aplicaciones se agrupan así en módulos de venta, marketing, servicio
postventa, atención telefónica, etc. cuya integración en una aplicación propiamente dicha
significa la interacción de todos los agentes que intervienen en el proceso (clientes y
empleados) por diversos canales (en persona, teléfono, web, email, chat, fax, etc) con una
base de datos común, que mantiene su integridad para que todos accedan a ella, de
acuerdo a sus privilegios y hagan avanzar determinado proceso de intercambio de bienes
o servicios por las etapas que lo integran.
La evolución de aplicaciones CRM se ha orientado a automatizar actividades; ejemplos
de ello lo constituye la estructuración de ofertas, informes de gastos de la fuerza de
ventas, o mensajes de respuesta a clientes.

Si, por una parte, el objetivo de negocios de las aplicaciones CRM es incrementar los
ingresos, las aplicaciones ERP tienen tres grandes ámbitos de acción, por una parte
organizan la actividad que hace posible concretar los intercambios, esto es, gestionando,
automatizando y controlando toda la cadena de suministros, manufactura y entrega; por
otra parte, dentro de ciertos márgenes, gestionando y automatizando actividades del
factor humano mediante estándarización de procedimientos, procesos de reclutamiento,
selección, entrenamiento, etc. Un tercer ámbito lo constituye la actividad financiera y
contable, que abarca todo el flujo monetario y sus respectivos controles: compras, ventas,
impuestos, tesorería e inversiones.

Además de los anteriores, existen ámbitos adicionales de acción ERP tales como los que
cubren la gestión de proyectos, o el manejo de materiales, que son asimilados a las tres
categorías mencionadas

Comentario aparte debe hacerse para la actividad de anticipación a las tendencias del
mercado, ya que ello es posible mediante un proceso de análisis de datos extraídos de la
base de datos mencionada, pero agregados y presentados de cierta forma que facilite la
comprensión en detalle o en perspectiva de la realidad de interés. Esto se realiza con
aplicaciones de minería e inteligencia de datos, sistemas expertos de decisión. Estas
aplicaciones están asociadas tanto a las CRM como a las ERP, e incluyen los sistemas
expertos de decisión.

Otro comentario importante es recordar que las actividades de negocio (operaciones,


gestión diaria, y gestión estratégica) están presentes en cada uno de los módulos CRM-
ERP, por lo que, por ejemplo, la actividad financiera puede tener aplicaciones de gestión
de operaciones bancarias, de control financiero o de análisis de perspectiva del negocio
en marcha. De ello se generan entonces centenares de aplicaciones específicamente
diseñadas para una etapa y nivel de negocio.

Esta multitud de aplicaciones crea problemas de integración dentro de las mismas


aplicaciones CRM y ERP, por sus diversos modelos de datos, y porque han sido
diseñadas en diversas etapas del desarrollo informático, con lo que se presentan diversos
lenguajes de desarrollo e inclusive plataformas. Un caso frecuente lo constituyen las
aplicaciones diseñadas para cliente (instalado)-servidor, que luego deben ser rediseñadas
para cliente (web, o liviano)-servidor.

Las aplicaciones corporativas se han desarrollado entonces de manera paralela a la


concepción y funcionamiento de la actividad económica e industrial intentando optimizar
los cuatros aspectos que clásicamente han definido este ámbito: factor humano, capital,
tecnología, y procesos. La figura 2 muestra parte del proceso de evolución en el tiempo
del módulo de ventas dentro del entorno CRM, de acuerdo a las exigencias de la
actividad y la factibilidad técnica que va ofreciendo el desarrollo informático En la
medida que dicho desarrollo se vaya consolidando es posible incorporar nuevas
funcionalidades para gestionar otros aspectos del negocio.

Figura 2 – Ejemplo de evolución de funcionalidades en Módulo de Ventas CRM

II- Necesidad de disponer de aplicaciones corporativas

En la Nueva Economía se deben separar las realidades y exigencias tanto del productor-
distribuidor como del cliente intermedio-cliente final. Estas realidades son las que indican
las funcionalidades que deben tener las respectivas aplicaciones empresariales. Se trata
así de utilizar la tecnología para, desde la perspectiva del cliente explorar el mercado e
iniciar transacciones a su gusto y oportunidad, desde la perspectiva del fabricante-
vendedor de automatizar al máximo las operaciones para máxima fiabilidad y a su vez
optimizar la productividad de cada empleado (convertido en agente proactivo del
negocio) y desde la perspectiva del vendedor-partner actuar como agente de extensión del
ámbito comercial del fabricante disponiendo de las mismas potencialidades para asistir al
cliente final.

Con ello se disminuyen los lapsos del ciclo de ventas y servicio, y se maximiza el
potencial en cada interacción con el cliente, no solo para concretar una venta, sino
posibilitando también la venta cruzada, se maximiza la satisfacción de cada agente y
cliente, y se desarrolla un universo de datos que permite un análisis realista del mercado
para optimizar la presencia en cada uno de sus segmentos.

Para el productor-distribuidor se requiere fundamentalmente:

- Disponer de aplicaciones que se ajusten a su modelo de negocio y actividades, que


faciliten la gestión ordenando y automatizando operaciones estratégicamente
seleccionadas para maximizar su impacto en la productividad.

- Transmitir datos en tiempo real o periódicamente (cargas Batch) entre las unidades que
componen la empresa, y desde-hacia los proveedores y socios de negocio (distribuidores,
ensambladores, etc). Ello puede implicar intercambio de datos entre diversas aplicaciones
y bases de datos (EAI, Enterprise Application Integration)

- Preservar la inversión, disponiendo de aplicaciones integrables entre sí, lo cual incluye


aplicaciones y bases de datos legadas (legacy)., y que sean escalables a futuro. Esto se
resume en la figura 3.

La aplicación debe tener


Análisis capacidad analítica
Entorno

La aplicación La aplicación
nuevo

debe tener Extensión Apertura Estrategia debe tener


niveles de Control mercado mercado Multicanal funcionalidades
producto

operatividad y multicanal
visibilidad,
workflow,
existente

gráficos de Introducc. Expasión


predicciones y mercado mercado
de gestión, etc.

Las aplicaciónes existente nuevo


CRM/ERP deben tener
capacidad para Mercado
Negocio en Plan de La aplicación debe tener
parametrizar en tiempo
marcha Acción capacidad para generar
real, añadir nuevo
acciones en tiempo real
canales, escalabilidad,
(campañas, asignaciones
integrarse con otras de actividades, gestión de
aplicaciones.
territorios, actualización
de catálogos)

Figura 3 – Requerimientos para iniciar y completar con éxito un ciclo de negocio

Con relación al cliente intermedio-cliente final, éste selecciona el momento de explorar el


mercado y la oportunidad para realizar una determinada transacción; para ello, el cliente
además escoge la forma de comunicarse e interactuar, esto es, el canal. Este
posicionamiento estratégico del cliente obliga a desarrollar programas de fidelización que
implican precio, servicio, personalización, tiempos de respuesta adecuados. Todo ello a
través de los mismos canales y con una interacción consistente.

Para ello entonces debe disponerse de una tecnología que permita captar, desarrollar y
satisfacer para retener y potenciar la relación comercial. Como factores de presión
comercial que impactan en la fidelización y lealtad a futuro del cliente se tiene la
diversidad en la oferta sin límites geográficos, las numerosas campañas de marketing, la
dispersión de oferta por parte de los fabricantes, la rapidez exigida en cada ciclo de
compra-venta, etc.

A su vez, las transacciones de datos en esta capa de contacto con clientes (mediante el
CRM) deben relacionarse con aplicaciones relacionadas con la generación de pedidos,
logística, administración, finanzas, etc. (en el ERP) en tiempo real, o con actualizaciones
periódicas. Ello obliga a integraciones entre aplicaciones con alto rendimiento y tiempos
de respuesta adecuados (por ejemplo si un cliente desea saber el estado de su pedido).
En la Figura 4 se representa un ejemplo de aplicaciones corporativas, de esta figura se
desea resaltar:

- la topología o la distribución lógica: Cliente-Servidor Web y de Aplicaciones-Servidor


de Bases de Datos

- la estructura de red que permite la comunicación de cada integrante de la misma, así


como la comunicación por diversos canales: web, teléfono, fax, eMail, chat, PDA, etc.
mediante los respectivos gateways.

- los dispositivos de seguridad y su topología para asegurar accesos seguros en cada nivel
de la aplicación

- la relación entre diversas aplicaciones y diversas bases de datos

- los diversos tipos de aplicaciones para realizar las funcionalidades requeridas

Encriptación

Entorno Seguro,
Firewall
LDAP

Claves y Firmas
Digitales Front-Office (CRM)
Call Center eCommerce
Canales DW
Servicio Analítica Analítica
Personal
Field Service Gestión Empleado
Web
Marketing ...
Cliente E-Mail Db CRM
....
Fax Servidor
Empleado
Web
WAP
Gateway
Partner
Chat Compras ....

Cliente: Teléfono Inventario Impuestos Db


Inventario
web Finanzas Proyectos Finanzas
… RH,…
Aplicación
Administración Biblioteca
Handheld
etc Logística Recursos Humanos
Aplicaciones y
Db heredadas
Back-Office (ERP) (legacy)

Cliente Servidores Servidores de Aplicaciones Servidores de


Bases de
Web Datos

Figura 4 – Contexto general de Aplicaciones Corporativas

La parte inferior de la Figura 1 nos muestra la forma de relacionarse los diversos


elementos agrupados, estos son Cliente, Servidores Web y de Aplicaciones, y Servidores
de Bases de Datos. Esta interrelación –entiéndase como comunicación entre los
componentes- se realiza mediante tecnología de redes. Expresiones de una red puede ser
la red interna corporativa o una red pública, o sea, Internet.
La tendencia de estas aplicaciones, dada la descentralización y mundialización de las
empresas, es a utilizar Internet como red base de comunicaciones. Por ello, los factores
que a continuación se detallan han sido también fundamentales para el desarrollo de
Internet

III- Elementos tecnológicos que componen una aplicación corporativa:

III.1- Red y topología


La información que viaja de un equipo a otro lo hace a través de una red que se estructura
en nodos con una dirección que los permite identificar, el sortear y redirigir los sucesivos
paquetes de información entre nodos de una red se realiza con los llamados Routers, y
entre diferentes redes se utilizan los Gateways (o portales); cada uno de estos dispositivos
posee tablas de direcciones y de rutas para enviar la información. La fortaleza de Internet
consiste en que la red es capaz de encontrar múltiple rutas alternas frente a puntos de
fallo que puedan presentarse. Los Gateway son los dispositivos que además permiten la
comunicación entre dispositivos que constituyen diversos canales: web (red por cable),
WAP (red inalámbrica), PD, etc, sirviendo como traductores para la trasmisión de
paquetes.

En relación a la tecnología de redes cuya evolución e historia está fuera del ámbito de las
presentes notas desean resaltar tres aspectos:

Paquete
La información a trasmitir en una red de manera digital se realiza por medio de paquetes
de datos (packets), esto significa que porciones sucesivas del conjunto de datos a ser
enviados se van agrupando en conjuntos de igual estructura que incluyen encabezados y
cola con la información relativa a la dirección emisora y receptora y varios parámetros de
control para asegurar la confiabilidad en la recepción dentro de métricas establecidas.

Existen varias formas de establecer una trasmisión, pero para simplificar nos limitaremos
al tipo en el cual se sustentan las comunicaciones mediante protocolo TCP/IP,basado en
la conexión propiamente dicha (Connection Oriented) en contraste a oras formas tales
como Stream Oriented o Message Oriented.

Modelo de refere ncia OSI (Open Systems Interconnect)


Consiste en un estándar para establecer y mantener comunicaciones confiables entre dos
puntos de una red. Dada la complejidad de este proceso y los elementos físicos y lógicos
involucrados, el establecimiento de este estándar contribuyó a impulsar el diseño de
dispositivos y medios de transmisión (tarjetas de red y cables, enre otros)

El modelo de referencia OSI consiste en 7 capas encargadas de funciones muy


específicas, ver figura 5. Lo importante de este modelo es que los paquetes pueden viajar
solamente entre capa y capa, con lo cual la trayectoria es vertica, sin embargo las capas
homónimas de los puntos de transmisión sí pueden comunicarse entre ellas.
Figura 5. Modelo OSI

Las funciones de las diversas capas se pueden resumir en:

Aplicación
Aplicaciones de redes tales como emulación de terminal y transferencia de ficheros.t

Presentación
Formato de datos y encriptación

Sesión
Establecer y mantener una sesión

Transporte
Entrega de punto a punto

Network
Entrega de paquetes y routing

Enlace de Datos (Data Link)


Empaquetamiento y comprobación de errores.

Física
Trasmisión de bits sobre la infraestructura propiamente dicha.

Protocolo TCP/IP (Transfer Control Protocol/Internet Protocol)


También consiste en un estándar para establecer y mantener las comunicaciones y que
permite la gestión de direcciones de cada nodo. La figura 6 muestra las cuatro capas
sobre las que se estructura este protocolo y la relación que tiene con la estructura lógica
de un navegador.

Figura 6. Modelo lógico TCP/IP, y su relación con un navegador web

III-2. Arquitectura

Tradicionalmente la arquitectura predominante ha sido la de Cliente-Servidor; en relación


al Cliente, se ha tenido desde un comienzo la presencia de lo que denomina como Cliente
Dedicado, esto es, una aplicación instalada en cada equipo de trabajo (PC) que sirve de
interfaz para intercambiar datos con el Servidor, mediante la red corporativa, por ejemplo
LAN-Ethernet con la topología del caso.

El crecimiento y mundialización de las empresas y el gran número de estaciones de


trabajo de cada empresa –del orden a veces de decenas de miles, y dispersas en varios
países- hace impráctico distribuir físicamente e instalar clientes dedicados así como
hacerles mantenimiento. A esto se une la dificultad y costes de instalación y
mantenimiento para disponer de una red interna corporativa y de extranets con los socios
de negocio (proveedores, etc) en un ámbito geográfico vasto.

Estos dos problemas se han resuelto con el protocolo TCP/IP y con el cliente ligero (Thin
Client). El protocolo comentado anteriormente permite comunicaciones confiables y
seguras, y lo más importante es que todo se puede realizar a través de Internet.
El cliente ligero es simplemente un navegador web instalado en la respectiva estación de
trabajo.

Se trata así de comunicarse con los servidores mediante protocolos tipo http, ftp, o telnet,
mediante la infraestructura telefónica, de redes, y satelital para mundializar las
comunicaciones. Los navegadores se descargan por la misma red, ocupan poco espacio
en la estación de trabajo, y son fáciles de mantener y actualizar.

Desde la perspectiva del servidor, la realidad es un poco más compleja, ya que éste
contiene el software que provee los servicios que hacen posible el trabajo desde el
cliente. En el esquema cliente dedicado-servidor, el cliente se limitaba a solicitar
servicios (obtención o procesamiento de datos) y el servidor se encargaba de ello para
luego devolver los resultados al cliente. Ejemplo de este esquema puede ser la tecnología
ASP (Active Server Pages).

Nuevamente se plantea el problema de la escalabilidad, ya que al tener clientes que


solamente requieren servicios y servidores que se encargan de todo el trabajo de
procesamiento, el crecimiento se limita por costes –los servidores son más caros que las
estaciones de trabajo-, y se hace complejo por software adicional para repartir cargas de
trabajo entre servidores no necesariamente ubicados en el mismo lugar.

Se evoluciona así al concepto de cliente activo, capaz de procesar información dentro d


ciertos límites, descargando así al servidor. Un ejemplo de ello es el lenguaje JavaScript
trabajando en el cliente en el entorno del navegador que se comentará más adelante.

En este sentido, en el estado actual de la arquitectura, el planteamiento del desarrollo,


integración, y mantenimiento de aplicaciones, se relaciona mucho con la topología
(disposición lógica de entidades). De ésta se extraen las soluciones cliente web como
entidad presentadora de datos (o interfaz del usuario), servidor web que sirve la páginas
al cliente, servidor de aplicaciones, que contiene la lógica de las aplicaciones y servidor
de bases de datos, que provee los datos a procesar.

Concurrentemente a lo anterior se tienen otros servicios tales como correo, o gestión de


ficheros y plantillas que se utilizan para construir las páginas web a presentar.

Ello obliga a disponer de una estrategia de desarrollo y soporte. En el caso de desarrollos


web se tienen las CSS (Cascade Style Sheet) como tecnología para crear y mantener
páginas web, en el caso de las bases de datos se crean modelos de datos (metadatos, con
información acerca de cómo se estructuran los datos); para los lenguajes de desarrollo se
tiene el concepto de Objeto. Todo ello integrado en una estrategia de soporte de
topologías complejas como las empresariales, que se basa en la arquitectura por capas.

La arquitectura por capas permite gestionar por separado la interfaz de usuario, la lógica
de procesos, y los datos propiamente dichos. De manera que se puede operar sobre cada
capa sin modificar la otra, facilitando las configuraciones, incorporación de nuevos
módulos, y el mantenimiento.
Con ello, al desarrollar software con esta estrategia, se puede modificar, mantener,
reconfigurar la lógica de la aplicación sin tocar los datos o el cliente, minimizando
riesgos y costes. Ello es válido igualmente, para las actualizaciones del cliente o de la
base de datos.

La Figura 7 muestra lo descrito anteriormente.

Capa de Presentación
Cliente
Interfaz Navegador
aplicación (browser)

Servidor Web Capa de Objetos: lógica,


funcionalidades, reglas de
Servidor de negocio
Aplicaciones

Servidor Base Capa de datos


de Datos

Bases de datos

Figura 7 – Arquitectura de Capas, vista general

III-3. Lenguajes de programación y de etiqueta o marcadores

- Lenguajes de Programación
Son estructuras lingüísticas dedicadas a redactar instrucciones destinadas al procesador
central (CPU). Se trata de escribir de una forma amigable al ser humano las tareas y
condiciones para cumplirlas por parte del procesador; estas tareas serán luego traducidas
en lenguaje de máquina por compilación o interpretación (ver comentarios más adelante).

Ha habido diversas generaciones de lenguajes, desde los lenguajes ensambladores hasta


los de alto nivel, y los desarrollos para lograr el máximo de portabilidad, esto es,
independizar el lenguaje de la máquina y plataforma. Dentro de los lenguajes de alto
nivel se ha evolucionado desde la programación lineal, hasta la estructurada y por
objetos. Todo ello con el objeto de construir capas de abstracción de diverso alcance para
agrupar conjuntos de instrucciones.

En estas notas solamente se comentan los lenguajes orientados o basados en objetos


(OOP, Object Oriented Programming) relacionada con lenguajes tales como C, C ++,
Java, Delphi, Visual Basic.
Una primera aproximación para comprender estos lenguajes consiste en tener presente el
concepto de capa de abstracción, que encapsula un conjunto de conceptos y los hace
generales dentro de ese nivel. Un objeto de programación consiste en líneas de código
que se refieren a ciertos datos y métodos. Los datos son entidades que se definen en la
base de datos y que son elementos del universo mismo de lo que trata la aplicación en su
conjunto. Los métodos se refieren a las variables que podamos definir y los algoritmos de
cálculo en los que se involucrarán los datos.

De manera que un objeto es un subconjunto autónomo del programa que procesa ciertos
datos de cierta manera. Esta es la propiedad llamada Encapsulamiento. De acuerdo al
método definido y los datos a los que se refiere, objetos definidos de la misma forma se
comportan de diferente forma, siendo ésta la propiedad llamada Polimorfismo.

Esta estrategia tiene muchas ventajas, ya que se pueden definir nuevos objetos en una
capa de abstracción inferior con funcionalidades adicionales sin redefinir de nuevo todo
el objeto ya que éste heredaría las de la capa inmediatamente superior. Esta propiedad es
la Herencia. Los mismos objetos agrupados pueden formar Clases Por otra parte, un
objeto puede ser llamado en cualquier momento, con lo que la aplicación se convierte en
una red de cápsulas de código, con ello se facilita el desarrollo y las futuras
modificaciones de instrucciones ya que se trataría solamente de modificar objetos –su
lógica interna- y no la lógica integral de la aplicación, tal como se comentó en el aparte
de arquitectura por capas. La aplicación se convierte así en una red de objetos
interrelacionados por una lógica integrativa. Ver figura x .

- Lenguajes para cliente o lenguajes para servidores.

Los lenguajes mencionados anteriormente pueden ser ejecutados en el servidor o en el


cliente, sin embargo, recordando la necesidad de aligerar los servidores de la carga de
trabajo y repartirla, en lo posible en los clientes, la tendencia ha sido desarrollar lenguajes
que cohabiten y actúen en ambos entornos. Estos lenguajes son interpretados en el
navegador del cliente para efectuar diversas operaciones.

Se debe recalcar el término “interpretar” ya que tiene un significado muy específico. Los
lenguajes tales como Visual Basic, luego de escribir líneas de código con determinada
sintaxis pero en todo caso utilizando letras del alfabeto, deben ser traducidos a lenguajes
de máquina –expresiones en código binario- para que el procesador pueda comprenderlos
y realizar las operaciones del caso.

Esta traducción es posible mediante lo que se denomina compilación del código de


programa, o sea, la traducción y encapsulamiento en un formato ejecutable. Ello hace
necesario que la plataforma (sistema operativo) sea compatible con ese formato, que se
deriva del lenguaje mismo. Si, por ejemplo, se desarrolla una interfaz de usuario para un
cliente dedicado, digamos en Visual Basic, se escribe el código en este lenguaje, se
compila y se crea un ejecutable que se instalará en el respectivo PC, que además deberá
tener plataforma Windows.
Otra estrategia para convertir a lenguaje de máquina el código de un programa es
mediante un “intérprete” -que se instala en el equipo- que va traduciendo línea por línea a
medida que se requiere el uso del programa.

Estas estrategias tienen diversos efectos; por una parte el disponer de un lenguaje
compilado en un equipo lo dota de mayor velocidad de procesamiento en relación a la
ejecución de programas que se interpretan línea a línea. Por otro lado sin embargo, las
limitaciones de plataforma del primer caso son superadas con el intérprete, ya que basta
con que tenerlo instalado en cualquier plataforma para poder utilizar el programa, con lo
que éste se hace independiente aquella. Este es el caso del lenguaje Java, para cuya
interpretación se requiere en entorno Java Environment, o Java Virtual Machine.

Java, que, por otra parte, es un lenguaje completo de desarrollo de aplicaciones, para
efectos de interactuar con navegadores web se presenta en forma de Applets, esto es,
líneas de código empaquetadas como Objetos –comentados anteriormente- que se envían
y se incrustan en el navegador y son ejecutados en éste. Los Applets entonces son una
estrategia para ejecutar programas en el equipo destino o remoto, con lo que se aligera el
trabajo en el servidor y además se lo protege, ya que códigos efectuados remotamente no
pueden dañarle (aunque puedan hacerlo en el cliente). Ver Figura x

Una estrategia de la plataforma Windows para realizar operaciones en el navegador es


mediante ActiveX, cuyo código es compatible solo en estas plataformas.

Otra forma para ejecutar programas o parte de éstos en destino es mediante JavaScript,
que se utiliza básicamente para validar operaciones y enviar datos desde el navegador,
por ejemplo fechas en un calendario interactivo o números. El usuario debe tener
versiones recientes del navegador, las cuales son las que pueden trabajar de esta forma.

Existen por supuesto lenguajes que se ejecutan en los servidores, debemos destacar los
que son independientes de las plataformas, tales como C, C++ (versión de C con más
amplitud de prestaciones) y Perl (Practical Extraction and Report Language), CGI
(Common Gateway Interface) y lenguaje en plataforma Windows tal como ASP (Active
Server Pages).
Capa de Presentación
Activex
Cliente
Interfaz Navegador
Applets
aplicación (browser)

Objeto X:
Datos
DHTML Métodos
Servidores
Web
Repositorios Capa de Objetos: lógica, Objeto Y:
funcionalidades, reglas de Datos
Enterprise Java Servidores de negocio Métodos
Aplicaciones
Microsoft
Objeto Z:
Datos
Métodos
Capa de datos
Servidor Base
de Datos
w

Bases de datos

Figura 8 – Arquitectura de Capas, vista detallada

- Lenguajes de procesamiento y presentación de datos en el navegador del cliente

html. Hypertext Markup Language

Este es un lenguaje con marcadores –etiquetas- que indica la forma de presentar la


información en un página web. Este es justamente el lenguaje subyacente en los diversos
navegadores, y es ejecutado localmente. Por presentar la información se entiende por
ejemplo el tamaño de letra, si es resaltada, subrayada, el inicio o finalización de un
párrafo, el espacio de colocación de una imagen, etc.

CCS. Cascade Style Sheets


Son formatos de plantillas a los cuales se pueden referir múltiple páginas html para
disponer asegurar homogeneidad y simplificar cambios basta con cambiar un formato
para cambiar todas las páginas html relacionadas con éste.

Dhtml. Dynamic html


Es la abreviación de html dinámico, que es la convergencia de html, CCS y lenguajes
ejecutados en el cliente y navegador tales como JavaScript.

- Generación dinámica de páginas html

La convergencia de todos estos elementos es lo que hace posible una estrategia alterna a
la de disponer de repositorios de páginas web estática y listas para servirlas a
requerimientos de un cliente y presentarla vía navegador local, ya que esta forma de
operar se hace difícil cuando se tienen miles de páginas que además deben actualizarse
con mucha frecuencia;

Como alternativa se tiene el producir sobre la marcha la página y sus contenidos. Para
ello el servidor de aplicaciones se relaciona tanto con un directorio de formatos de los
diversos tipos de páginas a servir, y con el servidor de la base de datos, de manera que se
extraen los datos y se ubican de acuerdo al formato de página respectivo y se envían a un
servidor de páginas web para su trasmisión.

Esto también contribuye a simplificar las modificaciones o actualizaciones y el


mantenimiento, ya que datos y formatos son independientes entre sí.

- XML. Extended Markup Language


El lenguaje html se refiere únicamente a la forma de presentar los datos, esto es, la
presentación de los documentos; el lenguaje XML fija la estructura misma del documento
y sus contenidos, por ello ya es utilizado ampliamente en los procesos de intercambio de
datos.

En este sentido se convierte en un metalenguaje ya que posibilita la creación de nuevas


etiquetas para definir datos. Por ejemplo se pueden definir etiquetas relativas a un
producto dado y todas sus propiedades tales como precio, cantidades, fechas, etc, en
determinada jerarquía.

III-4. Seguridad
Este es un aspecto crítico en virtud de la importancia de disponer de transacciones a
través de Internet o en redes públicas que aseguren la autenticidad de los participantes y
que sus contenidos no sean alterados ni interceptados. Para ello es necesario tener las
tecnologías, políticas e infraestructuras adecuadas

La seguridad implica entonces la presencia de aplicaciones de control, que tienen efecto


en la velocidad o rendimiento del proceso de intercambio, por ello se trata de mantener
un equilibrio entre ambos elementos. Los factores más relevantes en esta área de
seguridad son:

Autentificación
Necesaria para todos los agentes que intervienen en el proceso, clientes intermedios y
finales, socios de negocio, distribuidores, etc. Las conocidas Username y Password o
Nombre de Usuario y Clave son los instrumentos comúnmente usados. Existen así
directorios de usuarios con sus claves dentro de los servidores encargados de esta
actividad. Ejemplo de aproximación a este problema es la tecnología LDAP (Light
Directory Access Protocol) que integra estos datos de seguridad para compararlos con los
datos de quienes intentan acceder para asegurar su autenticidad.

La autentificación se puede producir en diversos niveles y etapas del proceso de


transacción, así, agentes externos tales como clientes o socios de negocio - distribuidores
o proveedores-. Para los primeros hay autentificaciones en la entrada de la aplicación,
cuando se requiera algún servicio especial, cuando se busque el estado de un envío, se
reporte alguna incidencia, etc.

En el caso de compras en línea existen además controles adicionales por parte de


terceros; éstos pueden ser la empresas proveedoras de tarjetas de crédito o entidades de
seguridad asociadas. El caso de socios de negocio tiene niveles de autentificación
adicionales dependiendo de la etapa de la transacción.

De la autentificación se desea hacer dos comentarios adicionales. En primer lugar lo


relativo a privilegios de cada usuario para acceder a los datos en las respectivas tablas de
las bases de datos; al conectarse con una aplicación de eCommerce se provee al usuario
de vistas de datos, por ello, diferentes usuarios pero de igual nivel tienen vistas iguales,
pero con datos diferentes, por ejemplo su lista de compras. Esto significa acceso a ciertas
filas de registros de las respectivas tablas, pero no a todos; un empleado autorizado para
ello podrían ver filas correspondientes a compras de varios usuarios o inventario
remanente del producto. A medida que se tengan más privilegios el ámbito de visión se
expande a más filas y columnas de las tablas.

El otro comentario es en relación a las llamadas zonas desmilitarizadas (DMZ), Firewalls


y todos los filtros para acceder a información. Un sistema empresarial es muy complejo,
la disposición lógica de los servidores debe ser efectuada para facilitar estos filtros. Los
usuarios –tanto externos como internos- se relacionan en primera instancia con servidores
web, habiendo páginas para usuarios externos que son diferentes que la para los
internos.Un primer filtro puede ser entre estos servidores para impedir que agentes
externos tengan visibilidad a datos propiamente del negocio. Igualmente entre estos
servidores puede establecerse un filtro hacia los servidores de aplicaciones y de las bases
de datos, todo ello para autenticar quienes tiene acceso a cierto tipo de datos.

Confidencialidad
Esta característica abarca también a todos los datos –de seguridad de autentificación y
contenidos de transacciones que se intercambian dentro de políticas corporativas y
acuerdos contractuales con los clientes. Se trata de asegurar la privacidad de estas
transacciones y contenidos. La estrategia para ello es la encriptación de datos.

Para encriptar los datos se utilizan algoritmos (hash) y esta actividad puede ser más o
menos compleja y afectar la velocidad del descifrado. Por ejemplo si se usa una Clave
Unica Compartida entre usuarios origen y destino(Shared Single Key) se involucran del
orden de 40 a 128 bits de longitud para dicha clave; en cambio si se utiliza una clave
pública (Public Key) se estaría del orden de algoritmos entre 512 y 1028 bits.

Entre ambas características descritas está la llamada Firma o Certificado Digital, que es
una secuencia de caracteres encriptados que se genera e intercambia entre usuarios,
asegurando la autenticidad tanto del usuario como del contenido de mensaje. Ello es
posible mediante entidades externas que proveen la llamada infraestrucura de clave
pública (Public Key Infraestructure) como soporte para encriptar los mensajes.
Dentro de la complejidad de estas tecnologías debe destacarse el concepto de Clave
Privada y Clave Pública; al margen de su funcionamiento, de cómo se dispone de ellas
para su uso, lo tecnológicamente relevante es la generación de algoritmos y los diversos
métodos matemáticos empleados al escribir códigos de programación

Cumplimiento obligado
Ello implica la aceptación de los acuerdos que se realicen (nonrepudiation) dentro del
marco legal vigente.

III-5. Integración

Las aplicaciones corporativas para eCommerce se van construyendo sobre multitud de


aplicaciones que se van interrelacionando a medida que surgen las necesidades de
negocio. La comunicación entre aplicaciones se ha convertido en un factor crítico de
éxito.

Por un lado se tiene el proceso de extracción de datos que ha vivido un largo proceso para
establecer el lenguaje SQL (Structured Query Language) como estándar para
comunicarse con las tablas, constituyendo el llamado conector ODBC (On Line Database
Connection). De esta forma se generan llamadas a datos ubicados en un campo específico
para su procesamiento.

El requerir datos de tablas asociadas a una aplicación se realiza entonces mediante este
lenguaje embebido en el código de la aplicación, o de sus objetos. La base de datos tiene
un modelo definido y no surgen mayores dificultades.

Cuando se requieren datos de campos en tablas de bases de datos externas, el lenguaje


sigue siendo el SQL, pero entran en escena los siguientes factores

Formato de datos requerido


Formato de datos remotos
Formato de trasmisión de datos
Transformación de datos

Estos formatos no necesariamente son iguales, es más, lo más probable es que sean
disímiles dado que son inherentes a aplicaciones para usos muy específicos. Por ejemplo,
datos de inventario no necesariamente tienen el mismo modelo de estructuración de datos
de modelos de precio. Llamar estos datos para procesarlos con datos nativos y
presentarlos al usuario obliga a técnicas muy variadas que dependen del modelo de datos
en cada caso (relaciones entre tablas M:1, 1:1 o M:M). Por lo que se pueden importar
directamente en tablas nativas, en tablas de transición o en tablas de intersección para ir
ajustando los formatos disímiles.

En cuanto a objetos de programación propiamente dichos, su llamada entre aplicaciones


ha obligado a desarrollar técnicas muy diversas tales como CORBA (Common Object
Request Broker Architecture) o OLE-DCOM.(Embedding, Distributed Common Object
Management) que se han convertido en los estándares del mercado. Estos software se
encargan de la gestión de los objetos, asunto de importancia crítica en entornos
descentralizados o distribuidos; se ha dado por llamarlos Middleware, y se presentan en
forma de conectores entre aplicaciones. Ver figura 9.

Capa de Presentación
Activex
Cliente C C
Interfaz Navegador
Applets O O
aplicación (browser)
N N
E E Objeto X:
Servidor C C Servidor
Aplicación T Sistema T Aplicación Datos
DHTML Métodos
Servidores A O O B
Web R R
Repositorios Capa de Objetos: lógica, Objeto Y:
A A de Datos
funcionalidades, reglas
Enterprise Java Servidores de negocio Métodos
Aplicaciones
Microsoft
Objeto Z:
Datos
Métodos
Capa de datos
Servidor Base
de Datos
SQL
w
SQL
v

SQL
r

Bases de datos

Figura 9 – Ubicación conectores y ODBC-SQL

III- 6. Bases de Datos


Al igual que todas las tecnologías mencionadas, ésta ha evolucionado considerablemente
desde los años 70´. Existen diversas maneras de relacionar datos dentro de una tabla y,
dado lo impráctico de que las tablas crezcan indefinidamente en columnas y filas, formas
de relacionar diversas tablas que contienen datos a usar conjuntamente.

Una forma es la relación jerárquica, usada por ejemplo en aplicaciones de agencias de


viaje, en las cuales las ciudades origen o destino son las entidades superiores a las que se
asocian aerolíneas, fechas, nombres, etc.

Pero realmente el impulso que esta tecnología ha tenido es con el concepto de base de
datos relacional, en la cual todas sus tablas están relacionadas mediante algún dato común
(claves, principal o externa) y los llamados grados de normalización que consisten en
técnicas de diseño de tablas que eliminen ambigüedades, repeticiones e inconsistencias,
asegurando así la integridad. Con ello las tablas son autónomas, fáciles de mantener, y el
sistema en general puede escalar sin complicaciones.

Otro salto importante en la utilidad de las bases de datos en aplicaciones de alto nivel es
la facilidad de administración mediante consolas que permiten crear, editar, eliminar,
relacionar datos y tablas.
III-7. Herramientas de desarrollo, configuración y administración
Por último, a sabiendas que ninguna empresa es igual y que sus modelos de negocio, de
datos, tipos de información, de usuarios, tareas, etc. son muy diversas, las aplicaciones de
eBusiness deben poderse adaptar a estas realidades.

El mercado ha forzado la creación de aplicaciones de acuerdo a segmentos de industrias


(energía, comunicaciones, sector público, turismo, etc); en general se tienen aplicaciones
estándar que proveen gran parte de las funcionalidades requeridas por una empresa y para
dentro de cada uno de estos segmentos, pero aun así quedan necesidades que requieren
modificaciones importantes. Las aplicaciones estándar justamente deben resolver este
problema en contraste con las aplicaciones desarrolladas a medida que se implantan en u
momento determinado de la empresa, pero que al evolucionar ésta se deben modificar
generando altos costos y dificultades técnicas.

Una forma de abordar este problema es mediante aplicaciones de administración,


configuración y desarrollo rápido que permiten modificar las relaciones entre tablas de
datos, plantillas de presentación de datos y sobre todo el workflow o las reglas de negocio
que rigen en cada escenario de actividad y transacción contemplado por los diversos
módulos de aplicaciones. Estas aplicaciones aprovechan la arquitectura por capas,
gestionando adecuadamente los objetos necesarios.

La interfaz que presentan al usuario es la típica consola de desarrollo, los lenguajes que la
componen son los de alto nivel basados u orientados a objetos que se han mencionado
anteriormente.

IV- Consideraciones finales

Como se ha afirmado al inicio, el contenido de este trabajo se deriva en parte de la


experiencia profesional en áreas relacionadas con la consultoría de empresas cuya
actividad ha requerido evolucionar hacia sistemas de gestión empresarial altamente
sofisticados.

No siempre ha sido posible desarrollar o implantar soluciones informáticas óptimamente


ajustadas a los respectivas necesidades de negocio y ello en muchas oportunidades ha
sido debido a la dificultad de integrar datos, aplicaciones o diversos canales de
interacción con los servidores.

En otras oportunidades se ha requerido un nivel de interactividad del usuario o del


consumidor final con la aplicación, o entre estos dos –por ejemplo un empleado al
teléfono con un cliente recogiendo sus datos y escribiéndolos en la interfaz- cuya
velocidad o tipo de procesamiento en pantalla (sin JavaScript) no era factible. Otros
escenarios difíciles de resolver han sido los relativos a la seguridad en varios niveles de
acuerdo a los tipos y privilegios de usuario.
Claro está que los problemas de alguna forma se pueden resolver, pero dentro de un
equilibrio entre los ingresos de la actividad comercial y los costes de desarrollo, de
mantenimiento de aplicaciones, y de desarrollo de nuevas funcionalidades a futuro.

Dentro del estado actual de este tipo de aplicaciones, los esfuerzos están orientados hacia
la integración de aplicaciones, lo cual abarca aplicaciones, bases de datos y canales de
interactividad, y servicios web basados en el estándar XML.

Otra línea de trabajo es el desarrollo de aplicaciones de administración y configuración


cada vez más amigables en términos de minimizar el escribir en lenguaje de código
disponiendo de interfaz (iconos, herramientas gráficas, etc.)cuyo uso y relacionamiento
adecuado a la parametrización buscada, genera automáticamente código de programación
y lo incorpora al código fuente. Estas son aplicaciones basadas en el denominado
lenguaje declarativo.

No se ha establecido una clasificación de los factores descritos en este trabajo por orden
de importancia, ya que se ha deseado resaltar la convergencia de éstos. Tampoco se ha
sido exhaustivo en mencionar o detallar a todos los factores por limitaciones del trabajo,
y solo se han expuesto los que se ha considerado fundamentales, esto es los que su
ausencia obligaría a desarrollar de otra manera, eventualmente cambiando la estructura de
costes y los ciclos del producto, o a no poder disponer de ciertas funcionalidades. Estos
elementos tecnológicos se resumen en la Figura 10.

Los avances en Tecnologías de Información y Comunicaciones se han debido a una


convergencia en el desarrollo de varios factores, entre ellos:

Software Hardware Políticas

Sistemas Operativos RAM, ROM... Desregulación

Internet, html, Minitiaturización I&D


JavaScript...

Masificación ....
Aplicaciones, OOP

Bases de Datos Redes

Seguridad Digital ....

Sistemas

CRM GIS ....

ERP DWH

EAI CIT

Figura 10. Los elementos de convergencia tecnológica

Internet y desarrollo de aplicaciones (corporativas en nuestro caso) son caras diversas del
mismo conjunto de las TIC. Es el conjunto mismo formado por todos dichos factores lo
que ha generado la sinergia tecnológica para crear aplicaciones de gestión empresarial
que actúen en entorno Internet, para que las empresas hayan podido desempeñarse con
cierto éxito dentro de la Sociedad de la Información y la Economía Mundializada.