MX2010012821A - Red de flujo de datos. - Google Patents
Red de flujo de datos.Info
- Publication number
- MX2010012821A MX2010012821A MX2010012821A MX2010012821A MX2010012821A MX 2010012821 A MX2010012821 A MX 2010012821A MX 2010012821 A MX2010012821 A MX 2010012821A MX 2010012821 A MX2010012821 A MX 2010012821A MX 2010012821 A MX2010012821 A MX 2010012821A
- Authority
- MX
- Mexico
- Prior art keywords
- data
- interface
- source
- objective
- target
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- User Interface Of Digital Computer (AREA)
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Supply And Distribution Of Alternating Current (AREA)
- Image Analysis (AREA)
- Complex Calculations (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Se proporciona un modelo de composición denominado como un patrón de objetivo de fuente para conectar procedimientos en redes de procedimiento en una forma general, flexible, y extensible. El modelo permite que se combinen construcciones de álgebra de procedimiento comunes con redes de flujo de datos para formar redes de procedimiento. Las operaciones algebraicas de procedimiento pueden expresarse en términos del modelo de composición para formar redes de flujo de datos que proporcionan operaciones algebraicas de procedimiento completamente interoperables entre procedimientos.
Description
RED DE FLUJO DE DATOS
ANTECEDENTES
Los sistemas de computadora pueden permitir que se ejecuten concurrentemente múltiples procedimientos de un programa. La ejecución concurrente de los procedimientos puede permitir que el programa sea ejecutado más rápido o más eficientemente para aumentar el rendimiento del sistema de computadora.
En procedimientos que implementan un modelo de flujo de control, la lógica de flujo de control describe un grupo de condiciones y modificaciones de estado de programa y pueden organizarse por un cuadro de flujo, por ejemplo. El término 'álgebra de procedimiento' se utiliza para hacer referencia a una metodología para razonamiento sobre cómo los procedimientos se comunican entre sí para cooperar al resolver un problema compartido y cómo se controla la vida útil de un procedimiento. Aunque el álgebra de procedimiento puede ser ampliamente distinta de los primitivos de modificación de estado interno de un' procedimiento, típicamente existen puntos de interacción en donde la comunicación inter-procedimiento maneja el cuadro de flujo interno. Estos puntos de interacción entre procedimientos pueden ser complejos en algunos programas. Los puntos de interacción complejos pueden dificultar programar procedimientos para ejecución concurrente y resultan en una ejecución del programa que es menos óptimo.
BREVE DESCRIPCION DE LA INVENCION
Esta breve descripción se proporciona para introducir una selección de conceptos en una forma simplificada que además se describe a continuación en la descripción detallada. Esta breve descripción no pretende identificar características clave o características esenciales del tema reclamado, ni se pretende utilizar para limitar el alcance del tema reclamado.
Un modelo de composición denominado como un patrón objetivo de fuente para conectar procedimientos en redes de procedimiento en una forma general, flexible, y extensible se proporciona. El modelo permite que se combinen construcciones de álgebra de procedimiento común con redes de flujos de datos para formar redes de procedimiento. Las operaciones algebraicas de procedimiento pueden expresarse en términos del modelo de composición para formar redes flujo de datos que proporcionan operaciones algebraicas de procedimiento completamente I nteroperables entre procedimientos. El modelo puede aplicarse a una amplia disposición de redes de flujo de datos simples así como redes de flujo de datos más complejas.
BREVE DESCRIPCION DE LOS DIBUJOS
Los dibujos anexos se incluyen para proporcionar un entendimiento adicional de modalidades y se incorporan en y
constituyen una parte de esta especificación. Los dibujos ilustran modalidades y junto con la descripción sirven para explicar principios de modalidades. Otras modalidades y muchas de las ventajas pretendidas de las modalidades se apreciarán fácilmente a medida que se entienden mejor por referencia a la siguiente descripción detallada. Los elementos de los dibujos no necesariamente son a escala con relación uno al otro. Números de referencia similares designan partes similares correspondientes.
Las Figuras 1A-1C son diagramas de bloques que ilustran modalidades que interfases de fuente y objetivo para usarse en una red de flujo de datos.
Las Figuras 2A-2C son diagramas de bloques que ilustran modalidades de nodos de una red de flujo de datos.
La Figura 3 es un diagrama de bloques que ilustra una modalidad de una red de procedimiento con una red de flujo de datos conectada a los procedimientos.
La Figura 4 es un diagrama de bloques que ilustra una modalidad de una red de procedimiento con un procedimiento conectado redes de flujo de datos.
La Figura 5 es un diagrama de bloques que ilustra una modalidad de un bloque originador configurado para implementar una operación de envío.
La Figura 6 es un diagrama de bloques que ilustra una modalidad de un bloque activador configurado para implementar una operación de recepción.
La Figura 7 es un diagrama de bloques que ilustra una modalidad de una red de procedimiento.
La Figura 8 es un diagrama de bloques que ilustra una modalidad de una red de flujo de datos configurada para implementar operaciones de elección y de unión.
La Figura 9 es un diagrama de bloques que ilustra una modalidad de una red de procedimiento.
La Figura 10 es un diagrama de bloques que ilustra una modalidad una red de procedimiento.
La Figura 11 es un diagrama de bloques que ilustra una modalidad de un sistema de computadora configurado para implementar un ambiente de tiempo de ejecución con un programador de procedimiento.
DESCRIPCION DETALLADA
En la siguiente descripción detallada, se hace referencia a los dibujos anexos, que forman una parte de la misma, y en donde se muestra, a manera de ilustración, modalidades específicas en donde puede practicarse la invención. Con respecto a esto, la terminología direccional, tal como "superior", "inferior", "frontal", "trasero", "delantero", "trasero", etc., se utiliza con referencia a la orientación del Figura(s) que se describen. Debido a que los componentes de las modalidades pueden colocarse en un número de orientaciones diferentes, se utiliza la terminología direccional para propósitos de
ilustración y de ninguna forma es limitante. Se debe entender que pueden utilizarse otras modalidades y cambios estructurales o lógicos pueden hacerse sin apartarse del alcance de la presente invención. La siguiente descripción detallada, por lo tanto, no se va a tomar en un sentido limitante, y el alcance de la presente invención se define por las reivindicaciones anexas.
Se debe entender que las características de las varias modalidades ilustrativas aquí descritas pueden combinarse entre si, a menos que se note específicamente de otra forma.
La Figura 1A es un diagrama de bloques que ilustra una modalidad de un patrón objetivo de fuente 10 que incluye una interfase de fuente 12 y una interfase objetivo 14 conectada mediante un enlace 16.
El patrón objetivo de fuente 10 proporciona un grupo de operaciones que se utilizan para crear redes de flujo de datos (por ejemplo, red de flujo de datos 32 mostrada en las Figuras 3 y 4) que conectan cualquier número de procedimientos (por ejemplo, procedimientos 40 mostrados en las Figuras 3 y 4) de una ejecución de programa en un sistema de computadora (por ejemplo, un sistema de computadora 100 mostrado en la Figura 11) en redes de procedimiento. Las redes de flujo de datos forman construcciones de álgebra de procedimiento tal como envío, recepción, elección, unión, y combinaciones de los mismos para permitir que se transfieran datos entre procedimientos. El patrón de objetivo de fuente 10 proporciona un protocolo para transferir datos entre interfase de
fuente 12 e inferíase objetivo 14 para permitir que se implementen las construcciones de álgebra de procedimiento en redes de flujo de datos.
El patrón de objetivo de fuente 10 permite que se conecten los procedimientos en donde los procedimientos no tienen o tienen un conocimiento mínimo uno sobre el otro. Un procedimiento puede proporcionar datos a otro procedimiento al utilizar un patrón de objetivo de fuente 10 sin ningún conocimiento del otro procedimiento. Similarmente, un procedimiento puede recibir datos de otro procedimiento al utilizar un patrón de objetivo de fuente 10 sin ningún conocimiento del otro procedimiento. Cada procedimiento incluye un grupo de instrucciones almacenadas en medios de almacenamiento legibles por computadora (por ejemplo, sistemas de memoria 104 como se muestra en la Figura 11) y ejecutable por el sistema de computadora. Los datos transferidos entre procedimientos pueden incluir cualquier tipo de datos incluyendo indicadores, direcciones, y otra información estructurada codificada.
La interfase de fuente 12 incluye instrucciones almacenadas en medios de almacenamiento legibles por computadora (por ejemplo, sistema de memoria 104 como se muestra en la Figura 11) y ejecutables mediante el sistema de computadora para ¡mplementar objetivo de enlace, objetivo de desenlace, operaciones de reserva, de liberación, y de consumo en donde cada una de las operaciones de interfase de fuente 12 se invoca mediante una o más interfases objetivo 14. La interfase objetivo 14 incluye instrucciones
almacenadas en medios de almacenamiento legibles por computadora (por ejemplo, sistema de memoria 104 como se muestra en la Figura 11) y ejecutable mediante el sistema de computadora para implementar una operación de oferta en donde la operación de oferta de la interfase objetivo 14 se invoca mediante una o más interfases de fuente 12.
La operación de objetivo de enlace de la interfase de fuente 12 establece un enlace 16 entre la interfase de fuente 12 y una interfase objetivo 14 que invoca la operación de objetivo de enlace. La operación de objetivo de desenlace de la interfase de fuente 12 desconecta un enlace 16 entre la interfase de fuente 12 y una interfase objetivo 14 que invoca la operación de desenlace. La operación de objetivo de enlace y de objetivo de desenlace puede regresar un indicador de éxito o falla a la interfase objetivo 14 de la cual la invocación de operación se recibió para indicar si el enlace 16 se estableció o desconectó o no exitosamente.
Subsecuente a un enlace 16 que se establece entre una interfase objetivo 12 y un interfase objetivo 14, la interfase de fuente 12 invoca la operación de oferta de la interfase objetivo 14 al utilizar el enlace 16 para ofrecer datos a la interfase objetivo 14. En respuesta a la invocación de oferta, la interfase objetivo 14 regresa uno de aceptado, de rechazado, o pospuesto. La interfase objetivo 14 regresa aceptado para indicar que la interfase objetivo 14 consumió los datos ofrecidos por la interfase de fuente 12. La interfase objetivo 14 regresa rechazada para indicar que la interfase
objetivo 14 no esté interesada en los datos ofrecidos por la interfase de fuente 12. La interfase objetivo 14 regresa pospuesto para indicar que la interfase objetivo 14 no está lista para consumir los datos ofrecidos por la interfase de fuente 12 en este punto en el tiempo.
La interfase de fuente 12 permite que la interfase objetivo 14 solicite datos que se ofrecieron previamente al utilizar la operación de reserva. La interfase objetivo 14 invoca la operación de reserva para reemplazar una reserva en datos que se ofrecieron por la interfase de fuente 12 pero se pospusieron por la interfase objetivo 14. La interfase de fuente 12 regresa un indicador de éxito o falla a la interfase objetivo 14 de la cual se recibió la invocación de reserva para indicar si la reserva fue o no exitosa.
Subsecuente a reservar datos, la interfase objetivo 14 invoca a la operación de liberación de la interfase de fuente 12 para liberar una reserva colocada previa o la operación de consumo para consumir los datos reservados. Después que la interfase de fuente 12 confirma una reserva de datos a la interfase objetivo 14 al proporcionar un indicador de éxito a la interfase objetivo 14, la interfase de fuente 12 mantiene los datos para la interfase objetivo 14 que colocaron la reserva hasta que los datos se liberan o consumen por la interfase objetivo 14 que colocó la reserva.
Como se muestra en la Figura 1B, cada interfase objetivo 14 puede conectarse a cualquier número de interfases de fuente 12(1)-12(M) al invocar la operación de objetivo de enlace de cada interfase de fuente 12( 1 )-12(M) para ^establecer enlaces respectivos 16(1)-
16( ), en donde M es un entero mayor que o igual a uno y representa la M° interfase de fuente 12 y el enlace M° 16. Por consiguiente, cada interfase objetivo 14 se le pueden ofrecer datos desde cualquier número de interfases de fuente 12(1 )-12(M).
Como se muestra en la Figura 1C, cada interfase de fuente 12 puede conectarse a cualquier número de interfases objetivo 14(1)-14(N) en respuesta a invocaciones de operación de objetivo de enlace desde cada interfase objetivo 14(1)-14(N) que establecen enlaces respectivos 16(1)-16(N), en donde N es un entero mayor que o igual a uno y representa la N° de interfase objetivo 14 y el N° enlace 16. Por consiguiente, cada interfase de fuente 12 puede ofrecer datos a cualquier número de interfases objetivo 14(1)-14(N).
Las Figura 2A-2C son diagramas de bloque que ¡lustran modalidades 20A, 20B, y 20C, respectivamente, de un nodo 20 de una red de flujo de datos. Como se muestra en la Figura 2A, un nodo 20A puede incluir una o más interfases de fuente 12(1)-12(P), en donde P es un entero mayor que o igual a uno y representa la P° interfase de fuente 12, pero no interfases objetivo 14. Los nodos 20A solamente con interfases de fuente 12 forman originadores de datos. Un nodo 20B puede incluir una o más interfases de objetivo 14(1)-14(Q), en donde Q es un entero mayor que o igual a uno y representa la Q° interfase objetivo 14, pero no interfases de fuente 12 como se muestra en la Figura 2B. Los nodos 20B solamente con interfases objetivo 14 forman recolectores de datos. Además, un nodo 20C puede incluir una o más interfases de fuente 12(1 )-12(P) y una o más
interfases objetivo 14(1)-14(Q) como se muestra en la Figura 2C. Cada uno de los nodos 20A, 20B, y 20C también pueden incluir una o más unidades de procesamiento pasivas (no mostradas) configuradas para transportar datos a medida que se propagan a través de los nodos 20A, 20B, y 20C.
Los datos fluyen a través de una red de flujo de datos que se transfiere de un nodo 20 a uno o más otros modos 20 al utilizar un patrón de objetivo de fuente 10. Cada conexión de dos modos 20 en una red de flujo de datos se representa mediante un par de un nodo 20 que implemente interfases de fuente 12 (por ejemplo, un nodo 20A o un modo 20C) con un nodo que implementa una interfase objetivo 14 (por ejemplo, un nodo 20B o un nodo 20C).
Cualquier número de componentes de red de flujo de datos puede definirse al utilizar un patrón de objetivo de fuente 10, y los componentes pueden combinarse en redes de flujo de datos ampliamente arbitrarias. Ejemplos de redes de flujo de datos incluyen memorias intermedias no limitadas, memorias intermedias limitadas, bloques de asignación individual, memorias intermedias de productor/consumidor, recolectores de datos (invocación de métodos), transformaciones de datos, cronómetros, y procesadores l/O. Las redes de flujo de datos también pueden estar compuestas de redes más complejas que utilizan un patrón de objetivo de fuente 10. Por ejemplo, una implementación de candado de lector/escritor o una implementación de monitor puede expresarse en términos de redes de flujo de datos que utilizan un patrón objetivo de fuente 10.
Cualquier número de procedimientos puede proporcionar datos en una red de flujo de datos, y cualquier número de procedimientos puede recibir datos desde una red de flujo de datos como se muestra en la Figura 3. La Figura 3 es un diagrama de bloques que ilustra una modalidad de una red de procedimiento 30 con una red de flujo de datos 32 conectada a los procedimientos 40(1)-40(R) y 40(R + 1)-40(S), en donde R es un entero mayor que o igual a uno, S es un entero mayor que o igual a dos, R es menor que S, y representa el R° y el S° procedimiento 40.
La red de flujo de datos 32 forma una construcción de flujo de datos pasiva configurada para propagar datos desde los procedimientos 40(1)-40(R) a procedimientos 40(R + 1 )-40(S). La red de flujo de datos 32 incluye un grupo 34 de una o más interfases objetivo 14, un grupo 36 de una o más interfases de fuente 12, y un grupo de componentes de red 38 que incluyen nodos 20 y bloques de procesamiento pasivos e interconecta el grupo 34 de interfases objetivo 14 con el grupo 36 de interfases de fuente 12. Los componentes de red 38 pueden incluir cualquier tipo, número, y/o combinación adecuada de nodos 20 y bloques de procesamiento pasivos que conectan el grupo 34 de interfases objetivo 14 con el grupo 36 de interfases de fuente 12 en cualquier forma adecuada.
Los procedimientos 40(1)-40(R) incluyen grupos respectivos 42(1)-42(R) de una o más interfases de fuente 12 en donde cada grupo 42 puede incluir el mismo o un número diferente de interfases de fuente 12 como otros grupos 42. El grupo 34 de interfases
objetivo 14 establece un grupo 44 de enlaces 16 entre el grupo 34 de interfases objetivo 14 y los grupos 42(1)-42(R) de interfases de fuente 12. Como se ilustra en las Figuras 1B y 1C, cada interfase de grupo 14 en el grupo 44 puede conectarse a cualquier número de interfases de fuente 12 en los grupos 42(1)-42(R), y cualquier número de interfases objetivo 14 en el grupo 44 puede conectarse a cada interfase de fuente 12 en grupos 42(1)-42(R). Cada interfase de fuente 12 en grupos 42(1)-42(R) causa que se propaguen datos desde procedimientos 40(1)-40(R) en la red de flujo de datos 32 al ofrecer datos a una o más interfases objetivo 14 en el grupo 44 como se describe anteriormente con referencia la Figura 1A. Uno o más de los procedimientos 40(1)-40(R) también puede incluir uno o más grupos adicionales de interfases de fuente 12 (no mostradas) y/o uno o más grupos de interfases objetivo 14 (no mostradas) que se conectan a una o más otras redes de flujo de datos 32 (no mostradas).
Los procedimientos 40(R + 1 )-40(S) incluyen grupos respectivos 46(R + 1)-46(S) de una o más interfases objetivo 14 en donde cada grupo 46 puede incluir el mismo o un número diferente de interfases objetivo 14 como otros grupos 46. Los grupos 46(R + 1 )-46(S) de interfases objetivo 14 establecen un grupo 48 de enlaces 16 entre los grupos 46(R + 1 )-46(S) de interfases objetivo 14 y el grupo 36 de interfases de fuente 12. Como se ilustran en las Figuras 1B y 1C, cada interfase objetivo 14 en grupos 46(R+1)-46(S) puede conectarse a cualquier número de interfases de fuente 12 en el grupo
36, y cualquier número de interfases objetivo 14 en grupos 46(R + 1)-46(S) puede conectarse a cada interfase de fuente 12 en el grupo 36. Cada interfase de fuente 12 en el grupo 36 hace que se propaguen datos desde la red de flujo de datos 32 hacia uno o más de los procedimientos 40(R + 1 )-40(S) al ofrecer datos a una o más interfases objetivo 14 en los grupos 46(R+1 )-46(S) como se describe anteriormente con referencia a la Figura 1A. Uno o más de los procedimientos 40(R + 1 )-40(S) también puede incluir una o más grupos adicionales de interfases objetivo 14 (no mostradas) y/o uno o más grupos de interfases de fuente 12 (no mostrados) que se conectan a una o más redes de flujo de datos 32 (no mostradas).
Los procedimientos 40(1)-40(R) pueden proporcionar datos a procedimientos 40(R + 1 )-40(S) al utilizar el flujo de datos 32 sin ningún conocimiento de procedimientos 40(R + 1 )-40(S). Similarmente, los procedimientos 40(R + 1 )-40(S) pueden recibir datos desde procedimientos 40(1)-40(R) al utilizar red de flujo de datos 32 sin ningún conocimiento de procedimientos 40(1)-40(R).
Un procedimiento puede proporcionar datos en cualquier número de redes de flujo de datos y recibir datos desde cualquier número de redes de flujo de datos como se muestra en la Figura 4. La Figura 4 es un diagrama de bloques que ilustra una modalidad de una red de procedimientos 50 con un procedimiento 40 conectado a redes de flujo de datos 32(1)-32(T) y 32(T+1 )-32(V), en donde T es un entero mayor que o igual a uno, V es un entero mayor que o igual a dos, T es menor que V, y representa la T° y la Vo red de flujo de
datos 32.
El procedimiento 40 incluye un grupo de instrucciones de un programa que se configuran para recibir datos desde redes de flujo de datos 32(1)-32(T) y proporcionan datos a las redes de flujo de datos 32 (T + 1)-32(V). El procedimiento 40 incluye un grupo 54 de una o más interfases objetivo 14, un grupo 56 de una o más interfases de fuente 12, y un grupo de componentes de procedimiento 58 e interconecta el grupo 54 de interfases objetivo 14 con. el grupo 56 de interfases de fuente 12. Los componentes de procedimiento 58 pueden incluir cualquier tipo adecuado, número, y/o combinación de instrucciones y/o estructuras de datos que conectan el grupo 54 de interfases objetivo 14 con el grupo 56 de interfases de fuente 12 en cualquier forma adecuada.
Las redes de flujo de datos 32(1)-32(T) incluyen grupos respectivos 62(1)-62(T) de una o más interfases de fuente 12 en donde cada grupo 62 puede incluir el mismo o un número diferente de interfases de fuente 12 como otros grupos 62. El grupo 54 de interfases objetivo 14 establece un grupo 64 de enlaces 16 entre el grupo 54 de interfases objetivo 14 y los grupos 62(1)-62(T) de interfases de fuente 12. Como se ilustra en las Figuras 1B y 1C, cada inferíase objetivo 14 en el grupo 54 puede conectarse a cualquier número de interfases de fuente 12 en los grupos 62(1)-62(T), y cualquier número de interfases objetivo 14 en el grupo 54 puede conectarse a cada inferíase de fuente 12 en grupos 62(1)-62(T). Cada interfase de fuente 12 en grupos 62(1)-62(T) hace que
los datos se propaguen desde las redes de flujo de datos 32(1)-32(T) hasta el procedimiento 40 al ofrecer datos a una o más interfases objetivo 14 en el grupo 54 como se describió anteriormente con referencia a la Figura 1A. Las redes de flujo de datos 32(1)-32(T) cada una incluye uno o más grupos de interfases objetivo 14 (no mostradas) que se conectan con uno o más otros procedimientos 40 (no mostrados). Las redes de flujo de datos 32(1)-32(T) también pueden incluir uno o más grupos adicionales de interfases de fuente 12 (no mostradas) y/o uno o más grupos de interfases objetivo 14 (no mostradas) que se conectan a uno o más de otros procedimientos 40 (no mostrados).
Las redes de flujo de datos 32(T + 1 )-32(V) incluyen grupos respectivos 66 (T + 1)-46(V) de una o más interfases objetivo 14 en donde cada grupo 66 puede incluir el mismo o un número diferente de interfases objetivo 14 como otros grupos 66. Los grupos 66 (T+1)-46(V) de interfases objetivo 14 establecen un grupo 68 de enlaces 16 entre los grupos 66(T + 1 )-46(V) de interfases objetivo 14 y el grupo 56 de interfases de fuente 12. Como se ¡lustra en las Figuras 1B y 1C, cada inferíase objetivo 14 en grupos 66(T + 1 )-46(V) pueden conectarse a cualquier número de interfases de fuente 12 en el grupo 56, y cualquier número de interfases objetivo 14 en los grupos 66(T+ 1 )-46(V) pueden conectarse a cada inferíase de fuente 12 en el grupo 56. El procedimiento 40 hace que se propaguen los datos en una o más redes de flujo de datos 32 (T+1)-32(V) al hacer que cada inferíase de fuente 12 en el grupo 56 ofrezca datos a una o más
interfases objetivo 14 en los grupos 66(T+1 )-46(V) como se describió anteriormente con referencia la Figura 1A. Las redes de flujo de datos 32 (T + 1)-32(V) también pueden incluir uno o más grupos de interfases de fuente 12 (no mostradas) y/o uno o más grupos de interfases objetivo 14 (no mostradas) que se conectan a uno o más de otros procedimientos 40 (no mostrados).
La Figura 5 es un diagrama de bloques que ilustra una modalidad de un bloque originador 70 configurado para implementar una operación de envío. El bloque originador 70 incluye una inferíase de fuente 12 pero no incluye ninguna de las interfases objetivo 14. El bloque originador 70 se incluye en un procedimiento 40 para permitir que el procedimiento 40 propague datos en una red 'de flujo de datos 32. Por consiguiente, el bloque originador 70 implementa una operación de envío al recibir datos desde el procedimiento 40 y al proporcionar los datos en una o más redes de flujo de datos conectadas 32.
El bloque originador 70 puede o no interactuar con un programador de procedimiento subyacente que programa procedimientos 40 para ejecución en el sistema de computadora. De esa forma, el bloque originador 70 puede no incluir una interfase al programador.
La Figura 6 es un diagrama de bloques que ¡lustra una modalidad de un bloque activador 80 configurado para implementar una operación de recepción. El bloque activador 80 incluye una interfase objetivo 14 pero no incluye ninguna de las interfases de
fuente12. El bloque activador 80 está incluido en un procedimiento 40 para permitir que el procedimiento 40 reciba datos desde una red de flujo de datos 32. El bloque activador 80 actúa como un punto de terminación o uno de cualquier número de puntos de terminación para la red de flujo de datos 32. Por consiguiente, el bloque activador 80 implementa una operación de recepción. al recibir datos desde una red de flujo de datos 32 y al proporcionar los datos al procedimiento 40.
El bloque activador 80 también incluye una interfase de programador 82. La interfase de programador 82 interactúa con un programador de procedimiento subyacente que programa el procedimiento 40 para ejecución en. el sistema de computadora. En particular, la interfase de programador 82 opera con el programador para hacer que se pause el procedimiento 40 (por ejemplo, se bloquee) en respuesta a una operación de recepción que involucra el bloque activador 80 que se comienza con datos que no están inmediatamente disponibles. La interfase de programador 82 también opera con el programador para hacer que se resuma el procedimiento 40 (por ejemplo, desbloqueado) en respuesta a datos de una operación de recepción que involucra bloque activador 80 que llega en el bloque activador 80.
La Figura 7 es un diagrama de bloques que ilustra una modalidad de una red de procedimiento 90 que incluye operaciones de envío y de recepción. En la Figura 7, un procedimiento 40(1) recibe datos desde un procedimiento 40(2) y proporciona datos a un
procedimiento 40(3). Para recibir datos desde el procedimiento 40(2), a un bloque activador 80(1) del procedimiento 40(1) se le ofrecen datos desde un bloque originador 70(1) del procedimiento 40(2) y el bloque activador 80(1) acepta los datos como se indica por una red de flujo de datos 32A que implementa una operación de recepción. El procedimiento 40(1) realiza algún cálculo sobre los datos y enviar los datos resultantes al procedimiento 40(3). Para enviar los datos del procedimiento 40(3), un bloque originador 70(2) del procedimiento 40(1) ofrece datos a un bloque activador 80(2) del procedimiento 40(3) y el bloque activador 80(2) acepta los datos como se indica por una red de flujo de datos 32B que implementa una operación de envío.
La Figura 8 es un diagrama de bloques que ilustra una modalidad de una red de flujo de datos 32 configurada para implementar operaciones de elección y de unión. La red de flujo de datos 32 incluye nodos 20(1 )-20(W+1 ) en donde W es un entero mayor que uno o iguala dos y representa el W° nodo 20, el W° procedimiento 40, y el W° bloque originador 70. Cada nodo 20(1)-20(W+1) incluye una interfase de fuente 12 y una interfase objetivo 14. Las interfases objetivo 14 en nodos 20(1) 20(W) reciben datos desde bloques originadores respectivos 70(1)-70(W) en procedimientos respectivos 40(1 )-40(W). Las interfases de fuente 12 en los nodos 20(1 )-20(W), cada uno proporciona datos a una interfase objetivo 14 en el nodo 20(W+1). La -interfase de fuente 12 en el nodo 20(W+1) proporciona datos al bloque activador 70 en el
procedimiento 40 (W+1).
Para implementar la operación de elección, el nodo 20(W+1) acepta datos únicamente desde el primero de los nodos 20(1)-20(W) para ofrecer datos al nodo 20(W+1) y rechaza ofertas de datos desde todos los nodos restantes 40(1 )-20(W). El nodo 20(W + 1) proporciona los datos al bloque activador 80 en el procedimiento 40(W+1).
En una modalidad, cada nodo 20(1)-20(W) está configurado para utilizar su interfase de fuente respectiva 12 para ofertar su identidad como los datos al nodo 20(W+1) en respuesta a que se le ofrezcan datos desde bloques originadores respectivos 70(1 )-70(W). El nodo 20(W+1) utiliza su interfase objetivo 14 para aceptar la primer identidad ofrecida del primer grupo de nodos 20(1 )-20(W) y para rechazar todas las identidades subsecuentes ofrecidas desde el grupo del nodos 20(1 )-20(W). El nodo 20(1 )-20(W) que recibe la respuesta de aceptación del nodo 20(W+1) utiliza su interfase de fuente 12 que acepta los datos ofrecidos desde el bloque originador respectivo 70( 1 )-70(W) al utilizar su interfase objetivo 14. Los nodos 20(1 )-20(W) que describen las respuestas de rechazo del nodo 20(W+1) al utilizar sus interfases de fuentes respectivas 12 rechazan los datos ofrecidos desde los bloques originadores respectivos 70(1)-70(W) al utilizar sus interfases objetivo respectivas 14. El nodo 20(W+1) utiliza su interfase de fuente 12 para ofrecer la identidad aceptada a medida como los datos para el bloque activador 70 en el procedimiento 40(W+1). El bloque activador 70 responde al aceptar la identidad del nodo 20(W+1). El procedimiento 40(W+1) entonces
recupera los datos de la operación de elecciones del nodo 20(1)-20(W) al utilizar la identidad recibida desde el nodo 20(W+1).
En otra modalidad, pueden omitirse los nodos 20(1 )-20(W) y el nodo 20(W+1) puede recibir datos directamente de los bloques originadores 70(1)-70(W). En esta modalidad, los bloques originadores 70(1)-70(W) ofrecen datos al nodo 20(W+1). El nodo 20(W+1) utiliza su interfase objetivo 14 para aceptar los primeros datos ofrecidos desde el grupo de bloques originadores 70(1 )-70(W) y para rechazar todos los datos subsecuentes ofrecidos desde el grupo de bloques originadores 70(1)-70(W). El nodo 20(W+1) utiliza su interfase de fuente 12 para ofrecer los datos aceptados al bloque activador 70 en el procedimiento 40(W + 1). El bloque activador 70 responde al aceptar los datos desde el nodo 20(W+1) para completar la operación de elección.
En otras modalidades, la operación de elección puede implementarse en la red de flujo de datos 32C al utilizar otras combinaciones del patrón objetivo de fuente 10 que la interfase con otras combinaciones de los bloques originadores 70 y/o bloques activadores 80.
La Figura 9 es un diagrama de bloques que ilustra una modalidad de una red de procedimiento 92 que incluye una operación de elección. En la Figura 9, la operación de elección se implementa entre un procedimiento 40(4) y procedimientos 40(5) y.40(6) al incluir red de flujo de datos 32C. Al utilizar red de flujo de datos 32C, el procedimiento 40(4) acepta datos desde el primer procedimiento
40(5) y 40(6) que proporcionan los ciatos a la red de flujo de datos 32C. El procedimiento 40(4) realiza algún cálculo sobre los datos y envía los datos resultantes al procedimiento 40(7) al utilizar una red de flujo de datos 32D que implementa una operación de envío.
La modalidad de la Figura 8 también puede utilizarse para implementar una operación de unión. Para implementar la operación de unión, el nodo 20(W+1) espera para aceptar datos desde todos los nodos 20(1 )-20(W) antes de ofrecer los datos desde todos los nodos 20(1)-20(W) para activar el bloque activador 80 en el procedimiento 40(W+1 ).
En una modalidad, cada nodo 20(1)-20(W) está configurado para ofrecer su identidad como parte de los datos ofrecidos al nodo 20(W+1) al utilizar la interfase de fuente 12 en respuesta a ofrecerse con datos desde bloques originadores respectivos 70(1)-70(W). El nodo 20(W + 1) rastrea las ofertas recibidas al utilizar su interfase objetivo 14 para determinar cuándo se le han ofrecido a todos los nodos 20(1 )-20(W) sus identidades. El nodo 20(W + 1) utiliza su interfase objetivo 14 para responder a todas las ofertas, excepto la última oferta, con pospuesto. En respuesta a las ofertas de todos los nodos 20(1)-20(W) que se reciben, el nodo 20(W+1) utiliza su interfase objetivo 14 para invocar la operación' de reserva en todos los nodos 20(1)-20(W) excepto el nodo 20( 1 )-20(W) que proporcionaron la última oferta. El nodo 20(W+1) espera para responder al nodo 20(1 )-20(W) que proporcionó la última oferta recibida hasta que el nodo 20(W+1) determina si todas las reservas
tuvieran éxito o si cualquiera de las reservas falló.
Todos los nodos 20(1 )-20(W) que recibieron una invocación de reserva utilizan sus interfases objetivo 14 respectivas para invocar a la operación de reserva en los bloques originadores respectivos 70(1 )-70(W). Los bloques originadores 70(1 )-70(W) responden a las invocaciones de reserva al proporcionar un indicador de éxito o de falla a los nodos de invocación respectivos 20( 1 )-20(W) . Si un bloque originador 70 ya no tiene los datos ofrecidos o los datos ofrecidos se reservaron por otro nodo 20 (no mostrados), el bloque originador 70 responde a la invocación de reserva con una indicación de falla. De otra forma, él bloque originador 70 responde a la invocación de reserva con una indicación de éxito.
Los nodos 20(1)-20(W) detectan reservas fallidas en respuesta a recibir los indicadores de falla de bloques originadores respectivos 70(1 )-70(W). Los nodos 20(1)-20(W) también pueden detectar reservas fallidas en respuesta a bloques originadores 70(1 )-70(W) que se desconectan de nodos respectivos 20(1 )-20(W). Cada nodo 20(1 )-20(W) que detecta una reserva fallida responde a la invocación de reserva de nodo 20(W+1) con un indicador de falla. Cada nodo 20(1)-20(W) que recibe un indicador desde bloques originadores respectivos 70(1)-70(W) responde a la invocación de reserva del nodo 20(W +1) con un indicador de éxito.
El nodo 20(W+1) detecta cualquiera de las reservas fallidas en respuesta a recibir los indicadores de falla de los nodos 20(1 )-20(W) o en respuesta a cualquiera de los nodos 20(1)-20(W) que se
desconectan. Si el nodo 20(W+1) detecta cualquiera de las reservas fallidas, el nodo 20(W+1) utiliza su interfase objetivo 14 para invocar a la operación de liberación en todos los nodos 20(1 )-20(W) que respondió a las invocaciones de reserva con indicadores de éxito. El nodo 20(W + 1) también regresa pospuesto al nodo 20(1 )-20(W) que proporcionó la última oferta recibida por el nodo 20(W+1) en respuesta a recibir las invocaciones de liberación, nodos 20( 1 )-20(W) liberan las reservas exitosas y, a su vez, invocan a las operaciones de liberación en bloques originadores correspondientes 70(1 )-70(W). Los bloques originadores 70(1 )-70(W) y dadas las reservas exitosas en respuesta a recibir las invocaciones de liberación de los nodos 20(1 )-20(W).
Si el nodo 20(W+1) detecta que todas las reservas tuvieron éxito, el nodo 20(W+1) utiliza su interfase objetivo 14 invocar la operación de consumo en todos los nodos 20(1 )-20(W) excepto el nodo 20(1 )-20(W) que proporcionaron la última oferta recibida por el nodo 20(W+1). El nodo 20(W+1) regresa aceptado al nodo 20(1)-20(W) que proporcionó la última oferta y ese nodo 20(1)-20(W), a su vez, regresa aceptado al bloque originador correspondiente 70(1)-70(W). Todos los nodos 20(1)-20(W) que reciben la invocación de consumo, a su vez, utilizan sus interfases objetivo respectivas 14 para invocar a la operación de consumo en los bloques originadores respectivos 70(1 )-70(W). El nodo 20(W+1) utiliza su interfase de fuente 12 para ofrecer los datos combinados al bloque activador 70 en el procedimiento 40(W+1). El bloque activador 70 responde al
aceptar los datos desde el nodo 20(W+1) para completar la operación de unión.
En otra modalidad, el nodo 20(W+1) señala al bloque activador 70 en el procedimiento 70(W+1) con un valor de Boolean cuando todos los datos se reservaron o aceptaron en nodos 20(1 )-20(W). El bloque activador 70 recupera los datos desde los nodos 20(1 )-20(W). En esta modalidad, el nodo 20(W+1) regresa aceptado al último de los modos 20( 1 )-20(W) que proporcionan datos.
En otras modalidades, la operación de unión puede implementarse en redes de flujo de datos 32C al utilizar otras combinaciones del patrón de objetivo de fuente 10 que se interconectan con otras combinaciones de bloques originadores 70 y/o bloques activadores 80.
La Figura 10 es un diagrama de bloques que ilustra una modalidad de una red de procedimiento 94 que incluye una operación de unión. En la Figura 10, la operación de unión se implementa entre un procedimiento 40(8) y procedimientos 40(9) y 40(10) al incluir red de flujo de datos 32C. Al utilizar red de flujo de datos 32C, el procedimiento 40(4) acepta datos proporcionados desde cada uno de los procedimientos 40(9) y 40(10) a la red de flujo de datos 32C. El procedimiento.40(8) realiza algún cálculo sobre los datos y envía los datos resultantes al procedimiento 40(11) al utilizar una red de flujo de datos 32E que implementa una operación de envío.
Las operaciones de envío, recepción, elección y unión ilustradas anteriormente con referencia a las Figuras 5-10 pueden
combinarse en configuraciones más complejas en otras modalidades.
La Figura 11 es un diagrama de bloques que ilustra una modalidad de un sistema de computadora 100 que se ilustra para implementar un ambiente de tiempo de funcionamiento que se incluye con un programador de procedimiento.
El sistema de computadora 100 incluye uno o más paquetes de procesador 102, un sistema de memoria 104, cero o más dispositivos de entrada/salida 106, cero o más dispositivos de presentación 108, cero o más dispositivos periféricos 110, y cero o más dispositivos de red 112. Los paquetes de procesador 102, sistema de memoria 104, dispositivos de entrada/salida 106, dispositivos de presentación 108, dispositivos periféricos 110, y dispositivos de red 112 se comunican al utilizar un grupo de interconexiones 114 que incluyen cualquier tipo adecuado, número, y configuración de controladores, conductores comunes, interfases, y/u otras conexiones por cable o inalámbricas.
El sistema de computadora 100 representa cualquier dispositivo de procesamiento adecuado configurado para un propósito general o un propósito específico. Ejemplos de un sistema de computadora 100 incluyen un servidor, una computadora personal, una computadora laptop, una computadora portátil, un asistente digital personal (PDA), un teléfono móvil, y un dispositivo de audio/video. Los componentes del sistema de computadora 100 (es decir, paquetes de procesador 102, sistema de memoria 104, dispositivos de entrada/salida 106, dispositivos de presentación 108, dispositivos periféricos 110,
dispositivos de red 112, e interconexiones 114) pueden contenerse en un alojamiento común (no mostrado) o en cualquier número adecuado de alojamientos separados (no mostrados).
Los paquetes de procesador 102 incluyen secuencias de hardware 116(1 )-116(X) en donde X es un entero mayor que o igual a uno y representa la Xo secuencia de hardware 116. Cada secuencia de hardware 116 en los paquetes de procesador 102 está configurada para acceder y ejecutar a instrucciones almacenadas en el sistema de memoria 104. Las instrucciones pueden incluir un sistema de entrada/salida básico (BIOS) o firmware (no mostrado), un sistema operativo (OS) 120, una capa de manejo de recurso 121, una plataforma de tiempo de ejecución 122, y aplicaciones 124. Cada secuencia de hardware 116 puede ejecutar las instrucciones en conjunto con o en respuesta a información recibida desde dispositivos de entrada/salida 106, dispositivos de presentación 108, dispositivos periféricos 110, y/o dispositivos de red 112.
El sistema de computadora 100 inicia y ejecuta OS 120. OS 120 incluye instrucciones ejecutables por secuencias de hardware 116 para manejar los componentes del sistema de computadora 100 y proporcionar un grupo de funciones que permiten que las aplicaciones 124 accedan y utilicen los componentes. En una modalidad, OS 120 es el sistema operativo de Windows. En otras modalidades, OS 120 es otro sistema operativo adecuado para usarse con el sistema de computadora 100.
La capa de manejo de recurso 121 incluye instrucciones que
son ejecutables en conjunto con OS 120 para distribuir recursos de sistema de computadora 100 incluyendo secuencias de hardware 116. La capa de manejo de recurso 121 puede incluirse en el sistema de computadora 100 como una biblioteca de funciones disponibles para una o más aplicaciones 124 ó como una parte integrada de OS 120.
La. plataforma de tiempo de ejecución 122 incluye instrucciones que son ejecutables en conjunto con OS 120 y capa de manejo de recurso 121 para generar el ambiente de tiempo de ejecución y proporcionar funciones de tiempo de ejecución a aplicaciones 124. Estas funciones de tiempo de ejecución incluyen una función de programador. Cuando se invoca, la función de programador crea un programador que opera para programar procedimientos de programas, tal como aplicaciones 124, para ejecución por una o más secuencias de hardware 116( 1 )-116(X). Las funciones de tiempo de ejecución pueden incluirse en el sistema de computadora 100 como parte de una aplicación 124, con una biblioteca de funciones disponibles para una o más aplicaciones 124, o como una parte integrada de OS 120 y/o capa de manejo de recurso 121.
Cada aplicación 124 incluye instrucciones que son ejecutables en conjunto con OS 120, capa de manejo de recursos 121, y/q plataforma de tiempo de ejecución 122 para hacer que las operaciones deseadas se realicen por el sistema de computadora 100. Cada aplicación 124 representa uno o más programas que pueden ejecutarse con un programador proporcionado por la plataforma de tiempo de ejecución 122.
El sistema de memoria 104 incluye cualquier tipo, número, y configuración adecuada de dispositivos de almacenamiento volátil o no volátil configurados para almacenar instrucciones y datos. Los dispositivos de almacenamiento del sistema de memoria 104 representan medios de almacenamiento legibles por computadora' que almacenan instrucciones ejecutables por computadora incluyen OS 120, capa de manejo de recurso 121, plataforma de tiempo de ejecución 122, y aplicaciones 124. Las instrucciones son ejecutables por el sistema de computadora para realizar las funciones y métodos de OS 120. La capa de manejo de recursos 121, plataforma de tiempo de ejecución 122, y aplicaciones 124 descritas aquí. Ejemplos de dispositivos de almacenamiento en el sistema de memoria 104 incluyen unidades de disco duro, memoria de acceso aleatorio (RAM), memoria de sólo lectura (ROM), unidades de memoria flash y tarjetas, discos magnéticos y ópticos.
El sistema de memoria 104 almacena instrucciones y datos recibidos desde los paquetes de procesador 102, dispositivos de entrada/salida 106, dispositivos de presentación 108, dispositivos periféricos 110, y dispositivos de red 112. El sistema de memoria 104 proporciona instrucciones y datos almacenados a los paquetes de procesador 102, dispositivos de entrada/salida 106, dispositivos de presentación 108, dispositivos periféricos 110, y dispositivos de red 112.
Los dispositivos de entrada/salida 106 incluyen cualquier tipo, número, y configuración adecuada de dispositivos de entrada/salida
configurados para ingresar instrucciones o datos desde un usuario al sistema de computadora 100 e instrucciones de salida o datos del sistema de computadora 100 al usuario. Ejemplos de dispositivos de entrada/salida 106 incluyen un teclado, un ratón, una almohadilla táctil, una pantalla táctil, botones, discos, perillas, e interruptores.
Los dispositivos de presentación 108 incluyen cualquier tipo, número, y configuración adecuada de dispositivos de presentación configurados para producir información textual y/o gráfica a un usuario del sistema de computadora 100. Ejemplos de dispositivos de presentación 108 incluyen un monitor, una pantalla de presentación, y un proyector.
Los dispositivos periféricos 110 incluyen cualquier tipo, número, y configuración adecuada de dispositivos periféricos configurados para operar con uno o más de otros componentes en el sistema de computadora 100 para realizar funciones de procesamiento generales o específicas.
Los dispositivos de red 112 incluyen cualquier tipo, número, y configuración adecuada de dispositivos de red configurados para permitir que el sistema de computadora 100 se comunique a través de una o más redes (no mostradas). Los dispositivos de red 112 pueden operar de acuerdo con cualquier protocolo en red adecuado y/o configuración para permitir que se transmita información por el sistema de computadora 100 a una red o se reciba mediante el sistema de computadora 100 desde una red.
En la modalidad de la Figura 11, uno o más de OS 120, capa de
manejo de recurso 121, plataforma de tiempo de ejecución 122, y aplicaciones 124 pueden incluir redes de procedimiento con procedimientos 40 conectados al utilizar redes de flujo de datos 32 que incluyen cualquier número adecuado de patrones de objetivo de fuente 10 como se describió anteriormente con referencia a las Figuras 1 A-10.
Las modalidades anteriores proporcionan un modelo de composición denominado como el patrón de objetivo de fuente para conectar procedimientos en las redes de procedimiento en una forma general, flexible y extensible. El modelo permite que se combinen construcciones de álgebra de procedimiento común con redes de flujo de datos para formar redes de procedimiento. Las operaciones algebraicas típicas de procedimiento tal como envío, recepción, elección, y unión pueden expresarse en términos de modelo de composición para formar redes de flujo de datos que proporcionan operaciones algebraicas de procedimiento completamente interoperables entre procedimientos. El modelo puede aplicarse a una amplia disposición de redes de flujo de datos simples así como redes de flujo de datos más complejas.
El modelo también permite redes de procedimiento conectadas de forma floja. Con redes de procedimiento conectadas de forma floja, un procedimiento puede tener un conocimiento limitado o nulo de los otros procedimientos con el procedimiento con el que interactúa. El procedimiento, a su vez, conoce los puntos de conexión con los otros procedimientos y la importancia de los puntos
de conexión.
Las redes de procedimiento conectadas de forma floja pueden utilizarse para lograr programas altamente mantenibles y permitir lógica de enrutamiento más compleja y sofisticada basándose en construcciones de flujo de datos. Una red de flujo de datos pasiva puede enrutar más eficientemente datos desde un procedimiento a otro que los procedimientos activos que actúan como intermediarios.
Aunque se ilustraron y describieron aquí modalidades específicas, se apreciará por aquellos expertos en la técnica que puede sustituirse una variedad de implementaciones alternas y/o equivalentes para las modalidades específicas mostradas y descritas sin apartarse del alcance de la presente invención. Esta solicitud pretende cubrir cualquiera de las adaptaciones o variaciones de las modalidades específicas aquí descritas. Por lo tanto, se pretende que esta invención esté limitada únicamente por las reivindicaciones y los equivalentes de la misma.
Claims (15)
1.- Un método de realizado en un sistema de computadora (100), el método comprende: invocar una primera operación de enlace en una primera interfase de fuente (12) con una primera interfase objetivo (14) que crea un primer enlace (16) entre la primera operación de fuente y la primera interfase objetivo; invocar una primera operación de oferta en la primera interfase objetivo para ofrecer primeros datos desde la primera interfase de fuente hacia la primera interfase objetivo; y invocar una primera operación de reserva en la primera interfase de fuente con la primera interfase objetivo subsecuente a la primera operación de oferta que se invoca.
2.- El método de acuerdo con la reivindicación 1, que además comprende: regresar pospuesto desde la primera interfase objetivo a la primera interfase de fuente en respuesta a la primera operación de oferta; invocar la primera operación de reserva en la primera interfase de fuente con la primera interfase objetivo para reservar los primeros datos para la primera interfase objetivo subsecuente a regresar pospuesto.
3.- El método de acuerdo con la reivindicación 2, que además comprende: invocar una operación de consumo en la primera interfase de fuente con la primera interfase objetivo para consumir los primeros datos con la primera interfase objetivo subsecuente a invocar la primera operación de reserva.
4.- El método de acuerdo con la reivindicación 2, que además comprende: invocar una operación de liberación en la primera interfase de fuente con la primera interfase objetivo para liberar los primeros datos subsecuente a invocar la primera operación de reserva.
5.- El método de acuerdo con la reivindicación 1, en donde la primera interfase de fuente incluye al menos la primera operación de enlace, la primera operación de reserva, una operación de liberación, y una operación de consumo.
6.- El método de acuerdo con la reivindicación 1, que además comprende: invocar una segunda operación de enlace en una segunda interfase de fuente (12) con la primera interfase objetivo que crea un segundo enlace (16) entre la segunda operación de fuente y la primera interfase objetivo; invocar una segunda operación de oferta en la primera interfase objetivo para ofrecer segundos datos desde la segunda interfase de fuente hacia la primera interfase objetivo; e invocar una segunda operación de reserva en la segunda interfase de fuente con la primera interfase objetivo subsecuente a la segunda operación de oferta que se invoca.
7. - El método de acuerdo con la reivindicación 6, que además comprende: invocar una primer operación de consumo en la primera interfase de fuente con la primera interfase objetivo para consumir los primeros datos con la primera interfase objetivo subsecuente a invocar la primer operación de reserva; e invocar una segunda operación de consumo en la segunda interfase de fuente con la primera interfase objetivo para consumir los segundos datos con la primera interfase objetivo subsecuente a invocar la segunda operación de reserva.
8. - El método de acuerdo con la reivindicación 6, que además comprende: invocar una primer operación de liberación en la primera interfase de fuente con la primera interfase objetivo para liberar los primeros datos subsecuentes para invocar la primer operación de reserva; e invocar una segunda operación de liberación en la segunda interfase de fuente con la primera interfase objetivo para liberar los segundos datos subsecuentes a invocar la segunda operación de reserva.
9. - El método de acuerdo con la reivindicación 6, en donde la segunda interfase de fuente incluye al menos la segunda operación de enlace, la segunda operación de reserva, una operación de liberación, y una operación de consumo.
10.- Un medio de almacenamiento legible por computadora (120) que almacena instrucciones ejecutables por computadora que, cuando se ejecutan por un sistema de computadora (100), realizan un método, el método comprende: proporcionar primeros datos desde un primer procedimiento (40) a una red de flujo de datos (32) utilizando un primer patrón de objetivo de fuente (10) que incluye al menos operaciones de enlace, oferta, reserva, liberación y consumo; proporcionar los primeros datos desde la red de flujo de datos a un segundo procedimiento (40) utilizando un segundo patrón objetivo de fuente (10) que incluye al menos las operaciones de enlace, oferta, reserva, liberación, y consumo.
11. - El medio de almacenamiento legible por computadora de acuerdo con la reivindicación 10, en donde el método además comprende: proporcionar segundos datos desde un tercer procedimiento (40) a la red de flujo de datos utilizando un tercer patrón de objetivo de fuente (10) que incluye al menos las operaciones de enlace, oferta, reserva, liberación y consumo; y proporcionar los primeros datos desde la red de flujo de datos al segundo procedimiento utilizando el segundo patrón de objetivo de fuente en respuesta a los primeros datos que se proporcionan a la red de. flujo de datos antes de que el segundo se proporcione a la red de flujo de datos.
12. - El medio de almacenamiento legible por computadora de acuerdo con la reivindicación 10, en donde el método además comprende: proporcionar segundos datos desde un tercer procedimiento (40) a la red de flujo de datos utilizando un tercer patrón de objetivo de fuente (10) que incluye al menos las operaciones de enlace, oferta, reserva, liberación y consumo; y proporcionar los primeros datos y los segundos datos desde la red de flujo de datos al segundo procedimiento utilizando el segundo patrón de objetivo de fuente subsecuente a los primeros datos y a los segundos datos que se proporcionan a la red de flujo de datos.
13.- El medio de almacenamiento legible por computadora de acuerdo con la reivindicación 10, en donde el método además comprende: transformar los primeros datos en la red de flujo de datos antes de proporcionar los primeros datos desde la red de flujo de datos hacia el segundo procedimiento.
14. - El medio de almacenamiento legible por computadora de acuerdo con la reivindicación 10, en donde el método además comprende: pausar el segundo procedimiento antes de proporcionar los primeros datos desde la red de flujo de datos hacia el segundo procedimiento.
15. - El medio de almacenamiento legible por computadora de acuerdo con la reivindicación 10, en donde el método además comprende: proporcionar los primeros datos desde la red de flujo de datos hacia un tercer procedimiento (40) utilizando un tercer patrón de objetivo de fuente (10) que incluye al menos las operaciones de enlace, oferta, reserva, liberación y consumo.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/131,449 US8407728B2 (en) | 2008-06-02 | 2008-06-02 | Data flow network |
PCT/US2009/043112 WO2009148759A2 (en) | 2008-06-02 | 2009-05-07 | Data flow network |
Publications (1)
Publication Number | Publication Date |
---|---|
MX2010012821A true MX2010012821A (es) | 2010-12-07 |
Family
ID=41381493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
MX2010012821A MX2010012821A (es) | 2008-06-02 | 2009-05-07 | Red de flujo de datos. |
Country Status (11)
Country | Link |
---|---|
US (1) | US8407728B2 (es) |
EP (1) | EP2300927A4 (es) |
JP (1) | JP5551687B2 (es) |
KR (1) | KR101607716B1 (es) |
CN (1) | CN102047240B (es) |
AU (1) | AU2009255484B2 (es) |
BR (1) | BRPI0910566B1 (es) |
CA (1) | CA2722675C (es) |
MX (1) | MX2010012821A (es) |
RU (1) | RU2511611C2 (es) |
WO (1) | WO2009148759A2 (es) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109560900A (zh) * | 2017-09-27 | 2019-04-02 | 阿里巴巴集团控股有限公司 | 数据发送方法和装置 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6147143A (ja) | 1984-08-15 | 1986-03-07 | Morinaga Milk Ind Co Ltd | フレ−バ−等を強化したインスタント・クリ−ミング・パウダ− |
US5625775A (en) | 1994-06-13 | 1997-04-29 | International Business Machines Corporation | Modem communication interface in a data processing system |
US6457081B1 (en) | 1998-11-23 | 2002-09-24 | Advanced Micro Devices, Inc. | Packet protocol for reading an indeterminate number of data bytes across a computer interconnection bus |
US7503033B2 (en) | 2000-04-28 | 2009-03-10 | Microsoft Corporation | Model for business workflow processes |
US6516322B1 (en) | 2000-04-28 | 2003-02-04 | Microsoft Corporation | XML-based representation of mobile process calculi |
US7055142B2 (en) | 2002-05-10 | 2006-05-30 | Microsoft Corporation | Permutation nuances of the integration of processes and queries as processes at queues |
JP2004171209A (ja) * | 2002-11-19 | 2004-06-17 | Matsushita Electric Ind Co Ltd | 共有メモリデータ転送装置 |
US20040184470A1 (en) | 2003-03-18 | 2004-09-23 | Airspan Networks Inc. | System and method for data routing |
US7469272B2 (en) * | 2003-03-26 | 2008-12-23 | Microsoft Corporation | System and method utilizing test notifications |
CN1856769A (zh) | 2003-09-22 | 2006-11-01 | 珂特那株式会社 | 软件生成方法 |
US20050131978A1 (en) | 2003-12-10 | 2005-06-16 | Microsoft Corporation | Systems and methods that employ process algebra to specify contracts and utilize performance prediction implementations thereof to measure the specifications |
US7376547B2 (en) | 2004-02-12 | 2008-05-20 | Microsoft Corporation | Systems and methods that facilitate quantum computer simulation |
US7827565B2 (en) * | 2004-03-12 | 2010-11-02 | Microsoft Corporation | Integration architecture for non-integrated tools |
US20050251537A1 (en) * | 2004-05-05 | 2005-11-10 | Hewlett-Packard Development Company, L.P. | File locking |
US7707194B2 (en) * | 2004-06-08 | 2010-04-27 | Sap Ag | Interface to lock a database row through a logical locking interface |
US7548901B2 (en) | 2004-06-29 | 2009-06-16 | Microsoft Corporation | System and method for delayed fetching of designated members of a user defined type |
US7603502B2 (en) * | 2005-04-12 | 2009-10-13 | Microsoft Corporation | Resource accessing with locking |
EP1720104A1 (en) * | 2005-05-03 | 2006-11-08 | Thomson Multimedia Broadband Belgium | Integrated circuit comprising means for prioritizing traffic between modules |
US7747591B2 (en) * | 2006-03-24 | 2010-06-29 | Oracle International Corp. | Web feature service (WFS) locking support based on light-weight locking model in the database |
US20090006402A1 (en) * | 2007-06-28 | 2009-01-01 | Holger Bohle | Methods and systems for the dynamic selection of a locking strategy |
-
2008
- 2008-06-02 US US12/131,449 patent/US8407728B2/en active Active
-
2009
- 2009-05-07 CA CA2722675A patent/CA2722675C/en not_active Expired - Fee Related
- 2009-05-07 JP JP2011511686A patent/JP5551687B2/ja not_active Expired - Fee Related
- 2009-05-07 KR KR1020107026962A patent/KR101607716B1/ko active IP Right Grant
- 2009-05-07 WO PCT/US2009/043112 patent/WO2009148759A2/en active Application Filing
- 2009-05-07 MX MX2010012821A patent/MX2010012821A/es active IP Right Grant
- 2009-05-07 AU AU2009255484A patent/AU2009255484B2/en not_active Ceased
- 2009-05-07 CN CN200980121239.1A patent/CN102047240B/zh active Active
- 2009-05-07 BR BRPI0910566A patent/BRPI0910566B1/pt active IP Right Grant
- 2009-05-07 RU RU2010149276/08A patent/RU2511611C2/ru not_active IP Right Cessation
- 2009-05-07 EP EP09758922A patent/EP2300927A4/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
JP2011522328A (ja) | 2011-07-28 |
KR20110022578A (ko) | 2011-03-07 |
WO2009148759A3 (en) | 2010-02-25 |
RU2010149276A (ru) | 2012-06-10 |
RU2511611C2 (ru) | 2014-04-10 |
CA2722675A1 (en) | 2009-12-10 |
EP2300927A4 (en) | 2012-10-31 |
AU2009255484B2 (en) | 2014-05-08 |
CN102047240A (zh) | 2011-05-04 |
BRPI0910566A2 (pt) | 2015-09-22 |
JP5551687B2 (ja) | 2014-07-16 |
BRPI0910566B1 (pt) | 2020-01-28 |
WO2009148759A2 (en) | 2009-12-10 |
CA2722675C (en) | 2016-11-15 |
AU2009255484A1 (en) | 2009-12-10 |
KR101607716B1 (ko) | 2016-03-30 |
US8407728B2 (en) | 2013-03-26 |
EP2300927A2 (en) | 2011-03-30 |
CN102047240B (zh) | 2014-01-29 |
US20090300650A1 (en) | 2009-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0649089B1 (en) | System and method for optimizing message flows between agents in distributed computations | |
CN105335221B (zh) | 基于可重构的分布式软件总线 | |
US9712472B2 (en) | Application spawning responsive to communication | |
US20030055668A1 (en) | Workflow engine for automating business processes in scalable multiprocessor computer platforms | |
CN101262498B (zh) | 一种分布式调用消息的方法和装置 | |
US7925921B2 (en) | Fault recovery in concurrent queue management systems | |
US5317757A (en) | System and method for finite state machine processing using action vectors | |
CN112787999B (zh) | 跨链调用方法、装置、系统与计算机可读存储介质 | |
CN111858007A (zh) | 一种基于消息中间件的任务调度方法方法和装置 | |
Aldred et al. | On the notion of coupling in communication middleware | |
CN109118065A (zh) | 一种交互式工作流系统及其运行方法 | |
MX2010012821A (es) | Red de flujo de datos. | |
Hudaib et al. | FIPA-based semi-centralized protocol for negotiation | |
US20100250684A1 (en) | High availability method and apparatus for shared resources | |
US20040249942A1 (en) | Mechanism for managing a distributed computing system | |
US8549537B2 (en) | Middleware bridge system and method | |
Wang et al. | A state synchronization mechanism for orchestrated processes | |
Ng et al. | Framework for developing distributed systems in a peer-to-peer environment | |
WO2023119092A1 (en) | Digraphs to model personalized customer engagement on channels | |
EP4454253A1 (en) | Digraphs to model personalized customer engagement on channels | |
Jarvis et al. | Using agent teams to model enterprise behaviour | |
Ferreira et al. | On the Use of Code Mobility Mechanisms in Real-Time Systems | |
CN116932210A (zh) | 任务执行方法、装置和存储介质及电子设备 | |
Chandy et al. | Systematic composition of distributed objects: Processes and sessions | |
Zhao et al. | Integrating Business Processes and Business Rules |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FG | Grant or registration |