viernes, 22 de julio de 2016


¡¿Cuando implantar un Cliente servidor?!



1. Cambios estructurales y organizativos.
2. Cambios en organigramas.
3. Respuesta dinámica de mercado.
4. Cambio en procesos de negocio.

Tareas del programa maestro 

* Abrir un puerto local bien conocido al cual pueda acceder los clientes.
* Esperar las peticiones de los clientes.
* Elegir un puerto local para las peticiones que llegan en informar al cliente del nuevo puerto, (innecesario en la mayoría de los casos).
* Iniciar un programa esclavo o proceso hijo que atienda la petición en el puerto local, (el esclavo cuando termina de manejar una petición no se queda esperando por otras).
* Volver a la espera de peticiones mientras los esclavos, en forma concurrente, se ocupan de las anteriores peticiones. 

Clasificación de los servidores
Cliente Servidor 

1. Servidores con estado.
2. Servidores sin estado.
3. Servidores concurrentes 

Características de la arquitectura Cliente-Servidor

 * Combinación de un cliente que interactúa con el usuario, y un servidor que interactúa con los recursos a compartir. El proceso del cliente proporciona la interfaz entre el usuario y el resto del sistema. El proceso del servidor actúa como un motor de software que maneja recursos compartidos tales como bases de datos, impresoras, Módem, etc. 

* Las tareas del cliente y del servidor tienen diferentes requerimientos en cuanto a recursos de cómputo como velocidad del procesador, memoria, velocidad y capacidades del disco e input-output devices. 

* Se establece una relación entre procesos distintos, los cuales pueden ser ejecutados en la misma máquina o en máquinas diferentes distribuidas a lo largo de la red. 

* Existe una clara distinción de funciones basadas en el concepto de”servicio”, que se establece entre clientes y servidores. 

* La relación establecida puede ser de muchos a uno, en la que un servidor puede dar servicio a muchos clientes, regulando su acceso a los recursos compartidos. 

* Los clientes corresponden a procesos activos en cuanto a que son estos los que hacen peticiones de servicios. Estos últimos tienen un carácter pasivo, ya que esperan peticiones de los clientes. 

* No existe otra relación entre clientes y servidores que no sea la que se establece a través del intercambio de mensajes entre ambos. El mensaje es el mecanismo para la petición y entrega de solicitudes de servicios. 

* El ambiente es heterogéneo. La plataforma de hardware y el sistema operativo del cliente y del servidor no son siempre los mismos. Precisamente una de las principales ventajas de esta arquitectura es la posibilidad de conectar clientes y servidores independientemente de sus plataformas. 

* El concepto de escalabilidad tanto horizontal como vertical es aplicable a cualquier sistema Cliente-Servidor. La escalabilidad horizontal permite agregar más estaciones de trabajo activas sin afectar significativamente el rendimiento. La escalabilidad vertical permite mejorar las características del servidor o agregar múltiples servidores. 


Esquema Cliente-Servidor 


 Ventajas
  • Existencia de plataformas de hardware cada vez más baratas. Esta constituye a su vez una de las más palpables ventajas de este esquema, la posibilidad de utilizar máquinas mucho más baratas que las requeridas por una solución centralizada, basada en sistemas grandes (mainframes). Además, se pueden utilizar componentes, tanto de hardware como de software, de varios fabricantes, lo cual contribuye considerablemente a la reducción de costos y favorece la flexibilidad en la implantación y actualización de soluciones.
  •  Facilita la integración entre sistemas diferentes y comparte información, permitiendo por ejemplo que las máquinas ya existentes puedan ser utilizadas pero utilizando interfaces más amigables el usuario. De esta manera, se puede integrar PCs con sistemas medianos y grandes, sin necesidad de que todos tengan que utilizar el mismo sistema operativo. 
  •  Al favorecer el uso de interfaces gráficas interactivas, los sistemas construidos bajo este esquema tienen una mayor y más intuitiva con el usuario. En el uso de interfaces gráficas para el usuario, presenta la ventaja, con respecto a uno centralizado, de que no siempre es necesario transmitir información gráfica por la red pues esta puede residir en el cliente, lo cual permite aprovechar mejor el ancho de banda de la red.
  •  La estructura inherentemente modular facilita además la integración de nuevas tecnologías y el crecimiento de la infraestructura computacional, favoreciendo así la escalabilidad de las soluciones.
  •  Contribuye además a proporcionar a los diferentes departamentos de una organización, soluciones locales, pero permitiendo la integración de la información. 

Desventajas
 
  •  El mantenimiento de los sistemas es más difícil pues implica la interacción de diferentes partes de hardware y de software, distribuidas por distintos proveedores, lo cual dificulta el diagnóstico de fallas.
  • Cuenta con muy escasas herramientas para la administración y ajuste del desempeño de los sistemas.
  • Es importante que los clientes y los servidores utilicen el mismo mecanismo (por ejemplo sockets o RPC), lo cual implica que se deben tener mecanismos generales que existan en diferentes plataformas.
  •  Hay que tener estrategias para el manejo de errores y para mantener la consistencia de los datos.
  •  El desempeño (performance), problemas de este estilo pueden presentarse por congestión en la red, dificultad de tráfico de datos, etc.



Editor komodo




Komodo Edit es un libre editor de texto para los lenguajes de programación dinámicos. Fue introducido en enero de 2007 para completar comercial activa del Estado IDE Komodo . A partir de la versión 4.3, Komodo Edit está construido sobre el proyecto Open Komodo. Muchas de las características de Komodo que se derivan de un objeto incrustado de Python intérprete. [2]

