fbpx
Wikipedia

Twisted (software)

Twisted es un framework de red para programación dirigida por eventos escrito en Python y licenciado bajo la licencia MIT.

Twisted
Parte de Software Freedom Conservancy
Información general
Tipo de programa Dirigido por Eventos redes
Desarrollador Glyph Lefkowitz, Community
Lanzamiento inicial 22 de octubre de 2002[1]
Licencia MIT License
Información técnica
Programado en Python
Sistema de gestión de paquetes Pip
Versiones
Última versión estable 16.6.0 ( [2]​25 de noviembre de 2016 (7 años, 5 meses y 19 días))
Enlaces
Sitio web oficial
Repositorio de código
Seguimiento de errores

Twisted proporciona soporte para varias arquitecturas (TCP, UDP, SSL/TLS, IP Multicast, Unix domain sockets), un gran número de protocolos (incluidos HTTP, XMPP, NNTP, IMAP, SSH, IRC, FTP), y mucho más. Twisted se basa en el paradigma de la programación dirigida por eventos, quiere decir que los usuarios de Twisted pueden escribir pequeños callbacks (retrollamadas) predefinidos en el framework para realizar tareas complejas.

Lineamientos centrales editar

Separación de los protocolos y transportes editar

El diseño de Twisted se basa en la separación completa entre los protocolos lógicos (que por lo general dependen de la conexión semántica basada en streams --flujos--, como el HTTP o POP3) y el transporte en capas físicas soportado como la semántica basada en streams (como archivos, bibliotecas sockets o SSL). La conexión entre un protocolo lógico y una capa de transporte que ocurre en el último momento posible, justo antes de la información se pase a la instancia de protocolo lógico. El protocolo lógico es informado de la instancia de capa de transporte, y puede utilizarlo para enviar mensajes de un lado para comprobar la identidad del otro extremo. Tenga en cuenta que todavía es posible, en el código de protocolo, para consultar profundamente la capa de transporte en cuestiones de transporte (como la comprobación de un certificado SSL del lado del cliente). Naturalmente, el código de dicho protocolo, se producirá un error (lanzar una excepción) si la capa de transporte no es compatible con tales semánticas.

Deferreds editar

El modelo central de aplicación para Twisted es el concepto de un deferred (predefinir algo que se usara como valor futuro). Un deferred es un valor que no se ha calculado todavía, por ejemplo, porque las necesidades de datos desde un equipo remoto. Los deferreds se pueden transferir, al igual que los objetos normales, pero no se puede pedir por su valor. Cada deferred es compatible con una cadena de devolución de llamada. Cuando el deferred toma el valor, es transferido a través de la cadena de devolución de llamada, con el resultado de cada de callback (devolución) siendo la entrada (input) para la siguiente. Esto permite que operen en los valores de un deferred sin saber lo que son. Por ejemplo, si un deferred devuelve una cadena desde un equipo remoto con una dirección IP en formato quad, un callback se puede adjuntar para traducirla a un número de 32 bits. Cualquier usuario del deferred puede ahora tratarlo como deferred de retorno de un número de 32 bits. Esto, y la capacidad de relación para definir "errbacks" (callbacks que son llamados como controladores de errores), permite que el código que se ve como si fuera de serie, mientras que todavía mantiene la abstracción por eventos.

Soporte de Thread (hilos o subprocesos) editar

Twisted soporta una abstracción sobre threads en crudo usando un thread como una fuente deferred. Por lo tanto, un deferred que es retornado inmediatamente, recibirá un valor cuando finalice el thread. Los callbacks se pueden adjuntar cuando corran en el thread principal, a fin de aliviar la necesidad de soluciones complejas de bloqueo. Un buen ejemplo de tal uso, que viene de las bibliotecas de soporte de Twisted, es usar este modelo para llamadas en bases de datos. La llamada de la base de datos misma pasa de un thread exterior, pero el análisis del resultado que sucede en el thread principal.

Soporte de bucle de externos editar

Twisted se puede integrar con bucles de eventos externos, tales como los de GTK+, Qt y Cocoa (a través de PyObjC). Esto le permite el uso de Twisted como la capa de soporte de red en aplicaciones GUI, usando todas sus colecciones sin tener que añadir una sobrecarga de thread-por-socket, como lo haría cualquier biblioteca nativa de Python. Se puede integrar en proceso un completo web server con una aplicación interfaz gráfica utilizando este modelo, por ejemplo.

