martes, 31 de agosto de 2010

Conoce Acerca de XML Web Service


Vamos a hablar de los requerimientos que necesitan estas aplicaciones para ser ejecutadas, así como las estructuras de protocolos sobre las que se asientan.

Por Erick Jhonatan Medina Llamca
"Un Web Service es un componente de software que se comunica con otras aplicaciones codificando los mensaje en XML y enviando estos mensaje a través de protocolos estándares de Internet tales como el Hypertext Transfer Protocol (HTTP). Intuitivamente un Web Service es similar a un sitio web que no cuenta con un interfaz de usuario y que da servicio a las aplicaciones en vez de a las personas. Un Web Service, en vez de obtener solicitudes desde el navegador y retornar paginas web como respuesta, lo que hace es recibir solicitudes a través de un mensaje formateado en XML desde una aplicación, realiza una tarea y devuelve un mensaje de respuesta también formateado en XML.

Microsoft y otras empresas lideres están promocionando SOAP como estándar de los mensajes para los Web Services. Un mensaje SOAP se parece mucho a una carta : es un sobre que contiene una cabecera con la dirección del receptor del mensaje , un conjunto de opciones de entrega (tal como la información de encriptación), y un cuerpo o body con la información o data del mensaje.

Microsoft y otros proveedores líderes promocionan los Web Services como un modelo de programación para la comunicación entre aplicaciones. Estas compañías piensan que la conexión de aplicaciones a través de la Internet mejorará la capacidad de las empresas para trabajar conjuntamente con sus socios de negocio, proveedores y clientes. Creando una capa de Web Services sobre una aplicación corporativa existente, las organizaciones podrán permitir que sistemas externos puedan invocar las funciones de la aplicación a través de Internet (o una intranet corporativa) sin tener que modificar la aplicación misma. Por ejemplo, varias compañías están hoy en día creando Web Services que actúan como front end para aplicaciones de entrada de órdenes que están residentes internamente en un mainframe. Estas compañías permiten a los sistemas de compras de sus clientes enviar órdenes de compra a través de la Internet. Poner una capa de web services sobre las aplicaciones existentes es una solución muy interesante para integrar las aplicaciones desarrolladas por los diferentes departamentos y así reducir los costos de integración."
Requisitos de un Web Service

• Interoperabilidad: Un servicio remoto debe permitir su utilización por clientes de otras plataformas.

• Amigabilidad con Internet: La solución debe poder funcionar para soportar clientes que accedan a los servicios remotos desde internet.

• Interfaces fuertemente tipadas: No debería haber ambigüedad acerca del tipo de dato enviado y recibido desde un servicio remoto. Más aún, los tipos de datos definidos en el servicio remoto deben poderse corresponder razonablemente bien con los tipos de datos de la mayoría de los lenguaje de programación procedimentales.

• Posibilidad de aprovechar los estándares de Internet existentes: La implementación del servicio remoto debería aprovechar estándares de Internet existentes tanto como sea posible y evitar reinventar soluciones a problema que ya se han resuelto. Una solución construida sobre un estándar de Internet ampliamente adoptado puede aprovechar conjuntos de herramientas y productos existentes creados para dicha tecnología.

• Soporte para cualquier lenguaje: La solución no debería ligarse a un lenguaje de programación particular Java RMI, por ejemplo, esta ligada completamente a lenguaje Java. Sería muy difícil invocar funcionalidad de un objeto Java remoto desde Visual Basic o PERL. Un cliente debería ser capaz de implementar un nuevo servicio Web existente independientemente del lenguaje de programación en el que se halla escrito el cliente

• Soporte para cualquier infraestructura de componente distribuida: La solución no debe estar fuertemente ligada a una infraestructura de componentes en particular. De hecho, no se bebería requerir el comprar, instalar o mantener una infraestructura de objetos distribuidos, solo construir un nuevo servicio remoto utilizar un servicio existente. Los protocolos subyacentes deberían proporcionar un nivel base de comunicación entre infraestructura de objeto distribuidos existentes tales como DCOM y CORBA.

Bloques Constructivos de Servicios Web
En el siguiente grafico se muestran los bloques constructivos principales necesarios para facilitar las comunicaciones remotas entre aflicciones.

Descubrimiento

UDDI,DISCO

Descripción

WSDL, Esquema XML, Docs

Formato de Mensaje

SOAP

Codificación

XML

Transporte

HTTP,SMTP y otros



• Descripción: Una vez que se ha resuelto el extremo de un servicio Web dado, el cliente necesita suficiente información para interactuar adecuadamente con el mismo. La descripción de un servicio Web implica meta datos estructurados sobre la interfaz que intenta utilizar la aplicación cliente así como documentación escrita sobré el servicio Web incluyendo ejemplo de uso. Un componente DCOM expone meta datos estructurados sobre sus interfaces mediante una biblioteca de tipo (typelib). Los meta datos dentro de una typelib de componente se guardan en un formato binario propietario a los que se accede mediante una interfaz de programación de aplicación (API) propietaria.

• Formato del mensaje: Para el intercambio de datos, el cliente y el servidor tienen que estar de acuerdo en un mecanismo común de codificación y formato de mensaje.

