sábado, 30 de mayo de 2009

Obama crea un cargo para la seguridad cibernética

El presidente de Estados Unidos, Barack Obama, anunció hoy que la Casa Blanca contará con un nuevo cargo dedicado a brindar protección adecuada a la seguridad de sus redes cibernéticas.

En un discurso desde la Casa Blanca, Obama dijo que su país no brindó durante muchos años una protección adecuada a la seguridad de sus redes en Internet y señaló que es "un momento de transformación" para Estados Unidos.

"No estamos tan preparados como deberíamos, como país o como gobierno", indicó el mandatario norteamericano y agregó que las amenazas cibernéticas son uno de los más graves peligros económicos y militares.

Obama dijo que en poco tiempo designará al funcionario encargado de dirigir la nueva oficina de ciberseguridad, dependiente de la presidencia, en el ámbito del Consejo de Seguridad Nacional y ante el Consejo Económico Nacional.

El futuro designado controlará un programa multimillonario destinado a coordinar y mejorar la protección de la seguridad del gobierno, los sistemas financieros, el control de tráfico aéreo y otros sistemas ante posibles ataques de "hackers".

Los riesgos a la seguridad en Internet y las tecnologías inalámbricas suponen "el reto económico y de seguridad más serio que afronta la nación", explicó Obama, según el cual "el bienestar de Estados Unidos dependerá de la ciberseguridad".

Pero también para los ciudadanos, porque Internet forma parte de su vida diaria, añadió el presidente estadounidense, citado por la agencia de noticias DPA.

No obstante, Obama aseguró al mundo empresarial que el gobierno no dictará la forma en que la industria privada debería aumentar sus defensas digitales, y remarcó que el nuevo cargo no implicará en ningún caso recortes a la libertad en la web.

Las medidas para asegurar la Web no se utilizarán para vigilar redes privadas o comunicaciones por Internet: "Garantizaremos y protegeremos los derechos civiles y personales", prometió Obama.

Al describir el nuevo plan, el mandatario dijo que Estados Unidos necesita impartir la educación requerida para mantenerse a la par de la tecnología y atraer y retener una fuerza laboral ducha en los conocimientos cibernéticos.

Obama pidió una nueva campaña educativa a fin de alertar al público de los desafíos y amenazas relacionadas con la ciberseguridad.

Funcionarios gubernamentales norteamericanos han manifestado preocupación porque las redes cibernéticas estadounidenses sufre ataques y fraudes constantes.

En ese sentido, Obama destacó que su computadora durante la campaña presidencial fue comprometido el año pasado en determinado momento por ciberintrusos, pero agregó que la seguridad de los nombres que contenía y la información financiera de sus contribuyentes quedaron intactas.

La criminalidad en la Web costó en los últimos dos años más de 8.000 millones de dólares a los estadounidenses. La cifra de ataques por Internet contra el gobierno y redes privadas pasó de 4.095 en 2005 a 72.065 el año pasado, según fuentes oficiales citadas por la emisora CNN.

Poco después de asumir la presidencia en enero, Obama ordenó que se estudiaran las actividades en redes del gobierno para comprobar su seguridad.

El jefe de la Dirección de Inteligencia nacional, Dennis Blair, advirtió recientemente que el mayor peligro de espionaje en Internet proviene de países como Rusia y China.

domingo, 12 de abril de 2009

Arquitectura Client-Server para la Web

Presentación sobre arquitectura cliente-servidor

2009. 01 Arquitectura Cliente Servidor Web

lunes, 30 de marzo de 2009

Cómo instalar un servidor PHP-MySQL bajo Windows

Video que explica cómo instalar WAMP (Windows-Apache-MySQL-PHP)

En inglés, bastante completito: http://www.killerphp.com/videos/wamp_setup_part_1/wamp_setup_part_1.html
http://www.killerphp.com/videos/wamp_setup_part_2/wamp_setup_part_2.html

ó con este simpático video con música:
http://videos.todomodding.com/videos/detalle/instalar-apache-con-wamp-server

Recordá que si tenés habilitado el servicio de publicación de world wide web de windows, el cual está atendiendo peticiones a través del puerto 80, te convendrá cambiar el puerto de escuchade http del servidor Apache que viene con WAMP.

Para eso, click sobre el ícono de WampServer en la barra de sistema, config files, httpd.conf
Buscar Listen 80 y cambiarlo por Listen 81. Reiniciar el servicio desde la interfaz de WampServer. A partir de ese momento, http://localhost:81/

La otra recomendación es crear carpetas debajo de d:\wamp\www para ordenar los "sitios" que quieras crear.

02 Conceptos Cliente y Servidor

Servidores y clientes
Es frecuente observar en la calle que son muchas las personas que cuando se refieren a los servidores lo hacen con sí se tratara de máquinas complejísimas, misteriosas, lejanas y enormes que parecen totalmente distintas de la computadora que usamos habitualmente. ¡Nada más lejos de la realidad!

Intentaremos aclarar algunos conceptos con ejemplos cotidianos. Pensemos en esas computadoras remotas (también llamados host) como si se tratara de uno esos sitios desde los que se sirven comidas a domicilio.

