Articulo de referencia

Coreografía ejecutable

La coreografía ejecutable representa una forma descentralizada de composición de servicios , que implica la cooperación de varias entidades individuales. Es una forma mejorada d...

La coreografía ejecutable representa una forma descentralizada de composición de servicios , que implica la cooperación de varias entidades individuales. Es una forma mejorada de coreografía de servicios . Las coreografías ejecutables pueden verse intuitivamente como flujos de trabajo complejos arbitrarios que se ejecutan en sistemas pertenecientes a múltiples organizaciones o autoridades. [ 1 ]

Las coreografías ejecutables son códigos reales creados para codificar el comportamiento del sistema desde una perspectiva global. El comportamiento de las entidades principales de un sistema se define en un único programa. Las coreografías mejoran la calidad del software, ya que funcionan como planos ejecutables de cómo deberían comportarse los sistemas que se comunican entre sí y ofrecen una visión concisa de los flujos de mensajes que ejecuta un sistema.

Coreografía ejecutable frente a coreografía no ejecutable

En casi todas las aplicaciones, la lógica de negocio debe separarse en diferentes servicios. La orquestación representa la forma en que estos servicios se organizan y componen. El servicio resultante puede integrarse jerárquicamente en otra composición. [ 2 ]

La coreografía de servicios es una descripción global de los servicios participantes, definida por el intercambio de mensajes, reglas de interacción y acuerdos entre dos o más puntos finales. La coreografía emplea un enfoque descentralizado para la composición de servicios. [ 3 ]

En la industria, el concepto de coreografía generalmente se considera no ejecutable . Los estándares, como los propuestos por el Lenguaje de Descripción de Coreografía de Servicios Web, [ 4 ] presentan la coreografía como un modelo más formal para describir contratos entre entidades autónomas (generalmente organizaciones distintas) que participan en una composición de servicios analizada globalmente. Desde esta perspectiva, la composición en sí debe implementarse centralmente a través de los diferentes mecanismos de orquestación que ofrecen las empresas: composición de código simple o el uso de lenguajes y motores de orquestación específicos como BPEL ( Lenguaje de Ejecución de Procesos de Negocio ), [ 5 ] motores de reglas, etc.

En el ámbito de la investigación académica, se propone el concepto de coreografía ejecutable como método para dejar de considerar la parte contractual y la parte real del código como dos artefactos distintos que pueden no estar sincronizados o requerir interpretaciones subjetivas. Ejemplos de ello son «Un cálculo ejecutable para la coreografía de servicios» [ 6 ] o «Un marco de coreografía ejecutable para arquitecturas dinámicas orientadas a servicios» [ 7 ] . Pocos de estos enfoques han tenido un impacto práctico, a menudo a nivel de artículos o, como mínimo, de proyectos de investigación . El verdadero avance de la tecnología blockchain en los últimos años ha atraído aún más la atención de la comunidad académica y la industria hacia el concepto de « contrato inteligente », que puede considerarse una forma particular de coreografía ejecutable.

Tipos de coreografías ejecutables

Coreografías verificables

Las coreografías ejecutables son un concepto más general y no necesariamente son coreografías verificables si no utilizan la idea de un sitio considerado como un contexto de seguridad para la ejecución del código. Como ejemplos de enfoques para la programación que utilizan coreografías ejecutables, podríamos mencionar el proyecto europeo CHOReOS, [ 8 ] el lenguaje de programación Chor, [ 9 ] el modelado de servicios web en "Choreographing Web Services" [ 10 ] de algunos aspectos relacionados con la composición de servicios web utilizando el cálculo pi. [ 11 ] El término verificable se introdujo para resaltar la posibilidad de verificar la comunicación de enjambre . La presencia explícita de la idea de ubicación de ejecución lleva a la posibilidad de desarrollar algoritmos de verificación, como se puede ver en el artículo "Niveles de privacidad para sistemas de salud electrónica en la era de la nube". [ 12 ]

Coreografías encriptadas

La criptografía cifrada supone que, además de la verificación, ofrece soluciones de alto nivel para métodos criptográficos avanzados sin necesidad de que los programadores se conviertan en especialistas en criptografía. Las aplicaciones distribuidas podrían construirse a partir de subsistemas que permitan la identificación o verificación de puntos arquitectónicos que exponen datos secretos. Por ejemplo, idealmente, un sistema de programación que utiliza coreografías cifradas garantiza, o al menos ayuda a minimizar, las situaciones en las que una persona (con licencia legal o hacker) posee tanto datos privados cifrados como claves de cifrado relacionadas con los mismos recursos. De esta forma, los administradores o programadores de estos subsistemas tienen menos posibilidades de realizar ataques internos a la privacidad (el nivel con ataques frecuentes). Incluso si algunas aplicaciones no pueden utilizar este enfoque, las coreografías cifradas pueden minimizar los riesgos de seguridad causados ​​por las personas que administran o programan estos sistemas. Así, se garantiza formalmente el número de puntos con acceso discreto a los datos (idealmente, ninguno). Esta forma de coreografía es útil para permitir que las empresas aseguren mediante código la aplicación de la legislación o las normas de seguridad establecidas.

La implementación de coreografías cifradas implica, por ejemplo, la existencia de sistemas de almacenamiento que utilizan técnicas criptográficas con implementación práctica de cifrado homomórfico , como la implementación CryptDB [ 13 ] [ 14 ] del MIT. Un método que también puede denominarse "método de almacenamiento, división y anonimización" con la ayuda de coreografías cifradas, puede conducir al ideal de tener "soberanía" total (dentro de los límites de la ley) sobre los datos privados fue publicado en el artículo "Sistema de datos privados que permite el almacenamiento autosoberano gestionado por coreografías ejecutables". [ 15 ] Este artículo presenta cómo las coreografías anonimizan y dividen los datos de manera que se garantiza que los datos no puedan ser copiados por un solo administrador o hacker que controle solo uno de los nodos participantes. Los mecanismos implementados también pueden incluir interfaces fáciles de usar para programadores de métodos criptográficos avanzados.