El uso de un mecanismo estándar de codificar los datos asegura que los datos que codifica el cliente los interpretará correctamente el servidor. En DCOM los mensajes que se envían entre un cliente y un servidor tienen un formato definido por el protocolo DCOM Object RPC (ORPC).

• Codificación: Los datos que se trasmiten entre el cliente y el servidor necesitan codificarse en un cuerpo de mensaje. Dcom utiliza un esquema de codificación binaria para serializar los datos de los parámetros que se intercambian entre el cliente y el servidor.

• Transporte: Una vez se ha dado formato al mensaje y se han serializado los datos en el cuerpo del mensaje se debe transferir entre el cliente y el servidor utilizando algún protocolo de transporte. DCOM dispone de varios protocolos propietarios como TCP, SPX, NetBEUI y NetBIOS sobre IPX.


SOAP

Protocolo para el intercambio de mensajes que utiliza XML y es independiente de la plataforma o sistema operativo, utilizado para códificar información en los dialogos de los Servicios Web
SOAP (siglas de Simple Object Access Protocol) es un protocolo estándar que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML. Este protocolo deriva de un protocolo creado por David Winer en 1998, llamado XML-RPC. SOAP fue creado por Microsoft, IBM y otros y está actualmente bajo el auspicio de la W3C. Es uno de los protocolos utilizados en los servicios Web
SOAP es un protocolo para el intercambio de mensajes sobre redes de computadoras, generalmente usando HTTP. Está basado en XML, a diferencia de DCOM y CORBA que son binarios; esto facilita la lectura por parte de los humanos, pero también los mensajes resultan más largos y, por lo tanto, considerablemente más lentos de transferir.
Existen múltiples tipos de modelos de mensajes en SOAP pero, por lejos, el más común es el RPC, en donde un nodo de red (el cliente) envía un mensaje de solicitud a otro nodo (el servidor) y el servidor inmeditamente responde el mensaje al cliente.
Los mensajes SOAP, son idependientes del sistema operativo, y pueden transportarse en varios protocolos de internet como SMTP, MIME y HTTP.
SOAP al principio significaba Simple Object Access Protocol, luego fue Service Oriented Architecture Protocol, pero actualmente es simplemente SOAP. El acronismo inicial, fue dejado de lado en la versión 1.2, cuando se volvió una recomendación de la W3C el 24 de junio de 2003, porque su nombre daba a confusión.
SOAP fue diseñado por David Winer, Don Box, Bob Atkinson y Mohsen Al-Ghosein en 1998 con respaldo de Microsoft. Actualmente, la especificación SOAP es mantenida por el XML Protocol Working Group de la W3C


¿Qué es SOAP?
Son las siglas de Simple Object Access Protocol. Este protocolo deriva de un protocolo creado por David Winer, XML-RPC en 1998. En su sitio web, Userland, se puede encontrar multitud de documentación acerca de este primer protocolo de comunicación bajo http mediante XML. Con este protocolo se pedían realizar RPC o remote procedure calls, es decir, podíamos bien en cliente o servidor realizar peticiones mediante http a un servidor web. Los mensajes debían tener un formato determinado empleando XML para encapsular los parámetros de la petición. Con el paso del tiempo el proyecto iniciado por David Winer interesó a Importantes multinacionales entre las que se encuentran IBM y Microsoft y de este interés por XML-RPC se desarrollo SOAP."


UDDI en la web:

UDDI son las siglas del catálogo de negocios de Internet denominado Universal Description, Discovery and Integration. El registro en el catálogo se hace en XML. UDDI es una iniciativa industrial abierta (sufragada por la OASIS) entroncada en el contexto de los servicios Web. ...

UDDI son las siglas del catálogo de negocios de Internet denominado Universal Description, Discovery and Integration. El registro en el catálogo se hace en XML. UDDI es una iniciativa industrial abierta (sufragada por la OASIS) entroncada en el contexto de los servicios Web. El registro de un negocio en UDDI tiene tres partes:

• Páginas blancas - dirección, contacto y otros identificadores conocidos.

• Páginas amarillas - categorización industrial basada en taxonomías.

• Páginas verdes - información técnica sobre los servicios que aportan las propias empresas.

UDDI es uno de los estándares básicos de los servicios Web cuyo objetivo es ser accedido por los mensajes SOAP y dar paso a documentos WSDL, en los que se describen los requisitos del protocolo y los formatos del mensaje solicitado para interactuar con los servicios Web del catálogo de registros.

(Universal Description, Discovery and Integration). Catálogo independiente, basado en XML, que lista los negocios de internet de todo el mundo. Es una iniciativa industrial abierta, en donde los negocios se listan a sí mismos en internet, como si se tratase de las páginas amarillas en una guía telefónica. Es patrocinado por OASIS, y que permite a las empresas publicar listas de servicios y descubrirse entre sí, y definir cómo los servicios o aplicaciones de software interactúan sobre internet. UDDI fue escrito en agosto de 2000.
El registro de un negocio en el UDDI consta de tres partes:

* Páginas blancas: dirección, contacto y otros identificadores conocidos.

