domingo, 24 de julio de 2016

NVU Editor Web

Trabajo
 
Diapositiva

Bluefish


Bluefish es un software editor HTML multiplataforma POSIX y con licencia GPL, lo que lo convierte en software libre.
Bluefish está dirigido a diseñadores web experimentados y programadores y se enfoca en la edición de páginas dinámicas e interactivas. Es capaz de reconocer diversos lenguajes de programación y de marcas.
Bluefish corre en muchos de los sistemas operativos compatibles con POSIX (Portable Operating System Interface) tales Linux, FreeBSD, MacOS-X, OpenBSD, Solaris y Tru64.
Emplea principalmente las bibliotecas GTK y C posix. La última versión que trabajó con GTK 1.0 ó 1.2 es la 0.7. La versión actual requiere como mínimo GTK versión 2.0 (o superior), libpcre 3.0 (o superior), libaspell 0.50 o superior (opcional) para corrección de ortografía y gnome-vfs (opcional) para archivos remotos.
Es importante anotar que el programa no es oficialmente parte del proyecto Gnome, pero es utilizado a menudo en dicho entorno.
Los usuarios también pueden acceder a los recursos en línea, tales como servidores FTP o directorios WebDAV, de forma transparente, a través de Gnome VFS, una capa de abstracción al sistema de archivos.

Bluefish es un proyecto de software libre en el cual las listas de correo juegan un papel muy importante. A través de ellas, usuarios, desarrolladores y probadores pueden dar su opinión respecto a nuevas características, bugs y mejoras respecto a la GUI. Como todo buen proyecto de software libre sigue las pautas marcadas en el bazar, teniendo como motivación principal el bien común, del que todos se pueden obtener beneficio.



Historia
El desarrollo del proyecto Bluefish inicia bajo un nombre diferente. Un buen (y a la vez libre) editor de texto dirigido al desarrollo web no estaba disponible. Es por ello que Olivier Sessink inicia el proyecto Prosite en el año de 1997, es importante resaltar que prácticamente simultáneamente Chris Mazuc trabajaba en un editor HTML. Gracias a una lista de correo de GTK ambos desarrolladores comentan sus iniciativas y deciden trabajar juntos. Olivier tiene un editor básico mientras que Chris posee muchos diálogos HTML. Mezclan su código y este nuevo proyecto recibe el nombre de Thtml.
Posteriormente se incorpora al equipo de trabajo Neil Millar quien se encarga de agregarle el selector de colores y la integración con Weblint. Surge entonces la necesidad de un logo, mucho más fresco y llamativo, pues iban a aparecer las primeras versiones públicas y se quería ofrecer un producto con una imagen y un nombre más atrayente. Es en este momento, cuando Neil plantea como nuevo nombre: Bluefish y acompaña su propuesta de un hermoso pez azul que sugiere como logo. Estos continúan siendo los nombres y logo actuales.
Con el paso del tiempo se unieron más desarrolladores y Bluefish comenzó a acaparar la atención de la comunidad de código abierto.
Desde un principio Bluefish ha tenido como ideal principal la libertad. Olivier Sessink se ha destacado por su interés hacia el desarrollo de propuestas open-source. Esta misma preocupación la tenía Chris Mazuc.
Bluefish, como otros proyectos, tiene siempre dos versiones de la aplicación: una estable y otra de desarrollo (svn). La versión de desarrollo incluye las correcciones efectuadas y nuevas funcionalidades. Con este sistema, siempre tienen una versión estable para ofrecer a los usuarios y una versión de desarrollo que refleja la dirección que tomará el proyecto. Adicionalmente se tiene una versión “Snapshot”. Los Snapshot son hechos con regularidad para proveer a usuarios de las últimas funcionalidades sin necesidad tratar con SVN.
Bluefish cuenta con características tales como:
  • Rapidez, posibilidad de abrir múltiples archivos simultáneamente.
  • Soporte multiproyecto.
  • Soporte para archivos remotos mediante gnome-vfs, marcado de sintaxis personalizable basado en expresiones regulares compatibles con Perl,
  • Soporte para sub-patrones y patrones predefinidos (para HTML, PHP, Javascript, JSP, SQL, XML, Python, Perl, CSS, ColdFusion, Pascal, R, Octave/Matlab).
  • Diálogos para etiquetas HTML.
  • Asistentes para creación fácil de documentos.
  • Creación de tablas.
  • Marcos (frames)
  • Soporte para múltiples codificaciones
  • Trabajo con diferentes juegos de caracteres.
  • Numeración de líneas
  • Menús desplegables.
  • Barras de herramientas configurables.
  • Diálogo para insertar imágenes.
  • Buscador de referencia de funciones.
  • Integración personalizable con varios programas (make, javac, etc).
  • Resaltado de sintaxis (C, Java, JavaScript, Python, Perl, ColdFusion, Pascal, R y Octave).
  • Traducciones completas a aproximadamente veintidós idiomas entre ellos: portugués brasileño, búlgaro, chino, danés, finés, francés, alemán, húngaro, italiano, noruego, polaco, portugués, español, sueco, japonés, y tamil.

