Capas de abstracción: Arquitectura POE
POE puede ser pensado como un pequeño sistema operativo modular. Uno o más programas o instancias POE pueden correr juntas en forma concurrente y son generalmente muy adecuadas para multitarea colaborativa. El paquete POE consiste en abstracciones y namespaces que guian el futuro desarrollo de POE en una convención abierta-cerrada al estilo CPAN.La capa de evento
La arquitectura informal consiste en un conjunto de capas con un kernel de fondo. Este pequeño kernel representa la capa de eventos, los cuales operan como el loop principal de cada instancia POE que está corriendo. La primera llamada es al "despachador de eventos" - POE::Kernel.La capa I/O
El próximo requerimiento del Kernel es para los manejadores de Input-Output que existen en una sola capa de I/O llamada Wheels. Wheels inicia acciones, maneja los resultados de eventos de bajo nivel y produce eventos de alto nivel para las sesiones que los usan. Wheels es construido como un conjunto uniforme de abstracciones - POE::Wheel, que se sitúa por encima del Kernel. Hay siete Wheels en la distribución base de POE que son altamente especializados y bien definidos.La capa de archivos
Los manejadores que realmente trabajan leyendo y escribiendo archivos. Se construyen de acuerdo a definiciones menos abstractas contenidas en el módulo POE::Driver.Componentes POE
Varios paquetes más grandes han sido escritos en POE de acuerdo a la documentación POE::Component. Estos módulos son manejadores de eventos, la mayoría de los cuales son pequeños demonios que proveen servicios a paquetes más grandes a los que pertenecen. Algunos facilitan comunicaciones de alto nivel entre módulos, especialmente a aplicaciones que necesitan mantener independencia del resto de la distribución Perl.En general los componentes POE son procedimientos de alto nivel que realizan grandes tareas. Por ejemplo:
- Component::Server::TCP - un servlet TCP de propósito especial
- Component::Client::TCP - un cliente TCP POE-aware
- POE::Component::IRC - un cliente IRC con casi todas sus funcionalidades
- POE::Component::Server::IRC - un servidor IRC bajo desarrollo
- POE::Component::UserBase - un servlet para persistencia de datos y autenticación de usuarios
No hay comentarios:
Publicar un comentario