* Páginas amarillas: categorización industrial basada en taxonomías.

* Páginas verdes: información técnica sobre los servicios que la empresa brinda.
UDDI es uno de estándares básicos de los servicios web. Está diseñado para ser interrogado por mensajes SOAP y proveer acceso documentos de WSDL (Web Services Description Language), en los que se describen los requisitos del protocolo y los formatos del mensaje solicitado para interactuar con los servicios Web del catálogo de registros.


WSDL

WSDL son las siglas de Web Services Description Language, un formato XML que se utiliza para describir servicios Web (algunas personas lo leen como wisdel). La versión 1.0 fue la primera recomendación por parte del W3C y la versión 1.1 no alcanzó nunca tal estatus. La versión 2.0 se convirtió en la recomendación actual por parte de dicha entidad.

WSDL describe la interfaz pública a los servicios Web. Está basado en XML y describe la forma de comunicación, es decir, los requisitos del protocolo y los formatos de los mensajes necesarios para interactuar con los servicios listados en su catálogo. Las operaciones y mensajes que soporta se describen en abstracto y se ligan después al protocolo concreto de red y al formato del mensaje.

Así, WSDL se usa a menudo en combinación con SOAP y XML Schema. Un programa cliente que se conecta a un servicio web puede leer el WSDL para determinar qué funciones están disponibles en el servidor. Los tipos de datos especiales se incluyen en el archivo WSDL en forma de XML Schema. El cliente puede usar SOAP para hacer la llamada a una de las funciones listadas en el WSDL.


XML

XML, siglas en inglés de Extensible Markup Language (lenguaje de marcas extensible), es un metalenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C). Es una simplificación y adaptación del SGML y permite definir la gramática de lenguajes específicos (de la misma manera que HTML es a su vez un lenguaje definido por SGML). Por lo tanto XML no es realmente un lenguaje en particular, sino una manera de definir lenguajes para diferentes necesidades. Algunos de estos lenguajes que usan XML para su definición son XHTML, SVG, MathML.

XML no ha nacido sólo para su aplicación en Internet, sino que se propone como un estándar para el intercambio de información estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de cálculo y casi cualquier cosa imaginable.

XML es una tecnología sencilla que tiene a su alrededor otras que la complementan y la hacen mucho más grande y con unas posibilidades mucho mayores. Tiene un papel muy importante en la actualidad ya que permite la compatibilidad entre sistemas para compartir la información de una manera segura, fiable y fácil.

Ventajas del XML

• Es extensible: Después de diseñado y puesto en producción, es posible extender XML con la adición de nuevas etiquetas, de modo que se pueda continuar utilizando sin complicación alguna.

• El analizador es un componente estándar, no es necesario crear un analizador específico para cada versión de lenguaje XML. Esto posibilita el empleo de cualquiera de los analizadores disponibles. De esta manera se evitan bugs y se acelera el desarrollo de aplicaciones.

• Si un tercero decide usar un documento creado en XML, es sencillo entender su estructura y procesarla. Mejora la compatibilidad entre aplicaciones. Podemos comunicar aplicaciones de distintas plataformas, sin que importe el origen de los datos, es decir, podríamos tener una aplicación en Linux con una base de datos Postgres y comunicarla con otra aplicación en Windows y Base de Datos MS-SQL Server.

• Transformamos datos en información, pues se le añade un significado concreto y los asociamos a un contexto, con lo cual tenemos flexibilidad para estructurar documentos.



Conoce Acerca de SOA

Definicion de soa
SOA es un concepto, un estilo de desarrollo de aplicaciones con una estructura que soporta servicios débilmente acoplados para permitir la implementación de procesos de negocios en forma flexible de una manera interoperable e independiente de la tecnología que se utilice.

Se trata de servicios que contienen procesos de negocios que permiten crear aplicaciones con una arquitectura novedosa, de manera dinámica y reconfigurable utilizando descripciones de servicios basadas en interfaces. SOA permite descomponer las funcionalidades que una organización requiere en partes que son reutilizables, haciendo más sencillo e independiente su manejo. Un servicio puede contener otros servicios convirtiéndolo en un modelo iterativo.

Un servicio Web puede ser invocado por otro programa que funciona como cliente o consumidor del servicio. No es necesario conocer la lógica interna del servicio, solo se necesita conocer la entrada que requiere, la salida que produce y cómo se invoca para su ejecución. Los servicios Web son invocados basándose en decisiones tomadas por reglas de negocio, cuando cambia la regla de negocio se cambia el servicio web que la contenía, esto genera sistemas con un nivel de flexibilidad importante al no tener que considerar ni cambiar la lógica interna del programa ante cada cambio que se produce en las reglas de negocios, la dinámica actual las empresas y el mercado global obligan a constantes cambios en sus reglas de negocios y SOA posibilita eliminar los sistemas monolíticos que se usaban (y todavía se utilizan en la mayoría de los casos) y remplazarlos por una arquitectura que segmenta los requerimientos en servicios que se integran de manera dinámica. La figura 4 muestra las tecnologías relacionadas con SOA. La seguridad está presente en todo momento mientras que WSDL y SOAP son utilizados en determinado momento. Como se observa XML también está presente en todos los niveles.