Los desarrolladores pretenden producir un código que no genere accidentes ni pérdidas de memoria, eso no siempre es fácil de hacer. Las fugas y accidentes a menudo se fijan en CVS tan pronto como son descubiertos y perseguidos además de la gran base de usuarios de Bluefish, los desarrolladores lo utilizan para su trabajo diario, por lo tanto la fijación de los errores y la prevención de accidentes es siempre una prioridad. Un ejemplo es la cuestión de las funciones de copiar / pegar un poco lento.
El objetivo de Bluefish no es tanto para escribir código para el aspirante o autor, ya que es proporcionar una manera fácil de programar por la gran cantidad de etiquetas disponibles para la creación de contenidos web sin necesidad de llevar un libro de referencia. Para ello, ofrece no menos de 10 barras de herramientas con pestañas, con botones que proporcionan todo, desde el formato de texto básico (que favorece marcado estructural), de Javascript (se proporciona una plantilla mouseover útil, por ejemplo) para PHP (en forma de una referencia en línea para funciones comunes.)
Compilación
La Compilación Bluefish requiere unos paquetes adicionales. Sin embargo, éstos existen para muchas plataformas, motivo por el cual es probable que no sea necesario compilar. No obstante, si quiere hacerlo las exigencias son: Archivos de Desarrollo (Development files)
  • gcc - Bluefish ha sido probado para compilar sobre los 2.95, 3.x, y 4.0.x.
  • gmake o BSD make.
  • autoconf - sólo si va a compilar desde CVS.
  • gtk v2.4 como mínimo - sólo si va a compilar desde CVS.
  • gnome_vfs 2.6 – sólo si va a compilar desde CVS.
  • libxml 2.0 – sólo si va a compilar desde CVS.


martes, 12 de julio de 2016

Arquitectura de Desarrollo Web

El modelo Cliente/Servidor reúne las características necesarias para proveer esta infraestructura, independientemente del tamaño y complejidad de las operaciones de las organizaciones públicas o privadas y, consecuentemente desempeña un papel importante en este proceso de evolución.

Modelo Cliente Servidor

Éste es un modelo que intenta proveer usabilidad, flexibilidad, interoperabilidad y escalabilidad en las comunicaciones.  término Cliente/Servidor fue usado por primera vez en 1980 para  a PC’s en red.
El modelo cliente-servidor consiste básicamente en un cliente que realiza peticiones a otro programa (el servidor) que le da respuesta.
La tecnología denominada Cliente -Servidor es utilizada por todas las aplicaciones de Internet/Intranet. Un cliente funciona en su ordenador local, se comunica con el servidor remoto, y pide a éste información. El servidor envía la información solicitada
El cliente es el proceso que permite al usuario formular los requerimientos y pasarlos al servidor, se le conoce con el término front-end.
Las funciones que lleva a cabo el proceso cliente se resumen en los siguientes puntos: • Administrar la interfaz de usuario. • Interactuar con el usuario. • Procesar la lógica de la aplicación y hacer validaciones locales. • Generar requerimientos de bases de datos. • Recibir resultados del servidor. • Formatear resultados.

TIPOS DE CLIENTES

1.      "cliente flaco":
·         Servidor rápidamente saturado.
·         Gran circulación de datos de interfase en la red.
2.      "cliente gordo":
·         Casi todo el trabajo en el cliente.
·         No hay centralización de la gestión de la BD.

·         Gran circulación de datos inútiles en la red.



Servidor: Es el proceso encargado de atender a múltiples clientes que hacen peticiones de algún recurso administrado por él. Al proceso servidor se le conoce con el término back-end [15]. El servidor normalmente maneja todas las funciones relacionadas con la mayoría de las reglas del negocio y los recursos de datos.
Las funciones que lleva a cabo el proceso servidor se resumen en los siguientes puntos: • Aceptar los requerimientos de bases de datos que hacen los clientes. • Procesar requerimientos de bases de datos. • Formatear datos para trasmitirlos a los clientes. • Procesar la lógica de la aplicación y realizar validaciones a nivel de bases de datos.}

TIPOS DE SERVIDOR
  • Servidores de archivos: Servidor donde se almacena archivos y aplicaciones de productividad como por ejemplo procesadores de texto, hojas de cálculo, etc.
  • Servidores de bases de datos: Servidor donde se almacenan las bases de datos, tablas, índices. Es uno de los servidores que más carga tiene.
  • Servidores de transacciones: Servidor que cumple o procesa todas las transacciones. Valida primero y recién genera un pedido al servidor de bases de datos.
  • Servidores de Groupware: Servidor utilizado para el seguimiento de operaciones dentro de la red.
  • Servidores de objetos: Contienen objetos que deben estar fuera del servidor de base de datos. Estos objetos pueden ser videos, imágenes, objetos multimedia en general.
  • Servidores Web: Se usan como una forma inteligente para comunicación entre empresas a través de Internet. Este servidor permite transacciones con el acondicionamiento de un browser específico.