Quizá lo primero en lo que se te ocurra pensar sea en una pizza, no porque desconozcas que también es posible comprar otras cosas sino por la popularidad de ese tipo de servicio. Algo similar ocurre con los host. La frecuencia con la que accedemos a ellos en demanda de páginas web hace que tendamos a identificarlos con ellas, pero... también los host ofrecen –o pueden ofrecer– más servicios. Sigamos con las comidas a domicilio.

Cada una de esas empresas puede atender peticiones uno o varios servicios distintos (pizzas, helados, o platos regionales, por citar algunos ejemplos), pero la oferta de cada uno de esos servicios requiere una infraestructura adecuada a cada caso. La oferta de pizzas exigirá disponer de un horno, y la de helados necesitará de una instalación especial de refrigeración.

Pues bien, algo muy similar ocurre con los host. También éstos pueden ofrecer uno o varios servicios (páginas web, correo electrónico, transferencias FTP, noticias, etc.) y también es necesario que cada servicio disponga de su propia infraestructura, que en este caso sería un programa distinto (software de servidor) para cada uno de ellos.

Como puedes ver, no basta con hablar de servidores. Es necesario especificar también qué es lo que sirven, para lo cual habría que decir: servidor de páginas web, servidor de correo, etc. y tener presente que -aunque convivan en el mismo host– cada uno de ellos requiere su propio software y su propia configuración.

Resumiendo, cuando en lenguaje coloquial hablamos de un servidor estamos aludiendo un host (computadora remota) –el tamaño y la lejanía carecen de importancia– provisto de programas (software de servidor) que, cuando está accesible (conectado a Internet) y con el software activo (servicio en funcionamiento) es capaz de atender peticiones y devolver a los clientes los documentos solicitados, o un mensaje de error, en el caso de que no estuvieran disponibles.


Veamos un ejemplo de como se desarrolla ese proceso de petición-respuesta (en inglés "request-response").

Para leer el correo electrónico necesitas disponer de un programa –supongamos que es Outlook Express– instalado en tu ordenador y hacer, a través de él, una petición a una computadora remota (host). Si quisieras visualizar páginas web tendrías que utilizar un programa distinto –Internet Explorer, por ejemplo– capaz de realizar esta otra tarea.
Al programa que utilizamos para realizar cada petición le llamaremos cliente.

¿Qué es una petición?
Una petición es un conjunto de datos que un cliente (recuerda que el cliente siempre es uno de los programas instalados en tu PC) envía a través de Internet solicitando una respuesta determinada por parte de una computadora remota.

¿Qué contendría esa petición?
Cada tipo de petición tendrá contenidos distintos. Por ejemplo, cuando se trata de leer mensajes de correo, la petición realizada por el cliente (Outlook Express) contendría, entre otros, muchos de los datos de la configuración de la cuenta, tales como: el protocolo (forma de comunicación) – en el caso del correo lo habitual sería el protocolo POP (Post Office Protocol)–, el nombre de host donde está alojado el buzón (servidor POP ó servidor de correo entrante), el nombre de la cuenta, la contraseña de acceso, y algunas otras informaciones relativas a la gestión de esa cuenta tales como si deben conservarse o no los mensajes en el servidor, etc.

¿Qué ocurre con esa petición?
Cualquier petición pasa en primera instancia por un servidor de nombres de dominio (Domain Name Server) DNS, una especie de guía telefónica que contiene los nombres de los servidores y las direcciones IP a través de las cuales están conectados a Internet.

Podría decirnos –los datos son ficticios– que "medicos.hospitalcentral.ar" es el nombre de un host que está conectado a Internet a través de la dirección IP 111.112.113.114

Una vez resuelta esa petición por el servidor DNS (direccionamiento de la petición a la IP correspondiente) se comprobará si esa IP está activa (si efectivamente hay un ordenador conectado a través de ella) y, en caso de estarlo, se determinará si esa computadora puede atender la petición.

¿Qué tiene que ocurrir para que pueda atenderse una petición?
Es necesario que la computadora remota tenga instalado y funcionando el software de servidor adecuado al protocolo de nuestra petición. Ello quiere decir -siguiendo con el ejemplo– que el ordenador remoto debe tener instalado y funcionando un software específico de servidor de correo capaz de interpretar el protocolo POP3 especificado en la petición.

jueves, 5 de marzo de 2009

01. Tipos de Páginas Web

Una sencilla clasificación de los tipos de páginas web podría ser esta:

  • Páginas estáticas
  • Páginas dinámicas

Páginas estáticas

Diremos que una página es estática cuando sus contenidos no pueden ser modificados –ni desde el servidor que la aloja (computadora remota) ni tampoco desde el cliente (navegador)– mediante ninguna intervención del usuario ni tampoco a través de ningún programa.

Páginas dinámicas.

Llamaremos dinámicas a las páginas cuyos contenidos sí pueden ser modificados –de forma automática o mediante la intervención de un usuario– bien sea desde el cliente y/o desde el servidor.

Para que esas modificaciones puedan producirse es necesario que algo o alguien especifique: qué, cómo, cuándo, dónde y de qué forma deben realizarse, y que exista otro algo o alguien capaz de acceder, interpretar y ejecutar tales instrucciones en el momento preciso.

Igual que ocurre en la vida cotidiana, las especificaciones y las instrucciones requieren: un lenguaje para definirlas; un soporte para almacenarlas y un intérprete capaz de ejecutarlas. Somos capaces de entender unas instrucciones escritas en castellano pero si estuvieran escritas en italiano las cosas seguramente serían bastante distintas, y, por supuesto, a un italiano le pasaría justamente lo contrario.