Figura 4. Tecnologías relacionadas con SOA


Objetivos de soa

Los objetivos de SOA pueden analizarse desde el punto de vista empresarial y desde el tecnológico:

Desde el punto de vista empresarial:

Permite modularizar las aplicaciones en componentes de negocios intercambiables y de rápida adaptación a las necesidades especificas que se plantean a diario en una organización. Posibilitando una mejora en las prestaciones que brinda, en la relación con los clientes, entre los empleados y produciendo una reducción en el retorno de la inversión, mejorando la rentabilidad de las inversiones tecnológicas.

Desde el punto de vista tecnológico:

Permite combinar datos en tiempo real con otros sistemas capaces de fusionar los procesos de negocio. SOA utiliza tecnologías totalmente estándar como es XML, SOAP, WSDL y Business Process Execution Language (BPEL). Estandarizando el modelo de integración de procesos y la cooperación entre aplicaciones.

Con SOA es posible conectar aplicaciones desarrolladas con tecnologías heterogéneas, produciendo un aumento en la flexibilidad de las mismas y posibilitando una interacción no permanente entre las organizaciones cuando las mismas lo requieran. La curva de aprendizaje de las nuevas tecnologías con esta arquitectura se reduce drásticamente.
Capas de soa

Se distinguen las siguientes capas [8]

Capa 1: Sistemas operacionales. Esta capa contiene todas las aplicaciones existentes tanto ERP, CRM, sistemas orientados a objetos, aplicaciones de inteligencia de negocio, etc, SOA puede reutilizarlos e integrarlos.

Capa 2: Componentes empresariales. Estos componentes realizan la funcionalidad y mantenimiento de la calidad del servicio que se brinda.

Capa 3: Servicios. Los servicios de negocio residen en esta capa. Pueden ser descubiertos o pueden ser enlazados estáticamente y después invocados en servicios compuestos. Esta capa de exposición de servicios también permite tomar componentes que se encuentran en la capa 2.

Capa 4: Composición de procesos de negocio. A partir de los servicios de la capa 3 esta capa define la composición de procesos de negocio. Los servicios, para ejecutar un proceso de negocios son introducidos a través de orquestación y coreografía, conceptos que serán explicados más adelante.

Capa 5: Presentación o acceso. Esta capa se consideraba fuera del ámbito de la SOA, pero estándares como Web Services for Remote Portlets versión 2.0 (OASIS Web Services for Remote Portlets 2003) .

Capa 6: Integración de servicios (ESB). Posibilita la integración de servicios a través de la introducción de un conjunto fiable de capacidades.

Capa 7: Calidad del servicio. Esta capa brinda las capacidades necesarias para monitorizar, gestionar y mantener propiedades de calidad del servicio, como seguridad, ejecución y disponibilidad.

La figura 5 muestra esquemáticamente las capas de SOA









Figura 2. Capas de SOA según Arsanjani, Borges y Holley.


Propiedades de soa
Algunas de las más importantes propiedades de SOA son:

Orientación a la conversación. El foco de atención no está en los nodos sino en los mensajes que se intercambian entre los mismos.

Vista Lógica: El servicio es una abstracción (vista lógica) de los programas, bases de datos, procesos de negocio, etc..

Orientación a Mensajes: El servicio se define formalmente en términos de los mensajes que se intercambian entre agentes proveedores y solicitantes. Esto posibilita que se incorpore un componente “decorando” estos componentes con software de gestión y conversión.

Abstracción del agente. La estructura interna del agente (lenguaje de programación, BD, etc.) se abstrae en SOA, un nodo es una entidad computacional que participa en conversaciones con otros nodos. No es necesario conocer las particularidades del lenguaje de implementación. Esto evita problemas arquitectónicos derivados de la necesidad de conocer determinados sistemas a nivel estructural.

Metadatos. SOA se asocian con metadatos, los mismos son descripciones acerca de la forma y tipo de los elementos que transportan los mensajes, el orden de los mensajes, el significado de los mensajes, etc.

Orientación a la Internet: Los servicios tienden a usarse a través de la red, aunque este no es un requisito absoluto.

Granularidad: Los servicios tienden a usar un pequeño número de operaciones con mensajes complejos.

Neutral a la Plataforma: Los mensajes se envían en un formato estándar y neutral a la plataforma, utilizando XML
Un sistema distribuido [9] es un conjunto de agentes software que colaboran entre si para implementar una determinada funcionalidad. SOA es un tipo de sistema distribuido ya que los agentes rara vez trabajan en el mismo entorno, necesitando alguna forma de comunicación entre ellos. En SOA los agentes son servicios que realizan una operación determinada y que puede ser invocado desde afuera del contexto de una gran aplicación. La figura 6 muestra un diagrama genérico de SOA donde la clave son los mensajes intercambiados, los agentes actúan solicitando los servicios o haciendo de proveedores de los mismos, compartiendo los mecanismos de transporte que permiten el flujo de los mensajes