Características de sistema cliente servidor:

  • Espera y recibe las respuestas del servidor.
  •  Por lo general, puede conectarse a varios servidores a la vez.
  • Normalmente interactúa directamente con los usuarios finales mediante una interfaz gráfica de usuario 

Tipos

Los sistemas Cliente-Servidor pueden ser de muchos tipos, dependiendo de las aplicaciones que el servidor pone a disposición de los clientes. Entre otros, existen:
  •  Servidores de Impresión, mediante el cual los usuarios comparten impresoras.
  • Servidores de Archivos, con el cual los clientes comparten discos duros.
  •  Servidores de Bases de Datos, donde existe una única base de datos.
  • Servidores de Lotus Notes, que permite el trabajo simultáneo de distintos clientes con los     mismos datos o documentos.


Ventajas
  • Centralización del control de los recursos, datos y accesos.
  • Facilidad de mantenimiento y actualización del lado del servidor: Esto es porque el lado del servidor se puede mantener o actualizar fácilmente. Por ejemplo, una actualización se aplica a un único servidor, pero los beneficios los obtienen múltiples clientes generalmente sin necesidad de que éstos actualicen nada.
  • Toda la información es almacenada en el lado del servidor, que suele tener mayor seguridad que los clientes.
  • Hay muchas herramientas cliente-servidor probadas, seguras y amigables para usar.
Desventajas

  • Si el número de clientes simultáneos es elevado, el servidor puede saturarse. Esto sucede con menor frecuencia en las redes P2P.
  • Frente a fallas del lado del servidor, el servicio queda paralizado para los clientes. Algo que no sucede en una red P2P.

Modelo de tres capas
La arquitectura está basada en un modelo de tres capas: Capa de datosCapa de lógica de negocio y Capa de presentación, que soportan todas las funcionalidades necesarias.
La programación por capas es una arquitectura cliente-servidor en el que el objetivo primordial es la separación de la lógica de negocios de la lógica de diseño; un ejemplo básico de esto consiste en separar la capa de datos de la capa de presentación al usuario.
La ventaja principal de este estilo es que el desarrollo se puede llevar a cabo en varios niveles y, en caso de que sobrevenga algún cambio, solo se ataca al nivel requerido sin tener que revisar entre código mezclado.

1. Capa de datos: 
Sobre un modelo de base de datos predefinido sobre el que se aplican las distintas especificaciones de datos tales como: 
  • Categorías,
  • Subcategorías,
  • Colecciones,
  • Productos,
  • datos de los productos, etc.

Dicho modelo puede nutrirse de la exportación de los datos contenidos en diferentes aplicaciones de Base de datos, por ejemplo Microsoft SQL Server.

El repositorio de datos descansa sobre XML para la correcta construcción posterior de la capa de presentación y está formada por uno o más gestores de bases de datos que realizan todo el almacenamiento de datos, reciben solicitudes de almacenamiento o recuperación de información desde la capa de negocio. Es donde residen los datos y es la encargada de acceder a los mismos. Está formada por uno o más gestores de bases de datos que realizan todo el almacenamiento de datos, reciben solicitudes de almacenamiento o recuperación de información desde la capa de negocio.

2. Capa de negocio: 

En esta capa se establecen todas las reglas que deben cumplirse en el comercio electrónico. Esta capa se comunica con la capa de presentación, para recibir las solicitudes y presentar los resultados, y con la capa de datos, para solicitar al gestor de base de datos almacenar o recuperar datos de él.
Es donde residen los programas que se ejecutan, se reciben las peticiones del usuario y se envían las respuestas tras el proceso. Se denomina capa de negocio (e incluso de lógica del negocio) porque es aquí donde se establecen todas las reglas que deben cumplirse. Esta capa se comunica con la capa de presentación, para recibir las solicitudes y presentar los resultados, y con la capa de datos, para solicitar al gestor de base de datos almacenar o recuperar datos de él. También se consideran aquí los programas de aplicación.

3. Capa de presentación: 
Por último existe una tercera capa denominada de Presentación, en la que se representan todos los aspectos relacionados con la presentación y diseño de la solución de comercio electrónico.
La que ve el usuario (también se la denomina "capa de usuario"), presenta el sistema al usuario, le comunica la información y captura la información del usuario en un mínimo de proceso (realiza un filtrado previo para comprobar que no hay errores de formato). También es conocida como interfaz gráfica y debe tener la característica de ser "amigable" (entendible y fácil de usar) para el usuario. Esta capa se comunica únicamente con la capa de negocio.

Todas estas capas pueden residir en un único ordenador, si bien lo más usual es que haya una multitud de ordenadores en donde reside la capa de presentación (son los clientes de la arquitectura cliente/servidor). Las capas de negocio y de datos pueden residir en el mismo ordenador, y si el crecimiento de las necesidades lo aconseja se pueden separar en dos o más ordenadores. Así, si el tamaño o complejidad de la base de datos aumenta, se puede separar en varios ordenadores los cuales recibirán las peticiones del ordenador en que resida la capa de negocio.