Igual ocurre con los programas intérpretes de los lenguajes de script. Ellos también requieren órdenes escritas en su propio idioma.

Scripts

Se llama script a un conjunto de instrucciones escritas en un lenguaje determinado que van incrustadas dentro de una página WEB de modo que su intérprete pueda acceder a ellas en el momento en el que se requiera su ejecución. Cuando se incrustan scripts en una página WEB empiezan a convivir en un mismo documento informaciones destinadas a distintos intérpretes.

Por una parte, el código HTML que ha de ser interpretado por el navegador, y por la otra, los scripts que han de ser ejecutados –dependiendo del lenguaje en el que hayan sido escritos– por su intérprete correspondiente.

La manera de diferenciar los contenidos es delimitar los scripts marcando su comienzo con una etiqueta de apertura <script> y señalando el final con una etiqueta de cierre </script>.

Lo que no está contenido entre esas etiquetas se considerará código HTML.

La posibilidad de insertar en un mismo documento scripts desarrollados en distintos lenguajes obliga a especificar cuál se ha utilizado en cada caso, para que en el momento en el que vayan a ser ejecutados se invoque el intérprete adecuado. Para ello, dentro de la propia etiqueta de apertura (<script>) se inserta una referencia al tipo de lenguaje con esta sintaxis:

language="nombre"

Por ejemplo:

<script language="PHP">

............ instrucciones ........

</script>

indicaría que las instrucciones están escritas con la sintaxis de PHP.

Por el contrario, en este otro supuesto:

<script language="JavaScript">

............ instrucciones ........

</script>

estaríamos señalando que en las instrucciones contenidas en el script se ha utilizado sintaxis de JavaScript.

Para el caso concreto de PHP, existe una sintaxis alternativa, mucho más cómoda y que es la que se usa habitualmente.

Es la siguiente:

<?

............instrucciones........

?>

<? hará la misma función que <script language="PHP"> y ?> será equivalente a </script>


Lenguajes

Hay múltiples posibilidades en cuanto a lenguajes de script. Pero antes de hacer mención a algunos de ellos es conveniente hacer una clasificación previa.

Los lenguajes de script pueden clasificarse en dos tipos:

• Del lado del cliente

• Del lado del servidor

Lenguajes del lado del cliente

Diremos que un lenguaje es del lado del cliente cuando el intérprete que ha de ejecutar sus scripts es accesible desde éste –el cliente– sin que sea necesario hacer ninguna petición al servidor.

Seguramente te ha ocurrido alguna vez que al intentar acceder a una página web ha aparecido un mensaje diciendo que la correcta visualización de la página requiere un plug-in determinado, y que, a la vez, se te haya ofrecido la posibilidad de descargarlo en ese momento.

Eso ocurre porque cuando el navegador –que en el caso de las páginas web es el cliente– trata de interpretar la página, encuentra incrustado en ella algo (un archivo de sonido, una animación Flash, etc.) que –de forma muy similar a lo que ocurre con los scripts– requiere un intérprete adecuado del que no dispone en ese momento.

Cuando los scripts contenidos en un documento son de este tipo, el servidor lo entrega al cliente si efectuar ningún tipo de modificación.

Lenguajes del lado del servidor

Un lenguaje es del lado del servidor cuando la ejecución de sus scripts se efectúa, por instancia de este –el servidor–, antes de dar respuesta a la petición, de manera que el cliente no recibe el documento original sino el resultante de esa interpretación previa.

Cuando se usan estos tipos de lenguaje el cliente recibe un documento en el que cada script contenido en el original habrá sido sustituido por los resultados de su ejecución. Esto es algo a tener muy en cuenta, porque, en este caso, los usuarios no tendrán la posibilidad de visualizar el código fuente, mientras que cuando se trata de lenguajes del lado del cliente siempre es posible visualizar los scripts, bien sea de forma directa –mirando el código fuente de la página recibida– o leyendo el contenido de ficheros externos –vinculados a ella– que son bastante fáciles de encontrar en la caché del navegador. La utilización de este tipo de scripts requiere que el intérprete del lenguaje sea accesible –esté del lado– desde el propio servidor.

¿Cómo resuelve sus dudas el servidor?

Dado que en unos casos el servidor debe entregar el documento original –páginas estáticas o páginas dinámicas en las que se usan lenguajes del lado del cliente– mientras que en otros casos –páginas dinámicas usando lenguajes del lado del servidor– tiene que devolver el resultado de la ejecución de los scripts, es razonable que te preguntes: ¿cómo sabe el servidor lo que debe hacer en cada caso?

La respuesta es simple. Eso hay que decírselo. Y se le dice de una forma bastante simple. Se indica al poner la extensión al documento.

Si en la petición se alude a un documento con extensión .htm o .html el servidor entenderá que esa página no requiere la intervención previa de ningún intérprete de su lado y entre- gará la página tal cual.

Si en esa petición se aludiera a una extensión distinta –.php, por ejemplo– el servidor entendería que antes de servir la página debe leerla y requerir al intérprete de PHP que ejecute los scripts desarrollados en ese lenguaje (en caso de que los contuviera) y devolvería al cliente el documento que resultara de las eventuales ejecuciones de tales scripts.