Figura 3. Diagrama de un SOA genérico
ASP.NET AJAX Control Toolkit
ASP.NET 2.0 supone una enorme evolución en el mundo de los lenguajes Web. Una mayor potencia, fiabilidad y eficiencia van cogidos de la mano de una gran capacidad de hacer la vida más fácil a los programadores Web: lo que con otras arquitecturas de trabajo Web nos costaría sudor y lágrimas, con el framework ASP.NET 2.0 ya viene por defecto o requiere una sencilla instalación.
Y es que hoy por hoy está muy de moda AJAX (Asynchronous JavaScript and XML), con la que se construyen las modernas Web 2.0: “idas y vueltas” entre el servidor Web y el navegador de nuestro visitante sin que la página se recargue. De este modo los programas de escritorio quedan cada vez más obsoletos frente a los programas Web.

El único problema de AJAX es que, si bien no es la panacea de la dificultad, sí requiere unos conocimientos medianamente avanzados del programador Web, así como una gran capacidad de organización de código.
Ante todo esto, la respuesta de ASP.NET 2.0 ha sido contundente: ASP.NET AJAX.

ASP.NET AJAX es una nueva tecnología Web que se presenta como extensión gratuita de ASP.NET 2.0, añadiéndole funcionalidades AJAX que eliminan de un plumazo su dificultad de uso, y siendo independiente del navegador con que accedamos. Ahora los programadores Web no necesitan saber absolutamente nada de javascript o XML para crear potentes aplicaciones Web 100% AJAX.

Es un proyecto de código abierto construida en la parte superior del marco de Microsoft ASP.NET AJAX. Se trata de un esfuerzo conjunto entre Microsoft y la comunidad de ASP.NET AJAX que proporciona una infraestructura de gran alcance para escribir reutilizables, adaptables y extensible extensores de ASP.NET AJAX y controles, así como una rica variedad de controles que pueden ser utilizados fuera de la caja para crear una experiencia interactiva en la Web.

Como trabajar con AJAX ControlToolkit 3.5

Bien primero que nada vamos a la sección del proyecto en CODEPLEX, recuerden que este sitio web, es implementado por Microsoft para apoyar al Open Source, y en donde la comunidad de desarrolladores puede compartir sus codigos de proyectos.

Descargamos la versión 3.5 sp1 para visual studio 2008.

Descomprimimos el zip y nos vamos a la carpeta de AjaxControlExtender, damos doble clic AjaxControlExtender.vsi e instalamos las plantillas.












Iniciamos en Visual Studio 2008, abrimos el proyecto de AJAXControlToolkit de la carpeta que descomprimimos, buscamos TemplateVSI, y damos build al proyecto y de ahi nos genera dos archivos una dll y un archivo de propiedades .pdb.

Esos archivos los copiamos y los tenemos presente para a continuación:

Creamos un nuevo sitio web

.











Escogemos un pestaña de la barra de herramientas le colocamos el nombre que querramos.Y damos clic derecho agregamos componentes o “choose items”.







Escogemos el dll que copiamos. y damos aceptar.


















Tenemos la lista de los controles que acabamos de anexar al ToolBox.

Ahora vamos a hacer un demo.

Seleccionamos un ScriptManager, recuerden que si vamos a trabajar con AJAX, necesitamos forsozamente este control antes de todos.








Si coloco un botón, y despues me voy a mi barra de herramientas donde tengo los controles de AJAX, puedo seleccionar y arrastrar el ConfirmButtonExtender, sobre el Boton agregado.











Automaticamente aparece del siguiente modo, y en la ventana de propiedades del botón se anexa lo siguiente:












Supongamos que deseamos utilizar la propiedad de ConfirmText para mandarle un mensaje al usuario de la pagina.

Y vemos nuestra pagina en el explorador web.

Conoce Acerca de jQuery


Qué es jQuery, para qué sirve y qué ventajas tiene el utilizar este framework Javascript.

Por erick jhonatan Medina Llanca

Bienvenidos al manual sobre jQuery que vamos a publicar en DesarrolloWeb.com, con el que pretendemos clarificar a los usuarios el método de trabajo y programación de aplicaciones del lado del cliente, compatibles con todos los navegadores más comunes.

¿Qué es jQuery?

Para simplificar, podríamos decir que jQuery es un framework Javascript, pero quizás muchos de los lectores se preguntarán qué es un framework. Pues es un producto que sirve como base para la programación avanzada de aplicaciones, que aporta una serie de funciones o códigos para realizar tareas habituales. Por decirlo de otra manera, framework son unas librerías de código que contienen procesos o rutinas ya listos para usar. Los programadores utilizan los frameworks para no tener que desarrollar ellos mismos las tareas más básicas, puesto que en el propio framework ya hay implementaciones que están probadas, funcionan y no se necesitan volver a programar.
 jQuery es un framework para el lenguaje Javascript, luego será un producto que nos simplificará la vida para programar en este lenguaje. Como probablemente sabremos, cuando un desarrollador tiene que utilizar Javascript, generalmente tiene que preocuparse por hacer scripts compatibles con varios navegadores y para ello tiene que incorporar mucho código que lo único que hace es detectar el browser del usuario, para hacer una u otra cosa dependiendo de si es Internet Explorer, Firefox, Opera, etc. jQuery es donde más nos puede ayudar, puesto que implementa una serie de clases (de programación orientada a objetos) que nos permiten programar sin preocuparnos del navegador con el que nos está visitando el usuario, ya que funcionan de exacta forma en todas las plataformas más habituales.

