L’informatique dans les nuages: Introduction

Posted in Internet with tags on 4 junio 2010 by infobrain

Pour l’informatique dans les nuages ou “Cloud Computing” on dit l’utilisation de logiciel et de la capacité de calcul des ordinateurs qui peuvent se trouver n’importe où dans le monde. De cette manière, n’importe qui peut accéder à ces ressources pour utiliser des services (ou les placer eux-mêmes) sans savoir où ces services se trouvent.

Les utilisateurs paient selon la consommation qu’ils font en termes de calcul et stockage, aux entreprises qui offrent les services. En effet, c’est un concept pareil à l’électricité, nous ne nous préoccupons pas pour l’infrastructure qui fournit tout.

De cette manière, les entreprises ou les particuliers peuvent se concentrer sur le sujet de ses affaires. Ils n’ont pas besoin de maintenir des serveurs ni d’avoir une infrastructure informatique (humaine et des machines) avec toute la maintenance que cela implique, ils louent simplement le service.

Un autre sujet à cela, c’est le software as a service (SaaS). Il s’agit d’un concept qui est très différent du système des licences traditionnelles, de manière que les entreprises paient pour ce qu’ils utilisent, par exemple, par minute et par utilisateur.

Actuellement, il existe plusieurs systèmes dans le nuage, chacun avec ses API (lesquels nous permettons de communiquer avec le système). On peut citer les deux principaux:

  • Amazon EC2 : le plus populaire. Son API est utilisé pour plusieurs outils.
  • Eucalyptus: c’est un système libre qui utilise Xen et Java. Il est distribué avec le système opératoire Ubuntu.

Aussi, les principales entreprises d’informatique (Google, Adobe, Intel,…) ont créé des services divers concernant ce sujet. Maintenant, c’est important ne pas perdre le train de cette nouvelle technologie et, malgré que ce soit très tôt pour connaître le futur réel, il est indispensable d’investir et de préparer une infrastructure qui permet faire la concurrence.

Concernant les avantages, on peut citer, en premier lieu, l’épargne d’argent pour ne pas avoir la nécessité de maintenir une infrastructure informatique. De la même manière, si il y a des nouveaux besoins, on peut obtenir plus de puissance très facilement. C’est-à-dire, on peut évoluer sans problème et sans attentes (flexibilité).

En deuxième lieu, les entreprises des services sont très fiables parce qu’ils suivent une politique de réplication et de redondance pour être en ligne le cent pourcent du temps, même en cas de faillite.

Concernant les inconvenants, on peut dire, sans doute, que la sécurité est la principale préoccupation : les données privées des entreprises qui circulent sur Internet, même encryptés, peuvent souffrir des attaques. En effet, ces données sont souvent très sensibles et peuvent se stocker dans des pays étrangers et on n’a aucun contrôle sur l’implantation des données.

En conclusion, c’est une technologie qui promet et que peut être le futur de l’informatique et de la manière comme nous nous entendons avec elle.

BackTrack 4: la navaja suiza de los administradores de red.

Posted in Redes, Sistemas operativos with tags , , on 14 abril 2010 by infobrain

Backtrack es una distribución de linux especialmente diseñada para el administrador de red. Está basada en Debian (desde la ultima versión, la 4 concretamente) y contiene más de 300 utilidades de red de todo tipo, aparte de aplicaciones más de uso general.

La distribución puede ser utilizada de varias maneras: la instalación tradicional en disco duro como cualquier otra distribución de linux, arranque desde una llave USB o la utilización de un livecd, siendo esta última la manera más utilizada.

Una de las aplicaciones más polémicas es la inclusión de Aircracker, que permite obtener la clave de una red protegida mediante WEP (ilícitamente, por supuesto). Ésta está compuesta de varios programas, que escanean, capturan toda la información y crackean la clave.

La cantidad ingente de programas y recursos que posee esta distribución, y la falta de una ayuda general y unificada, aconseja la investigación gradual de aquellas aplicaciones en las que esté uno más interesado.

Para más información:

http://en.wikipedia.org/wiki/BackTrack

http://www.backtrack-linux.org/faq/

Airsnare: tu wi-fi libre de intrusos.

Posted in Internet, Redes with tags , , on 5 abril 2010 by infobrain

De todos es sabida la facilidad con que una red con protección WEP puede ser descifrada. De la misma manera, una protección WAP también es susceptible de ataques (aunque no de una manera tan fácil desde luego que con una protección WEP). Ante esta situación y por precaución o simple curiosidad podemos utilizar Airsnare.

Se trata de una aplicación gratuita que permite detectar los ordenadores no autorizados que pueda haber en nuestra conexión wi-fi: el software vigila las direcciones MAC (recordemos: la direcciones física vinculada a cada tarjeta de red). Cuando un nuevo usuario intenta conectarse a la red hace una petición (DHCP) para obtener una dirección. Estas peticiones son igualmente vigiladas.