Algunos lenguajes con nombre y apellidos

Sin pretender hacer una enumeración exhaustiva, los lenguajes de script más populares son los siguientes:

Del lado del cliente

• DHTML • JavaScript • VBScript

DHTML no es exactamente un lenguaje de programación. Se trata más bien de una serie de capacidades que se han ido añadiendo a los navegadores modernos mediante las cuales las páginas pueden contener hojas de estilo y/o organizarse en capas susceptibles de ser redimensionadas, modificadas, desplazadas y/o ocultadas.

JavaScript es uno de los lenguajes más populares. Cada navegador incluye su propio intérprete y es frecuente que los resultados de visualización sean algo distintos según el navegador y la versión que se utilice.

Parece ser que las versiones más recientes de los distintos navegadores se aproximan a un estándar –ECMA Script-262– que ha sido desarrollado por la ECMA (Asociación Europea de Normalización de Sistemas de Información y Comunicación), lo que hace suponer que en un futuro muy próximo todos los navegadores se ajustarán a esa especificación y que, con ello, las páginas web ya se visualizarán de forma idéntica en todos ellos.

VBScript es un lenguaje de script derivado de Visual Basic y diseñado específicamente para los navegadores de Microsoft.

Del lado del servidor

Los más populares de este tipo son: • PHP • ASP • Perl • JSP

Cada uno de ellos tiene sus propias peculiaridades. Pero dado que aquí tratamos sobre PHP quizá sea conveniente –a modo de recordatorio– hacer algunas precisiones sobre los requisitos imprescindibles para trabajar con este lenguaje.

Requisitos para el uso del lenguaje PHP

De acuerdo a lo comentado en los párrafos anteriores y en los esquemas que tenemos a la derecha, el uso del lenguaje PHP requiere tener instalado y configurado:

• Un software de servidor –configurado para interactuar con el intérprete de PHP– que soporte el protocolo HTTP y que en nuestro caso será el denominado servidor Apache.

• El intérprete de PHP.

• Un software de servidor de bases de datos capaz de ser gestionado mediante funciones propias de PHP.

Utilizaremos el servidor de bases de datos conocido como MySQL.

lunes, 22 de septiembre de 2008

Sessions