Así pues, este framework Javascript, nos ofrece una infraestructura con la que tendremos mucha mayor facilidad para la creación de aplicaciones complejas del lado del cliente. Por ejemplo, con jQuery obtendremos ayuda en la creación de interfaces de usuario, efectos dinámicos, aplicaciones que hacen uso de Ajax, etc. Cuando programemos Javascript con jQuery tendremos a nuestra disposición una interfaz para programación que nos permitirá hacer cosas con el navegador que estemos seguros que funcionarán para todos nuestros visitantes. Simplemente debemos conocer las librerías del framework y programar utilizando las clases, sus propiedades y métodos para la consecución de nuestros objetivos.

Además, todas estas ventajas que sin duda son muy de agradecer, con jQuery las obtenemos de manera gratuita, ya que el framework tiene licencia para uso en cualquier tipo de plataforma, personal o comercial. Para ello simplemente tendremos que incluir en nuestras páginas un script Javascript que contiene el código de jQuery, que podemos descargar de la propia página web del producto y comenzar a utilizar el framework.

El archivo del framework ocupa unos 56 KB, lo que es bastante razonable y no retrasará mucho la carga de nuestra página (si nuestro servidor envía los datos comprimidos, lo que es bastante normal, el peso de jQuery será de unos 19 KB). Además, nuestro servidor lo enviará al cliente la primera vez que visite una página del sitio. En siguientes páginas el cliente ya tendrá el archivo del framework, por lo que no necesitará transferirlo y lo tomará de la caché. Con lo que la carga de la página sólo se verá afectada por el peso de este framework una vez por usuario. Las ventajas a la hora de desarrollo de las aplicaciones, así como las puertas que nos abre jQuery compensan extraordinariamente el peso del paquete.

Ventajas de jQuery con respecto a otras alternativas

Es importante comentar que jQuery no es el único framework que existe en el mercado. Existen varias soluciones similares que también funcionan muy bien, que básicamente nos sirven para hacer lo mismo. Como es normal, cada uno de los frameworks tiene sus ventajas e inconvenientes, pero jQuery es un producto con una aceptación por parte de los programadores muy buena y un grado de penetración en el mercado muy amplio, lo que hace suponer que es una de las mejores opciones. Además, es un producto serio, estable, bien documentado y con un gran equipo de desarrolladores a cargo de la mejora y actualización del framework. Otra cosa muy interesante es la dilatada comunidad de creadores de plugins o componentes, lo que hace fácil encontrar soluciones ya creadas en jQuery para implementar asuntos como interfaces de usuario, galerías, votaciones, efectos diversos, etc.

Uno de los competidores de jQuery, del que hemos publicado ya en DesarrolloWeb.com un amplio manual para programadores, es Mootools, que también posee ventajas similares. Os dejo el enlace al Manual de Mootools, que también puede ser interesante, porque seguramente lo tengamos explicado con mayor detalle que jQuery.
Conoce Acerca de AJAX


Ajax, acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y XML), es una técnica de desarrollo web para crear aplicaciones interactivas o RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicación asíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas, lo que significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones.

Ajax es una tecnología asíncrona, en el sentido de que los datos adicionales se requieren al servidor y se cargan en segundo plano sin interferir con la visualización ni el comportamiento de la página. JavaScript es el lenguaje interpretado (scripting language) en el que normalmente se efectúan las funciones de llamada de Ajax mientras que el acceso a los datos se realiza mediante XMLHttpRequest, objeto disponible en los navegadores actuales. En cualquier caso, no es necesario que el contenido asíncrono esté formateado en XML.

Ajax es una técnica válida para múltiples plataformas y utilizable en muchos sistemas operativos y navegadores dado que está basado en estándares abiertos como JavaScript y Document Object Model (DOM).

AJAX (JavaScript Asíncrono y XML) es un término nuevo para describir dos capacidades de los navegadores que han estado presentes por años, pero que habían sido ignoradas por muchos desarrolladores Web, hasta hace poco que surgieron aplicaciones como Gmail, Google suggest y Google Maps.

Las dos capacidades en cuestión son:

• La posibilidad de hacer peticiones al servidor sin tener que volver a cargar la página.

• La posibilidad de analizar y trabajar con documentos XML.
JavaScript Asíncrono y XML (AJAX) no es una tecnología por sí misma, sino un término que describe un nuevo enfoque que utiliza conjuntamente varias tecnologías existentes, incluyendo: HTML o XHTML, Hojas de estilo CSS, JavaScript, Modelo de Objetos de Documento(DOM), XML, XSLT, y el objeto XMLHttpRequest. Cuando estas tecnologías se combinan en el modelo AJAX es posible lograr aplicaciones web capaces de actualizarse continuamente sin tener que volver a cargar la página completa. Esto crea aplicaciones más rápidas y con mejor respuesta a las acciones del usuario.

