Hermann Alvino
Marzo 2004
I- Introducción
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.
Ventas/ Analítica/
Producción: Administrativos: Marketing: Estrategia:
..... .....
Cálculo Análisis
Procesamiento Ajuste
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.
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.
- 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)
La aplicación La aplicación
nuevo
operatividad y multicanal
visibilidad,
workflow,
existente
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:
- los dispositivos de seguridad y su topología para asegurar accesos seguros en cada nivel
de la aplicación
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 ....
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.
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
Física
Trasmisión de bits sobre la infraestructura propiamente dicha.
III-2. Arquitectura
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).
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.
Capa de Presentación
Cliente
Interfaz Navegador
aplicación (browser)
Bases de datos
- 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).
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 .
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.
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
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
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.
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
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.
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
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.
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.
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
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.
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.
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.
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.
Masificación ....
Aplicaciones, OOP
Sistemas
ERP DWH
EAI CIT
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.