Les dejo un resumen pequeño de lo que vimos hoy en relación a las sesiones en PHP.

  • session_start(); /*requerido para browsers que usan cookies */
  • $_SESSION['usuario']='pepe'; /*creo obj*/
  • if (isset($_SESSION['usuario']) ... /*existe obj?*/
  • unset($_SESSION['usuario']); /*destruyo obj*/
  • echo session_id(); /*muestro el identificador de la sesión */

Más data en:
http://ar2.php.net/session
http://www.programacionweb.net/articulos/articulo/?num=377
http://php.ciberaula.com/articulo/introduccion_sesiones_php/
http://www.w3schools.com/PHP/php_sessions.asp
http://www.desarrolloweb.com/articulos/235.php

lunes, 15 de septiembre de 2008

Intro a MYSQL desde PHP

Chicos. Recuerden que para acceder al administrador de MySQL tienen que acceder a:
http://lisa/pma

Y que la base de datos tiene como prefijo curso en mayúsculas y guión bajo.

Saludos.

jueves, 11 de septiembre de 2008

La historia detrás de Google Chrome

Un poco comercial y un poco conceptual, es este video del nuevo "navegador" de Google.

lunes, 8 de septiembre de 2008

Expresiones Regulares

Más allá de este "doc", les paso un link que explica en detalle muy bien este tema.

http://www.ignside.net/man/php/regex.php


martes, 2 de septiembre de 2008

Clase Bolsa

Con los chicos de 6toB comenzamos a hacer una clase para un tipo abstracto llamado "BolsaSinOrden".

La idea es que sea una bolsa donde se puedan meter "cosas" que no admita repetidos (sin dar un error) y que cuando le "pida uno" me lo de, sin repetir y en un orden aleatorio (y sin fin, o sea que siempre le pueda pedir uno, y cuando me dio todos, vuelva a empezar).

Les dejo la primer version que tiene funcioonalidad para crear la bolsa, meter cosas y pedir cosas. Proximamente agregaremos quitar y otras funcionalidades. Para probarlo, pueden reemplazar el "\n" de los echos por "
" asi se ve lindo en el browser.

Gutes.




<?php

class BolsaSinOrden{
private $elems;
private $tam;
private $devueltos;


function __construct(){
$this->elems = array();
$this->devueltos = array();
$this->tam = 0;
}

/* Inserta un elemento sin repeticion.
* Recorro los elementos hasta ahora,
* si esta, salgo de la funcion
* si no, termina el foreach y lo agrega al
* final del array, solo por comodidad.
*/
public function ponerUno($e){
foreach ($this->elems as $elem){
if ($elem == $e)
return;
}
$this->elems[] = $e; // meto al final
$this->tam++; // se agranda la bolsa
}


/*
* Debe devolver de a uno los elementos de la bolsa,
* el orden debe ser aleatorio y no darme algo dos veces.
* Luego de darme uno, debe volver a ponerlo en la bolsa
* RECORDANDO que me lo devolvio
*/

public function dameUno(){
$aDevolver = rand(0, $this->tam -1);
if (!isset($this->devueltos[$aDevolver])){
$this->devueltos[$aDevolver] = 1;
return $this->elems[$aDevolver];
}else{
if (sizeof($this->devueltos) == $this->tam) {
$this->devueltos = array();
return $this->dameUno(); // podria no llmarse aca! pero lo dejo
}
return $this->dameUno();
}
}

public function imprimirBolsa(){
echo "{";
foreach ($this->elems as $e){
echo $e . " ";
}
echo "}";
}

}


/* PRUEBAS */

$miBolsa = new BolsaSinOrden();

$miBolsa->ponerUno(2);
$miBolsa->ponerUno(112);
$miBolsa->ponerUno(2222);
$miBolsa->ponerUno(2);
$miBolsa->ponerUno(2);
$miBolsa->ponerUno(2);
$miBolsa->ponerUno(2);
$miBolsa->ponerUno(2);
$miBolsa->ponerUno(515152);
$miBolsa->ponerUno(3535);
$miBolsa->ponerUno(2);
$miBolsa->ponerUno(2);

/* hasta aca la bolsa tiene: {2,112,2222,515152,3535}*/
$miBolsa->imprimirBolsa();

/* Obtengo las cosas en forma aleatoria, pero nunca se vacia!!!*/
echo "\n";
echo "me dio:" . $miBolsa->dameUno() ."\n";
echo "me dio:" . $miBolsa->dameUno() ."\n";
echo "me dio:" . $miBolsa->dameUno() ."\n";
echo "me dio:" . $miBolsa->dameUno() ."\n";
echo "me dio:" . $miBolsa->dameUno() ."\n";
echo "me dio:" . $miBolsa->dameUno() ."\n";
echo "me dio:" . $miBolsa->dameUno() ."\n";
echo "me dio:" . $miBolsa->dameUno() ."\n";


?>

domingo, 29 de junio de 2008

¿Porqué XML?

Información básica sobre tecnología XML
El Lenguaje de marcado extensible (XML) proporciona una forma de describir datos estructurados. A diferencia de las etiquetas HTML, que se utilizan básicamente para controlar la presentación y apariencia de los datos, las etiquetas XML se utilizan para definir la estructura y los tipos de datos de los propios datos.

XML utiliza un conjunto de etiquetas para definir elementos de datos. Cada elemento encapsula una parte de datos que puede ser muy simple o muy compleja. Puede definir un conjunto ilimitado de etiquetas XML. Por ejemplo, podría definir etiquetas XML para declarar partes de datos de un pedido, como el precio, los impuestos, la dirección de envío, la dirección de facturación, etc. A medida que se adopten etiquetas XML en toda la organización y a través de las organizaciones, los datos de todos los tipos de almacenes de datos distintos serán más fáciles de intercambiar y manipular.

XML es una simple plataforma independiente y un estándar muy utilizado. La ventaja de XML sobre HTML es que separa la interfaz de usuario de los datos estructurados. Esta separación de datos de la presentación habilita la integración de datos desde diversos orígenes. Es posible convertir información de clientes, pedidos, resultados de investigaciones, pagos de facturas, historiales clínicos, datos de catálogos y mucha otra información a XML.


XML frente a HTML
A continuación se presentan algunos puntos importantes que se deben tener en cuenta acerca de la relación entre XML y HTML:

XML no es un sustituto de HTML; de hecho, XML se puede considerar como un complemento de HTML. XML y HTML tienen objetivos distintos: HTML está diseñado para mostrar datos y se centra en la apariencia de los datos, mientras que XML está diseñado para describir datos y está centrado en lo que son los datos.
Al igual que HTML, XML no hace nada más. Mientras que es posible utilizar las etiquetas XML para describir la estructura de un elemento como un pedido, este lenguaje no contiene ningún código que se pueda utilizar para enviar ese pedido, procesarlo o asegurarse de que está completo. Otras personas deben escribir código para hacer realmente estas cosas con sus datos en formato XML.
A diferencia del lenguaje HTML, el autor de un esquema o documento define las etiquetas XML y éstas son ilimitadas. Las etiquetas HTML están predefinidas; los autores de HTML sólo pueden utilizar etiquetas compatibles con el estándar HTML actual.


Usos de XML
XML es una forma extremadamente flexible de transferir datos. A continuación se presentan ejemplos donde se puede utilizar XML:

  • Un documento normal
  • Un registro estructurado, como un registro de citas o un pedido
  • Aplicaciones Web de Internet o intranet que mueven datos
  • Un objeto con datos, como el formato persistente de un objeto o control ActiveX
  • Un registro de datos, como el conjunto de resultados de una consulta
  • Metacontenido acerca de un sitio Web, como CDF (Channel Definition Format, Formato de definición de canal)
  • Una presentación gráfica, como una interfaz de usuario de la aplicación
  • Vínculos entre información y personas del Web
  • Código C# que se puede documentar con XML
  • Documentos de descubrimiento utilizados para encontrar servicios Web XML disponibles

A continuación se enumeran diversas ventajas que XML tiene sobre otros formatos a la hora de almacenar información:

  • Los formatos XML se basan en texto, que lo hacen más legible, fácil de documentar y, a veces, más fácil de depurar.
  • Los documentos XML pueden utilizar mucha de la infraestructura ya creada para HTML, incluido el protocolo HTTP y algunos exploradores. HTTP permite que se transfiera XML a través de servidores de seguridad.
  • El análisis XML está perfectamente definido y ampliamente implementado, lo que posibilita la recuperación de información de documentos XML en diversos entornos.
  • Las aplicaciones pueden confiar en los analizadores de XML para realizar alguna validación estructural, así como en la comprobación de tipo de datos (cuando se utilizan esquemas).
    XML se crea en una base Unicode, lo que facilita la creación de documentos internacionalizados.

No obstante, XML no es adecuado para todas las situaciones. Los documentos XML tienden a ser más detallados que los formatos binarios a los que sustituyen. Consumen más ancho de banda de red y espacio de almacenamiento o requieren más tiempo de procesador para la compresión. El análisis XML puede ser más lento que el análisis muy optimizado de los formatos binarios y puede requerir más memoria. No obstante, un cuidado diseño de aplicaciones puede evitar algunos de estos problemas.

Validar documentos XML
Para validar los documentos XML que contienen los datos y la estructura deseados, debe asociar un esquema XML al documento XML. Los esquemas XML son las reglas que definen cómo se estructuran los elementos y atributos para formar documentos XML. Puede compartir esquemas entre organizaciones para hacer más simple la transferencia y el proceso de datos compartidos. Para obtener más información, vea Introducción a los esquemas XML.

Mostrar datos XML
Se pueden utilizar varias formas para mostrar (o presentar) datos XML.

Incluso existen mecanismos de enlace de datos que se pueden utilizar junto con hojas de estilos para organizar datos XML en una presentación visual y para agregar interactividad.

He aquí algunos métodos, entre otros, para mostrar XML:

  • XSLT – Lenguaje de hoja de estilos extensible
  • CSS – Hojas de estilos en cascada
  • Microsoft Internet Explorer

Recursos XML
Si tiene familiaridad con HTML, puede aprender a crear documentos XML, lo que únicamente requiere que sean válidos y correctos.

Para obtener más información, vea la especificación para XML del consorcio World Wide Web (W3C) (http://www.w3.org/XML/).

http://msdn.microsoft.com/es-es/library/8ktfywf4(VS.71).aspx

viernes, 4 de abril de 2008

PHP según Wikipedia

http://es.wikipedia.org/wiki/Php

sábado, 29 de marzo de 2008

Curso veloz de redes

Vamos a ver con un poco más de detalle ese endemoniado tema de las redes domésticas.

Si usamos un router, no tendremos que hacer casi nada. Un programa dentro del dispositivo se ocupará de configurar las conexiones, las computadoras, el firewall y el enlace con Internet disponible para todos. Es uno de los motivos por los que aconsejo usar uno de estos equipos, aparte de que la instalación será muy fácil de escalar en el futuro y su software de firewall es transparente y bastante seguro. (Dicho sea de paso, sí, se puede usar además un firewall en cada PC, lo que no está de más para mantener a raya algunos invasores).

Quizás el motivo más importante para usar un router es que nos da acceso a Internet sin tener que encender más que la computadora que vamos a usar... o el celular, en el caso de los ruteadores Wi-Fi. De otro modo, la máquina conectada a Internet debería mantenerse siempre encendida, y no siempre queremos eso.

Ahora, un router suele ser poco "propedéutico". Nunca sabemos qué hace ni cómo lo hace, de modo que el día que algo falla no tenemos ni idea de por dónde empezar a investigar.

Así que vamos a hacer el ejercicio de conectar dos PC usando un cable cruzado y dos plaquitas de red. A propósito, si alguna de las computadoras no tiene tarjeta de red (un componente que hoy suele venir integrado al motherboard) habrá que adquirir e instalar una. Esto es muy sencillo en verdad, pero si nunca desarmó una computadora no va a empezar hoy, y personalmente desaconsejo estar metiendo mano en las máquinas, si no se tiene mucha experiencia con la electricidad. Es preferible solicitarle al service, fabricante, integrador o ese primo que sabe que se ocupe de colocar la placa de red en el equipo. El procedimiento, recuérdelo, incluye el instalar los controladores adecuados; de otro modo, el dispositivo, igual que una placa de sonido o de video, no funcionará. En el caso de las placas integradas al motherboard, lo mismo; con el añadido de que además podría ser necesario activarlas desde la configuración del BIOS (eso que comúnmente se llama Setup).

Con el hardware listo, todo es cuestión de enchufar cada extremo del cable cruzado a cada PC, con lo que la parte física de la instalación quedará terminada. Lo mejor es conectar las máquinas apagadas, pero la red funcionará igual si lo hace cuando los equipos ya están encendidos.

Ahora hay que crear una conexión de red en Windows. El hecho de enchufar el cable no crea esta conexión. Para hacerlo, vaya a Inicio> Panel de control> Conexiones de red y haga clic en la etiqueta Crear una conexión nueva (arriba a la izquierda, donde dice Tareas de red). Se abre un asistente con varias opciones. La que debe elegir es Configurar una red doméstica o de oficina pequeña.

A continuación se abrirá otro asistente donde deberá elegir si el equipo está conectado directamente a Internet o si lo hace por medio de otra computadora. La respuesta es obvia: si el cablemódem o el módem ADSL están conectados a esta PC, hay que elegir la primera opción; si no, la segunda. En general, la máquina que se conecta directamente con Internet tendrá dos placas de red, una para el cablemódem o el módem ADSL y otra para la red local.


Direcciones IP
La conexión que hemos creado con estos asistentes tendrá ya los componentes necesarios: Cliente de redes Microsoft , Programador de paquetes QoS (por Quality of Service), Compartir impresoras y archivos, y Protocolos TCP/IP.

Sí, los mismos protocolos que se usan para Internet se pueden usar para montar una pequeña red doméstica, y es de lo más conveniente. No tendremos que aprender las reglas de dos conjuntos de protocolos; salvo pequeñas excepciones, todo lo que sabemos de Internet servirá en nuestra red local, lo mismo que el software, que en un 99% es gratis.

Así que nuestra red doméstica es, técnicamente, una intranet (exacto, como la de la oficina). Y de la misma manera que cada computadora en Internet debe tener su propia dirección (o número IP), cada PC de nuestra red doméstica debe tener una dirección única. Es como para comunicarse por teléfono: necesitamos un número propio y un número al que llamar, y dos hogares diferentes no pueden tener el mismo número en la misma ciudad.

Las direcciones o números IP toman la forma de cuatro bloques de dígitos de 0 a 255 separados por puntos. En realidad son cifras de 32 bits, pero cuando las manipulamos en la pantalla adoptan un aspecto como este: 209.191.93.52. Esta es la dirección IP de Yahoo!. Si la escribe en el navegador será lo mismo que poner www.yahoo.com.

En Internet, las direcciones de los sitios son asignadas por una autoridad competente y, en el caso de los usuarios finales, por los proveedores de Internet. En casa no tenemos ni lo uno ni lo otro. ¿Así que, cómo hacemos para asignar direcciones IP?

Es muy fácil. Si abre las Propiedades de la conexión de red que acaba de crear (botón derecho sobre el icono), selecciona Protocolo de Internet (TCP/IP) y aprieta el botón Propiedades que se ve abajo, se abrirá un cuadro con dos pestañas. En la primera (llamada General ) debe activarse Obtener una dirección automáticamente . Eso significa que un software de Windows se ocupará de que esa computadora tenga el número correcto cuando arranque. ¿Así de fácil? Sí, así de fácil. Este método (que apareció hace 15 años) se llama DHCP (por Dynamic Host Configuration Protocol ) y se ocupa de asignar las direcciones automáticamente cuando la red se inicia. Habiendo sólo dos computadoras es bastante innecesario, pero resulta muy cómodo, y mi mejor consejo es que lo configure de esta forma. Es que, ¿acaso hay otra manera?

Sí, se pueden asignar las direcciones manualmente. A fin de cuentas, si usted puede recordar varios números de celular, que tienen la forma 154.xxx.xxxx, 155.xxx.xxxx y 156.xxx.xxxx, entonces no necesita llamar al técnico para establecer las direcciones IP de su red local. Además, si lo hace manualmente tendrá más control y siempre sabrá, por ejemplo, que la computadora de su esposa, conectada directamente con Internet, es 192.168.1.1, y la suya, 192.168.1.2. Si mañana se compra una notebook, le podrá asignar la dirección estática 192.168.1.3, y listo. Es más, pueden combinarse DHCP y direcciones estáticas, y existen, en DHCP, muchas posibilidades adicionales, pero con un puñado de computadoras no necesitará entrar en tales sutilezas.

Excelente, pero ¿podemos usar cualquier número que se nos ocurra? No, de ninguna manera. La tecnología Internet reserva tres rangos de números IP para redes privadas (para los que buscan documentación técnica, es el RFC 1918, Address Allocation for Private Internets). Se las conoce como direcciones no ruteables , porque si un paquete de datos sale de nuestra red hacia Internet con alguna de esas direcciones, es descartado inmediatamente. Esos tres grupos de direcciones son:
  • 192.168.0.0 a 192.168.255.255
  • 10.0.0.0 a 10.255.255.255
  • 172.16.0.0 a 172.31.25.255

Dos consejos, entonces. Para no complicarse, use DHCP y asunto terminado. Si quiere tener más control, emplee las direcciones 192.168.1.1, 192.168.1.2, y así sucesivamente.

¿Máscaras y pasarelas?

Todo bien hasta acá, ¿pero qué carámbanos es ese campo máscara de subred, que figura debajo de la dirección IP? Es exactamente lo que su nombre indica, una máscara. Se vería más claro si tradujéramos sus números a binario, pero eso es precisamente lo que estamos tratando de evitar.

Simplifiquemos. Si usted necesita preguntar "¿Qué es una máscara de subred?", entonces use siempre 255.255.255.0. Esto quiere decir que sólo el último número de las direcciones IP de su red cambiará (192.168.1.x), y que podrá ir de 1 a 254. O sea, podría tener 254 computadoras en su red; poco probable, pero así es (por qué el 0 y el 255 no se pueden usar para esto es un asunto que excede esta columna). Si usa un router, serán 253, porque la dirección 192.168.1.1 será la del router.

No se detenga mucho en esto, en las redes domésticas de pocas computadoras todos usamos 255.255.255.0, y listo. De hecho, algunos routers lo configuran así automáticamente.

Si no usa DHCP, la pestaña General de las Propiedades de los protocolos TCP/IP también le pedirá la dirección del gateway o pasarela. Si usa un router, ponga allí la dirección del router (típicamente, 192.168.1.1 o 192.168.2.1). Si no, déjelo en blanco.

Los servidores DNS, al final de este cuadro de diálogo, son los que traducen las direcciones de fantasía (www.yahoo.com) a números IP (209.191.93.52), que son los que realmente usan los navegadores y otros programas para hacer su tarea. Las direcciones de los DNS son informadas por el proveedor de Internet. A veces hay que elegir Obtener automáticamente , y otras, ingresar a mano dos números IP, los del servidor primario y el secundario. Depende de la empresa de Internet que le dé el servicio.

Con todos estos números listos en ambas computadoras, la red está lista para iniciarse, aunque todavía tenemos que hacer algunos ajustes más antes de poder aprovecharla. Para empezar, reinicie ambas computadoras y, cuando el Escritorio de Windows haya cargado por completo, verifique que la red esté habilitada en Inicio>Conexiones de red (o Inicio> Panel de control> Conexiones de red ). Normalmente, es así. Las redes jamás dan problemas, salvo que cometamos errores muy groseros. Si el icono está gris y no se habilita al darle doble clic, hay que empezar a revisar todo lo que hicimos para descubrir dónde estuvo la falla.

Queda un paso, todavía: el nombre del Grupo de trabajo . Este es uno de esos detalles que pueden volver loco al más sensato de los humanos, porque la red anda y todo parece estar OK, y sin embargo las máquinas se muestran incapaces de compartir recursos. ¿Qué está pasando? Pasa que no tienen el mismo nombre de grupo de trabajo, o bien sí, lo tienen, pero Windows se encapricha con que lo volvamos a ingresar.

Va de suyo que ambas computadoras deben tener el mismo nombre de grupo. Para editar esto, abra las Propiedades de Mi PC y vaya a Nombre de equipo> Cambiar . En ese cuadro seleccione Grupo de trabajo y elija un nombre. Haga lo mismo en las otras computadoras de la red y reinícielas.

Aunque parece complicado, esto se hace una vez y nos olvidamos del asunto hasta que cambiemos de equipo o reinstalemos Windows. En rigor, el tema redes es unas 3000 trillones de veces más complicado que esta breve síntesis que he planteado aquí, pero para hacer funcionar la red y resolver sus problemas básicos, que es lo único que nos importa, alcanza y sobra.

Llegados a este punto, es posible poner a trabajar la red a nuestro servicio. De compartir carpetas, impresoras y la conexión con Internet tratará la próxima edición de La compu.

Por Ariel Torres
http://www.lanacion.com.ar/tecnologia/nota.asp?nota_id=997396

domingo, 23 de marzo de 2008

El modelo TCP/IP

TCP/IP está basado en un modelo de referencia de cuatro niveles. Todos los protocolos que pertenecen al conjunto de protocolos TCP/IP se encuentran en los tres niveles superiores de este modelo.

Tal como se muestra en la siguiente ilustración, cada nivel del modelo TCP/IP corresponde a uno o más niveles del modelo de referencia Interconexión de sistemas abiertos (OSI, Open Systems
Interconnection) de siete niveles, propuesto por la Organización internacional de normalización (ISO, International Organization for Standardization).

Los tipos de servicios realizados y los protocolos utilizados en cada nivel del modelo TCP/IP se describen con más detalle en la siguiente tabla.

NivelDescripciónProtocolos

Aplicación

Define los protocolos de aplicación TCP/IP y cómo se conectan los programas de host a los servicios del nivel de transporte para utilizar la red.

HTTP, Telnet, FTP, TFTP, SNMP, DNS, SMTP, X Windows y otros protocolos de aplicación

Transporte

Permite administrar las sesiones de comunicación entre equipos host. Define el nivel de servicio y el estado de la conexión utilizada al transportar datos.

TCP, UDP, RTP

Internet

Empaqueta los datos en datagramas IP, que contienen información de las direcciones de origen y destino utilizada para reenviar los datagramas entre hosts y a través de redes. Realiza el enrutamiento de los datagramas IP.

IP, ICMP, ARP, RARP

Interfaz de red

Especifica información detallada de cómo se envían físicamente los datos a través de la red, que incluye cómo se realiza la señalización eléctrica de los bits mediante los dispositivos de hardware que conectan directamente con un medio de red, como un cable coaxial, un cable de fibra óptica o un cable de cobre de par trenzado.

Ethernet, Token Ring, FDDI, X.25, Frame Relay, RS-232, v.35

Para obtener más información acerca de ARP, IP, ICMP, IGMP, UDP y TCP, ver Descripción de TCP/IP.

Nota:


  • El modelo de referencia OSI no es específico de TCP/IP. Este modelo fue desarrollado por ISO a finales de los años 70 como marco para describir todas las funciones necesarias en una red interconectada abierta. Es un modelo de referencia muy conocido y aceptado en el campo de las comunicaciones de datos y se utiliza aquí sólo para propósitos de comparación.

Lecturas adicionales recomendadas:

Protocolos principales de TCP/IP

•

Protocolo Internet (IP)

•

Protocolo de mensajes de control de Internet (ICMP, Internet Control Message Protocol)

•

Protocolo de administración de grupos de Internet (IGMP)

•

Protocolo de datagramas de usuario (UDP)

•

Protocolo de control de transporte (TCP)