Anterior
 Volver
 Siguiente

 
Asunto: Re: reflective middleware
Fecha: Thu Mar 2 15:39:24 2000
De: Angel Garcia Ba~nos <angarcia@eiee.univalle.edu.co>

 
Hola,

Respecto a lo que dicen Diego y Luis, y sobre todo, con 'animo de
aprender sobre el tema, siempre me ha llamado la atenci'on el tema de la
reflectividad, la introspecci'on, la interfase din'amica, etc.

> intentaba decir con los lenguajes de programación "Reflective": tener EN
> TIEMPO DE EJECUCIÓN información sobre las entidades que se están manejando.
> Dentro del contexto de un lenguaje de programación, esta información puede
> ser el tipo (clase) de cierto objeto, el conjunto de métodos que responde
> junto con los argumentos de cada método, el árbol de jerarquía de herencia,
> etc. Esto hace que se puedan añadir en tiempo de ejecución nuevos objetos o
> elementos al sistema y que el sistema sea capaz de manejarlos: sólo
> necesita obtener la información necesaria de cada "componente" nuevo.

Disponer de un mecanismo que permita en run-time dotar a los objetos de
la posibilidad de averiguar cosas sobre otros objetos es algo
aparentemente muy potente.

Sin embargo, las aplicaciones que se plantean en estos temas son muy
limitadas: browsers (para que un humano examine objetos), gateways,
monitorizaci'on y poco mas.

> del "componente". Es decir, los distintos "componentes" tendrán un API de
> reflexión a través del cual se les podrá consultar el conjunto de variables
> de configuración y se les podrá "configurar" estableciendo valores para las
> distintas variables que éstos acepten.

Enseguida se llegan a las limitaciones sem'anticas: de que le sirve
saber a un objeto que hay otro objeto que dispone en su interfase de
cierta funci'on con tres par'ametros de entrada de tipo, char, float y
string. Al objeto le falta la sem'antica: ?que hace esa funci'on?, ?para
que sirven los par'ametros?  Es decir, puedes obtener informaci'on mas o
menos gen'erica de los objetos, pero ?que hacer luego con ella?

Es decir, si se dispone de antemano (en tiempo de compilaci'on) de
informaci'on de todas las posibles variables de configuraci'on (como lo
de la cantidad de memoria que mencionas, o cosas similares) entonces es
posible escribir un programa que las tenga en cuenta. En caso contrario,
si un objeto aparece un dia especificando que requiere tarjeta de sonido
(por ejemplo), pues ning'un otro objeto va  a saber que hacer con eso,
que significa o que posibilidades tiene.

> etc. si utilizamos un middleware de objetos, objetos distribuidos, CORBA,
> DCOM, etc.), se tienen que idear mecanismos que permitan obtener
> información específica del middleware y configurar los "componentes" que
> forman parte del sistema distribuido de una forma más o menos genérica.

Veo dos alternativas: o la informaci'on que obtienes no es tan
gen'erica, para que pueda ser procesada de forma autom'atica por otros
objetos, o si no, la informaci'on debe ser procesada finalmente por un
operador humano.

A mi me parece que ello (reflectividad, introspecci'on, interfase
din'amico) es entonces un peque~no enga~no. 

Que pensais?
Angel

-- 
Angel Garcia Ba~nos
Ingeniero de Telecomunicaciones - UPM - MADRID - ESPA~NA
Doctor en Telecomuniaciones - UPV - VALENCIA - ESPA~NA
Profesor Universidad del Valle - CALI - COLOMBIA
Tel: (572)3303436,  Fax: (572)3392361, email: angarcia@univalle.edu.co
Web: http://eiee.univalle.edu.co/~angarcia


 Anterior
 Volver
 Siguiente