Abrir Komodo usa el Mozilla y Scintilla base de código para proporcionar a sus características, incluyendo soporte para muchos lenguajes populares (incluyendo Python, Perl , PHP , rubí , Tcl , SQL , Smarty , CSS , HTML y XML ), a través de todos los comunes sistemas operativos ( Linux , OS X , y de Windows ). El componente de edición se implementa utilizando la interfaz de programación de aplicaciones Netscape Plugin ( NPAPI ), con la vista Scintilla incrustado en el XML User Interface Language ( XUL interfaz) de la misma manera como una banda plugin para el navegador .

Tanto Komodo IDE y soporte al usuario de personalización a través de plug-ins y macros. Komodo plug-ins están basados ​​en Mozilla Add-ons y extensiones se pueden buscar, descargar, configurar, instalados y actualizados desde la propia aplicación. Extensiones disponibles incluyen una lista de funciones, tuberías características, el soporte de idiomas y mejoras en la interfaz de usuario.

Komodo IDE tiene características que se encuentran en un entorno de desarrollo integrado (IDE), como integrado depurador de apoyo, de objetos de documento Modelo (DOM) espectador, interactivos conchas , código fuente integración de control, y la capacidad de seleccionar el motor utilizado para ejecutar las expresiones regulares , a asegurar la compatibilidad con el destino de despliegue final.

La versión comercial también añade la navegación de código, un explorador de base de datos, la colaboración, el apoyo a muchos sistemas de control de código fuente populares, y más. [3] implementaciones independientes de algunas de estas características, como el editor de base de datos, soporte de Git, y el archivo de FTP remoto acceso, están disponibles en la versión gratuita a través de sistema de plugins de Komodo Edit.

Características Generales

    Soporte para varios lenguajes de programación (PHP, Python, Perl, Ruby, C++, HTML, Java, Javascript, Django, CSS, HTML, etc.)
    Autotabulación para los bucles y demás estructuras.
    Debugger para Perl o Python (entre otros).
    Control de versiones.
    Incorpora un sistema de complementos o add-ons similar al navegador Firefox, para incluir nuevas funcionalidades.
    Es multiplataforma, lo que permite su uso tanto a usuarios de Windows como los de otras plataformas como puede ser Mac OS X o Linux.
    Está bajo licencia GPL (es gratuito)
    Resalta el código con distintos colores para diferenciar el lenguaje y las palabras.
    Reconoce las diferencias entre sintaxis de cada lenguaje, por ejemplo entre Python 2.6 y Python 3.0.

Editores de código fuente

    Notepad++ (Windows)
    UltraEdit (Windows)
    Crimson Editor (Windows)
    NEdit (Linux, Unix, Mac OS X)
    SciTE (Windows, Linux)
    SlickEdit (Windows, Linux, Mac OS X)
    UNA (Windows, Linux, Mac OS X)
    Code Crusader IDE (Mac OS X, Linux)
    Emacs (multiplataforma, incluyendo Unix, Linux, Mac OS X, Windows)


Ventajas y desventajas

Ventajas:
1.       Rápido y cómodo, ayuda a agilizar el desarrollo de nuestra aplicación.
2.       Es un editor de código fuente bastante avanzada y extensible.
3.       Es multiplataforma, lo que da soporte tanto a usuarios de Windows como los de otras plataformas como puede ser Mac o Linux.
4.       Se ofrece con la misma licencia que el navegador de la fundación Mozilla, Firefox, por lo que sobra decir que es un producto de código libre y por tanto, gratuito para cualquier uso.
5.       Está a la altura de los mejores editores para programadores.
6.       Compatibilidad con distintos lenguajes de programación
Desventajas:
1.       Costo de la licencia
2.       No incluye un depurador (El propósito final de un depurador consiste en permitir al usuario observar y comprender lo que ocurre "dentro" de un programa mientras el mismo es ejecutado.)



Editor ¿que son ?



La palabra Editor, del latín editor, es aquel o aquello que edita, pero para un programador  Un editor de páginas web es una aplicación diseñada con el fin de facilitar la creación y edición de documentos HTML o XHTML y  Su complejidad puede variar.
Si bien una página web (que es escrito en lenguaje HTML) puede ser creada a partir de un simple procesador de texto, existen programas especializados que facilitan la tarea de los desarrolladores web (webmasters).

En general, existen tres tipos de editores web:

* Editores web de texto: estos ayudan al desarrollador en la escritura del código HTML (y otros códigos de lenguajes web), proveyendo distintos colores al texto de forma automática, acceso a códigos ya definidos, ayuda de asistentes, etc.

* Editores web de objetos: estos alternan entre la edición de texto y el uso de objetos para el desarrollo de una página web.

* Editores web gráficos o WYSIWYG: estos proveen una interfaz gráfica, donde es posible modificar y ver la página web tal cual se verá en un navegador. Son los editores más fáciles de utilizar.


Cada día que pasa y cada día que trabajamos en Internet nos vamos dando cuenta de la importancia real de una buena elaboración de las páginas web. Por lo general muchas de las empresas en la actualidad saben que tienen que tener una imagen corporativa en la red.
La mayoría de las personas en la actualidad poseen internet, y siempre están visitando constantemente una página web, para saber de cierto temas de interés, pero al adentrarse a estas páginas web, no ven el tiempo y trabajo que se ha realizado para elaborarlas.
Ya sea una institución que desea transmitir algo o una empresa corporativa, el buen diseño de estas páginas puede reflejar el potencial que se desea transmitir, mejorando la imagen de la empresa y transmitiendo confianza, además de que no limita a las personas sea su localidad o religión.