Bueno, pues después de soltar todo este rollo, quiero mostraros un script que he hecho utilizando JavaScript, PHP, XML y DOM.

Esto es un lector de RSS, como sabéis los RSS están en XLM, cosa que puede manejar bien JavaScript a través del objeto XMLHttpRequest, pero para poder tener acceso a archivos externo a nuestro servidor, he utilizado PHP, he creado unas funciones, que te lee el RSS de la dirección que le pasemos y te lo guarda en una cache en tu servidor, para que después lo pueda maneja JavaScript a través del XMLHttpRequest.
La cahe del archivo XML es configurable, en este caso yo he puesto que si el archivo lleva más de una hora, lo vuelve a leer del sitio de origen, pues las noticias RSS tardan algo más en actualizarse, pero estableciendo el valor a cero se leerá continuamente del origen.

La ventaja de este nuevo sistema, es que no tienes que recargar la página para modificar un texto, y no cargar otra pagina de nuevo en un iframe. Esta información “extra” se obtiene mediante una petición hecha en JAVASCRIPT. Estas peticiones se puede repetir tantas veces como se desee.
Tecnologías incluidas en Ajax

Ajax es una combinación de cuatro tecnologías ya existentes:

• XHTML (o HTML) y hojas de estilos en cascada (CSS) para el diseño que acompaña a la información.

• Document Object Model (DOM) accedido con un lenguaje de scripting por parte del usuario, especialmente implementaciones ECMAScript como JavaScript y JScript, para mostrar e interactuar dinámicamente con la información presentada.

• El objeto XMLHttpRequest para intercambiar datos de forma asíncrona con el servidor web. En algunos frameworks y en algunas situaciones concretas, se usa un objeto iframe en lugar del XMLHttpRequest para realizar dichos intercambios.

• XML es el formato usado generalmente para la transferencia de datos solicitados al servidor, aunque cualquier formato puede funcionar, incluyendo HTML preformateado, texto plano, JSON y hasta EBML.

Como el DHTML, LAMP o SPA, Ajax no constituye una tecnología en sí, sino que es un término que engloba a un grupo de éstas que trabajan conjuntamente.

martes, 24 de agosto de 2010

Conoce acerca de las novedades Web 2.0

La Web 2.0 es la representación de la evolución de las aplicaciones tradicionales hacia aplicaciones web enfocadas al usuario final. El Web 2.0 es una actitud y no precisamente una tecnología.


La Web 2.0 es la transición que se ha dado de aplicaciones tradicionales hacia aplicaciones que funcionan a través del web enfocadas al usuario final. Se trata de aplicaciones que generen colaboración y de servicios que reemplacen las aplicaciones de escritorio.

Es una etapa que ha definido nuevos proyectos en Internet y está preocupándose por brindar mejores soluciones para el usuario final. Muchos aseguran que hemos reinventado lo que era el Internet, otros hablan de burbujas e inversiones, pero la realidad es que la evolución natural del medio realmente ha propuesto cosas más interesantes como lo analizamos diariamente en las notas de Actualidad.

Y es que cuando el web inició, nos encontrábamos en un entorno estático, con páginas en HTML que sufrían pocas actualizaciones y no tenían interacción con el usuario.

Pero para entender de donde viene el término de Web 2.0 tenemos que remontarnos al momento en que Dale Dougherty de O’Reilly Media utilizó este término en una conferencia en la que compartió una lluvia de ideas junto a Craig Cline de MediaLive. En dicho evento se hablaba del renacimiento y evolución de la web.

Constantemente estaban surgiendo nuevas aplicaciones y sitios con sorprendentes funcionalidades. Y así se dio la pauta para la Web 2.0 conference que arranca en el 2004 y hoy en día se realiza anualmente en San Francisco, con eventos adicionales utilizando la marca en otros países.

En la charla inicial del Web Conference se habló de los principios que tenían las aplicaciones Web 2.0:

• La web es la plataforma

• La información es lo que mueve al Internet

• Efectos de la red movidos por una arquitectura de participación.

• La innovación surge de características distribuidas por desarrolladores independientes.

• El fin del círculo de adopción de software pues tenemos servicios en beta perpetuo

La Web 2.0 con ejemplos

Entender la evolución que ha llegado con la Web 2.0 puede realizarse con ejemplos, con proyectos. Podemos comparar servicios web que marcan claramente la evolución hacia el Web 2.0 con una nueva forma de hacer las cosas:

• Web 1.0 > Web 2.0

• Doubleclick –> Google AdSense (Servicios Publicidad)

• Ofoto –> Flickr (Comunidades fotográficas)

• Akamai –> BitTorrent (Distribución de contenidos)

• mp3.com –> Napster (Descargas de música)

• Britannica Online –> Wikipedia (Enciclopedias)

• Sitios personales –> Blogs (Páginas personales)

• Especulación con dominios –> Optimización en motores de búsqueda SEO

• Páginas vistas –> Costo por click

• CMSs –> Wikis (Administradores de contenidos)

• Categorías/Directorios –> Tags

¿Qué tecnologías apoyan a la Web 2.0?

