Issuu on Google+

Revista Digital

Peer-to-peer

Artículos en esta edición:

• Componentes de una aplicación Web • Cliente-servidor

• El IDE (integrated development environment) • Peer-to-peer


Editorial Interconectados es una Revista Digital que busca unir y publicar los conocimientos que poseen nuestros propios lectores con mayores nociones sobre la computación para así ayudar e ilustrar a aquellos que no poseen tal grado de formación e información, la idea es servir de ventana para ilustrar y llevar investigaciones de vanguardia en cuanto el mundo tecnológico. Nuestra premisa es brindar respuestas a las inquietudes planteadas por los usuarios o lectores siendo estas respuestas generadas por otros lectores quienes consideran tener mayor conocimiento sobre la duda planteada.

Contenido Aplicación Web El IDE (integrated development environment) Componentes de una aplicación Web Cliente-servidor Peer-to-peer

1


Contenido

Nuestros Lectores responden a otros Lectores

Aplicación web En la ingeniería de software se denomina aplicación web a aquellas aplicaciones que los usuarios pueden utilizar accediendo a un servidor web a través de Internet o de una intranet mediante un navegador. En otras palabras, es una aplicación software que se codifica en un lenguaje soportado por los navegadores web en la que se confía la ejecución al navegador. Las aplicaciones web son populares debido a lo práctico del navegador web como cliente ligero, a la independencia del sistema operativo, así como a la facilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software a miles de usuarios potenciales. Existen aplicaciones como los webmails, wikis, weblogs, tiendas en línea y la propia Wikipedia que son ejemplos bien conocidos de aplicaciones web. Es importante mencionar que una página Web puede contener elementos que permiten una comunicación activa entre el usuario y la información. Esto permite que el usuario acceda a los datos de modo interactivo, gracias a que la página responderá a cada una de sus acciones, como por ejemplo rellenar y enviar formularios, participar en juegos diversos y acceder a gestores de base de datos de todo tipo.

2


Contenido

Nuestros Lectores responden a otros Lectores

Componentes de una aplicación Web Uno de las mejores formas de progresar y volverse un conocedor dentro del desarrollo en sistemas sea cual sea, es tener a alguien que ya haya “recorrido camino” o más simple que tenga experiencia en el ramo, para aprender de él y saber lo que no hay que hacer, quiero en este post mostrar unas cuantas mañas que aprendí al desarrollar y las comparto, no quiero que sea muy grande el post, solo quiero que sea una referencia y para profundizar puedes buscar en internet. Las herramientas Pues bien antes que nada para desarrollar en webs, necesitamos un buen navegador web, para ello recomiendo Firefox 3, si todavía no lo conoces y sigues sufriendo con IE, cámbialo ya !!!!. Ahora que ya tienes un navegador decente, lo que necesitaras es de complementos dentro del navegador, que te ayuden en la labor diaria, dos complementos imprescindibles dentro del desarrollo web son: Firebug y Web developer Firebug es la navaja suiza del desarrollo web, te permite: controlar las peticiones de tu pagina, editar el diseño del sitio, seleccionar elementos de diseño dentro de tu web, debuggear tu java script, manipular el DOM de tu pagina, etc. Web Developer es una barra de herramientas que permite: habilitar/deshabilitar tu java script, mostrar tus cookies en fin manipular todo lo referente a tu pagina web.

3


Contenido El IDE (integrated development environment) Otro complemento que recomiendo es yslow, que nos permite hacer un análisis de carga de nuestra página y nos muestra los consejos que necesita para que la carga sea mas rápida.

Bien ahora veremos el IDE de desarrollo, por el momento en wiebia trabajamos de lo más contentos con Netbeans 6.5, que ahora se encuentra en versión beta pero trabaja muy bien para ser un beta :D, Netbeans es hoy por hoy un entorno para múltiples tecnologías, es open source, con el puedes desarrollar en: •Aplicaciones Ruby on Rails. •Aplicaciones PHP. •Aplicaciones Python. •Soporte nativo a Java •Aplicaciones groovy, css, javascript, c++ •Aparte de ello tiene un soporte excelente a sistemas de subversionado que hablaremos mas adelante.