AirSnare posee versión para windows, aunque puede que sea necesario instalar un componente suplementario, la librería WinPcap.

El programa es bastante evidente de usar. En primer lugar verificar que el SSID coincide con el de tu red. Se selecciona de la lista que aparece a la izquierda nuestra tarjeta de red (con la indicación 802.11). A partir de aquí, con el botón Start se comienza el análisis. Las direcciones autorizadas se catalogan bajo la parte de “Friendly MAC Addresses” mientras las sospechosas bajo “Unfriendly MAC Addresses”. Puede ser que una impresora o una consola de videojuegos aparezca en esta lista, si es así, simplemente ir a “Add to Trusted”.

Si hemos detectado una conexión ajena, podemos hacer “sniffer” de todas las informaciones que emite sobre la red a través del programa Wireshark. Este software analiza los paquetes de información que circulan por la red y muestra todos los detalles.

Enlaces:

http://home.comcast.net/~jay.deboer/airsnare/

http://www.wireshark.org

Seek 2.0: a different search engine

Posted in Internet with tags , , , on 20 marzo 2010 by infobrain

Nowadays is well known the enormous predominance of Google in the market with a few percentage of market share from Bing of Microsoft and Yahoo. However, there are dozens of others search engines which are not known and with a very tiny percentage of the total users. I want to talk about one of these which has a different approach: Seek 2.0.

What’s special in this search engine? First of all, it is open source that you can use and modify its code, and distribute it without permission of any kind. It gives great importance to the fact that it is independent of any private organisation and prioritizes privacy and freedom of choice to the user.

Secondly, what we have here is a meta searching engine, that is to say, it will send your request to a number of searching engines, like Google, Bing or Yahoo, and it will show you the results of all those sources. In case of duplicity in the results, only one will be shown. Also, the engine analyses the resemblance of the results in order to show them in groups according to the type of information (for example, in one section you will have the web pages results, in another the results with .pdf, another one with the results from wiki pages, etc…).

More interesting is the possibility of creating your own node (proxy) or using public proxies in order to make your searches anonymous. In certain environments privacy is more than advisable, above all, when your queries can now be saved up to eighteen months. In the near future, it is planned to establish a p2p net which will allow the connection among nodes. This will permit the decentralisation of the engine and the regrouping in real time of the users who are making similar searches sharing them (using a distributed hash table). In the same way, users will have their own influence in the results of the queries of other users by introducing their own references and related keywords.

In conclusion, we are not facing a real alternative to Google (obviously) nor a future engine of mass utilisation but rather a different choice which gives you a different approach to queries and how they should work and, more importantly, a lot of (free) possibilities to play with.

Presently, the version is only available for Linux.

http://www.seeks-project.info/wiki/index.php/Main_Page

C# (II): Delegates

Posted in Programación with tags , on 13 marzo 2010 by infobrain

El concepto de “delegate” proviene de una técnica que existe hace largo tiempo conocida comúnmente como “Callback funtions” o “Function pointers” y se trata de un puntero a una llamada a una función.

.NET implementa está técnica a través de los delegates, con la diferencia de que, en C por ejemplo, se trata de un puntero a un lugar de la memoria, sin ninguna idea de que se está apuntando realmente. Sin embargo, un delegado es una operación segura (type safe), ya que es necesario envolver los detalles del método en ese nuevo tipo de objeto (el delegado). Es necesario especificar una definición precisa del tipo a devolver y de los parámetros. Asimismo, se pueden aplicar los comunes modificadores de acceso a la definición (public, private, protected).
Una vez que se defina que tipo de método el delegado representará, será posible crear una o varias instancias de ese delegado. Realmente, lo que el compilador hace es crear una clase que represente al delegado. Esta clase, siempre posee un constructor de un parámetro, siendo éste el método al que el delegado se referirá.

Un ejemplo de definición sería: delegate double DosLongs(long first, long second);

En cualquier código, dando el nombre de una instancia del delegado seguido de un/os parámetro/s entre paréntesis tiene el mismo efecto que llamar al método “envuelto” por el delegado. De hecho, suministrar los paréntesis a la instancia del delegado es lo mismo que invocar el método Invoke de la clase del delegado. “Delegate inference” es la forma de escribir la instancia del delegado simplemente pasando el nombre de la dirección.

Una instancia de un delegado se puede referir a cualquier instancia o método estático de cualquier tipo de objeto, siempre y cuando la declaración del método coincida con la declaración del delegado. Es posible para un delegado envolver más de un método; es lo que se llama “multicast delegate”. Si es llamado llamará sucesivamente en orden a cada método. De la misma manera, reconoce los operadores + , += , – , – =.

Una cuestión a tener en cuenta con un multicast delegate es que el orden en el cual los métodos se encadenan es desconocido de antemano, y por tanto, no es conveniente apoyarse que se invoque a los métodos en un determinado orden; si uno de los métodos dispara una excepción se produce una parada de la iteración. Se puede evitar este problema mediante el método de la clase Delegate GetInvocationList() que devuelve un array de objetos delegate.