El Web 2.0 no significa precisamente que existe una receta para que todas nuestras aplicaciones web entren en este esquema. Sin embargo, existen varias tecnologías que están utilizándose actualmente y que deberíamos de examinar con más cuidado en busca de seguir evolucionando junto al web.

Tecnologías que dan vida a un proyecto Web 2.0:

• Transformar software de escritorio hacia la plataforma del web.

• Respeto a los estándares como el XHTML.

• Separación de contenido del diseño con uso de hojas de estilo.

• Sindicación de contenidos.

• Ajax (javascript ascincrónico y xml).

• Uso de Flash, Flex o Lazlo.

• Uso de Ruby on Rails para programar páginas dinámicas.

• Utilización de redes sociales al manejar usuarios y comunidades.

• Dar control total a los usuarios en el manejo de su información.

• Proveer APis o XML para que las aplicaciones puedan ser manipuladas por otros.

• Facilitar el posicionamiento con URL sencillos.

¿En qué nos sirve la Web 2.0?

El uso de el término de Web 2.0 está de moda, dándole mucho peso a una tendencia que ha estado presente desde hace algún tiempo. En Internet las especulaciones han sido causantes de grandes burbujas tecnológicas y han hecho fracasar a muchos proyectos.

Además, nuestros proyectos tienen que renovarse y evolucionar. El Web 2.0 no es precisamente una tecnología, sino es la actitud con la que debemos trabajar para desarrollar en Internet. Tal vez allí está la reflexión más importante del Web 2.0.

Yo ya estoy trabajando en renovar y mejorar algunos proyectos, no por que busque etiquetarlos con nuevas versiones, sino por que creo firmemente que la única constante debe ser el cambio, y en Internet, el cambio debe de estar presente más frecuentemente.

Otros artículos interesantes sobre Web 2.0:

• Web 2.0 ¿Reconfiguración social o tecnológica?

• Web 3.0, añade significado

• What is Web 2.0 en O’reilly (inglés)

• Web 2.0 en la Wikipedia

• Plataforma Web 2.0 : ¿Que Es?

• Web 2.0 for designers

• Are you ready for Web 2.0? en Wired.

• El evento Web 2.0 Expo

• Proyectos web 2.0 aparecidos en España en el 2007

• Como crear un logo web 2.0

• Discusión: ¿Relación entre Web 2.0 e Internet 2?

Conoce acerca de Javascript

Una introducción meramente conceptual al potente lenguaje de script del lado del cliente.


Por Erick Jhontan Medina Llanca

.

Javascript es un lenguaje de programación utilizado para crear pequeños programitas encargados de realizar acciones dentro del ámbito de una página web.

Se trata de un lenguaje de programación del lado del cliente, porque es el navegador el que soporta la carga de procesamiento. Gracias a su compatibilidad con la mayoría de los navegadores modernos, es el lenguaje de programación del lado del cliente más utilizado.

Con Javascript podemos crear efectos especiales en las páginas y definir interactividades con el usuario. El navegador del cliente es el encargado de interpretar las instrucciones Javascript y ejecutarlas para realizar estos efectos e interactividades, de modo que el mayor recurso, y tal vez el único, con que cuenta este lenguaje es el propio navegador.



Javascript es el siguiente paso, después del HTML, que puede dar un programador de la web que decida mejorar sus páginas y la potencia de sus proyectos. Es un lenguaje de programación bastante sencillo y pensado para hacer las cosas con rapidez, a veces con ligereza. Incluso las personas que no tengan una experiencia previa en la programación podrán aprender este lenguaje con facilidad y utilizarlo en toda su potencia con sólo un poco de práctica.



Entre las acciones típicas que se pueden realizar en Javascript tenemos dos vertientes. Por un lado los efectos especiales sobre páginas web, para crear contenidos dinámicos y elementos de la página que tengan movimiento, cambien de color o cualquier otro dinamismo. Por el otro, javascript nos permite ejecutar instrucciones como respuesta a las acciones del usuario, con lo que podemos crear páginas interactivas con programas como calculadoras, agendas, o tablas de cálculo.



Javascript es un lenguaje con muchas posibilidades, permite la programación de pequeños scripts, pero también de programas más grandes, orientados a objetos, con funciones, estructuras de datos complejas, etc. Además, Javascript pone a disposición del programador todos los elementos que forman la página web, para que éste pueda acceder a ellos y modificarlos dinámicamente.

Con Javascript el programador, que se convierte en el verdadero dueño y controlador de cada cosa que ocurre en la página cuando la está visualizando el cliente.



Referencias



En DesarrolloWeb.com hemos publicado un manual de programación en Javascript, donde explicamos toda la sintaxis y metodología de programaión.

Además, podemos acceder al Manual de Javascript II, donde vamos a tratar de acercarnos a este lenguaje en profundidad y conocer todos sus secretos y recursos disponibles.



También hemos hecho una recopilación de scripts interesantes para hacer directamente una variada gama de efectos y utilidades para páginas web. En nuestro Taller de Javascript.



Además de estos manuales, tenemos muchos otros recursos interesantes sobre el lenguaje en nuestro buscador, en la sección Javascript.