Professional Documents
Culture Documents
CURSO
INTRODUCCIN A LOS
SISTEMAS DISTRIBUIDOS
BIENVENIDA
Nos es grato recibirte en esta iniciativa de preparacin y actualizacin de tus
conocimientos en el panorama que presentan las aplicaciones de los sistemas
distribuidos en la industria del Software.
Este curso de introduccin a los sistemas distribuidos presenta tanto las bases
tericas como la aplicacin prctica en plataformas actuales de desarrollo, al final
del mismo, contars con los conocimientos fundamentales requeridos en los
desarrolladores de software modernos.
Bienvenido(a) al curso de introduccin a los sistemas distribuidos, desendote
mucho xito en el curso y aprovechamiento del mismo.
INTENCIN EDUCATIVA
Contribuir al fortalecimiento de tu formacin profesional en los temas relevantes de
tecnologas de la informacin, especialmente en el campo de los sistemas
distribuidos, los cuales se han popularizado por la alta demanda de aplicaciones
de Internet. Con ello tendrs ms y mejores oportunidades de incorporarte o
mantenerte actualizado en e l mercado laboral.
OBJETIVOS GENERALES
Al finalizar el curso, el participante ser capaz de:
1. Entender y emplear los conceptos principales que caracterizan a los sistemas
distribuidos.
2. Distinguir los temas ms importantes sobre la implementacin de sistemas
distribuidos.
3. Desarrollar una aplicacin de sistema distribuido en una plataforma de
desarrollo conveniente.
4. Apreciar las ventajas y desventajas del ambiente distribuido en aplicaciones de
computacin mvil.
INTRODUCCIN
El proyecto PROSOFT surge como una alternativa en la capacitacin y formacin
de estudiantes y profesionales de la informtica, a travs de cursos, que
II
III
Agradecimiento y Reconocimiento
Despus de una ardua tarea de investigacin se ha logrado la creacin de una
obra vasta en conocimiento en el desarrollo de las Tecnologas de la Informacin y
Comunicacin.
La presente obra no hubiera sido posible sin la valiosa aportacin de destacados
autores y especialistas en la materia. Es por ello que a manera de reconocimiento
queremos agradecer su participacin:
IV
METODOLOGA
Se emplearn diferentes tcnicas didcticas para cubrir los temas del curso y se
har referencia en las actividades de aprendizaje sobre el manejo de ellas y la
forma de evaluacin basada en rbricas. Las tcnicas didcticas son las
siguientes:
APRENDIZAJE BASADO EN PROBLEMAS (ABP)
La tcnica de aprendizaje basado en problemas esta orientada al constructivismo,
que tiene por objeto conjuntar ideas o conocimientos individuales o grupales de los
alumnos sobre un tema, tarea o problema y colectivamente llegar a una sntesis,
conclusiones o realizacin de metas de aprendizaje. En esta tcnica los roles del
profesor o tutor, y de cada alumno de un grupo es de suma importancia. Los
pasos del ABP son los siguientes:
1. Presentacin del problema o tema
2. Lluvia de ideas y preguntas
3. Si idea relevante con respuesta, sigue paso 7
4. Si pregunta relevante sin respuesta y se puede investigar, sigue paso 5
5. Fijar meta de aprendizaje
6. Investigacin individual
7. Discusin y reporte.
8. Si todava hay ideas y preguntas sigue paso 3
9. Integracin de solucin.
COMPROBACIN DE LECTURA
La tcnica de comprobacin de lectura tiene como finalidad fomentar en el alumno
la habilidad de leer, analizar y comprender. Los materiales que se utilicen deben
ser recopilaciones de diferentes autores de un tema, para homogenizar los
conceptos e ideas referentes al tema.
La tcnica de comprobacin de lectura es una de las ms empleadas en los
procesos de enseanza-aprendizaje y tiene como finalidad conformar conceptos e
ideas propias al alumno, por lo que no pretende que se memoricen los temas
tratados.
ESTUDIO DE CASOS (EC)
El estudio de casos difiere de los sistemas de enseanza tradicionales porque
exige que el alumno tome parte activa en el anlisis de los problemas y en la toma
de decisiones para la solucin a situaciones reales muy especficas. El proceso
que se siga para tomar decisiones y las decisiones mismas, sustentadas en un
anlisis adecuado, son la clave. Este tipo de ejercicios nos permite aprender a
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.
FUENTES DE INFORMACIN
Referencias bibliografas:
Distributed Systems, Concepts and Design.
Couloris
Addison Wesley/Pearson
http://www.cdk3.net/
Distributed Systems: Principles and Paradigms
Tanenbaum
Prentice Hall
http://www.prenhall.com/divisions/esm/app/author_tanenbaum/custom/dist_sys_1
e/
Distributed Computing: Principles and Applications
Liu
Addison Wesley
http://www.csc.calpoly.edu/~mliu/book/
VI
REGLAS Y EVALUACIN
El curso tiene una serie de actividades que sirven como medio para que los
alumnos encuentren significado y propicien la construccin de los conocimientos
bajo las estrategias didcticas que el programa seala. No se trata de ejercicios
memorsticos o de una labor informativa del tutor sino de desafos, ejercicios e
investigaciones desarrolladas por los alumnos con un enfoque de aprendizaje
cooperativo e independiente. Los alumnos debern entregar con oportunidad las
tareas individuales y en equipo determinadas para cada tema y con el formato
adecuado. El informe de los ejercicios prcticos que deban presentar tiene la
modalidad de que detallen o amplen el funcionamiento de ellos o en su caso la
compilacin correspondiente. Los alumnos debern participar interactivamente
mediante los apoyos de e-mail, foros, y Chat para retroalimentar su trabajo en
equipo y comunicacin con el tutor. Rbrica de evaluacin de comprobacin de
lecturas como Evaluacin Sntesis.
Tareas que se integran: TI (1) y TE (1)
Rbrica de evaluacin de ejercicios prcticos como Evaluacin Ejercicios.
Tareas que se integran: TI (2.1, 2.2.1, 2.2.2, 2.3), TI (3.2, 3.4, 3.5, 3.6) y TI (5).
Rbrica de evaluacin de aprendizaje basado en problemas como Evaluacin
ABP.
Tareas que se integran: TE (3.1)
Rbrica de evaluacin de estudio de casos como Evaluacin EC.
Tareas que se integran: TI (3.3) y TE (3.3)
Rbrica de evaluacin de aprendizaje orientado a proyectos como Evaluacin
AOP.
Tareas que se integran: TE (4.2)
VII
CONTENIDO
BIENVENIDA.....................................................................................................................................................................II
INTENCIN EDUCATIVA ...........................................................................................................................................II
OBJETIVOS GENERALES ...........................................................................................................................................II
INTRODUCCIN .............................................................................................................................................................II
METODOLOGA ..............................................................................................................................................................V
FUENTES DE INFORMACIN.................................................................................................................................VI
REGLAS Y EVALUACIN.......................................................................................................................................VII
1.
2.
3.
FUNDAMENTOS .................................................................................................................................................3
VENTAJAS Y FACTORES DE DISTRIBUCIN.................................................................................................23
DESVENTAJAS Y FACTORES A CONSIDERAR...............................................................................................25
EVOLUCIN.....................................................................................................................................................26
TECNOLOGAS DE DESARROLLO............................................................................................................ 91
3.1.
INTRODUCCIN AL MIDDLEWARE................................................................................................................98
3.2.
PROGRAMACIN DE TRANSACCIONES......................................................................................................104
3.2 PROGRAMACIN DE TRANSACCIONES ...............................................................................................................108
3.3.
CORBA ........................................................................................................................................................124
3.4.
RMI ...............................................................................................................................................................161
3.5.
COM+ ...........................................................................................................................................................166
3.6.
W EB SERVICES.............................................................................................................................................221
4.
LENGUAJES DE PROGRAMACIN.........................................................................................................227
4.1.
4.2.
5.
COMPUTACIN MVIL...............................................................................................................................248
5.1.
5.2.
5.3.
5.4.
VIII
1. Introduccin
Objetivos
Al trmino del estudio del tema de introduccin, el participante comprender:
Los conceptos fundamentales que caracterizan a los sistemas distribuidos.
Las ventajas y desventajas que presentan los sistemas distribuidos.
La evolucin de los sistemas distribuidos.
Actividades (1)
Actividad 1.1
Realizar una sntesis sobre los conceptos de introduccin del curso, tomando
como base el Material de Apoyo .
Utilice tablas, ilustraciones, mapas mentales o en su caso mapas conceptuales.
Consultar por lo menos otra fuente de informacin y mencionarla, con el fin de
enriquecer su trabajo de sntesis.
La sntesis no debe de exceder ms de seis cuartillas.
Agregar sus objetivos de aprendizaje que desea alcanzar del curso.
Una vez completada la Actividad 1.1, colocar su documento en Tarea Individual (1)
Actividad 1.2
Discutir en equipo las caractersticas que muestran los sistemas distribuidos y
elaborar una sntesis.
Intercambien sus mensajes de discusin en el Foro Actividad 1.2
Una vez completada la Actividad 1.2, colocar su documento en Tarea en Equipo
(1)
Nota Importante: Ambas actividades 1.1 y 1.2 sern evaluadas de acuerdo a la
rbrica localizada en Evaluacin Sntesis.
Introduccin
La computacin distribuida ha ido tomando ms y ms importancia con el impresionante
desarrollo de las telecomunicaciones y conforme los avances tecnolgicos han hecho
posible la construccin de computadoras que caben en un escritorio pero con
procesadores muy poderosos y grandes capacidades de memoria y disco; Millones de
usuarios dependen de sistemas distribuidos diariamente para hacer transacciones
bancarias, reservaciones de vuelos, telefona, enviar correos electrnicos, obtener
informacin de todo tipo y realizar operaciones de compra-venta.
Se pueden resaltar las siguientes peculiaridades del tema:
Es un rea de cambios constantes, debido al vertiginoso avance de tecnologas,
tanto de hardware como de software de nuevas ideas, modelos conceptuales y
herramientas matemticas.
La complejidad de un sistema distribuido que abarca gran cantidad de
problemas de muy diversos tipos.
Sin embargo, existe ya un cuerpo de principios fundamentales, de ideas bsicas
subyacentes que permiten entender muchos de los aspectos de un sistema
distribuido. El objetivo de este curso es introducir al alumno a modelos, tcnicas
y conceptos relevantes, independientemente de las tecnologas del momento.
Desarrollar en el alumno una capacidad de anlisis, creatividad y razonamiento
que lo ayuden a atacar problemas de tipo distribuido.
El temario del curso trata de identificar aspectos esenciales de lo que es un
problema distribuido. Intenta ser una presentacin coherente y continua,
buscando que los temas presentados parezcan suceder unos a otros de manera
natural. Ms que aspirar a un alcance en cantidad de los temas presentados, es
decir, de informacin, el curso intenta desarrollar en el alumno habilidades.
Consideramos de primera importancia formar alumnos que puedan resolver
problemas complejos de sistemas distribuidos, as como alumnos con capacidad
crtica y creadora. Pensamos que la manera de lograr esto es: a) logrando un
entendimiento a fondo, y b) aprendiendo resolver problemas difciles;
enfocndose en material esencial, en principios fundamentales subyacentes no
solo a las tecnologas del momento, sino a cualquier otra que aparezca en el
futuro. Esto es especialmente importante en vista de las dos siguientes
peculiaridades de esta rea.
Primero, es esta un rea de cambios constantes, debido al vertiginoso avance
de tecnologas, tanto de hardware como de software: las redes de computadoras
cambian constantemente, incorporando lneas de comunicacin ms rpidas
cada vez, y de nuevos tipos, como fibra ptica y redes mviles de radio. Nuevas
arquitecturas como ATM, sistemas cada vez mas sofisticados de televisin
1.1. Fundamentos
1.1.1 Qu es un Sistema Distribuido?
Antes de definir lo que es un Sistema Distribuido, vamos a definir un trmino
ms general: La Computacin Distribuida, podemos definirla de muchas
maneras, este trmino se utiliza indiscriminadamente para referirse a cualquier
sistema en el que mltiples agentes autnomos, cada uno con capacidades de
cmputo individual, se comunican entre s y afectan mutuamente su
comportamiento. Los agentes, usualmente llamados procesadores, procesos o
nodos, pueden ser desde computadoras completas hasta autmatas celulares
con capacidad de cmputo y memoria muy limitados que se pueden comunicar
mediante mensajes.
La Computacin Distribuida hace referencia a cualquier evento en el cual se
maneja un sistema en una red de computadoras y trata de describir las
tendencias hacia la funcionalidad distribuida: sistemas distribuidos,
procesamiento distribuido, bases de datos distribuidas y cualquier otro trmino
computacional que sea distribuido. Podemos decir entonces, que la
Computacin Distribuida se refiere a los servicios que provee un Sistema de
Computacin Distribuido.
A pesar del tiempo transcurrido, esta definicin sigue siendo, en esencia, vlida.
As, para Coulouris un sistema distribuido es aqul que est compuesto por
varias computadoras autnomas conectadas mediante una red de
comunicaciones y equipadas con programas que les permitan coordinar sus
actividades y compartir recursos. Bal ofrece una definicin muy similar: ``Un
sistema de computacin distribuida est compuesto por varios procesadores
autnomos que no comparten memoria principal, pero cooperan mediante el
paso de mensajes sobre una red de comunicaciones''. Y segn Schroeder, todo
sistema distribuido tiene tres caractersticas bsicas:
10
11
12
13
14
15
16
17
18
19
1.1.2.7 Transparencia
Se dice que un sistema distribuido es transparente, cuando este es capaz de
presentarse ante los usuarios y las aplicaciones como si fuese un sistema que
corre en una sola computadora, y no como un sistema cuyos procesos y
recursos estn distribuidos fsicamente en varias computadoras.
1.1.2.7.1 Tipos de Transparencia
Segn el Manual de Referencia ANSA y el Modelo de Referencia para el
Procesamiento Distribuido Abierto de la Organizacin Internacional de
Estndares (ISO 1995), el concepto de transparencia de puede aplicar a 8
aspectos diferentes de un sistema distribuido:
Transparencia de Acceso: oculta las diferencias entre la representacin de los
datos y la manera en que los recursos son accedidos.
Transparencia de Ubicacin: oculta la localizacin de los recursos y permite el
acceso a los mismos sin la necesidad de conocer su localizacin.
Transparencia de Migracin: oculta que un recurso o un cliente del sistema sea
reubicado, lo que permite hacer dichas reubicaciones sin afectar la operacin de
los usuarios y los servicios.
Transparencia de Recolocacin: oculta que un recurso o un cliente del sistema
pueda moverse a una ubicacin diferente mientras estn en uso.
Transparencia de Replicacin: oculta la existencia de mltiples ejemplares del
mismo recurso.
Transparencia de Concurrencia: oculta que un recurso sea compartido por varios
usuarios sin interferir entre ellos mismos.
Transparencia Frente a Fallos: oculta el fallo y recuperacin de un recurso
dentro del sistema, dejando que los usuarios terminen sus tareas a pesar de los
fallos de hardware o software que pudieran presentarse.
Transparencia de Persistencia: oculta si un recurso (de software) esta
almacenado en memoria o en disco.
Desde el punto de vista de los usuarios, la transparencia se logra cuando:
Sus pedidos se satisfacen con ejecuciones en paralelo en distintas mquinas.
Se utilizan una variedad de servidores de archivo s.
El usuario no necesita saberlo ni notarlo.
La transparencia desde el punto de vista de los programas significa disear la
interfaz de llamadas al sistema de modo que no sea visible la existencia de
varios procesadores.
20
21
22
23
24
25
1.3.5 Opciones
La disponibilidad de muchas opciones y decisiones puede ser tanto buena, como
mala. En ocasiones tener muchas opciones nos quita tiempo, puesto que
tenemos que analizar, entender y probar todas las que estn disponibles antes
de llegar a tomar una decisin cobre cual es la mejor. Por el lado contrario, el
tener muchas opciones nos permite disear un sistema que este conformado por
los elementos que mejor satisfagan las necesidades de los usuarios.
1.4. Evolucin
1.4.1 Etapas de la evolucin de los sistemas distribuidos
La computacin distribuida ha evolucionado en los ltimos veinte aos y
continuar evolucionando por muchos aos ms. Durante esta evolucin, hemos
acumulado muchos trminos tal como procesamiento distribuido, procesamiento
distribuido cooperativo, procesamiento distribuido de datos, computacin clienteservidor, computacin en red y computacin en sper-red. Brevemente veremos
la evolucin y trataremos de poner en perspectiva algunos de stos trminos.
Durante los 70s, la computacin distribuida estaba caracterizada por
mainframes y mini computadoras interconectadas a travs de redes de rea
amplia (WANs). stas redes eran lentas, en el rango de 2400 a 9600 bits por
segundo (bps) y las computadoras intercambiaban informacin a travs de
emulacin de terminales y transferencia de archivos. Regularmente, las mini
computadoras eran emuladas como terminales tal que los datos en la
mainframe pudieran ser accedidos a travs de emulacin de terminal. En
algunos casos, los archivos eran transferidos entre mainframes y mini
computadoras a travs de paquetes de transferencia de archivos. Muchos
paquetes de transferencia de archivos y emulacin de terminal fueron
desarrollados en este periodo. Aunque se realiz mucha investigacin en bases
de datos distribuidas en este periodo, esta tecnologa no fue utilizada ni
comercializada. Dos trminos se volvieron populares en esta poca: (1)
procesamiento distribuido que se refiere a procesos de aplicaciones en mltiples
computadoras y (2) procesamiento distribuido de datos que se refiere a datos
como a procesos en diferentes computadoras. Independientemente de los
trminos utilizados, las tecnologas de intercambio de informacin fueron
transferencia de archivos y emulacin de terminales.
Durante los 80s sucedieron tres cambios fundamentales: proliferacin de
computadoras de escritorio (desktop computers), disponibilidad de redes de
rea local (LANs) y el uso comn de mayores velocidades de transferencia de
datos (4 a 16 millones de bits por segundo para LANs y 56 Kbps a 1.54 Mbps
para WANs). En esta poca, los sistemas de computacin distribuida consistan
de mainframes, mini computadoras y computadoras de escritorio,
26
27
28
29
30
31
Tarea Individual
Entregar la sntesis del tema de introduccin en documento Word, con el nombre
INTRODUCCION.DOC
Tarea en Equipo
Entregar la sntesis en equipo sobre las caractersticas de sistemas distribuidos,
como CARACTERISTICAS.DOC.
32
2.
3.
4.
5.
33
2. En trminos de arquitectura:
Los distintos aspectos que caracterizan a una aplicacin (proceso,
almacenamiento, control y operaciones de entrada y salida de datos) en el
sentido ms amplio, estn situados en ms de un computador, los cuales se
encuentran interconectados mediante una red de comunicaciones.
3. IBM define al modelo Cliente/Servidor
Es la tecnologa que proporciona al usuario final el acceso transparente a las
aplicaciones, datos, servicios de cmputo o cualquier otro recurso del grupo de
trabajo y/o, a travs de la organizacin, en mltiples plataformas. El modelo
soporta un medio ambiente distribuido en el cual los requerimientos de servicio
hechos por estaciones de trabajo inteligentes o "clientes'', resultan en un trabajo
realizado por otros computadores llamados servidores.
Para entender mejor las definiciones antes mencionadas, analizaremos ahora
algunos de los conceptos mencionados en dichas definiciones:
Un Cliente es el que inicia un requerimiento de servicio. El requerimiento inicial
puede convertirse en mltiples requerimientos de trabajo a travs de redes LAN
o WAN. La ubicacin de los datos o de las aplicaciones es totalmente
transparente para el cliente.
Un Servidor es cualquier recurso de cmputo dedicado a responder a los
requerimientos del cliente. Los servidores pueden estar conectados a los
clientes a travs de redes LANs o WANs, para proveer de mltiples servicios a
los clientes tales como impresin, acceso a bases de datos, fax, procesamiento
de imgenes, etc. Es importante mencionar que un servidor no es
necesariamente un dispositivo fsico (una computadora) sino que hay que
entender al servidor como un proceso que se encarga de atender las peticiones
de un cliente.
Con estos elementos podemos ya darnos una idea de lo que es el modelo
cliente servidor, sin embargo, es necesario analizar ms a fondo las
caractersticas de la arquitectura si queremos llegar a entender por completo el
funcionamiento de la misma.
2.1.2. Elementos de la Arquitectura Cliente/Servidor
Una arquitectura es un entramado de componentes funcionales que
aprovechando diferentes estndares, convenciones, reglas y procesos, permite
integrar una amplia gama de productos y servicios informticos, de manera que
pueden ser utilizados eficazmente dentro de la organizacin.
34
35
36
37
38
39
40
41
3.
Leer desde y escribir en el stream de acuerdo al protocolo del servicio.
Para ello emplear alguna de las facilidades del paquete java.io.
4.
5.
Cerrar el socket.
La forma de implementar un servidor ser:
42
3.
4.
5.
Vamos a ver todo esto con un sencillo ejemplo: una aplicacin cliente/servidor
de eco, es decir, el servidor repite lo mismo que le enva el cliente, hasta que el
cliente quiere finalizar el servicio, para lo cual enva la palabra "Bye" al servidor.
CDIGO DEL CLIENTE
Analizar el siguiente cdigo del cliente EcoCliente.java:
import java.net.*;
import java.io.*;
public class EcoCliente {
public static void main(String[] args) throws IOException {
Socket socketCliente = null;
BufferedReader entrada = null;
PrintWriter salida = null;
// Creamos un socket en el lado cliente, enlazado con un
// servidor que est en la misma mquina que el cliente
// y que escucha en el puerto 4444
try {
socketCliente = new Socket("localhost", 4444);
// Obtenemos el canal de entrada
entrada = new BufferedReader(new
InputStreamReader(socketCliente.getInputStream()));
43
44
45
Ejercicio RPC
Los RPC o Llamados a Procedimientos Remotos (Remote Procedure Call) son
mecanismos que permiten crear una comunicacin entre procesos (clienteservidor), al igual que los Sockets, pero la diferencia con estos es que mientras
que los Sockets permiten enviar y transmitir caracteres, los RPC utilizan a los
Sockets para crear una comunicacin de ms alto nivel.
Los RPC permiten llamar a una funcin que est en otro programa y
generalmente en otra mquina, para lo cual el paso de parmetros a la funcin
remota se efecta a travs de algn protocolo de representacin de datos (XDR,
eXternal Data Representation).
Mientras que a nivel de la capa de transporte el concepto de puerto existe para
poder enviar informacin entre procesos, los RPC definen un concepto llamado
nmero de programa. Este, junto con el uso de la versin del programa permite
que los servidores y clientes puedan comunicarse.
Programacin con RPCs
Dentro de las funciones para programar con RPC existen tres niveles:
46
47
48
49
50
Paso de mensajes
51
52
53
2. Primitivas de Comunicacin
Primitivas con bloqueo o sin bloqueo.- una primitiva tiene una semntica sin
bloqueo cuando su ejecucin no produce un retardo en el proceso que la invoca;
de otra manera la primitiva es con bloqueo.
Existen bsicamente cuatro tipos de comunicacin para este tipo de primitivas:
1. Send con bloqueo (CPU inactivo durante la transmisin de los mensajes)
2. Send sin bloqueo, sin copia (no se puede sobrescribir hasta que el mensaje
haya sido ledo)
3. Send sin bloqueo, con copia (se desperdicia el tiempo del CPU para la copia
adicional)
4. Send sin bloqueo, con interrupcin (dificulta la programacin)
54
55
escritas en un
de alto nivel
en una red. El
Presentacin y
56
57
58
59
Ejemplos:
CLNP de OSI
IP de la familia TCP/IP
IPX de Novell
X.25 PLP (Packet-Level Protocol)
Capa de Transporte
Comprende:
Ejemplos:
TP0-TP4 de OSI
TCP y UDP de la familia TCP/IP
SPX de Novell
Capa de Sesin
Comprende:
60
Ejemplos:
RPC de Sun Microsystems
Protocolo OSI Session
Capa de Presentacin ( Representacin)
Comprende:
Ejemplos:
ASN.1 (Abstract Syntax Notation) de OSI
XDR (External Data Representation) de Sun Microsystems
DES (Data Encryption Standard)
Capa de Aplicacin
Comprende:
Aplicaciones de red.
Interfaces de programacin para aplicaciones de us uario (APIs).
61
62
Protocolo
Servicio
Capa OSI
Transmission Control
Protocol (TCP)
Transferencia de archivos.
5-7
Telnet
Emulacin de terminal.
5-7
63
source host
destination host
Application
Application
messages or streams
Transport
Transport
Datagrams (UDP) or
segments (TCP)
Internet
Internet
IP datagrams
Network Interface
Network Interface
network frames
Network Hardware
64
65
66
67
68
read(archivo, datos)
read(socket, datos)
o
receive(socket, datos)
write(socket, datos)
o
send(socket, datos)
close(socket)
write(archivo, datos)
close(archivo)
69
Tipo
int
type
int
protocol
int
Significado
Familia de protocolos (AF_INET para
TCP/IP).
Tipo de servicio (SOCK_STREAM para TCP
o SOCK_DGRAM para UDP).
Nmero de protocolo para la familia de
protocolos dada; normalmente 0.
Connect
Despus de crear un socket, un cliente llama a connect para establecer una
conexin activa a un servidor remoto.
Uso:
retcode = connect (socket, addr, addrlen);
Argumentos:
Argumento
socket
addr
addrlen
Tipo
int
sockaddr *
int
Significado
Descriptor del socket.
Punto de conexin en la mquina remota.
Longitud del segundo argumento.
Write
Tanto clientes como servidores usan write para enviar informacin a travs de
una conexin de red. Esta funcin se usa principalmente sobre TCP.
70
Uso:
retcode = write (socket, buf, buflen);
Argumentos:
Argumento
socket
buf
buflen
Tipo
int
char *
int
Significado
Descriptor del socket.
Apuntador al buffer que contiene los datos.
Longitud en bytes del buffer.
Read
La llamada read es usada tanto por clientes como por servidores para recibir
datos de una conexin de red, principalmente sobre TCP.
Uso:
retcode = read (socket, buf, buflen);
Argumentos:
Argumento
socket
buf
buflen
Close
Tipo
int
char *
int
Significado
Descriptor del socket.
Apuntador al buffer que recibe los datos.
Longitud en bytes del buffer.
Tipo
int
Significado
Descriptor del socket.
Bind
Cuando se crea un socket, ste no sabe cules son las direcciones local y
remota de la conexin. Una aplicacin llama a bind para especificar la direccin
local del socket. Esta llamada es usada principalmente por servidores para
indicar el puerto conocido en el cual esperarn conexiones.
71
Tipo
int
sockaddr *
addrlen
int
Significado
Descriptor del socket.
Apuntador a la estructura que especifica la
direccin IP y el nmero de puerto de
protocolo.
Tamao en bytes del segundo argumento.
Listen
Cuando se crea un socket, ste no queda ni activo (listo para ser usado por un
cliente) ni pasivo (listo para ser usado por un servidor). Los servidores
orientados a la conexin llaman a listen para poner un socket en modo pasivo,
es decir, listo para aceptar peticiones de conexin. Esta llamada no aplica para
UDP.
Uso:
retcode = listen (socket, queuelen);
Argumentos:
Argumento
socket
Queuelen
Tipo
int
int
Significado
Descriptor del socket.
Tamao de la cola de conexiones
pendientes.
Accept
Despus de que un servidor llama a socket para crear un socket, bind para
especificar la direccin local, y listen para poner el socket en modo pasivo, se
llama a la funcin accept con el fin de crear un nuevo socket que atienda a la
nueva conexin. El socket original, que maneja un puerto conocido, se usa
para aceptar otras peticiones de conexin.
Uso:
newsock = accept (socket, addr, addrlen);
Argumentos:
Argumento
socket
Tipo
int
Significado
Descriptor del socket original.
72
sockaddr *
addrlen
int *
73
74
75
Consideraciones de Transparencia
Aunque el objetivo del mecanismo de RPC es hacer que un procedimiento
remoto se pueda invocar en forma transparente, es necesario considerar los
siguientes puntos:
Paso de parmetros.
Asociacin entre el cliente y el servidor.
Protocolo de transporte.
Manejo de excepciones.
Semntica de la llamada.
Representacin de datos.
Rendimiento.
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.
76
77
78
79
Material 2.3.
80
81
82
83
Ejemplo a 2 Capas
Cliente
Presentacin
Presentacin
Presentacin
(Servicios de Usuario)
Reglas de Negocio
(Lgica de Aplicacin)
Cliente
Red
Reglas de Negocio
(Lgica de Aplicacin)
Reglas de Negocio
(Lgica de Aplicacin)
Red
Datos y Recursos
(Servicios de Datos)
Presentacin
(Servicios de Usuario)
Reglas de Negocio
(Lgica de Aplicacin)
Datos y Recursos
Datos
Datos
(Servicios de Datos)
Servidor
Servidor
Ejemplo a 3 Capas
Presentacin
(Servicios de Usuario)
Presentacin
Cliente
Red
Reglas de Negocio
(Lgica de Aplicacin)
Reglas de Negocio
(Lgica de Aplicacin)
Middleware
+
Servidor1
Red
Datos y Recursos
(Servicios de Datos)
Datos
Servidor2
Base de Datos
84
Por ejemplo, para una aplicacin diseada a 3 capas podemos tener una
aplicacin cuya capa de presentacin pueda ser provista de dos formas. Una de
ellas a travs de la interfaz grfica que puede ser construida con un lenguaje de
programacin. La otra a travs de un navegador para Internet (browser)
empleando pginas Web (construidas en forma esttica o dinmica).
La capa de negocio puede ser implementada a travs tecnologa de
componentes. Y la capa de datos a travs de componentes de acceso a
manejadores de bases de datos.
Existe una discusin respecto a la implementacin de la capa de datos. Algunos
autores o diseadores consideran que el manejador de base de datos y los
procedimientos almacenados conforman la capa de datos. Otros consideran que
debe existir por lo menos una capa de objetos que administren e interacten con
el manejador de bases de datos y los procedimientos almacenados; y todos
estos elementos
85
Escenario 2.3.
La aplicacin del ejemplo consiste en una interfaz grfica que solicita al usuario
su nombre y fecha de nacimiento. A travs de dos botones principales, el
primero Calcular edad y el segundo Guardar. Calcular edad obtendr la
fecha de sistema y calcular la diferencia en aos entre sta y la fecha de
nacimiento capturada. Guardar almacenar la informacin en una base de
datos.
86
87
88
89
Atributos
Aplicacin de
la
Informacin
Conexiones
Especialistas
Arriba del
Estndar
(10-9)
La informacin
revisada permiti
a los estudiantes
comprender con
claridad los
ejercicios y
programas.
(10-9)
Los estudiantes
han demostrado el
significado del
material
elaborando
correctamente,
mientras
extienden y
explican la
informacin,
incorporndola en
el estudio del
tema.
Debajo del
Estndar
En el Estndar
Puntos de
Atributo
Obtenidos
(8.5-7)
(6.5-0)
La informacin La informacin
revisada permiti revisada no
a los estudiantes permiti a los
comprender
estudiantes
solamente los
comprender
ejercicios y
los ejercicios y
programas.
programas.
(8.5-7)
(6.5-0)
Los estudiantes
han demostrado
el significado del
material
incorporndolo
correctamente
en el estudio del
tema.
Los
estudiantes no
han hecho
contacto con el
material,
simplemente
sin incorporar
la informacin
en su estudio
del tema.
90
3. Tecnologas de Desarrollo
Panorama General
Definicin de Actividades
Agenda
Metodologa Actividades
Evaluacin
91
Metodologa
Introduccin
Estrategias de Aprendizaje
o Aprendizaje Basado en Problemas
o Estudio de Casos
o Aprendizaje Orientado a Proyectos
Introduccin
En el sentido de abordar el tema de tecnologas de desarrollo
dentro de los sistemas distribuidos se plantearan las bases para
que los alumnos trabajen en un ambiente de colaboracin a
travs de los pasos de las tcnicas didcticas de aprendizaje
basado en problemas (ABP), estudio de casos (EC) y
aprendizaje orientado a proyectos (AOP).
Al incorporar las estructuras de estas tcnicas se identifican los
roles dentro de los grupos o equipos de alumnos, as como del
profesor o tutor.
92
Descripcin de un conjunto de
problemas o sucesos.
Qu es lo que ya s sobre el
problema?.
Estudio individual:
Fuentes externas de
informacin.
Integracin de los
conocimientos de varias
disciplinas.
93
Roles:
o Equipo de Trabajo (Miembro,
Moderador y/o Secretario).
Investigacin individual.
Discusin grupal.
Discusin plenaria.
o Tutor o Profesor.
Planteamiento del problema.
Seguimiento e integracin.
Apoyos:
o Chat
o Foro
o E-mail
o Fuentes de Informacin
Estudio de Casos
Con la tcnica de EC los alumnos aprendern a:
1) Analizar y ejercitar sobre un caso tpico de estudio.
2) Colaborar y dirigir el aprendizaje utilizando recursos adecuados.
3) Defender el conocimiento adquirido y actuar en forma responsable.
Problema:
Estudio individual:
Identificacin de alternativas.
Defensa de postura.
Reflexin de cada
participante.
Integracin de propuesta.
Intercambio de propuestas.
Confrontacin de ideas.
Preparacin de propuesta
definitiva.
94
Problema:
Descripcin de un situacin
concreta y real.
Producto terminado:
Reporte tcnico
Tpico seleccionado:
Anlisis y definicin de
necesidades.
Planeacin de actividades.
Manual de usuario
Presentacin
Diseo y prototipo.
Actividades
Subtema
Actividad de Aprendizaje
Introduccin al middleware
Programacin de
Transacciones
CORBA
RMI
COM+
Web Services
95
Actividades
Con base al estudio del tema 3 de tecnologas de
desarrollo, los alumnos propondrn por equipo, de forma
preliminar, el tpico de implementacin de un sistema
distribuido trivial, con objeto de cubrir ms adelante el
tema 4, Lenguajes de Programacin.
Tema 4
Implementacin de un
sistema distribuido
Actividad de Aprendizaje
Utilizar AOP para abordar
un proyecto sencillo.
Evaluacin
Rbrica de
evaluacin para
el proceso de
ABP
96
Evaluacin
Rbrica de
evaluacin para
el proceso de
EC
Evaluacin
97
Evaluacin
98
Introduccin al Middleware
Escenario
Escenario Middleware
Mquina B
Aplicaciones
Mquina C
Lenguajes de Programacin
MIDDLEWARE
Sistema
Hardware
Sistema
Hardware
Sistema
Hardware
Red de Interconexin
99
Escenario Middleware
Actividad 3.1
Introduccin al Middleware
Utilizando la tcnica de ABP discutir en equipo los modelos del middleware en la
actualidad y proponer una representacin abstracta de ellos.
Foro de discusin Foro Middleware
Coloque su trabajo de equipo en Tarea en Equipo 3.1
Se proporciona Material de Apoyo 3.1, solamente como introduccin.
100
Formas de Middleware
El middleware puede asumir las formas siguientes:
Monitores de procesamiento de transacciones (TP) que proveen herramientas y
un entorno para desarrollo y despliegue de las aplicaciones distribuidas.
Llamada a procedimientos remotos (RPCs) que permite distribuir la lgica de
una aplicacin por la red. La lgica del programa en sistemas remotos puede
ejecutarse tan simplemente como llamando una rutina local.
El middleware orientado a mensaje (MOM) que proporciona el intercambio de
datos de programa a programa, habilitando la creacin de aplicaciones
distribuidas. El MOM es anlogo a envo de correo electrnico en el sentido que
101
102
Atributos
Definicin del
Problema
Profundidad de
Estudio
Arriba del
Estndar
En el
Estndar
Debajo del
Estndar
(5 -4.5)
(4 -3.5)
(3-0)
Sus
intervenciones
mostraron
bastante
relacin con
el escenario y
fueron la base
para abordar
el problema.
Sus
intervenciones
mostraron
relacin con
el escenario,
pero no
lograron
aterrizarlas
del todo para
abordar el
problema.
Participacin,
pero sus
intervenciones
no estaban
relacionadas
con el
escenario ni
condujeron
para abordar
el problema.
(10-9 )
(8.5 -7)
(6.5 -0)
La
La
informacin
informacin
reunida
reunida
incluye los
incluye los
elementos
elementos
esenciales del esenciales del
tema y un
tema y un
estudio en
estudio
profundidad
normal del
del tema.
tema.
(5 -4.5)
(4 -3.5)
Puntos de
Atributo
Obtenidos
La
informacin
reunida est
incompleta y
no incluye los
elementos
esenciales del
tema.
(3-0)
Su aportacin
Hizo
Hizo pocas
fue
bastantes
determinante aportaciones, aportaciones
para la
pero le falto y sin relacin
Solucin/explicacin
elaboracin aterrizarlas en
con las
del problema
del reporte
propuestas
posibles
final de la
concretas de soluciones del
solucin del
solucin al
problema.
problema.
problema.
103
Programacin de Transacciones
Escenario
Qu es una transaccin?
104
Qu es una transaccin?
La creacin de una transaccin completa puede requerir la cooperacin de
varios componentes. En el ejemplo de la figura, la aplicacin de entrada de
pedidos consta de componentes que, mediante DCOM (Distributed Component
Object Model), recuperan y procesan informacin de varios servidores.
MTS(Microsoft Transaction Server) proporciona servicios integrados de
programacin que permiten a los programadores asegurarse de que toda la
transaccin tiene xito o se anula por completo, sin necesidad de escribir
grandes cantidades de cdigo personalizado para controlar los mecanismos de
la transaccin.
Escenario de Transacciones
105
Escenario de Transacciones
EJERCICIO
Utilice un manejador de base datos relacionales.
Cree una tabla llamada Cuentas con los campos Clave y Saldo.
Inserte 2 registros, la cuenta con clave 100 y la cuenta con clave 200; ambas con $1000.00
El cdigo SQL para crear una transferencia bancaria de $100.00 de la cuenta 100 a la 200 es:
UPDATE Cuentas SET Saldo=Saldo 100.00 WHERE Clave = 100
UPDATE Cuentas SET Saldo=Saldo + 100.00 WHERE Clave = 200
Ejecute las instrucciones de SQL para ver que resultados produce en las cuentas:
SELECT * FROM Cuentas
Ejecute slo la primera instruccin
Cierre la aplicacin con la que introduce los comandos SQL
Vuelva a entrar a la aplicacin y consulte el contenido de la cuenta. Obviamente slo qued
afectada una cuenta y eso es una falta de consistencia en la informacin. Con esto se simula
la falla de la aplicacin y el rompimiento de las propiedades cidas.
Ahora ejecute el siguiente cdigo
BEGIN TRANSACTION
UPDATE Cuentas SET Saldo=Saldo 100.00 WHERE Clave = 100
UPDATE Cuentas SET Saldo=Saldo + 100.00 WHERE Clave = 200
COMMIT TRANSACTION
Analice el resultado
Ahora slo ejecute slo las primeras 2 lneas del cdigo anterior que consta de 4 lneas.
Cierre la aplicacin con la que introduce los comandos SQL
Vuelva a entrar a la aplicacin y consulte el contenido de la cuenta.
Analice la importancia del manejo de transacciones.
Actividad 3.2
Programacin de Transacciones
Realizar el ejercicio del Escenario Transacciones y colocar su reporte en Tarea
Individual 3.2
Se anexa Material de Apoyo 3.2 como consulta y ampliacin de comprensin del
rubro de transacciones.
106
Atributos
Arriba del
Estndar
En el Estndar
Debajo del
Estndar
Puntos de
Atributo
Obtenidos
(10-9 )
(8.5-7)
(6.5-0)
La informacin
La informacin
La info rmacin
revisada
revisada permiti
revisada no
permiti a los
Aplicacin de a los estudiantes
permiti a los
estudiantes
la
comprender con
estudiantes
comprender
Informacin
claridad los
comprender
solamente los
ejercicios y
los ejercicios y
ejercicios y
programas.
programas.
programas.
(10-9 )
(8.5-7)
(6.5-0)
Los estudiantes
han demostrado
Los
el significado del
Los estudiantes estudiantes no
material
han demostrado han hecho
elaborando
el significado del contacto con
correctamente,
Conexiones
el material,
material
mientras
Especialistas
incorporndolo simplemente
extienden y
correctamente sin incorporar
exp lican la
en el estudio del la informacin
informacin,
en su estudio
tema.
incorporndola en
del tema.
el estudio del
tema.
Total de Puntos Obtenidos
107
Descubrimiento/Nombrado
Seguridad
Etc.
Para la Capa de Negocio de una aplicacin el control de transacciones es crucial
para mantener la consistencia e integridad de las operaciones.
Una transaccin es un conjunto de acciones que deben efectuarse como una
unidad indivisible de trabajo. Ciertamente al ejecutarse el conjunto de acciones
que conforma la transaccin, puede ocurrir algn error fsico o lgico en su
ejecucin, y de ser as todas las acciones que haban sido efectuadas deben
revertirse. Esta accin ayuda a mantener la consistencia e integridad de la
informacin.
Este tipo de mecanismos deben conformarse en una serie de servicios
disponibles al programador y ofrecer la caracterstica de TRANSPARENCIA. Es
decir, es transparente para el programador el revertir automticamente las
acciones u operaciones efectuadas; el programa se limita a especificar el inicio
108
109
110
111
112
113
114
115
Por tal motivo, deben existir Monitores de Transacciones con Objetos que
fungen como servidores de objetos de aplicacin. Los cuales disponen los
objetos o componentes hacia los objetos o componentes que solicitan estos
servicios.
116
117
118
119
120
121
En la segunda fase, ya una vez recibida la ejecucin de las acciones por los
administradores de recursos quedando pendiente la confirmacin local en cada
uno. Se manda la orden de confirmacin en todos los administradores de
recursos para que confirmen. Si un administrador de recursos provoca un error,
el administrador de transacciones manda la seal de reversin a los
administradores de recursos que anteriormente haban tenido xito, cada uno de
estos revierten su transaccin local.
122
123
3.3. CORBA
CORBA
Escenario
124
Qu es CORBA?
125
Referencia
del Objeto
Implementacin
del Objeto
IDL
DII
Stubs
IDL
Skeleton
ORB
Interface
E DSI
Object Adapter
ORB
Descripcin de elementos
126
Descripcin de elementos
o Registrar las implementaciones de objetos.
Cliente CORBA
o Stubs del IDL del Cliente
o Inicializando el ORB
o Usando el Servicio de Nombres
o Invocando los Mtodos Remotos
o Usando los Parmetros Out e Inout
Servidor CORBA
o Skeleton del IDL del Servidor
o Implementacin de Objetos CORBA
o Objetos CORBA y el Servicio de Nombres
o Esperando por la Invocacin
o Usando los Parmetros In e Inout.
127
Escenario CORBA
Mediante la tcnica de Estudio de Caso, los alumnos realizarn en equipo las
actividades siguientes:
Actividad 3.3
Estudio de Caso CORBA (Escenario CORBA)
Realizar investigacin individual y colocar en Tarea Individual 3.3
Discutir en equipo las investigaciones y colocar reporte en Tarea en Equipo 3.3.
Utilice como apoyo el Foro CORBA.
Se anexa Material de Apoyo 3.3.
128
Atributos
Arriba del
Estndar
En el
Estndar
Debajo del
Estndar
Puntos de
Atributo
Obtenidos
(5 -4.5)
(4 -3.5)
(3-0)
Sus
Participacin,
Sus
intervenciones
pero sus
intervenciones mostraron
intervenciones
mostraron
relacin con
no estaban
bastante
el escenario,
Definicin del
relacionadas
relacin con
pero no
Problema
con el
el escenario y
lograron
escenario ni
fueron la base aterrizarlas
condujeron
para abordar del todo para
para abordar
el problema.
abordar el
el problema.
problema.
(10-9 )
(8.5 -7)
(6.5-0)
La
La
La
informacin
informacin
informacin
revisada
revisada
revisada no
permiti a los permiti a los
Aplicacin de la
permiti a los
estudiantes
estudiantes
Informacin
estudiantes
comprender comprender
comprender el
con claridad parcialmente
ejercicio de
el ejercicio de el ejercicio de
algoritmos.
algoritmos.
algoritmos.
(5 -4.5)
(4 -3.5)
(3-0)
Su aportacin
Hizo
Hizo pocas
fue
bastantes
determinante aportaciones, aportaciones
para la
pero le falto y sin relacin
Solucin/explicacin
elaboracin aterrizarlas en
con las
del problema
del reporte
propuestas
posibles
final de la
concretas de soluciones del
solucin del
solucin al
problema.
problema.
problema.
Total de Puntos Obtenidos
129
130
131
132
Crear objetos: Cmo hace el programador para crear una instancia del
objeto Venta? Es necesario que exista un mecanismo para indicar al
componente que cree una instancia del objeto Venta. Una vez creada la
instancia Cmo se logra acceder a sus propiedades o mtodos?
Estas son slo algunas de las cuestiones que el programador tendr que
resolver para poder utilizar el componente. En el caso de que el programador
llegara a comprar otro componente, es seguro que desea que los mecanismos
de utilizacin sean uniformes para no tener que resolverlas nuevamente. Los
servicios middleware que provee CORBA buscan resuelven estos problemas.
3.3.2 Generalidades de CORBA
CORBA es un Middeware o marco de trabajo estndar y abierto de objetos
distribuidos que permite a los componentes en la red nter operar en un
ambiente comn sin importar el lenguaje de desarrollo, sistema operacional, tipo
de red, etc. En esta arquitectura, los mtodos de un objeto remoto pueden ser
invocados transparentemente en un ambiente distribuido y heterogneo a
travs de un ORB (Object Request Broker). Adems del objetivo bsico de
ejecutar simplemente mtodos en objetos remotos, CORBA adiciona un conjunto
de servicios que amplan las potencialidades de stos objetos y conforman una
infraestructura slida para el desarrollo de aplicaciones crticas de negocio.
CORBA es la respuesta del Grupo de Gestin de Objetos (Object
Management Group OMG) a la necesidad de interoperabilidad ante la gran
proliferacin de productos hardware y software. CORBA permite a una
133
134
135
136
Interfaces
Una Interfaz es una descripcin de un conjunto de posibles operaciones que un
cliente puede requerir de un objeto. Un objeto satisface una Interfaz si este
puede ser especificado como el objeto destino en cada requerimiento potencial
descrito por la Interfaz.
Un tipo de Interfaz es un tipo que es satisfecho por cualquier objeto que
satisface una Interfaz particular.
Las Interfaces en OMG son especificadas en IDL (Interface Definition
Language). La herencia de Interfaces provee los mecanismos para permitir a un
objeto soportar mltiples Interfaces. La Interfaz principal es simplemente la
Interfaz ms especifica que el objeto soporta y consiste en todas la operaciones
en la transitive closure del grafo de herencia de Interfaz.
Operaciones
Una Operacin es una entidad identificable que denota un servicio que puede
ser requerido. Una operacin es identificada por un identificador de operacin y
tiene una firma que describe los valores legtimos de los parmetros requeridos
y resultados retornados.
Las excepciones son una indicacin que un requerimiento de operacin no ha
ejecutado exitosamente.
Un contexto de requerimiento provee informacin adicional y especifica de la
operacin que puede afectar el rendimiento de un requerimiento.
Semntica de ejecucin
Dos estilos de semntica de ejecucin son definidos para el modelo de objeto:
137
Atributos
Una Interfaz puede tener atributos. Un atributo puede ser slo lectura o lecturaescritura.
Implementacin de objetos
El modelo de implementacin consiste en dos partes: el modelo de ejecucin y
el modelo de construccin. El modelo de ejecucin describe como los servicios
son ejecutados y el modelo de construccin describe como los servicios son
definidos.
Elementos de OMA
138
139
140
141
142
143
144
Nombres
Trader
Notificacin
Eventos
Transacciones
Seguridad
Ciclo de vida
Propiedades
Persistencia
Consulta
Relaciones
Concurrencia
Externalizacin
Licenciamiento
Tiempo
Coleccin
145
146
Interfaz de usuario
Administracin de informacin
Administracin de sistemas
Administracin de tareas
las
Objetos de negocio
Finanzas y seguros
Comercio Electrnico
Manufactura
Salud o Medicina
147
Telecomunicaciones
Transportes
Investigacin de ciencias de la vida
Tambin bajo la OMG pero que no tienen DTF se encuentran dos Grupos de
Inters Especial:
148
149
150
151
152
153
154
155
156
157
158
mkdir ~/CORBA/client
mkdir ~/CORBA/service
Copie el archivo de IDL en el directorio ~/CORBA/service y compile el archivo de
IDL:
cd ~/CORBA/service
idlj fall library.idl
El compilador idlj crear un directorio llamado ' library', dado que ste es el
nombre del mdulo en el archivo de IDL que fue convertido en un paquete
cuando el IDL se mapeo a sus Java bindings. Por consistencia, se han puesto
tambin el servicio y archivos del registrador en este mismo paquete. Por
consiguiente, copie el servicio y cdigo del registrador en los archivos
apropiadamente nombrados (LibraryServiceImpl.java y LibraryRegistrar.java,
respectivamente) en el directorio ~/corba_tutorial/service/library. Compile todos
los archivos en este directorio:
javac library/*.java
El servicio y registrador son ahora compilados y preparan para ejecutar. Puede
haber notado que el cliente est en un paquete diferente, libraryclient. Cree un
directorio para este archivo, representar este paquete, as como un directori o
para los archivos de servicio requeridos por el cliente.
mkdir ~/CORBA/client/libraryclient
mkdir ~/CORBA/client/library
Copie el cdigo del cliente anteriormente en un archivo apropiadamente
nombrado (LibraryClient.java) en este directorio. Ahora, necesitamos copiar
encima de los archivos del servicio que es requerido por el cliente. (Si est
usando windows, use el 'copy' el comando en lugar de 'el cp' y asegure usar '\'
como el separador del archivo en lugar de '/' como se muestra aqu)
cd ~/CORBA
cp service/library/BookHelper.class client/library
cp service/library/BookListHelper.class client/library
cp service/library/Library.class client/library
cp service/library/LibraryHelper.class client/library
cp service/library/LibraryOperations.class client/library
cp service/library/_Book.class client/library
cp service/library/_BookHelper.class client/library
cp service/library/_LibraryStub.class client/library
159
Ejecucin
El servicio y cliente estn ahora listos para ejecutar. La primera cosa para hacer
es empezar un servicio de nombres, para que el registrador pueda registrar el
servicio cuando ejecuta. Esto debe hacerse antes que el registrador ejecute.
orbd ORBInitialPort 1050 ORBInitialHost localhost
El nmero 1050' representa el puerto de red dnde el servicio de nombres est
ejecutando. Puede usar cualquier valor para esto cuando le gusta. El nombre
'localhost' se refiere al nombre de dominio dnde el servicio de nombres est
ejecutando. Si ejecuta esto en una mquina remota, se asegura de notar su
nombre de dominio para el uso al ejecutar el registrador y cliente.
Podemos empezar el registrador que inicializar el servicio y lo registrar con el
servicio de nombres ahora. El registrador debe ejecutar antes que el cliente sea
ejecutado.
cd ~/CORBA/service
java library.LibraryRegistrar ORBInitialPort 1050 ORBInitialHost localhost
Finalmente, ejecute el cliente.
cd ~/CORBA/client
java libraryclient.LibraryClient ORBInitialPort 1050 ORBInitialHost Localhost
Est ahora listo para escribir un simple cliente/servicio CORBA. Mucho del
cdigo en el ejemplo anterior puede ser considerado una plantilla del CORBA
estndar. Puede identificar la mayora de este cdigo dado que esta
documentado.
Un acercamiento recomendado es extraer el cdigo de la plantilla para el cliente,
registrador y servicio, para el uso cuando crea sus propios clientes y servicios.
Esto lo salvar de la mecanografa e disminuye la preocupacin por tantos
errores de compilacin.
160
3.4. RMI
Escenario RMI
Qu es RMI?
Arquitectura RMI
Registro de
Objetos
Soporta la
interfase con
el programa
de aplicacin
Mapea la plataforma
independiente de la capa
Stub/Skeleton a la
plataforma dependiente
de la capa de transporte,
moviliza los protocolos de
referencia remota
Cliente del
Objeto
Servidor del
Objeto
Stub
Skeleton
Capa de Referencia Remota
Capa de Transporte
Activa, mantiene y
desactiva las
conexiones, y
moviliza el
protocolo de
transporte
161
stub
Mtodo
Remoto
skeleton
Tiempo
Marshal parmetros;
Enva peticin
Unmarshal parmetros
Invoca mtodo
Ejecuta cdigo
y regresa valor
Recibe valor de retorno
Marshal Contestacin
Enva contestacin
Unmarshall Contesta cin
Regresa valor
Escenario RMI
Definir su interfaz
remota
Implemente
la interfaz
javac
3
4
rmic
Server class (.class)
Implemente
el cliente
10
javac
Inicie cliente
6
7
162
Actividad 3.4
Actividad RMI
Realizar el Ejercicio RMI anexo y coloque su reporte en Tarea Individual 3.4
Ejercicio RMI
RMI es una tecnologa de Middleware, RMI proviene de las siglas Remote
Method Invocation (o Invocacin de Mtodos Remotos).
Particularmente son tecnologas dependientes del lenguaje, y en ocasiones de
algn tipo de arquitectura o framework que lo soporta.
Obedece a las mismas reglas de todos los middleware de objetos. Tanto el
objeto cliente como el servidor requieren elementos middleware stub y skeleton.
JavaRMIEl concepto de JavaRMI se explicar a travs del siguiente ejemplo
guiado por cdigo.
EJERCICIO
/*** Intefaz remota para el ejemplo Hola, Mundo ***/
public interface InterfazHola extends Remote {
/*** Mtodo remoto invocable ***/
public String saludar() throws RemoteException;
}
import java.rmi.server.*;
/*** Clase Remota para el ejemplo Hola, Mundo! ***/
public class Hola extends UnicastRemoteObject implements InterfazHola {
private String mensaje;
/*** Constructor de la clase ***/
public Hola (String msj) throws RemoteException {
mensaje = msj;
}
163
164
Atributos
Arriba del
Estndar
En el Estndar
Debajo del
Estndar
Puntos de
Atributo
Obtenidos
(10-9)
(8.5-7)
(6.5-0)
La informacin
La informacin La informacin
revisada permiti a revisada permiti
revisada no
los estudiantes
a los estudiantes permiti a los
Aplicacin de
comprender con
comprender
estudiantes
la Informacin
claridad los
solamente los comprender los
ejercicios y
ejercicios y
ejercicios y
programas.
programas.
programas.
(10-9)
Los estudiantes han
demostrado el
significado del
material elaborando
Conexiones
correctamente,
Especialistas mientras extienden
y explican la
informacin,
incorporndola en el
estudio del tema.
(8.5-7)
(6.5-0)
Los estudiantes
Los estudiantes
no han hecho
han demostrado
contacto con el
el significado del
material,
material
simplemente sin
incorporndolo
incorporar la
correctamente en
informacin en
el estudio del
su estudio del
tema.
tema.
165
3.5. COM+
Escenario COM+
.Net y COM+
Capacidades de COM+
166
Se anexa material de apoyo para el tema de COM+, que se extiende por las
capacidades que presenta COM+, por lo que deber realizar las actividades
siguientes:
Resolver los cuestionarios del material de apoyo 3.5
Realizar los ejercicios del material de apoyo 3.5
Actividad 3.5
Actividad COM+
Contestar los cuestionarios y realizar los ejercicios del Material de Apoyo 3.5.
Coloque el informe de su actividad en Tarea Individual 3.5
167
3.5. COM+
3.5.1. Introduccin a los Servicios COM+
3.5.1.1.
Introduccin
Cuando apareci el sistema operativo Microsoft Windows, se utiliz
principalmente para ejecutar aplicaciones independientes en equipos
personales. Con el paso del tiempo, se han ampliado las capacidades del
sistema operativo Windows para admitir aplicaciones que ofrecen cada vez ms
posibilidades. El sistema operativo incluye un conjunto integrado de tecnologas,
llamado servicios de aplicaciones, que permite a las organizaciones crear y
personalizar rpidamente aplicaciones distribuidas mediante software basado en
componentes. Para ayudar a los programadores de aplicaciones a escribir
rpidamente software sofisticado que abarca operaciones tanto de clientes como
de
servidores,
los
servicios
de
aplicaciones
han
evolucionado
considerablemente durante la dcada pasada.
Los servicios de aplicaciones de Windows, tambin conocidos como COM+,
constituyen la piedra angular de la arquitectura de Aplicaciones distribuidas de
red de Windows (Windows DNA).
Las aplicaciones distribuidas se crean con el fin de aprovechar la capacidad de
procesamiento que ofrecen los servidores, como los que se utilizan para
aplicaciones sectoriales y de bases de datos, y las capacidades de cliente de los
equipos personales y otros dispositivos. Al separar entre equipos distintos los
procesos utilizados en una aplicacin, las organizaciones pueden crear software
escalable y flexible por medio de hardware de consumo.
Un buen ejemplo de aplicacin distribuida sera el proceso de entrada de
pedidos de comercio electrnico, que integra datos y procesos desde diversas
ubicaciones, incluidos servidores y clientes. En el entorno de desarrollo actual,
dicho proceso suele combinar elementos del software tradicional, como una
base de datos, con las tecnologas basadas en Internet, como un explorador.
168
Componentes de software
Los componentes son los pilares de las aplicaciones distribuidas. Un
componente es un mdulo de software escrito para controlar un tipo concreto de
informacin o un proceso en particular. Por ejemplo, se puede crear un registro
de cliente con un componente que proporcione el nombre, la direccin y otro tipo
de informacin distintiva. Cada componente se disea de manera que pueda
modificarse fcilmente para ajustarse a unos requisitos determinados. De esta
manera, en vez de escribir el mismo tipo de cdigo una y otra vez, los
programadores pueden utilizar cdigo de software prefabricado y slo necesitan
ajustar los elementos que son diferentes en cada aplicacin. Los programadores
crean aplicaciones mediante la integracin de componentes, de la misma
manera que puede construir una casa a partir de un conjunto de piezas
prefabricadas, como puertas, ventanas y armarios.
El software de componentes sirve para mucho ms aparte de reducir la cantidad
de cdigo que los programadores tienen que escribir desde el principio. Puesto
que las aplicaciones creadas con componentes pueden vincularse a travs de
redes, el software de componentes tambin supone una manera eficaz de crear
aplicaciones distribuidas, que dividen el proceso entre los equipos cliente y
servidor.
Los servicios de aplicaciones basadas en componentes de Windows se basan
en COM+, la ltima generacin del Modelo de objetos componentes (COM) de
Microsoft. Desde que apareci por primera vez a principios de los noventa, COM
ha sido una importante tecnologa de Windows en constante evolucin. Windows
presenta COM+, que constituye un elemento bsico de la plataforma Windows.
Para comprender COM+, resulta til comprender la evolucin de COM, as como
los servicios de colas de transacciones y de mensajes. Est seccin proporciona
una introduccin a estas tres tecnologas antes de explicar sus mejoras en
COM+.
169
170
171
Una vez que COM se populariz, los programadores se dieron cuenta de que
necesitaban que los componentes pudieran funcionar juntos a travs de las
redes. Por esa razn, con Windows NT Server 4.0 Microsoft present el Modelo
de objetos componentes distribuido (DCOM), que ampla COM para que la
tecnologa de componentes pueda funcionar a travs de redes y de Internet,
como sucede en una arquitectura de n niveles. Desde su presentacin, se ha
utilizado con frecuencia el trmino COM para incluir tambin las tecnologas
distribuidas DCOM.
Servicios de transacciones
A mediados de los noventa, Microsoft ampli la aplicabilidad de COM con la
aparicin de Microsoft Transaction Server (MTS). En Windows NT 4.0, MTS es
una tecnologa independiente que ampla el modelo de programacin COM para
el desarrollo, distribucin y administracin de aplicaciones distribuidas basadas
en componentes.
MTS simplifica el desarrollo de aplicaciones en el nivel medio de la arquitectura
de n niveles, ya que proporciona gran parte de la infraestructura de software
necesaria para ejecutar la lgica empresarial que se ejecuta all. MTS incluye
cdigo de infraestructura para administracin de conectividad, directorios,
seguridad, procesos y subprocesos, as como las conexiones de bases de datos
necesarias para crear una aplicacin preparada para realizar transacciones.
Una transaccin es un conjunto de eventos que se confirman o se deshacen
como una unidad: o suceden todos los eventos o ninguno de ellos. La creacin
de una transaccin completa puede requerir la cooperacin de varios
componentes. En el ejemp lo de la figura, la aplicacin de entrada de pedidos
consta de componentes que, mediante DCOM, recuperan y procesan
172
Servicios de transacciones
La manera ms fcil de comprender cmo funcionan juntos MTS y COM es
observar un escenario tpico, como el que se ilustra en la figura previa. Suponga
que un cliente solicita productos a travs de Internet. Todo el sistema de entrada
de pedidos puede crearse mediante componentes COM que contengan la lgica
empresarial necesaria para procesar pedidos. Los elementos individuales del
pedido del cliente utilizarn con toda probabilidad varios procesos y bases de
datos, alojados en diferentes servidores.
Por ejemplo, el proceso utilizara una base de datos con informacin de clientes
para registrar el nombre y la direccin del cliente, una base de datos de
inventario para asegurarse de que hay disponibilidad del producto para atender
el pedido, una base de datos de envo para realizar el seguimiento del envo y
un proceso de comprobacin de crdito para asegurarse de que la tarjeta de
crdito del cliente es vlida.
Cuando el cliente realiza el pedido, todos los procesos y las transacciones de
bases de datos deben registrarse como un conjunto. MTS supervisa toda la
transaccin y slo confirma todos los cambios si la transaccin tiene xito en su
173
174
175
176
177
178
179
COM+
3.5.1.2.
Introduccin
COM ofrece una solucin para desarrollar aplicaciones basadas en
componentes. Es bien sabido de todos que el trabajo que es necesario realizar
para escribir componentes COM es arduo y repetitivo. COM+ es ms que una
nueva versin de COM: ofrece una completa infraestructura de servicios para
componentes. Los componentes se crean y se instalan en aplicaciones de
COM+ para poder generar aplicaciones escalables de servidor que permitan un
alto rendimiento con una sencilla implementacin. (Si un componente no precisa
utilizar algn servicio, no se debe colocar en una aplicacin de COM+.) La
escalabilidad y el buen rendimiento se logran diseando aplicaciones desde el
exte rior para hacer uso de servicios como las transacciones, las agrupaciones
de objetos y la semntica de actividades.
.NET Framework ofrece otra forma de escribir aplicaciones basadas en
componentes y presenta ventajas sobre el modelo de programacin de COM,
mejor compatibilidad de herramientas, el tiempo de ejecucin en lenguaje comn
180
181
Los servicios pueden fluir tambin entre objetos de COM+ y .NET Framework.
Cada entorno controla la implementacin y ejecucin de su cdigo nativo; COM+
proporciona siempre el contexto del objeto.
Caractersticas de los servicios COM+
Una clase configurada posee un conjunto de COM+ estos son atributos
declarativos que especifican los servicios requeridos. En tiempo de ejecucin,
COM+ se asegura que provee los servicios requeridos a los objetos. Estos
servicios se proveen mediante contextos los cuales se implementan como
objetos llamados contexto del objeto. Todas las clases son instanciadas en un
contexto y cada objeto vive precisamente en uno. Las clases que no estn
configuradas ignoran sus contextos asociados.
Se tienen dos tipos de aplicaciones COM+:
182
183
Transaction
ObjectPooling
JustInTimeActivation
EventClass
ApplicationActivation
Para demostrar los componentes servidos, crearemos una clase que encapsula
la funcionalidad de la aplicacin COM+ y crearemos un formulario para proveer
una interfaz grfica desde el cual se harn las llamadas. A diferencia de otro
ensamblado de .NET estos requieren un tratamiento especial. A continuacin se
muestra el conjunto de atributos del archivo AssemblyInfo.cs que han de ser
agregados para que nuestra aplicacin pueda funcionar correctamente
(AssemblyInfo.cs del proyecto clsPruebaDeComPlus)
[assembly: ApplicationActivation(ActivationOption.Server)]
[assembly: ApplicationAccessControl(false)]
[assembly: ApplicationID("448934a3-324f-34d3-2343-129ab3c43b2c")]
[assembly: ApplicationName("DemoComponenteServido")]
[assembly: Description ("Demostracin de COM+ en .NET")]
El primer atributo especifica el tipo de aplicacin que es (en este caso esta ser
de tipo biblioteca) esta informacin corresponde a la enumeracin de
ActivationOption. El segundo atributo es la manera como se accede al control de
184
185
186
187
Cada vez que se pulse el botn ejecutar query de nuestro formulario (cliente) se
podr apreciar como se activan las barras de transaccio nes activas y se
incrementa la barra de transacciones ejecutadas. Aunque en este artculo solo
recuperamos informacin la misma tcnica aplica para operaciones que tengan
que ver con manipulacin (modificacin) de la data.
Cuestionario
1. Liste cinco beneficios de soluciones componente-basado.
2. Qu es una aplicacin COM+?
3. Para qu se utiliza el catlogo COM+?
4. Qu es el contexto?
5. Qu es ServicedComponent?
3.5.2. Servicios de Transaccin
3.5.2.1.
Qu es una transaccin?
Una transaccin es un conjunto de tareas relacionadas que se realizan de forma
satisfactoria o incorrecta como una unidad. En trminos de procesamiento, las
transacciones se confirman o se anulan. Para que una transaccin se confirme,
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.
188
189
190
191
192
193
194
195
196
Cuestionario
1. Nombre las cuatro propiedades ACID de transacciones.
2. Cul es el servicio de transacciones distribuidas coordinadas para las
aplicaciones COM+?
3. Liste las configuraciones de atributo de transaccin que un componente
COM+ puede tener.
4. Qu pasa a un componente si una llamada a uno de sus mtodos
regresa y su bit dispuesto se ha establecido en True?
5. Cmo puede crear un cliente que no hereda desde la clase
ServicedComponent para los servicios de transacciones de .NET?
6. Nombre los cuatro niveles de aislamiento de transaccin soportados para
los componentes servidos.
3.5.3. Seguridad en Aplicaciones
3.5.3.1.
197
198
199
[ComponentAccessControl()]
[SecurityRole ("TestRole2")]
public class Foo : ServicedComponent
{
public void Method1() {}
}
RBS en los niveles de clase o ensamblado se puede configurar
administrativamente puesto que dichas entidades existen en el catlogo COM+
despus del registro del ensamblado. No obstante, como se mencion
anteriormente, los mtodos de clase no aparecen en el catlogo COM+. Para
configurar RBS en los mtodos, la clase debe implementar los de una interfaz y
emplear el atributo SecureMethod en el nivel de clase, o bien SecureMethod o
SecurityRole en el nivel de mtodo. Adems, los atributos deben aparecer en la
implementacin de mtodos de clase, no el mtodo de interfaz en la definicin
de la misma.
La forma ms sencilla de utilizar RBS en los mtodos es aplicar el atributo
SecureMethod en el nivel de clase y, a continuacin, configurar las funciones (ya
sea administrativamente o colocando el atributo SecurityRole en los mtodos).
[assembly: ApplicationAccessControl(true,
AccessCheckLevel=AccessChecksLevelOption.ApplicationComponent)]
Interface IFoo
{
void Method1();
void Method2();
}
[ComponentAccessControl()]
[SecureMethod]
public class Foo : ServicedComponent, IFoo
{
// Agregar funciones a este mtodo administrativamente
public void Method1() {}
// "RoleX" se agrega al catlogo para este mtodo
SecurityRole("RoleX")
public void Method2() {}
}
El uso de SecureMethod a nivel de clase permite configurar administrativamente
todos los mtodos de las interfaces con las funciones del catlogo COM+. Si la
clase implementa dos interfaces, cada una de ellas con el mismo nombre de
mtodo, y las funciones se configuran administrativamente, ser necesario
establecerlas en ambos mtodos como aparecen en el catlogo COM+ (a menos
200
201
202
203
204
Autenticacin y personificacin
205
206
207
208
209
210
211
Cuestionario
1. Liste tres ventajas de usar la mensajera asincrnica en un entorno de los
sistemas distribuidos.
2. Explique el propsito del grabador, oyente y componentes del jugador.
3. Liste dos factores que representen que una interfaz es impropia para la
operacin en cola.
4. Liste tres consideraciones generales del diseo de sistemas que utilizan
componentes en cola.
5. Cmo un cliente se instancia en componente en cola?
6. Liste dos maneras de devolver las contestaciones asincrnicas de un
componente en cola a un cliente.
7. Qu efecto realiza marcando una aplicacin como en cola?
8. Qu interfaces realiza un implemento de clase de excepcin?
212
De MTS a COM+
Muchos usuarios de IIS ya conocen Microsoft Transaction Server (MTS) y su
interfaz de usuario correspondiente, MTS Explorer. Se puede concebir COM+
como un conjunto de servicios que combinan el modelo de objetos componentes
(COM) tradicional con MTS en los sistemas Windows 2000. Con la introduccin
de COM+, la funcionalidad de MTS se ha fundido con el sistema operativo.
Como podr comprobar, COM+ tambin ampla y mejora los servicios que se
encuentran disponibles con MTS.
Si ha utilizado con anterioridad MTS y MTS Explorer, se encontrar con algunos
cambios significativos cuando inicie la herramienta administrativa Servicios de
componentes. De modo destacado, los paquetes MTS ahora reciben el nombre
de aplicaciones COM+.
La idea de aplicacin COM no es tan nueva. Sencillamente se trata del trmino
que se emplea para referirse a los grupos de componentes COM desarrollados
para trabajar conjuntamente. En las aplicaciones COM tradicionales, los
componentes deban instalarse mediante la configuracin de las entradas en el
Registro antes de poder ejecutarse. Esta tarea normalmente se llevaba a cabo
con la utilidad Regsvr32. En el caso de COM+, este paso se realiza
automticamente cuando configura los componentes como aplicacin COM+.
Los componentes COM todava se pueden seguir registrando en Windows 2000
mediante la utilidad Regsvr32 y seguirn existiendo en el entorno COM+ como
componentes sin configurar. Los componentes sin configurar no aparecen en
pantalla dentro de la herramienta administrativa Servicios de componentes y no
usan los nuevos servicios COM+. No obstante, cuando se ejecutan estos
componentes, utilizan algunas partes de la infraestructura de COM+ para
ejecutar aplicaciones COM+ distribuidas.
213
214
El archivo .msi que contiene una aplicacin COM+ slo puede ser instalado en
equipos que admitan Servicios COM+ 1.0 (en la actualidad, slo Windows 2000).
Como ventaja adicional, las aplicaciones COM+ que utilizan Windows Installer
aparecen en el panel de contro l de Agregar o quitar programas, a menos que se
modifique el archivo .msi mediante una herramienta de edicin de Windows
Installer.
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.
215
216
217
218
219
220
Atributos
Arriba del
Estndar
En el Estndar
Debajo del
Estndar
Puntos de
Atributo
Obtenidos
(10-9 )
(8.5-7)
(6.5-0)
La informacin
La informacin
La informacin
revisada
revisada permiti
revisada no
permiti a los
Aplicacin de a los estudiantes
permiti a los
estudiantes
la
comprender con
estudiantes
comprender
Informacin
claridad los
comprender
solamente los
ejercicios y
los ejercicios y
ejercicios y
programas.
programas.
programas.
(10-9 )
(8.5-7)
(6.5-0)
Los estudiantes
han demostrado
Los
el significado del
Los estudiantes estudiantes no
material
han demostrado han hecho
elaborando
el significado del contacto con
correctamente,
Conexiones
material
el material,
mientras
Especialistas
incorporndolo simplemente
extienden y
correctamente sin incorporar
explican la
en el estudio del la informacin
informacin,
en su estudio
tema.
incorporndola en
del tema.
el estudio del
tema.
Total de Puntos Obtenidos
221
222
223
224
Actividad 3.6
Actividad Web Services
Realizar el ejercicio prctico del Escenario Web Services, colocar informe en
Tarea Individual 3.6
225
Atributos
Arriba del
Estndar
En el Estndar
Debajo del
Estndar
Puntos de
Atributo
Obtenidos
(10-9 )
(8.5-7)
(6.5-0)
La informacin
La informacin
La informacin
revisada
revisada permiti
revisada no
permiti a los
Aplicacin de a los estudiantes
permiti a los
estudiantes
la
comprender con
estudia ntes
comprender
Informaci n
claridad los
comprender
solamente los
ejercicios y
los ejercicios y
ejercicios y
programas.
programas.
programas.
(10-9 )
(8.5-7)
(6.5-0)
Los estudiantes
han demostrado
Los
el significado del
Los estudiantes estudiantes no
material
han demostrado han hecho
elaborando
el significado del contacto con
correctamente,
Conexiones
el material,
material
mientras
Especialistas
incorporndolo simplemente
extienden y
correctamente sin incorporar
explican la
en el estudio del la informacin
informacin,
tema.
en su estudio
incorporndola en
del tema.
el estudio del
tema.
Total de Puntos Obtenidos
226
4. Lenguajes de Programacin
4.1. Lenguajes y Plataformas de Desarrollo
Actividad 4.1
Actividad Lenguaje y Plataformas de Desarrollo
Antes de iniciar o durante su proyecto final, revisar el Material de Apoyo 4.1
Nota: Esta actividad no tiene evaluacin.
4.1.1 Antecedentes
Inicialmente, los computadores eran grandes centros de computacin con
entidad propia en centros de investigacin o gubernamentales y Universidades.
Con la introduccin de los PC en los 80, todos pudieron tener parte de esa
capacidad de cmputo. Los PC, mucho ms baratos que minis o mainframes,
fueron una gran aportacin para empresas y particulares.
Aunque el computador personal estaba pensado para ser un elemento de
computacin autnomo y no formar redes de computadores, la posibilidad de
compartir recursos gracias a la comunicacin de varios PC, supone una ventaja
que los fabricantes no pudieron ignorar, empezando as la carrera hacia los
sistemas distribuidos, que tratan de sumar lo mejor de microcomputadores y
supercomputadores a la vez creando un computador virtual a partir de varios
PC.
Orientado a Procedimiento
La comunicacin entre dos PC en sistemas UNIX, mejor mucho cuando BSD
introdujo el concepto de socket, que permita que la comunicacin entre
procesos sitos en computadores distintos no fuera mucho ms complicada que
la de un programa que supiese leer y escribir archivos. Los programas que
emplean sockets establecen un protocolo de comunicacin para poder
entenderse.
El RPC, de Sun Microsystems, es el siguiente nivel de abstraccin y permite
realizar llamadas a procedimientos independientemente de su localizacin,
buscando con ello la transparencia de acceso para el programador.
Orientada a Objetos
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.
227
228
229
Inconvenientes
Complejidad
Permitir la interoperabilidad de distintos lenguajes, arquitecturas y sistemas
operativos hace que sea un estndar bastante complejo, y su uso no sea tan
transparente al programador como sera deseable:
1. Hay que usar un compilador que traduce una serie de tipos de datos
estndares a los tipos del lenguaje en el que se vaya a programar (IDL).
2. Hay que ser conscientes a la hora de disear qu objetos van a ser
remotos y cules no (los remotos sufren restricciones en cuanto a sus
capacidades con respecto a un objeto normal).
3. Es necesario emplear tipos de datos que no son los que proporciona de
manera habitual el lenguaje de programacin (muchas veces hay que
emplear tipos de datos adaptados de IDL).
Incompatibilidad entre implementaciones
Muchas empresas ofrecen implementaciones CORBA, si bien el grado de
cumplimiento es diverso. Las divergencias entre ORBs radican en detalles que,
aunque no hacen imposible aplicar en uno el mismo diseo de un programa
pensado para otro, hacen cuela adaptacin sea fastidiosa. Cuestiones como la
colocacin de libreras o las diferentes formas de implementar la gestin de la
concurrencia, hacen difcil la portabilidad del cdigo y obligan al programador a
reciclarse cuando quiere cambiar de ORB. Adems, donde el estndar no
concreta, las implementaciones pueden variar entre s, lo que da lugar a
molestas incompatibilidades que complican la vida al usuario.
Los ORBs.
Los ORBs, Object Request Brokers, ncleo de cualquier implementacin
CORBA, transmiten los mensajes que se intercambian cliente y servidor, para lo
que se ocupan de:
1. Canalizar las comunicaciones entre los objetos locales y los remotos.
230
El IDL
IDL (Interface Definition Language) es un lenguaje de programacin pensado
exclusivamente para especificar los interfaces de las clases cuyas instancias
queremos hacer pblicas a objetos remotos que las usaran como clientes.
La necesidad de un IDL viene dada por la independencia de CORBA respecto a
la arquitectura y al lenguaje de programacin. Distintos lenguajes soportan
diferentes tipos de datos y tienen distintas formas de especificar clases. Incluso
limitndonos aun lenguaje, la ordenacin y el tamao de un tipo de datos
determinado no tiene porqu ser el mismo entre arquitecturas diferentes (por
ejemplo, no es lo mismo un entero en un 386 con MS-DOS que en un UltraSparc
con Solaris 7).
IDL pone de acuerdo a distintos lenguajes en el formato y tamao de sus
especificaciones. El compilador de IDL transforma una especificacin neutral
para la plataforma y el lenguaje en otra que puedan entender dicho lenguaje y
plataforma.
El IIOP: Interoperabilidad entre ORB.
CORBA es neutral respecto al protocolo de red utilizado para comunicar cliente y
servidor. Para ello especifica el GIOP (General Inter ORB Protocol) que define a
muy alto nivel la comunicacin entre ORBs diferentes. Para redes de tipo TCP/IP
se emplea una instancia de GIOP conocida como IIOP (Internet InterORB
Protocol). Gracias a IIOP, es posible que objetos que emplean ORBs de
fabricantes distintos puedan interoperar en redes como Internet.
Gestin de la concurrencia.
El comportamiento de un objeto situado en un servidor cuando dos o ms
clientes quieren hacer uso de sus servicios viene determinado por la poltica de
gestin de la concurrencia que se haya programado en el ORB. CORBA incluye
varias polticas que definen cundo y cmo activa el ORB los objetos en el
servidor para atender peticiones.
Desafortunadamente, si se utiliza un mismo proceso para atender todas las
peticiones que se hagan, o si se crea uno nuevo para atender cada una de las
231
232
233
234
235
4.1.6 DCOM/COM/COM+
COM se refiere tanto a especificacin como aplicacin, desarrollado por
Microsoft que provee una infraestructura para integracin de componentes.
Soporta interoperabilidad y reutilidad de objetos distribuidos.
COM define una interfaz de programacin de aplicaciones (API) para permitir la
creacin de componentes para el uso integrando las aplicaciones
personalizadas o permitir componentes diversos para interactuar. Sin embargo
para interactuar, los componentes deben adherir a una estructura binaria
especificada por Microsoft. Con tal de que los componentes adhieran a esta
estructura binaria, los componentes escritos en lenguajes diferentes pueden
interoperar.
Distributed COM (DCOM) es una extensin a COM que permite interaccin de
componentes basados en red. Mientras los procesos de COM pueden ejecutar
en la misma mquina pero la extensin de DCOM permite extender los procesos
por una red en espacios direccionables diferentes. Con DCOM, componentes
que operan en una variedad de plataformas pueden interactuar, con tal de que
DCOM est disponible dentro del entorno.
Es mejor considerar COM y DCOM como una sola tecnologa que provee un
rango de servicios a la interaccin del componente, de servicios que promueven
la integracin del componente en una sola plataforma, a la interaccin del
componente por las redes heterogneas. De hecho, se unen COM y sus
extensiones de DCOM en un solo tiempo de ejecucin. Este solo tiempo de
ejecucin proporciona cercana y acceso remoto.
MTS extiende las capacidades del COM con servicios como transaccin y
seguridad. COM+ es la evolucin de COM. COM+ integra servicios de MTS y
mensaje en cola en COM y hace COM que se programa ms fcil a travs de
una integracin ms ntima con lenguajes de Microsoft como Visual Basic, Visual
C++ y J++.
4.1.7 Interoperabilidad de Plataformas
Afortunadamente para los usuarios que necesitan crear un sistema distribuido,
existen modos de poder utilizar un objeto cliente implementado segn un
236
237
238
239
240
Antes de construir IIOP.NET, copie los archivos lib\ir.idl y lib\orb.idl del directorio
Java SDK en el directorio IDL IIOP.NET y establezca el entorno de variable
WAS_HOME para el directorio de aplicacin de servidor de WebSphere.
Compile todo mediante nmake.
Paso 2: Implementacin del EJB
Dado las definiciones anteriores, la aplicacin del EJB realmente es clara .
Creamos la clase Message, las interfaces MessageListener y Chatroom
conteniendo las definiciones mostradas anteriormente.
Para la implementacin del bean, se proporcionan tres archivos: la interfaz de
inicio del bean en la interfaz ChatroomHome, el propio bean en ChatroomBean,
y la implementacin clase administracin en ChatroomServer. La administracin
es realizada en una clase separada nica debido a que esta debe ser la misma
para cada bean (considerando que cada cliente consigue una instancia del bean
diferente) y el acceso a las estructuras deben sincronizarse. El bean remite las
llamadas a la clase de administracin del cliente:
public void registerMe(MessageListener listener,
String forUser) throws AlreadyRegisteredException {
ChatroomServer server = ChatroomServer.getSingleton();
server.addClient(listener, forUser);
}
public void unregisterMe(String userName) throws NotRegisteredException {
ChatroomServer server = ChatroomServer.getSingleton();
server.removeClient(userName);
}
public void broadCast(Message msg) {
ChatroomServer server = ChatroomServer.getSingleton();
MessageListener[] listeners = server.getClients();
for (int i = 0; i < listeners.length; i++) {
try {
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.
241
242
243
244
245
246
Atributos
Arriba del
Estndar
En el Estndar
Debajo del
Estndar
Puntos de
Atributo
Obtenidos
(10-9)
(8.5 -7)
(6.5-0)
El producto final
La
Trabajo en equipo
del equipo ha
presentacin es
con asignacin de
sido compartido
el resultado del
roles y todos se
Colaboracin con todo el
esfuerzo de un
esfuerzan en
equipo y
grupo, pero
llevar a cabo sus
representa algo
solamente han
responsabilidades.
que habra sido
contribuido
247
Contenido
(8.5 -7)
algunos
miembros del
grupo.
(6.5-0)
El proyecto se
El proyecto
presenta de
presenta metas
El proyecto
cualquier
claras
presenta
manera, de
informacin de
relacionadas
forma
con un tpico o
una manera
apresurada o
precisa y
asunto
todava sin
importante. El
organizada. El
finalizar.
proyecto es til proyecto es til
Presenta
dentro del curso.
ms all del
errores o malas
curso.
comprensiones.
Total de Puntos Obtenidos
5. Computacin Mvil
Actividades Computacin Mvil
Revisar el Material de Apoyo 5 y realizar las tareas siguientes:
1. Realizar un mapa mental por cada uno de los rubros siguientes sobre
computacin mvil:
1.1 Antecedentes
1.2 Paradigmas
1.3 Lenguajes y Ambientes de Programacin
2. Realizar el ejercicio sobre Aplicaciones Mviles.
Nota: Si no cuenta con software para mapas mentales, puede realizarlos a mano
y enviar escaneados.
248
249
250
251
La Red Telefnica est diseada para transmitir la voz, que es una seal con un
ancho de banda pequeo. Para obtener suficiente fidelidad en la voz, se
requiere un espectro de frecuencia de 300 Hz a 3,300 Hz. Este espectro de
frecuencia de los circuitos limita el nmero de bits por segundo, alcanzable. Los
factores que limitan la capacidad de transmisin son el ancho de banda, la
potencia de la seal y el ruido en el conductor.
La Tasa de Transferencia define la capacidad de bits trasmitidos por segundo,
emite en BPS (Bits por Segundo). Es directamente proporcional al ancho de
banda.
Modos de Transmisin
El modo Banda Base utiliza todo el ancho de banda, por tanto en un instante
dado slo puede transmitir una seal. En este modo de transmisin, la seal no
es modulada, no es adecuada para la transmisin a largas distancias, ni para
instalaciones sometidas a nivel alto de ruidos e interferencias.
El modo Banda Ancha modula la informacin sobre ondas portadoras
analgicas, por lo que se requiere de equipos de transformacin llamados
Modem-Modulado/Demodulador- , es ms inmune a los ruidos, pero ms caro y
difcil de instalar.
252
253
254
255
Fuente: COFETEL
256
Atenuacin
Desvanecimiento
Ruido Blanco aditivo
Interferencia externa
Ruido de fase
Reflexin de seales
Refraccin
Difraccin
Dispersin
257
Significado
Very Low Frecuency
Rango de frecuencias
3 KHz-30 KHz
LF
Low Frecuency
30 KHz-300 KHz
MF
Medium Frecuency
HF
High Frecuency
3 MHz-30 MHz
VHF
30 MHz-300 MHz
UHF
SHF
Super High
Frecuency
3 GHz 30 GHz
EHF
Extremely High
Frecuency
30 GHz en adelante
Infrarrojo
Luz visible
Servicios
Radio navegacin de largo
alcance y comunicacin
submarina
Navegacin martima, control de
trfico areo
Radio AM, radio martima,
buscadores autodireccionables
(RDF)
Radioaficionados, comunicaciones
militares, larga distancia, aviones y
barcos.
Radio FM, TV, radio AM de
aviones y ayuda a la navegacin
area.
TV UHF, telefona mvil, WLL
(Wireless Lo cal Loop),
comunicaciones mviles,
comunicacin microondas (a partir
de 1 GHz)
Servicios por satlite y
microondas, MMDS (Multichannel
Multipoint Distribution Service),
LMDS (Local Multipoint
Distribution Service), Radar.
Radar, satlite, LMDS
WPANs (Wireless Personal Area
Networks)
Fibras pticas
258
Estatus
Mxima tasa de
bits
IEEE 802.11
Utilizado por la mayora de 2 Mbps
fabricantes de WLANs
IEEE 802.11b
Especificacin reciente
11 Mbps
IEEE 802.11g
En desarrollo
54 Mbps
HiperLAN
Desarrollado por ETSI
24 Mbps
Bluetooh
Promovido por 3Com,
1 Mbps
Ericson, IBM, Intel
Microsoft, Motorola, Nokia
y Toshiba.
IEEE: Institute of Electrical and Electronic Engineers
ETSI: European Telecomunications Standards Institute
Frecuencia de
operacin
2.4 GHz
2.4 GHz
5.0 GHz
5.0 GHz
2.4 GHz
259
260
261
Enlace de Subida
(Uplink)
Enlace de Bajada
(Downlink)
Enlace Terrestre
Enlace Terrestre
Estaciones Terrenas
262
263
264
265
266
267
268
269
270
271
272
273
274
de una clave
275
276
277
278
Antena
Recepcin
Amplificador
de Ruido
Bajo
Convertidor
de Frecuencia
Controlador
(Driver)
Amplificador
de Salida
Antena
Transmisin
48 Canales VF
Terminal C
Repetidor
96 Canales VF
48 Canales VF
Terminal A
Repetidor
Principal
o Repetidor
de Canal
Repetidor
Terminal B
Operational Fixed
2.130 GHz
1.990 GHz
2.180 GHz
2.150 GHz
4.200 GHz
2.200 GHz
6.425 GHz
2.690 GHz
11.700 GHz
6.875 GHz
12.700 GHz
279
280
Enlace de Subida
(Uplink)
Enlace de Bajada
(Downlink)
Enlace Terrestre
Enlace Terrestre
Estaciones Terrenas
Tierra
281
282
Amplificacin de la seal
Aislamiento de canales adyacentes
Traslacin de frecuencias
283
5.3.2.1 IP Mvil
Una mquina en la red tiene siempre tiene una direccin IP, la cul se conforma
con una parte fijada por la subred en que se encuentra (prefijo de red) y otra
parte pertenece directamente a la direccin de la mquina. Esta direccin IP le
sirve al router para que pueda hacer llegar los paquetes o datagramas que un
usuario en la red le enva a otro, ya sea dentro de la misma red o en una red
diferente, o incluso en subredes diferentes.
Si un mquina cambia de red, tiene que cambiar su direccin IP, esto har que
las conexiones (TCP) que tuviera abiertas se terminan., adems todos los
paquetes que eran enviados hacia ella, no podrn ser entregados porque se
encuentra en una red diferente y como ya lo mencionamos su direccin IP habr
cambiado.
Aun ms complicado es el hecho de que aun si no cambiramos su direccin IP,
la mquina continuara sin recibir los paquetes e incluso dejara de comunicarse
con cualquier mquina, ya que ni siquiera tendra forma de comunicarse con las
mquinas dentro de su red, precisamente porque no cambiamos la direccin IP.
El IP mvil es una tecnologa que permite que un nodo de red ("nodo mvil")
emigre de su "casa" red a otras redes, o dentro del mismo dominio de la
administracin, o a otros dominios administrativos. El IP mvil puede seguir una
computadora principal mvil sin necesitar cambiar la direccin IP del mvil a lo
largo de sus pasos por diferentes redes.
Este mvil se puede pensar como la cooperacin de tres subsistemas
importantes. Primero, hay un mecanismo del descub rimiento definido de modo
que las computadoras mviles puedan determinar sus nuevas puntas de
conexin (direccin de su nueva red) conforme se mueven de lugar al lugar
dentro del Internet. En segundo lugar, una vez que la computadora mvil sepa la
direccin IP en su nueva punta de conexin, se coloca con un agente que lo
representa en su red casera.
284
Como podemos ver el Agente Local funciona como un intermediario entre las
mquinas que se quieren comunicar con la terminal mvil, ya que recibe los
mensajes que va n hacia a ella y despus los reenva, por lo tanto, este Agente
285
Problemas de IP Mvil
Algunos problemas que conlleva el uso de IP Mvil son los siguientes:
286
287
288
289
290
Las redes de rea amplia inalmbricas transmiten los datos mediante seales de
telefona mvil, a travs de un proveedor de servicios de telefona mvil, con
velocidades de conexin similares a las de acceso telefnico de 56K. Las
velocidades de descarga estn limitadas a 53 Kbps. Las velocidades de carga
son inferiores (unos 30 Kbps). Las velocidades pueden variar segn el estado de
la lnea y el fabricante del mdem. Es necesario disponer de una lnea telefnica
analgica y del servicio. (El alcance y la velocidad varan segn el entorno y
otros factores.)
Su alcance ofrece a los usuarios un modo de conectarse mientras se desplazan
o estn alejados de otra infraestructura de red.
Redes inalmbricas tipo WAN/MAN :
291
292
de
aplicaciones
sencillas
EJERCICIO
Creacin de una Aplicacin Windows para una Pocket PC.
En el siguiente ejemplo, vamos a crear una aplicacin Windows para una Pocket
PC y una Aplicacin Web, la cul vamos a acceder desde la Pocket PC.
Primero veremos la creacin de la Aplicacin para SmartDevice en C#, la cul
despus se va a correr en el emulador de una Pocket PC.
1. Damos clic en Visual Studio .NET 2003
293
294
295
296
297
298
19. Corra la Aplicacin. De clic en alguno de los botones. Vea las salidas
que genera el programa.
299
300
301
302
303
304
305
306
307
Atributos
Arriba del
Estndar
En el Estndar
Debajo del
Estndar
Puntos de
Atributo
Obtenidos
(10-9 )
(8.5-7)
(6.5-0)
La informacin
La informacin
La informacin
revisada
revisada permiti
revisada no
permiti a los
Aplicacin de a los estudiantes
permiti a los
estudiantes
la
comprender con
estudiantes
comprender
Informacin
claridad los
comprender
solamente los
ejercicios y
los ejercicios y
ejercicios y
programas.
programas.
programas.
(10-9 )
(8.5-7)
(6.5-0)
Los estudiantes
han demostrado
Los
el significado del
Los estudiantes estudiantes no
material
han demostrado han hecho
elaborando
el significado del contacto con
correctamente,
Conexiones
material
el material,
mientras
Especialistas
incorporndolo simplemente
extienden y
correctamente sin incorporar
explican la
en el estudio del la informacin
informacin,
en su estudio
tema.
incorporndola en
del tema.
el estudio del
tema.
Total de Puntos Obtenidos
308