El lenguaje de Programación y el Framework Ahora lo más complejo el lenguaje de programación y el framework que utilizaras, por experiencia propia es muy difícil de elegir un lenguaje de programación ya que conlleva un tiempo el poder aprenderlo y lleva un poco más el dominarlo y que además levanta mucho humo el tratar de estos temas, así que para esto seremos lo mas neutrales en esto, aunque el titulo del blog diga otra cosa. Para el lenguaje Ruby: no hay discusión Rails, aunque existe una alternativa algo valedera Merb, pero por el nueva versión de rails 2.2 ho existirán ya mas dudas, elegido rails. Para el lenguaje de PHP, podemos optar por Code Igniter lo veo mas completo y liviano, Cake podría ser pero no existe mucho movimiento sobre el (ya vemos un año del beta y rc1) y si tienes bastante tiempo para aprender te recomiendo ZendPara python, que por ahora esta algo de moda, tenemos a nuestro django. Para Asp.net, Cobol y otros: tenemos Ruby on rails :D. El sistema de versionado Bien ahora tenemos que elegir nuestro sistema de versionado de código fuente, esto es que cuando estemos codificando ya sea en grupos o individualmente tenemos que tener un programa que nos ayude a tener un registro detallado por fechas de los cambios que hicimos o quien es el que hizo los cambios, en aquí tenemos dos alternativas conocidas y manejadas por wiebia.

4


Contenido Cliente-servidor La arquitectura cliente-servidor consiste básicamente en un cliente que realiza peticiones a otro programa (el servidor) que le da respuesta. Aunque esta idea se puede aplicar a programas que se ejecutan sobre una sola computadora es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras. En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema. La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa. Los tipos específicos de servidores incluyen los servidores web, los servidores de archivo, los servidores del correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica seguirá siendo la misma.

Ventajas Centralización del control: los accesos, recursos y la integridad de los datos son controlados por el servidor de forma que un programa cliente defectuoso o no autorizado no pueda dañar el sistema. Esta centralización también facilita la tarea de poner al día datos u otros recursos (mejor que en las redes P2P).. Escalabilidad: se puede aumentar la capacidad de clientes y servidores por separado. Cualquier elemento puede ser aumentado (o mejorado) en cualquier momento, o se pueden añadir nuevos nodos a la red (clientes y/o servidores). Fácil mantenimiento: al estar distribuidas las funciones y responsabilidades entre varios ordenadores independientes, es posible reemplazar, reparar, actualizar, o incluso trasladar un servidor, mientras que sus clientes no se verán afectados por ese cambio (o se afectarán mínimamente). Esta independencia de los cambios también se conoce como encapsulación. Existen tecnologías, suficientemente desarrolladas, diseñadas para el paradigma de C/S que aseguran la seguridad en las transacciones, la amigabilidad de la interfaz, y la facilidad de empleo.

5


Contenido Peer-to-peer

Una red Peer-to-Peer o red de pares o red entre iguales o red entre pares o red punto a punto (P2P, por sus siglas en inglés) es una red de computadoras en la que todos o algunos aspectos funcionan sin clientes ni servidores fijos, sino una serie de nodos que se comportan como iguales entre sí. Es decir, actúan simultáneamente como clientes y servidores respecto a los demás nodos de la red. Las redes P2P permiten el intercambio directo de información, en cualquier formato, entre los ordenadores interconectados. El hecho de que sirvan para compartir e intercambiar información de forma directa entre dos o más usuarios ha propiciado que parte de los usuarios lo utilicen para intercambiar archivos cuyo contenido está sujeto a las leyes de copyright, lo que ha generado una gran polémica entre defensores y detractores de estos sistemas. Las redes peer-to-peer aprovechan, administran y optimizan el uso del ancho de banda de los demás usuarios de la red por medio de la conectividad entre los mismos, y obtienen así más rendimiento en las conexiones y transferencias que con algunos métodos centralizados convencionales, donde una cantidad relativamente pequeña de servidores provee el total del ancho de banda y recursos compartidos para un servicio o aplicación. Dichas redes son útiles para diversos propósitos. A menudo se usan para compartir ficheros de cualquier tipo (por ejemplo, audio, vídeo o software). Este tipo de red también suele usarse en telefonía VoIP para hacer más eficiente la transmisión de datos en tiempo real. La eficacia de los nodos en el enlace y transmisión de datos puede variar según su configuración local (cortafuegos, NAT, ruteadores, etc.), velocidad de proceso, disponibilidad de ancho de banda de su conexión a la red y capacidad de almacenamiento en disco.

6



Interconectados