Programación paralela: Intel Parallel Studio.

Posted in Programación with tags , on 20 febrero 2010 by infobrain

Durante muchos años, el programador se benefició de la carrera de los fabricantes de microprocesadores por ofrecer los procesadores más rápidos, lo que redundaba en que el rendimiento de una aplicación se veía favorecido por lo que los anglosajones denominan coloquialmente “the free lunch”, es decir, cuanto más tiempo transcurría, los procesadores que iban saliendo al mercado aceleraban la performance de tu software. Sin embargo, esa carrera de gigaherzios ha sido reemplazada por la aparición de procesadores con varios núcleos, llegándose a hablar de que por ejemplo, la versión 64 bits de Windows 7 puede manejar hasta 256 núcleos. Este dato nos lleva a otra denominación anglosajona, en donde del multi-core se pasará en un futuro a corto plazo a un many-core.

Esto aconseja o obliga (depende como se quiera ver) a tomar la programación paralela no como una cuestión complementaría a la excelencia de un sistema sino como algo fundamental, partiendo de la premisa de que un muy pequeño porcentaje de programadores utiliza la programación en paralelo en la práctica. Las explicaciones son variadas, desde una vinculación a la cultura secuencial de la primera programación y la complicación de emplear estas técnicas dentro del desarrollo, hasta la falta de adaptación de algunos lenguajes a estas tareas así como de la falta de herramientas adecuadas.

Intel Parallel Studio viene a facilitar la vida del programador dentro de todas estas cuestiones: se trata de un conjunto de programas que facilitan la introducción del multihilo en el software ya existente. Se presenta como una adición al Microsoft Visual Studio con el que está fuertemente integrado. Propone dos conjuntos de librerias (OpenMP y Threading Building Block -TBB-) que facilitan de una manera muy notoria la introducción del paradigma multihilo en el software.

Una de las grandes dificultades de la programación paralela es la localización de bugs. Para ello, Intel propone el Parallel Inspector como herramienta avanzada para la búsqueda de errores derivados del procesamiento paralelo.

En cuanto a la medición del rendimiento real, Parallel Amplifier permite comprobar como cada instrucción interactúa con el procesador durante su ejecución, ofreciendo al final un resumen global.

Pero la herramienta clave es el compilador de Intel que, además de su perfecta integración con Visual Studio, saca partido de los últimos juegos de instrucciones del procesador. Adicionalmente, se incluye la librería Intel Performance Primitives, con multitud de funciones (desde codecs de audio y video hasta funciones matemáticas y de criptografía).

Enlaces:

http://en.wikipedia.org/wiki/Intel_Parallel_Studio

http://software.intel.com/en-us/intel-parallel-studio-home/

Criptografía (I): Conceptos de llave pública y llave privada.

Posted in Criptografía with tags on 6 febrero 2010 by infobrain

Vamos a repasar un concepto básico dentro de la criptografía. Se trata en este caso de la utilización de algoritmos asimétricos que permiten el cifrado de mensajes entre un emisor y un receptor sin que exista la necesidad de enviar ninguna clave privada entre ellos, únicamente se necesita el intercambio de una clave pública.

Por tanto, cada usuario poseerá dos claves: su clave pública y su clave privada (las dos claves están relacionadas matemáticamente pero de una forma “imposible” de deducir). En el caso del envío de un mensaje, el emisor lo cifrará utilizando la clave pública del receptor que será posteriormente descifrada por la clave privada de ese receptor (y por esa sola clave). Otro de los usos dados es el de firma digital, de manera que un mensaje firmado con una clave privada (digital signature) puede ser verificado por una persona que posea la clave pública, asegurándose de esta manera que el mensaje proviene realmente de la persona que supuestamente lo envía.

Existen diferentes sistemas de criptografía asimétrica, así como diferentes posibles aplicaciones, en los enlaces que cito al final de la entrada se puede profundizar tanto como se quiera. De la misma manera, la cuestión de la inquebrantalidad de la clave privada es también un tema del que se ha escrito extensamente y que está en constante evolución. Por otra parte, mencionar 2 aplicaciones de estos principios:

– PGP es una aplicación informática que proporciona privacidad y autentificación por medio de la utilización de una serie de técnicas entre las que se encuentra la criptografía de clave pública, en donde cada clave pública está asociada a un nombre de usuario y una cuenta de email. Fue creado en 1991 y nuevas versiones salen a la luz periódicamente.

– GnuPG: versión libre del estándar OpenPGP (creado en 1997 con la intención de crear un estándar disponible mundialmente que pudiese operar con el propietario PGP) por parte de The Free Software Foundation. Existen de manera gratuita una serie de aplicaciones que interactúan con el “core” del sistema.

Enlaces:

http://en.wikipedia.org/wiki/Public-key_cryptography

http://www.gnupg.org/