Aplicaciones que utilizan Twisted editar

El Buildbot sistema de integración continua se basa en Twisted para comunicación cliente-servidor.[3]

ITA Software ha desarrollado un sistema de reservas de Air Canada que utiliza Twisted ampliamente.[4]

Sage, una alternativa de código abierto para Matemáticas, se ejecuta en un servidor Twisted.[5]

Twisted se utilizó en la Omegle un servicio de chat uno-a-uno[6]​ hasta que fue reemplazado por gevent por motivos de rendimiento.[7]

Twisted se utiliza también en el Apple Calendar Server,[8]​ así como en algunos proyectos internos de la NASA.

La versión original de la creación de redes sociales y sitio de microblogging Jaiku utiliza Twisted.

FluidDB, una nube de almacenamiento de datos en línea, utiliza Twisted ampliamente para RPC interno (en parte en combinación con Thrift y AMQP), para sus servicios internos y para API externos.

El servicio de alojamiento de archivos de Ubuntu One utiliza Twisted.

Cloudkick, un servidor de gestión de nube para aplicaciones web utiliza Twisted Python.

Véase también editar

  • Perl Object Environment, un framework comparable para el lenguaje de programación Perl.
  • JBoss Netty para la programación Java.
  •   Portal:Software Libre. Contenido relacionado con Software Libre.  

Referencias editar

  1. Shtull-Trauring, Itamar (2002-10-22). "ANN: Twisted 1.0". twisted-python mailing list. Retrieved 2008-08-14.
  2. http://labs.twistedmatrix.com/2016/11/twisted-166-released.html
  3. Page 2 - Python Slithers into Systems
  4. Sage a Basic Overview
  5. Official Omegle Blog
  6. Gevent Google Group
  7. Darwin Calendar Server Official Site

Enlaces externos editar

  • Twisted Matrix Labs HomePage
  •   Datos: Q969382