Coreografías sin servidor

La computación sin servidor es un modelo de computación en la nube en el que el proveedor gestiona dinámicamente la asignación de recursos informáticos. Las arquitecturas sin servidor implican la automatización de los métodos de lanzamiento mediante técnicas de virtualización y automatización.

La implementación de este tipo de coreografía avanzada requiere el desarrollo de nuevos modelos de negocio para facilitar el alojamiento de aplicaciones en la nube sin fricciones relacionadas con el pago, la instalación, etc. Por ejemplo, el concepto Tor ofrece un ejemplo de estos sistemas sin servidor. El ejemplo más conocido es Amazon Lambda , que ha tenido un gran éxito comercial al permitir a los programadores ignorar los detalles de instalación y facilitar la escalabilidad dinámica de los sistemas. Las cadenas de bloques pueden considerarse ejemplos de bases de datos sin servidor.

Las arquitecturas sin servidor presuponen que la ejecución y el almacenamiento en la nube se realizan mediante protocolos cifrados. Con este tipo de arquitectura, las empresas de alojamiento o los particulares que gestionan la infraestructura física y lógica no podrán influir en la instalación ni en las aplicaciones alojadas. Las arquitecturas sin servidor ofrecen la oportunidad de desarrollar sistemas distribuidos y descentralizados, así como la posibilidad de garantizar formalmente propiedades de privacidad avanzadas.

Véase también

Referencias

  1. "Niveles de privacidad para sistemas de salud electrónica en la era de la nube" (PDF) . 24.ª Conferencia Internacional sobre Desarrollo de Sistemas de Información : 243–253 . Agosto de 2015.
  2. "Coreografía y orquestación mediante el lenguaje de ejecución de procesos de negocio para SOA con servicios web" . IJCSI International Journal of Computer Science Issues . 8 (2): 224– 232. Marzo de 2011.
  3. "Orquestación vs. Coreografía" .
  4. "Especificación WSCDL" .
  5. "Estándar WS-BPEL" (PDF) .
  6. Besana, Paolo; Barker, Adam (2009), "Un cálculo ejecutable para la coreografía de servicios", En movimiento hacia sistemas de Internet significativos: OTM 2009 (PDF) , Lecture Notes in Computer Science, vol. 5870, Springer Berlin Heidelberg, pp. 373–380 , CiteSeerX 10.1.1.525.2508 , doi : 10.1007/978-3-642-05148-7_26 , ISBN    9783642051470
  7. Akkawi, F.; Cottenier, T.; Alena, RL; Fletcher, DP; Duncavage, DP; Elrad, T. (2006). "Un marco de coreografía ejecutable para arquitecturas dinámicas orientadas a servicios". Conferencia Aeroespacial IEEE de 2006. págs. 1–13 . doi : 10.1109/aero.2006.1656059 . ISBN  978-0780395459. S2CID 34895834 . 
  8. "ChoreOS" .
  9. "Lenguaje de programación Chor" .
  10. Barker, Adam; Walton, Christopher D.; Robertson, David (2004). "Coreografía de servicios web". IEEE Transactions on Services Computing . 2 (2): 152– 166. doi : 10.1109/tsc.2009.8 . ISSN 1939-1374 . S2CID 15816522 .  
  11. Besana, Paolo; Barker, Adam (2009), "Un cálculo ejecutable para la coreografía de servicios", En movimiento hacia sistemas de Internet significativos: OTM 2009 (PDF) , Lecture Notes in Computer Science, vol. 5870, Springer Berlin Heidelberg, pp. 373–380 , CiteSeerX 10.1.1.525.2508 , doi : 10.1007/978-3-642-05148-7_26 , ISBN    9783642051470
  12. "Niveles de privacidad para sistemas de salud electrónica en la era de la nube" . 24.ª Conferencia Internacional sobre Desarrollo de Sistemas de Información : 1-10 . 2015.
  13. Popa, Raluca Ada; Redfield, Catherine MS; Zeldovich, Nickolai; Balakrishnan, Hari (23 de octubre de 2011). "CryptDB: Protección de la confidencialidad mediante el procesamiento de consultas cifradas". Actas del Vigésimo Tercer Simposio ACM sobre Principios de Sistemas Operativos . págs. 85–100 . doi : 10.1145/2043556.2043566 . hdl : 1721.1/74107 . ISBN  9781450309776. S2CID 6323154 . 
  14. Tu, Stephen; Kaashoek, M. Frans; Madden, Samuel; Zeldovich, Nickolai; Tu, Stephen; Kaashoek, M. Frans; Madden, Samuel; Zeldovich, Nickolai (2013-03-01). "Procesamiento de consultas analíticas sobre datos cifrados, Procesamiento de consultas analíticas sobre datos cifrados" (PDF) . Actas de la Fundación VLDB . 6 (5): 289, 289– 300, 300. doi : 10.14778/2535573.2488336 . hdl : 1721.1/87023 . ISSN 2150-8097 . S2CID 2187816 .  
  15. Alboaie, Sinică; Cosovan, Doina (2017), "Sistema de datos privados que permite el almacenamiento autosoberano gestionado por coreografías ejecutables", Aplicaciones distribuidas y sistemas interoperables , Lecture Notes in Computer Science, vol. 10320, Springer International Publishing, pp. 83–98 , arXiv : 1708.09332 , doi : 10.1007/978-3-319-59665-5_6 , ISBN   9783319596648, S2CID 6063958