NetKernel es una empresa de software británica y una plataforma de software del mismo nombre que se utiliza para la computación de alto rendimiento, la integración de aplicaciones empresariales y la computación energéticamente eficiente.
Permite a los desarrolladores separar claramente el código de la arquitectura. Puede utilizarse como servidor de aplicaciones , integrado en un contenedor Java o como plataforma de computación en la nube .
Como plataforma, se trata de una implementación de la abstracción de computación orientada a recursos (ROC). ROC es un modelo de computación lógica que se sitúa sobre el ámbito físico del código y los objetos, pero está completamente aislado de él. En ROC, la información y los servicios se identifican mediante direcciones lógicas que se resuelven en puntos finales físicos durante la duración de una solicitud y luego se liberan. El direccionamiento lógico indirecto da como resultado sistemas flexibles que pueden modificarse mientras el sistema está en funcionamiento. En NetKernel, el límite entre las capas lógica y física está mediado por un microkernel con capacidad de sistema operativo que puede realizar diversas optimizaciones transparentes.
La idea de utilizar recursos para modelar información abstracta proviene del estilo arquitectónico REST y de la World Wide Web . La idea de utilizar un modelo de direccionamiento uniforme proviene del sistema operativo Unix . NetKernel puede considerarse una unificación de la Web y Unix, implementada como un sistema operativo de software que se ejecuta en un microkernel monolítico dentro de una sola computadora.
NetKernel fue desarrollado por 1060 Research y se ofrece bajo una licencia dual de software de código abierto [ 3 ] y software comercial.
Historia
NetKernel se inició en los laboratorios de Hewlett-Packard en 1999. Fue concebido por el Dr. Russ Perry, el Dr. Royston Sellman y el Dr. Peter Rodgers como un entorno operativo XML de propósito general que pudiera satisfacer las necesidades del creciente interés en los dialectos XML para la mensajería XML dentro de la industria. [ 1 ]
Rodgers concibió la web como una implementación de una abstracción general que extrapoló como ROC (Research Online Computing), pero mientras que la web se limitaba a publicar información, se propuso idear una solución que pudiera realizar cálculos utilizando principios similares. Trabajando en estrecha colaboración con el cofundador Tony Butterfield, descubrieron un método para escribir software que pudiera ejecutarse a través de un modelo lógico, separado del ámbito físico del código y los objetos. Reconociendo el potencial de este enfoque, se independizaron de HP Labs.
Rodgers y Butterfield fundaron su empresa como "1060 Research Limited" en Chipping Sodbury, una pequeña ciudad comercial en los límites de la región de Cotsolds en Inglaterra, en 2002, y a lo largo de varios años desarrollaron la plataforma que se convertiría en NetKernel.
A principios de 2018, 1060 Research anunció el nombramiento de un nuevo director ejecutivo, Charles Radclyffe. [ 4 ] En febrero de 2018, Radclyffe anunció a la comunidad de NetKernel que el equipo estaba trabajando en una nueva plataforma basada en NKEE 6, totalmente alojada, programable y accesible a través de la web: NetKernel Cloud. Radclyffe renunció seis meses después. [ 5 ]
Conceptos
Recurso
Un recurso es información identificable dentro de un sistema informático. Los recursos son un concepto abstracto y no se pueden manipular directamente. Cuando se solicita un recurso, se proporciona una representación concreta e inmutable que refleja su estado actual. Esto es análogo al funcionamiento de la World Wide Web. En la web, una dirección URL identifica un recurso accesible globalmente. Cuando un navegador solicita dicho recurso, recibe una representación del mismo en la respuesta.
Direcciones
Un recurso se identifica mediante una dirección dentro de un espacio de direcciones . En NetKernel, se utilizan direcciones URI ( Identificador Uniforme de Recursos ) para identificar todos los recursos. A diferencia de la Web, que tiene un único espacio de direcciones global, NetKernel admite un número ilimitado de espacios de direcciones y permite establecer relaciones entre ellos.
NetKernel admite una variedad de esquemas URI e introduce otros nuevos específicamente aplicables al direccionamiento URI dentro de un sistema de software.
Pedido
La operación fundamental en NetKernel es una solicitud de recurso . Una solicitud consta de una dirección URI del recurso y un verbo . Los verbos admitidos incluyen SOURCE, SINK, NEW, DELETE, EXISTS y META. Cada solicitud se envía a un microkernel que resuelve la dirección URI a un punto final físico y asigna y programa un hilo para su procesamiento. Cuando el punto final completa el procesamiento, el microkernel devuelve la respuesta al cliente que inició la solicitud.
Programación
La instrucción fundamental en NetKernel es una solicitud de recursos, especificada por una URI. Los mecanismos que secuencian las solicitudes de URI se ubican por encima del microkernel. En la implementación actual basada en Java, las solicitudes se envían mediante una API de Java. Esto implica que cualquier lenguaje que pueda llamar a una API de Java puede usarse para programar NetKernel.
A partir de abril de 2013 El conjunto de idiomas compatibles incluye:
- Java
- Rubí
- Scala
- Clojure
- JavaScript
- Python 2
- Genial
- Cáscara de frijol
- PHP
- DPML
- Lenguajes relacionados con XML como XQuery
- La especificación URI en sí misma tiene la riqueza suficiente para expresar un lenguaje de programación funcional.
Esquema URI activo
El esquema URI activo fue propuesto por Hewlett-Packard como un medio para codificar un programa funcional dentro de un URI.
activo: {nombre-de-función} [+ {nombre-de-parámetro} @ {URI-de-valor-de-parámetro}]* Por ejemplo, la siguiente URI llama a un generador de números aleatorios.
activo:aleatorio
y a continuación se utiliza un servicio XSLT para transformar un documento XML con una hoja de estilo XSLT:
activo:xslt+operador@archivo:/style.xsl+operando@archivo:/document.xml
Dado que los valores de los argumentos pueden ser direcciones URI en sí mismos, un conjunto de llamadas a funciones con estructura de árbol puede codificarse en una única URI.
Transportes
Los protocolos de transporte permiten introducir solicitudes externas a NetKernel en su espacio de direcciones. Existen protocolos de transporte para HTTP, JMS ( Java Message Service ) y CRON. Se pueden añadir fácilmente otros protocolos, ya que son independientes del resto de NetKernel.
La función del transporte es traducir una solicitud externa basada en un protocolo a una solicitud NetKernel con una URI y un verbo específico (SOURCE, SINK, etc.) y luego enviar la representación devuelta al cliente a través del protocolo compatible.
Un protocolo de transporte gestiona dos asignaciones. La primera se establece entre el espacio de direcciones del protocolo externo compatible y el espacio de direcciones interno de NetKernel. La segunda se establece entre el verbo o la acción especificada externamente y un verbo de NetKernel.
Por ejemplo, en el caso del transporte HTTP, el espacio de direcciones externas es un subespacio de una URL. El siguiente diagrama ilustra este punto.
http://www.mywebsite.com/publications/... | v archivo:/src/publicaciones/...
Además, el protocolo HTTP admite métodos como GET, PUT, HEAD, etc., que se corresponden con verbos de NetKernel.
Lenguajes de scripting
Se necesita un mecanismo para emitir las solicitudes URI, capturar las representaciones devueltas y comunicarse con los clientes.
Los lenguajes de scripting son ejecutados por su motor de ejecución, que a su vez es un servicio. Por ejemplo, el entorno de ejecución del lenguaje Groovy ejecutará un programa contenido en el archivo file:/program.gycon lo siguiente:
activo:groovy+operator@file:/program.gy
Véase también
Referencias
- 1 2 "Acerca de: Historia" . 1060 Investigación .
- ↑ «Descarga de la edición estándar de NetKernel» .
- 1 2 "Licencia pública 1060 v1.2" . Investigación 1060 .
- ↑ "La startup de Bristol, NetKernel, contrata al responsable de innovación de Deutsche Bank como director ejecutivo" . FinExtra. 7 de febrero de 2018.
- ↑ "Tres lecciones cruciales que aprendí durante mis 6 meses como CEO de una empresa de tecnología avanzada" .
Enlaces externos
- Sitio web oficial
- Investigación 1060
- Primeros pasos en GitHub
- Software multiplataforma
- computación sin servidor
- computación distribuida