twisted, software, twisted, framework, para, programación, dirigida, eventos, escrito, python, licenciado, bajo, licencia, twistedparte, software, freedom, conservancyinformación, generaltipo, programadirigido, eventos, redesdesarrolladorglyph, lefkowitz, comm. Twisted es un framework de red para programacion dirigida por eventos escrito en Python y licenciado bajo la licencia MIT TwistedParte de Software Freedom ConservancyInformacion generalTipo de programaDirigido por Eventos redesDesarrolladorGlyph Lefkowitz CommunityLanzamiento inicial22 de octubre de 2002 1 LicenciaMIT LicenseInformacion tecnicaProgramado enPythonSistema de gestion de paquetesPipVersionesUltima version estable16 6 0 2 25 de noviembre de 2016 7 anos 5 meses y 19 dias EnlacesSitio web oficial Repositorio de codigo Seguimiento de errores editar datos en Wikidata Twisted proporciona soporte para varias arquitecturas TCP UDP SSL TLS IP Multicast Unix domain sockets un gran numero de protocolos incluidos HTTP XMPP NNTP IMAP SSH IRC FTP y mucho mas Twisted se basa en el paradigma de la programacion dirigida por eventos quiere decir que los usuarios de Twisted pueden escribir pequenos callbacks retrollamadas predefinidos en el framework para realizar tareas complejas Indice 1 Lineamientos centrales 1 1 Separacion de los protocolos y transportes 1 2 Deferreds 1 3 Soporte de Thread hilos o subprocesos 1 4 Soporte de bucle de externos 1 5 Aplicaciones que utilizan Twisted 2 Vease tambien 3 Referencias 4 Enlaces externosLineamientos centrales editarSeparacion de los protocolos y transportes editar El diseno de Twisted se basa en la separacion completa entre los protocolos logicos que por lo general dependen de la conexion semantica basada en streams flujos como el HTTP o POP3 y el transporte en capas fisicas soportado como la semantica basada en streams como archivos bibliotecas sockets o SSL La conexion entre un protocolo logico y una capa de transporte que ocurre en el ultimo momento posible justo antes de la informacion se pase a la instancia de protocolo logico El protocolo logico es informado de la instancia de capa de transporte y puede utilizarlo para enviar mensajes de un lado para comprobar la identidad del otro extremo Tenga en cuenta que todavia es posible en el codigo de protocolo para consultar profundamente la capa de transporte en cuestiones de transporte como la comprobacion de un certificado SSL del lado del cliente Naturalmente el codigo de dicho protocolo se producira un error lanzar una excepcion si la capa de transporte no es compatible con tales semanticas Deferreds editar El modelo central de aplicacion para Twisted es el concepto de un deferred predefinir algo que se usara como valor futuro Un deferred es un valor que no se ha calculado todavia por ejemplo porque las necesidades de datos desde un equipo remoto Los deferreds se pueden transferir al igual que los objetos normales pero no se puede pedir por su valor Cada deferred es compatible con una cadena de devolucion de llamada Cuando el deferred toma el valor es transferido a traves de la cadena de devolucion de llamada con el resultado de cada de callback devolucion siendo la entrada input para la siguiente Esto permite que operen en los valores de un deferred sin saber lo que son Por ejemplo si un deferred devuelve una cadena desde un equipo remoto con una direccion IP en formato quad un callback se puede adjuntar para traducirla a un numero de 32 bits Cualquier usuario del deferred puede ahora tratarlo como deferred de retorno de un numero de 32 bits Esto y la capacidad de relacion para definir errbacks callbacks que son llamados como controladores de errores permite que el codigo que se ve como si fuera de serie mientras que todavia mantiene la abstraccion por eventos Soporte de Thread hilos o subprocesos editar Twisted soporta una abstraccion sobre threads en crudo usando un thread como una fuente deferred Por lo tanto un deferred que es retornado inmediatamente recibira un valor cuando finalice el thread Los callbacks se pueden adjuntar cuando corran en el thread principal a fin de aliviar la necesidad de soluciones complejas de bloqueo Un buen ejemplo de tal uso que viene de las bibliotecas de soporte de Twisted es usar este modelo para llamadas en bases de datos La llamada de la base de datos misma pasa de un thread exterior pero el analisis del resultado que sucede en el thread principal Soporte de bucle de externos editar Twisted se puede integrar con bucles de eventos externos tales como los de GTK Qt y Cocoa a traves de PyObjC Esto le permite el uso de Twisted como la capa de soporte de red en aplicaciones GUI usando todas sus colecciones sin tener que anadir una sobrecarga de thread por socket como lo haria cualquier biblioteca nativa de Python Se puede integrar en proceso un completo web server con una aplicacion interfaz grafica utilizando este modelo por ejemplo Aplicaciones que utilizan Twisted editar El Buildbot sistema de integracion continua se basa en Twisted para comunicacion cliente servidor 3 ITA Software ha desarrollado un sistema de reservas de Air Canada que utiliza Twisted ampliamente 4 Sage una alternativa de codigo abierto para Matematicas se ejecuta en un servidor Twisted 5 Twisted se utilizo en la Omegle un servicio de chat uno a uno 6 hasta que fue reemplazado por gevent por motivos de rendimiento 7 Twisted se utiliza tambien en el Apple Calendar Server 8 asi como en algunos proyectos internos de la NASA La version original de la creacion de redes sociales y sitio de microblogging Jaiku utiliza Twisted FluidDB una nube de almacenamiento de datos en linea utiliza Twisted ampliamente para RPC interno en parte en combinacion con Thrift y AMQP para sus servicios internos y para API externos El servicio de alojamiento de archivos de Ubuntu One utiliza Twisted Cloudkick un servidor de gestion de nube para aplicaciones web utiliza Twisted Python Vease tambien editarPerl Object Environment un framework comparable para el lenguaje de programacion Perl JBoss Netty para la programacion Java nbsp Portal Software Libre Contenido relacionado con Software Libre nbsp Referencias editar Shtull Trauring Itamar 2002 10 22 ANN Twisted 1 0 twisted python mailing list Retrieved 2008 08 14 http labs twistedmatrix com 2016 11 twisted 166 released html BuildBot Manual Page 2 Python Slithers into Systems Sage a Basic Overview Official Omegle Blog Gevent Google Group Darwin Calendar Server Official SiteEnlaces externos editarTwisted Matrix Labs HomePage nbsp Datos Q969382 Obtenido de https es wikipedia org w index php title Twisted software amp oldid 159963302, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos