MX2007015887A - Flujos de trabajos centricos de datos. - Google Patents

Flujos de trabajos centricos de datos.

Info

Publication number
MX2007015887A
MX2007015887A MX2007015887A MX2007015887A MX2007015887A MX 2007015887 A MX2007015887 A MX 2007015887A MX 2007015887 A MX2007015887 A MX 2007015887A MX 2007015887 A MX2007015887 A MX 2007015887A MX 2007015887 A MX2007015887 A MX 2007015887A
Authority
MX
Mexico
Prior art keywords
data
workflow
case
data object
computer
Prior art date
Application number
MX2007015887A
Other languages
English (en)
Inventor
Dharma K Shukla
Mayank Mehta
Kumarswamy P Valegerapura
Akash J Sagar
Israel Hilerio
Dennis Pilarinos
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of MX2007015887A publication Critical patent/MX2007015887A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Abstract

Proporcionar actividades de flujo de trabajo de limite de datos para modelar transmision de mensaje entre un caso de flujo de trabajo y un huesped de flujo de trabajo. El autor de flujo de trabajo asocia una fuente de datos con cada actividad de limite de datos en un flujo de trabajo sin especificar detalles de la tecnologia de transmision de mensaje fundamental. La actividad de limite de datos en el caso de flujo de trabajo se comunica con un servicio de fuente de datos en el huesped de flujo de trabajo para intercambiar datos.

Description

FLUJOS DE TRABAJOS CÉNTRICOS DE DATOS ANTECEDENTES Un flujo de trabajo moldea un procedimiento de negocio. Las aplicaciones de flujo de trabajo desarrolladas que utilizan tecnologías de flujo de trabajos típicas esperan que los desarrolladores piensen sobre datos como mensajes que se intercambian entre dos aplicaciones. Este acercamiento típico fuerza a los desarrolladores de flujo de trabajo a definir intercambios de comunicación y protocolos que necesitan seguirse para pasar datos entre casos de flujo de trabajo de ejecución y la aplicación (por ejemplo, huésped de flujo de trabajo) que inicia los flujos de trabajo. Muchos desarrolladores de flujo de trabajo, sin embargo, no entienden los matices de transmisión de mensajes o intercambios de mensajes de moldeo.
BREVE DESCRIPCIÓN DE LA iNVENC.QN Las modalidades de la invención proporcionan una breve descripción para moldear transmisión de mensaje de flujo de trabajo. En particular, las modalidades de la invención facilitan el desarrollo de aplicaciones de flujo de trabajo céntricas de datos al proporcionar instrucciones de datos naturales en estructuras de flujo de trabajo. Estas construcciones permiten a los desarrolladores moldear flujos de trabajo como intercambios de datos entre el caso de flujo de trabajo y el huésped de flujo de trabajo mientras esconden protocolos y comunicaciones de transmisión de mensaje. Los aspectos de la invención permiten a un flujo de trabajo ser acústicos para la tecnología de transmisión de mensajes fundamental. Esta breve descripción se proporciona para introducir una selección de conceptos en una forma simplificada que además se describe posteriormente en la Descripción Detallada. Esta breve descripción no pretende identificar elementos clave o características esenciales del tema reclamado, y pretende utilizarse como un auxiliar al determinar el alcance del tema reclamado. Otras características en parte serán evidentes y en parte se señalarán aquí posteriormente.
BREVE DESCRIPCIÓN DE LOS DIBUJOS La Figura 1 es un flujo de trabajo ilustrativo que contiene tareas y actividades compuestas del flujo de control. La Figura 2 es un cuadro de flujo ilustrativo que ilustra la operación de tiempo de diseño y aspectos de tiempo de funcionamiento de la invención. La Figura 3 es un diagrama de bloquess que ilustra un flujo de trabajo secuencial que tiene dos actividades de datos. La Figura 4 es un diagrama de bloquess que ilustra un flujo de trabajo secuencial de la Figura 3 y propiedades y valores de propiedad asociados con cada una de las actividades de datos en el flujo de trabajo secuencial. La Figura 5 es un diagrama de bloquess que ilustra interacciones entre un caso de flujo de trabajo de ejecución y un huésped de flujo de trabajo. La Figura 6 es un diagrama de bloquess que ilustra un ejemplo de un ambiente de sistema de cómputo adecuado en el cual pueden implementarse aspectos de la presente invención. Los caracteres de referencia correspondientes indican partes correspondientes a través de los dibujos.
DESCRIPCIÓN PETA L LAD¿ La Figura 1 ¡lustra un flujo de trabajo ilustrativo. Las modalidades de la invención son operables con un flujo de trabajo que representa un procedimiento tal como un procedimiento de negocio. Los procedimientos de negocio son dependientes de tareas ordenadas, actividades, y similares que resultan en resultados predecibles irrepetibles. Al incluir los procedimientos operativos, el conocimiento de trabajo institucional, y recursos de información de la organización, los procedimientos de negocio se diseñan para satisfacer objetivos de negocio definidos en una forma eficiente y a tiempo. En una modalidad deficiente, los componentes funcionales de un procedimiento pueden identificarse fácilmente, adaptarse, desplegarse para y regir requerimientos de corporativo que siempre cambian. El flujo de trabajo es una experiencia de usuario final que interactúa con algunas de las tareas en un procedimiento de negocio. Las tareas se moldean como actividades, componentes, o similares, cada uno que representa una unidad de trabajo que se realiza por una persona o máquina. Un huésped de flujo de trabajo inicia el flujo de trabajo para crear un caso de flujo de trabajo. El huésped de flujo de trabajo y el caso de flujo de trabajo cambian mensajes o de otra forma se comunican durante la ejecución del caso de flujo de trabajo. En una modalidad, los detalles de la transmisión de mensaje de cada uno de estos intercambios deben modelarse por el usuario durante la creación de flujo de trabajo. Tal procedimiento de creación involucra definir una interfase de servicio local (por ejemplo, que especifica un protocolo de comunicaciones) para cada comunicación entre el caso de flujo de trabajo y el huésped de flujo de trabajo, que implementa esta interfase en el huésped de flujo de trabajo, que registra la interfase como un servicio de comunicación en el ambiente de flujo de trabajo, y generar actividades de flujo de trabajo fuertemente escrito que se comunican con la interfase implementada en el huésped de flujo de trabajo. Algunos flujos de trabajo se comunican al utilizar interfases, métodos (por ejemplo, canales, puertos). Las modalidades del resumen de la invención y comunicación de modelo entre un huésped de flujo de trabajo y un caso de flujo de trabajo de ejecución tal como se muestra en la Figura 5 para proporcionar una forma no escrita de comunicación con un flujo de trabajo. La comunicación con el caso de flujo de trabajo se realiza al utilizar un canal conocido y los datos son un factor decisivo para la comunicación con casos específicos de flujo de trabajo. El resumen (por ejemplo, a través de actividades del límite de datos) permite a un desarrollador u otro usuario modelar comunicación en un ambiente de flujo de trabajo sin modelar los detalles de transmisión de mensaje. El usuario no necesita aprender construcciones de comunicación o conceptos de transmisión de mensaje. Los detalles de transmisión de mensaje se controlan automáticamente por un servicio de comunicación de objeto u otra tapa de comunicación en el ambiente de flujo de trabajo. Como tal, el resumen es agnóstico a la tecnología de transmisión de mensaje fundamental. El aspecto céntrico de datos en aspectos de la invención implementa intercambio de datos con cualquier aplicación o usuario. En particular, el alojamiento de flujo de trabajo recolecta información de un usuario (por ejemplo a través de una forma) o de un sistema externo (por ejemplo, que utiliza protocolos de acceso de datos) y pasa los datos de regreso al caso de flujo de trabajo de ejecución para procesamiento. En una modalidad, algunas de las tecnologías de formas utilizadas por el programador de huésped de flujo de trabajo para obtener datos del usuario ponen conceptos de transmisión de mensajes de programados de alojamiento de flujo de trabajo. Los aspectos de la invención proporcionan un objeto de datos asociado con una definición de fuente de datos particular (por ejemplo, esquema o definición de tipo) para representar los datos pasados entre el huésped de flujo de trabajo y el caso de flujo de trabajo de ejecución. El mismo objeto de datos puede manipularse por el caso de flujo de trabajo y el huésped de flujo de trabajo para reducir la confusión del desarrollador y proporcionar una experiencia de enlace de datos entre objetos de datos de flujo de trabajo y huéspedes de flujo de trabajo. En general, una fuente de datos, (por ejemplo, accesible por el huésped de flujo de trabajo) proporciona datos para los objetos de datos que consumen los datos o proporcionan los datos a un consumidor de datos (por ejemplo, una actividad de flujo de trabajo). En un ejemplo, la interacción entre el caso de flujo de trabajo y el huésped de flujo de trabajo no es específica de formas. Al hacer referencia después a la Figura 2, un cuadro de flujo ilustra la operación de tiempo de diseño y aspectos de tiempo de funcionamiento de la invención para implementar transmisión de mensajes agnóstico de protocolo. Los aspectos de los datos externos de modelo de invención en términos de fuentes de datos y fuentes de datos asociadas a actividades de límite de datos. En general, el desarrollador de flujo de trabajo define una fuente de datos dentro de la aplicación de flujo de trabajo, asocia o fuente de datos a un objeto de datos (por ejemplo, un contenedor o una forma), y recibe datos modificados de nuevo a través del mismo objeto de datos. Ya que estos datos modificados se reciben por el caso de flujo de trabajo, las decisiones y otras uniones de datos son posibles. El método ilustrado en la Figura 2 implementa transmisión de mensaje agnóstica de protocolo entre un huésped de flujo de trabajo y un caso de flujo de trabajo de ejecución. En una modalidad, uno o más medios legibles por computadora tienen instrucciones ejecutables por computadora a componentes para ¡mplementar el método ilustrado en la Figura 2. Los componentes ejecutables por computadora ilustrativos incluyen un componente de interfase de usuario 202 para recibir, de un usuario, una selección de una actividad de datos del flujo de trabajo predefinida para modelar una operación de transmisión de mensajes entre un flujo de trabajo y un huésped de flujo de trabajo. En una modalidad, recibir la selección de la actividad de datos de flujo de trabajo predefinida incluye recibir la selección a través de una interfase de programación de aplicación. Para el usuario, la actividad de datos predefinida es agnóstica para protocolos de transmisión de mensaje. Los componentes además incluyen un componente de propiedad 204 para especificar una definición de fuente de datos, que enlaza la actividad de datos seleccionada a la definición de datos de fuente de datos especifica, y que hace referencia a la actividad de datos de unión como uno de la pluralidad de actividades en el flujo de trabajo para implementar transmisión de mensajes entre el flujo de trabajo y el huésped de flujo de trabajo. La definición de fuente de datos define un objeto de datos para almacenar datos de mensaje para comunicarse entre un caso de ejecución de flujo de trabajo y el huésped de flujo de trabajo. Le huésped de flujo de trabajo inicia el caso de flujo de trabajo. Al especificar la definición de fuente de datos puede incluir, por ejemplo, recibir del usuario un identificador que corresponde a la definición de fuente de datos o definir un esquema para los datos de mensaje. En una modalidad, el usuario define un objeto de datos asociado con la definición de fuente de datos y programas o de otra forma accede al objeto de datos en el flujo de trabajo. Los componentes ejecutables por computadora además ¡ncluyen un componente de caso 204 que, durante ejecución del caso de flujo de trabajo, genera los datos de objeto por la definición de fuente de datos especificada y envía el objeto de datos generado al huésped de flujo de trabajo el componente de huésped (ver Figura 5) en el huésped de flujo de trabajo llena el objeto de datos a los datos de mensaje y envía el objeto de datos lleno al componente de caso en el caso de flujo de trabajo. El componente de caso 206 recibe el objeto de datos lleno del huésped de flujo de trabajo y procesa los datos de mensaje en el objeto de datos recibido, lleno. En una modalidad, los datos de mensaje corresponden a una solicitud de datos. En tal modalidad, el componente de caso 206 llena el objeto de datos con los datos solicitados y envía el objeto de datos lleno al huésped de flujo de trabajo (por ejemplo, para actualizar una forma).
Las actividades de límite de datos se encapsulan la maquinaria de transmisión de mensajes fundamental para que el autor de flujo de trabajo y el desarrollador de huésped de flujo de trabajo no necesiten definir interfases de servicio locales para el intercambio de mensajes. En general, cualquier implementación de interfase de servicio local puede utilizarse para intercambiar datos entre el flujo de trabajo y el huésped que utiliza esta abstracción. En un ejemplo, una interfase de servicio local de propósito general se define para permitir al intercambio de datos que utilizan esta abstracción. En un ejemplo, las modalidades de la invención proporcionan las siguientes cuatro actividades de límite de datos: Actualizar Datos, Seleccionar Datos, Esperar Datos, y Esperar Consulta. La actividad de Actualizar Datos permite al flujo de trabajo actualizar los datos externos. La actividad de Seleccionar Datos permite al flujo de trabajo consultar los datos externos. La actividad de Esperar Datos modela un punto de espera en un flujo de trabajo para datos externos. La actividad de Esperar Consulta modela un punto de espera en el flujo de trabajo correspondiente a una solicitud de consulta de datos. En una modalidad, los datos externos pueden existir en una base de datos accesible por el huésped de flujo de trabajo, o ser datos obtenidos de una forma. Por ejemplo, cuando se conectan a una forma, los datos se almacenan en el flujo de trabajo y la actividad de Actualizar Datos informa a la forma que se modificaron los datos. El siguiente cuadro describe las propiedades de cada una de estás actividades de datos. La propiedad de activación en las propiedades de contexto de línea la propiedad de activación en las actividades de limite de datos Esperar datos y Esperar Consulta. Si cualquiera de estás actividades tienen la activación establecido verdadero, las propiedades contexto incluyen la propiedad de activación con verdadero como el valor Cuadro 1 Propiedades de actividades de límite de datos ilustrativa Una fuente de datos representa un esquema de datos externos. Por ejemplo, una fuente de datos puede ser un contenedor local para los datos que se transmiten hacia/desde formas y flujos de trabajo. La fuente de datos define el formato y/o estructura de los datos almacenados en ésta Una modalidad de la invención proporciona una definición de esquema de lenguaje de marcación extensible (XSD) y tipo de funcionamiento de lenguaje como un (CLR) basándose en fuentes de datos Cualquier formato que se utiliza para describir la estructura de un objeto de datos, si embargo, pueden utilizarse para definir una fuente de datos Por ejemplo, un lenguaje de definición de interfase (IDL) o lenguaje de descripción de servicios web (WSDL) pueden utilizarse para definir fuentes de datos El siguiente cuadro describe las propiedades de una fuente de datos de tipo/objeto ilustrativo que utiliza definiciones de tipo (por ejemplo, clases, como definiciones para autogenerar objetos de datos Cuadro 2 Fuente de datos de objeto ilustrativo El siguiente cuadro describe las propiedades de una fuente de datos XSD/XML ilustrativo que utiliza definición de XSD como definiciones de esquema para autogenerar objetos de datos Cuadro 3 Fuentes de datos de XSD ilustrativa Al hacer referencia después a la Figura 3, un diagrama de bloques ilustra un flujo de trabajo secuencial 302 que tiene dos actividades de datos En este ejemplo, el autor de flujo de trabajo diseña el flujo de trabajo 302 para cargar datos a través de la actividad de Actualizar datos 1 304 y esperar un evento cambiado de daos de un huésped de flujo de trabajo a través de la actividad de Esperar datos 1 306 La experiencia de desarrollador de flujo de trabajo incluye configurar una fuente de datos y configurar estás actividades de limite de datos 304, 306 Una fuente de datos puede configurarse a través de una interfase de usuario o programáticamente a través de una interfase de programación de aplicación En un ejemplo, un caso de Fuente de Datos de Objeto se crea y agrega a una colección de Fuente de Datos en una actividad de Contexto de Datos Las propiedades de la Fuente de Datos de Objeto (mostrado en cuadro posteriormente) entonces pueden configurarse Cuadro 4 Propiedades de una Fuente de Datos d© Objeto El desarrollador agrega dos actividades de limite de datos (por ejemplo, Actualizar Datos y a esperar datos) al flujo de trabajo El desarrollador configura las propiedades de estas actividades de límite de datos a través de una interfase de usuario o programáticamente a través de una interfase de programación de aplicación Por ejemplo la Figura 4 ilustra un cuadro de flujo secuencial 402 tal como el cuadro de flujo secuencial 302 en la Figura 3 que incluye propiedades de valores de propiedad asociados con cada una de las actividades de datos en el flujo de trabajo secuencial 402 El cuadro 5 describe las propiedades 404 de la actividad de límite de datos de Actualizar datos mostradas en la Figura 4 El cuadro 6 describe las propiedades 406 de la actividad de límite de datos de Esperar Datos mostrada en la Figura 4 Cuadro ß Propiedades de la Actividad de límite de datos de actualizar datos Cuadro 6 'ropiedades de Da Actividad de Limite de datos de esperar datos La experiencia del desarrollador huésped de flujo de trabajo incluye escribir código que trabaja con el servicio de fuente de datos que envía eventos (por ejemplo, eventos de cambio de datos) al caso de flujo de trabajo de ejecución. Por ejemplo, el servicio de fuente de datos proporciona métodos para elevar los eventos de Datos Cambiados y Consultas de datos al flujo de trabajo. El desarrollador de huésped de flujo de trabajo no necesita implementar ninguna interfase de servicio de comunicación de objeto (OCS) u otra interfase de servicio local. La siguiente extracción de código de huésped de flujo de trabajo elimina un evento de datos cableados al flujo de trabajo que utiliza el servicio de fuente de datos. // Obtener el servicio de fuente de datos del diccionario de servicio de conexión de objeto <secuencia, objeto> propiedades = nuevo d i ccio nario<f i! a , objeto>(), Propiedades. agregar ("Id de Caso", caso. Id de Caso; Propiedades. agregar ("Tipo de Flujo de Trabajo", tipo de (Prueba de FormaJIujo de trabajo 1)); Propiedades. Agregar ("fuente de datos", "Flujo de Trabajo 1.naranja"); Prueba de FormaJarea t = nueva Prueba de FormaJarea ("5"); Servicio. Elevar Datos Cambiados (propiedades, t); Al hacer referencia después a la Figura 5, un diagrama de bloques ilustra interacciones entre un caso de flujo de trabajo de flujo de trabajo de ejecución 502 y un huésped de flujo al trabajo 504. En general, el huésped de flujo de trabajo 504 recibe eventos de una forma o una aplicación externa (no mostrada) y procesa y pública objeto de datos 510 al caso de flujo de trabajo 502 para procesamiento. En un escenario de documento, el huésped de flujo de trabajo 504 recupera el tipo del objeto de datos en la carga útil de un objeto de datos 509 del caso de flujo de rebaja 502, identifica la forma asociada con ese tipo, pone en serie el objeto de datos 509 en el lenguaje de marcación extensible (XLL), y almacena el XML dentro de un depósito de documento (no mostrado). En el ejemplo de la Figura 5, un sistema implementado por computadora proporciona transmisión de mensaje agnóstico de protocolo en un ambiente de flujo de trabajo. El sistema incluye el flujo de trabajo 502 de huésped para iniciar un flujo de trabajo para crear un caso de flujo de trabajo para ejecución. El sistema también incluya una o más actividades de datos predefinidas para que la actividad de datos de forma 506 se utilice en el flujo de trabajo. La actividad de datos de forma 506 incluye una actividad de "enviar datos al huésped" 508 y una actividad de "recibir datos del huésped" 511. Cada una de las actividades de datos predefinidos 508, 511 modela una operación de transmisión de mensajes entre el caso de flujo de trabajo 502 y el huésped de flujo de trabajo 504. La actividad de datos predefinida 508 genera el objeto de datos 509 durante ejecución del caso de flujo de trabajo para almacenar los datos del mensaje. El objeto de datos 509 se comunica desde el caso de flujo de trabajo 502 y el huésped de flujo de trabajo 504. Una definición de fuente de datos puede definir una estructura de datos asociada con el objeto de datos 509. El sistema además incluye un servicio de fuente de datos 512 asociados con el huésped de flujo de trabajo 504 para llenar el objeto de datos 509 con los datos de mensaje y comunicar el objeto de datos lleno como el objeto de datos 510 al paso de flujo de trabajo 502 para procesamiento. El sistema de la Figura 5 también incluye un medio legible por computadora (no mostrado) que almacena una estructura de datos que representan el objeto de datos 509. La estructura de datos incluye un tipo de protocolo 518, un campo de carga útil 520, y un campo de fuente 522. El campo de tipo de protocolo 518 almacena un valor que identifica un protocolo para uso sin comunicación entre el caso de flujo de trabajo de ejecución 502 y el huésped de grupo de trabajo 504. El campo de carga útil 520 almacena los datos de mensaje. El campo de fuente 522 almacena un valor que identifica la definición de fuente de datos para el objeto de datos 509. La definición de fuente de datos identifica un protocolo para comunicación entre un caso de flujo de trabajo 502 y el huésped de flujo de trabajo 504. El servicio de fuente de datos 512 en el huésped de flujo de trabajo transfiere la carga útil del mensaje en un objeto de datos a una aplicación en el gusto de flujo de trabajo al iniciar una clase de ayudante en el espacio de procesamiento huésped en 514. El desarrollador de huésped de flujo de trabajo configura estás clases de ayudante en la definición de flujo de trabajo cuando define la fuentes de datos. Una vez que se crea o invoca el caso de clase de ayudante, el huésped 504 tiene control en la carga útil del mensaje a través de la clase de ayudante iniciada (por ejemplo, controlador de datos) Cualquier cliente manejado por el huésped 504 es capaz de recibir estos datos y actualizar su contenido Las clases de ayudante incluyen una pluralidad de controladores de datos para procesar el objeto de datos Un servicio de comunicación 516 en el huésped 504 comunica al objeto de datos lleno 510 al caso de flujo de trabajo 502 Un servicio de fuente de datos ilustrativo 512 proporcionado por el huésped de flujo de trabajo 504 incluye los métodos mostrados posteriormente El primer método surge de un evento de Datos Cambiados para el flujo de trabajo y el segundo método de un evento de Datos Consultados al Flujo de Trabajo recibe los resultados de consulta Vacío Surgen Datos Cambiados (ID?cc?onar?o<f?la, objeto> Propiedades de Contexto, Objeto msg) Objeto Surgen Datos Consultados (ID?cc?onar?o<f?la, objeto>Prop?edades de Contexto, Objeto msg) El argumento prima ID?cc?onar?o<f?la, objeto> propiedades de contexto' contiene las propiedades de contexto tal como identificador de caso de flujo de trabajo, tipo de flujo de trabajo, nombre calificado de la fuente de datos, y valor de activación (por ejemplo si el mensaje es un mensaje de activación) El argumento 'mensaje de objeto 'representa el objeto de datos 510 o mensaje para enviarse al flujo de trabajo En una modalidad, las siguientes operaciones se realizan durante el tiempo de funcionamiento a través de mensajes entre el caso de flujo de trabajo de ejecución 502 y el huésped de flujo de trabajo 504. Se recibe un evento de activación por una definición de flujo de trabajo y se crea el caso de flujo de trabajo 502. El caso de flujo de trabajo 502 se inicia con la información en el evento de activación. Una actividad de límite de datos (por ejemplo, una actividad de datos de forma o una actividad den datos) tal como la actividad 506 se encuentra en el caso de flujo de trabajo de ejecución 502. La actividad 508 contenida por el contenedor de actividad de límite datos 506 genera y envía el objeto de datos 509 al huésped de flujo de trabajo 504. El servicio de fuente de datos 512 asociado con el huésped de flujo de trabajo 504 recibe el objeto de datos 509 del caso de flujo de trabajo 502. El servicio de fuente de datos 512 invoca un controlador de datos en el huésped de flujo de trabajo 504 para procesar el objeto de datos recibido 509. El caso de flujo de trabajo 502, otra actividad 511 (por ejemplo, "Datos Recibidos de Huésped") espera hasta una solicitud de consulta o un evento de envió se recibe del huésped de flujo de trabajo 504. Si se recibe una solicitud de consulta por la actividad 511 en el caso de flujo de trabajo 502, la solicitud se procesa y los resultados se envía por el huésped de flujo de trabajo 504 que utiliza una actividad de "cargar datos a huésped" (no mostrada). Si se recibe un invento de enviar por la actividad 511 en el caso de flujo de trabajo 502, el evento se procesa y la actividad 506 se marca como completa. El caso de flujo de trabajo 502 continúa para procesar todas sus actividades de datos hasta que la aplicación de flujo de trabajo termina. Las modalidades de la invención soportan las operaciones de flujo de trabajo aquí descritas para cualquier tecnología de formas esquematizadas o basadas en objeto así como cualquiera de las aplicaciones de tercera parte.
Ambiente de Cómputo Ilustrativo La Figura 6 muestra un ejemplo de un dispositivo de cómputo de propósito general en la forma de una computadora 130. En una modalidad de la invención, una computadora tal como la computadora 130 es adecuada para uso en las otras figuras ilustradas y descritas aquí. La computadora 130 tiene uno o más procesadores o unidades de procesamiento 132 y una memoria de sistema 134. En la modalidad ilustrada, un conductor común 136 acopla varios componentes de sistema que incluyen a la memoria de sistema 134 a los procesadores 132. El conductor común 136 representa uno o más de cualquiera de varios tipos de estructuras de conductor común, que incluyen un conductor común de memoria o controlador de memoria, un conductor común periférico, un puerto de gráficos acelerado, y un procesador o conductor común local que utiliza cualquiera de una variedad de arquitecturas de conductor común. A manera de ejemplo, y no de limitación, tales arquitecturas incluyen conductor común de Arquitectura de estándar de industria (ISA), Conductor común de arquitectura de micro canal (MCA), conductor común de ISA mejorado (EISA), conductor común de Asociación de Estándares de electrónicos de Video (VESA) local, Conductor Común de Interconexión de componente Periférico (PCI) también conocido como conductor común de Mézanme La computadora 130 típicamente tiene al menos alguna forma de medios legibles por computadora Los medios legibles por computadora pueden ser cualquier medio volátil y no volátil, medios removible y no removible, puede ser cualquier medio que puede accederse por la computadora 130 A manera de ejemplo, y no de limitación, un medio legible por computadora comprende medios de almacenamiento de computadora y medios de comunicación Los medios de almacenamiento de computadora incluyen tanto medios volátiles como no volátiles, removibles y no removibles implementados en cualquier método o tecnología para almacenamiento de información tal como instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos Por ejemplo, los medios de almacenamiento de computadora incluyen RAM, ROM, EEPROM, memoria flash u otra tecnología de memoria, CD-ROM, discos versátiles digitales (DVD) u otro almacenamiento de disco óptico, cassettes magnéticos, cinta magnética, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que puede utilizarse para almacenar la información deseada y que pueda accederse por la computadora 130 Los medios de comunicación típicamente representan instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos en una señal de datos modulada tal como una onda portadora u otro mecanismo de transporte e incluye cualquier medio de entrega de información. Aquellos expertos en la técnica están familiarizados con la señal de datos modulada, que tiene una o más de sus características establecidas o cambiadas de tal forma para codificar información en la señal. Los medios por cable, tal como una red por cable o conexión por cable directa y medios inalámbricos tal como medios acústicos, RF, infrarrojos y otros inalámbricos, son ejemplos de medios de comunicación. Las combinaciones de cualquiera de los anteriores también deben incluir si dentro del alcance de medios legibles por computadora. La memoria de sistema 134 incluye medios de almacenamiento por computadora en la forma de memoria removible y/o no removible, volátil y/o no volátil. En la modalidad ilustrada, la memoria se sistema 134 incluye memoria sólo de lecturas (ROM) 138 y memoria de acceso aleatorio (RAM) 140. Un sistema de entrada/salida básico 142 (BIOS), que contiene en las rutinas básicas que ayudan a transferir información entre elementos dentro de la computadora 130, tal como durante el arranque, típicamente se almacena en ROM 138. La RAM 140 típicamente contiene datos y/o módulos de programa que son inmediatamente accesibles a y/o están siendo operados actualmente en la unidad de procesamiento 132. A manera de ejemplo, y no de limitación, la Figura 6 ilustra el sistema operativo 144, programas de aplicación 146, otros módulos de programa 148, y datos de programa 150.
La computadora 130 también puede incluir otros medios de almacenamiento de computadora removibles/no removibles, volátiles/no volátiles. A manera de ejemplo solamente, la Figura 6 ilustra una unidad de disco dura 154 que lee de o escribe a medios magnéticos no removibles, no volátiles. La Figura 6 también muestra una unidad de disco magnético 156 que lee o escribe a un disco magnético removible, no volátil 158, y una unidad de disco óptico 160 que lee o escribe a un disco óptico removible, no volátil 162 tal como un CD-ROM u otro medio óptico. Otros medios de almacenamiento de computadora removibles/no removibles, volátiles/no volátiles que pueden utilizarse en el ambiente operativo ilustrativo incluyen, pero no se limitan a, cassettes de cinta magnética, tarjeta de memoria flash, discos versátiles digitales, cinta de video digital, RAM de estado sólido, ROM de estado sólido y similares. La unidad de disco duro 154, y unidad de disco magnético 156 y unidad de disco óptico 160 típicamente se conectan al conductor común de sistema 136 a través de una interfase de memoria no volátil, tal como interfase 166. Las unidades y otros dispositivos de almacenamiento masivo y sus medios de almacenamiento de computadora asociados discutidos anteriormente ilustrados en la Figura 6, proporcionan almacenamiento de instrucciones legibles por computadora, estructuras de datos, módulos de programa y otros datos para la computadora 130. En la Figura 6, por ejemplo, la unidad de disco duro 154 se ilustra como almacenando el sistema operativo 170, programas de aplicación 172, otros módulos de programas 174, y datos de programa 176. Se debe notar que estos componentes pueden ser los mismos que o diferentes al sistema operativo 144, programas de aplicación 146, otros módulos de programa 148, y datos de programa 150. El sistema operativo 170, programas de aplicación 172, otros módulos de programa 174 y datos de programa 176 se les proporcionan números diferentes aquí para ¡lustrar que, en un mínimo, son copias diferentes. Un usuario puede ingresar comandos e información en la computadora 130 a través de dispositivos de entrada tal como un teclado 180 y dispositivo de señalamiento 182 (por ejemplo, un ratón, seguibola, pluma, o almohadilla sensible al tacto). Otros dispositivos de entrada (no mostrado) pueden incluir un micrófono, palanca de manos, almohadilla de juegos, antena parabólica, escáner, o similares. Estos y otros dispositivos de entrada se conectan a la unidad de procesamiento 132 a través de una interfase de entrada de usuario 184 que se acopla al conductor común de sistema 136, pero pueden conectarse a través de otra interfase y estructuras de conductor común, tal como un puerto paralelo, puerto de juegos o un conductor común en serie universal (USB). Un monitor 188 u otro tipo de dispositivo de presentación también se conecta al conductor común de sistema 136 a través de una interfase, tal como una ¡nterfase de video 190. Además del monitor 188, las computadoras frecuentemente incluyen otros dispositivos de salida periféricos (no mostrado) tal como una impresora y bocinas, que pueden conectarse a través de una interfase periférica de salida (no mostrada). La computadora 130 puede operar en un ambiente en red que utiliza conexiones lógicas a una o más computadoras remotas, tal como una computadora remota 194. La computadora remota 194 puede ser una computadora personal, un servidor, un enrutador, una PC de red, un dispositivo par, u otro nodo de red común, y típicamente incluye muchos o todos los elementos descritos anteriormente en relación a la computadora 130. Las conexiones lógicas ilustradas en la Figura 6 incluyen una red de área local (LAN) 196 y una red de área ancha (WAN) 198, pero también pueden incluir otras redes. La LAN 136 y/o WAN 138 puede ser una red por cable, una red inalámbrica, o una combinación de los mismos, y así sucesivamente. Tales ambientes en red comúnmente están ubicados en oficinas, redes de computadora extendidos en empresa, intranets, y redes de computadora globales (por ejemplo, Internet). Cuando se utiliza nuevamente en red LAN, la computadora 130 se conecta a la LAN 196 a través de una interfase en red o adaptador 186. Cuando se utiliza un ambiente en red de área ancha, la computadora 130 típicamente incluye un módem 178 u otros medios para establecer comunicaciones en la WAN 198, tal como Internet. El módem 178 que puede ser interno o externo, se conecta al conductor común de sistema 136 a través de interfase de entrada de usuario 184, u otro mecanismo apropiado. En un ambiente en red, los módulos de programa ilustrados relativos a la computadora 130, o porciones de la misma, pueden almacenarse en el dispositivo de almacenamiento de memoria remoto (no mostrado) A manera de ejemplo, y no de limitación, la Figura 6 ilustra programas de aplicación remotos 192 como residentes en el dispositivo de memoria Las conexiones en red mostradas son ilustrativas y otros medios para establecer el enlace de comunicaciones entre las computadoras pueden utilizarse Generalmente, los procesadores de datos de computadora 130 se programan por medio de instrucciones almacenados en diferentes momentos en los varios medios de almacenamiento legibles por computadora de la computadora Los programas y sistemas operativos típicamente se distribuyen, por ejemplo, en discos flexibles o CD-ROMs A partir de aquí, se instalan o cargan en la memoria secundaria de una computadora En ejecución, se cargan al menos parcialmente en la memoria electrónica primaria de computadora Los aspectos de la invención aquí descritas incluyen estos y otros varios tipos de medios de almacenamiento legibles por computadora cuando tales medios contienen instrucciones o programas para implementar los pasos descritos anteriormente en conjunto con un microprocesador u otro procesador de datos Las modalidades de la invención también incluyen la misma computadora cuando se programan de acuerdo con los métodos y técnicas aquí descritas Para propósitos de ilustración, los programas y otros componentes ejecutables, tal como el sistema operativo, se ilustran aquí como bloques separados. Sin embargo, se reconoce que tales programas y componentes residen en varios momentos en diferentes componentes de almacenamiento de la computadora, y se ejecutan por el procesador(es) de datos de la computadora. Aunque se describe en conexión con un ambiente de sistema de cómputo ilustrativo, que incluye la computadora 130, los aspectos de la invención son operacionales con numerosos otros ambientes o configuraciones de sistema de cómputo de propósito general o propósito especial. El ambiente de sistema de cómputo no pretende sugerir ninguna limitación al alcance de uso o funcionalidad de aspectos de la invención. Además, el ambiente de sistema de cómputo no debe interpretarse como al tener cualquier dependencia o requerimiento que se relaciona con cualquiera o combinación de componentes ilustrados en el ambiente operativo ilustrativo. Ejemplos de sistemas de cómputo bien conocidos, ambientes, y/o configuraciones que pueden ser adecuados para uso con la invención incluyen, pero no se limitan a, computadoras personales, computadoras de servidor, dispositivos móviles o de laptop, sistemas de multiprocesador, sistemas a base de microprocesador, cajas de tv por cable, electrónica de consumidor de programable, teléfonos móviles, PCs de red, minicomputadoras, microcomputadoras, ambientes de cómputo distribuido que pueden incluir cualquiera de los sistemas anteriores o dispositivos, y similares. Las modalidades de la invención pueden describirse en el contexto general de instrucciones ejecutables por computadora, tal como módulos de programa, ejecutados por una o más computadoras u otros dispositivos. Generalmente, los modelos de programa incluyen pero no se limitan a, rutinas, programas, objetos, componentes, y estructuras de datos que realizan tareas particulares o implementan tipos de datos abstractos particulares. Las modalidades de la invención también pueden practicarse en ambientes de cómputo distribuidos en donde las tareas se realizan por dispositivos de procesamiento remotos que se enlazan a través de una red de comunicaciones. En un ambiente de cómputo distribuido, los módulos de programa pueden localizarse en medios de almacenamiento de computadora locales y remotos que incluyen dispositivos de almacenamiento de memoria. Una interfase en el contexto de una arquitectura de software incluye un módulo de software, componente, porción de código, u otra secuencia de instrucciones ejecutables por computadora. La interfase incluye, por ejemplo, un primer módulo para acceder a un segundo módulo para realizar tareas de cómputo a beneficio del primer módulo. El primer y segundo módulos incluyen, en un ejemplo, las interfases de programación de aplicación (APIs) tal como proporcionadas por sistemas operativos, interfases de modelo de objeto de componente (COM) (por ejemplo, para comunicación de aplicación de par a par), e interfases de formato de intercambio de metadatos de lenguaje de marcación extensible (XMI) (por ejemplo, para comunicaciones entre servicios web). La interfase puede acoplarse justamente, implementación sincrónica tal como en Edición de Empresa de Plataforma de Java 2 (J2EE), COM, o ejemplos de COM distribuido (DCOM). Alternativamente o además de, la interfase puede ser una implementación asincrónica flojamente acoplada tal como en un servicio web (por ejemplo, al utilizar el protocolo de acceso de objeto simple). En general, la interfase incluye cualquier combinación de las siguientes características: justamente acoplado, flojamente acoplado, sincrónico, y asincrónico. Además, la interfase puede conformarse a un protocolo estándar, un protocolo de propiedad, o cualquier combinación de protocolos estándar y de propiedad. Las interfases aquí descritas pueden ser todas partes de una interfase individual o pueden ¡mplementarse como interfases separadas o cualquier combinación en estos. Las interfases pueden ejecutarse local o remotamente para proporcionar funcionalidad. Además, las interfases pueden incluir funcionalidad adicional o menor que la ilustrada o descrita aquí. En operación, la computadora 130 ejecuta instrucciones ejecutables por computadora tal como aquellas ilustradas en las figuras para implementar aspectos de la invención. El hardware, software, firmware, componentes ejecutables por computadora, y/o instrucciones ejecutables por computadora constituyen medios para ¡mplementar transmisión de mensajes agnóstico de protocolo en el flujo de trabajo. Los siguientes ejemplos además ilustran modalidades de la invención. En un escenario, un desarrollador se interesa en desarrollar una aplicación de flujo de trabajo que requiere que los usuarios ingresen información que utiliza alguna tecnología de formas (por ejemplo, formas de web). Las formas se definieron previamente y tienen sus propias definiciones de esquema. El desarrollador desea modelar las interacciones de forma y elementos de datos como pasos dentro de la aplicación de flujo de trabajo. Esta interacción entre la forma y el flujo de trabajo se espera para colocarse sin tener que reescribir las formas. Para lograr esto, el desarrollador utiliza un paso de flujo de trabajo o bloque de construcción llamado una actividad de datos de forma y la agrega a la definición de flujo de trabajo. El desarrollador configura la fuente de datos asociada con este objeto para señalar la definición de esquema de forma (por ejemplo, definiciones de esquema pueden expresarse como esquemas XML). Esta asociación auto-genera un tipo de mapa desde donde se crea un caso de objeto dentro del flujo de trabajo durante ejecución del flujo de trabajo. Este caso de objeto * se manipula por el desarrollador para enviar y recuperar datos hacia y desde la forma, respectivamente. En el tiempo de funcionamiento, este caso de objeto se pone en serie y se quita de serie por el huésped de flujo de trabajo y la información se inyecta y recupera desde la forma. Esto ocurre sin modificar la forma. En otro escenario, un desarrollador está interesado en desarrollar una aplicación de flujo de trabajo que depende de datos de un sistema de legado externo para ejecutar. En este ejemplo, el sistema externo sólo proporciona una interfase de base de datos para acceder sus datos y no tiene interfases de servicio web El desarrollador desea modelar el intercambio de datos entre el flujo de trabajo y los sistemas de legado externo El desarrollador desea modelar el intercambio de datos entre el flujo de trabajo y los sistemas de lagado externos Cada vez que se ejecuta un paso de flujo de trabajo que requiere datos del sistema de legado, el paso de flujo de trabajo espera la información para actualizarse por el sistema de legado Para lograr esto, el desarrollador utiliza un paso de flujo de trabajo o bloque de construcción llamado de una actividad de datos y lo agrega a la definición de flujo de trabajo El desarrollador configura la fuente de datos asociada con este objeto para señalar la fuente de datos de objeto Durante este paso de configuración, el desarrollador define la biblioteca de tipo y el tipo (por ejemplo, clase) para intercambiar datos entre el sistema externo y el caso de flujo de trabajo Esta asociación crea un caso de objeto del tipo seleccionado dentro de la definición de flujo de trabajo durante la ejecución del caso de flujo de trabajo Este caso de objeto se manipulará por el desarrollador para enviar u recuperar datos hacia y desde el sistema de legado, respectivamente En el tiempo de funcionamiento, este objeto pasa a y se consulta por el sistema externo a través de código de traducción proporcionado por el huésped de flujo de trabajo En este ejemplo, el huésped de flujo de trabajo facilita el intercambio de datos entre el sistema de legado externo y el caso de flujo de trabajo sin introducir ningún nuevo tipo En un ejemplo en el cual un flujo de trabajo modela un procedimiento de revisión de documento, una interfase para revisar un documento (por ejemplo, Interfase de Revisión de IDocumento) se muestra posteriormente. Público delegar vacío En Controlador Iniciado de Revisión (objeto o); Público delegar vacío En Controlador Agregado de Participantes (objeto o); Público interfase Interfase de Revisión de IDocumento { Evento En Controlador Iniciado de Revisión En Revisión Iniciada; Evento En Controlador Agregado de Participantes En Participantes Agregados; Vacío Revisar Completado (objeto o); } En este ejemplo, el objeto "o" corresponde a un caso de un tipo que capturará una lista plana de argumentos tal como se muestra posteriormente. Clase pública Información de Revisión de Documento { Público Información de Documento Información de documento; Público cuadro de verificación Resultados de Revisión; } El tipo de Información de revisión de Documento describe la forma/esquema de los datos que se comunican. Este tipo se obtiene por en autor de cuadro de flujo y el desarrollador de huésped de flujo de trabajo no necesita implementar nada en este ejemplo. Los aspectos de la invención ocultan la maquinaría de transmisión de mensaje del autor de flujo de trabajo al proporcionar una interfase de servicio local estándar con actividades de límite de datos que saben cómo comunicarse con la interfase de estándar. El autor de flujo de trabajo describe el esquema de los datos que se intercambian (por ejemplo, convierte la lista plana de argumentos de un método de una ¡nterfase de servicio local en una definición de clase tal como el la clase de Información de Revisión de Documento aquí descrita). En un ejemplo, la interfase de servicio local estándar se llama Servicio de Fuente de IDatos y se muestra posteriormente. El Servicio de Fuente de IDatos mostrado posteriormente es simplemente ilustrativo, y en algunas modalidades, el Servicio de Fuente de IDatos no se expone. Más que eso, los métodos ElevarDatosCambiados y ElevarDatosConsultados de Servicio de Fuente de Datos se exponen. Público delegar vacío Controlador de Evento Cambiado de Datos Cambiados (IDiccionario<secuencia,objeto>propiedades, objeto Proxy); Público delegar vacío Controlador de Evento Cambiado de Datos Consultados (IDiccionario<secuencia,objeto>propiedades, objeto Proxy); Público delegar vacío Controlador de Evento Cambiado de Datos Buscados (IDiccionario<secuencia,objeto>propiedades, objeto Proxy); [Servicio de Intercambio de Datos] [Proveedor de Correlación (tipo de(Proveedor de Señal de Correlación))] Interfase pública Servicio de Fuente de IDatos { Vacío CargarDatos(Fuente de Datos ds, objeto Proxy); Vacío BuscarDatos(Fuente de Datos ds, objeto Proxy); Evento Controlador de Evento Buscado de Datos Datos Buscados; Evento Controlador de Evento Cambiado de Datos Datos Cambiados; Evento Controlador de Evento Consultado de Datos Datos Consultados; Vacío Pos Respuesta de Consulta de Datos (Fuente de Datos ds, objeto Proxy); } Una implementación ilustrativa llamada Servicio de Fuente de Datos se muestra posteriormente. Clase pública Servicio de Fuente de Datos : Servicio de Fuente de IDatos { #región Miembros de Servicio de Fuente de IDatos Vacio Servicio de Fuente de IDatos. CargarDatos(Fuente de Datos ds, objeto Proxy){} Vacío Servicio de Fuente de IDatos. BuscarDatos(Fuente de Datos ds, objeto Proxy){} Evento Controlador de Evento Buscado de Datos Servicio de Fuente de IDatos. Datos Buscados {agregar { } remover { } } Evento Controlador de Evento Cambiado de Datos Servicio de Fuente de IDatos. Datos Cambiados {agregar { } remover { } } Evento Controlador de Evento Consultado de Datos Servicio de Fuente de IDatos. Datos Consultados {agregar { } remover { } } Vacío Servicio de Fuente de IDatos. Pos Respuesta de Consulta de Datos(Fuente de Datos ds, objeto Proxy) {} #región final Público vacío Elevar Datos Cambiados (IDiccionario<secuencia, objeto>propiedades, objeto msg){} Público vacío Elevar Datos Consultados (IDiccionario<secuencia, objeto>propiedades, objeto msg){} } El orden de ejecución o desempeño de los métodos ilustrados y descritos aquí no es esencial, a menos que se especifique de otra forma. Es decir, elementos de los métodos pueden realizarse en cualquier orden, a menos que se especifique de otra forma, y que los métodos pueden incluir más o menos elementos a aquellos aquí descritos. Por ejemplo, se contempla que ejecutar o realizar un elemento particular antes, contemporáneamente con, o después de otro elemento que está dentro del alcance de las modalidades de la invención. Cuando se introducen elementos de modalidades de la invención, los artículos "un", "uno", "el", y "dicho" pretenden significar que hay uno o más elementos. Los términos "que comprende", "que incluye", y "que tiene" pretenden ser inclusivos y significa que puede haber elementos adicionales diferentes a los elementos listados. Mientras pueden hacerse varios cambios en las construcciones, productos y métodos sin apartarse del alcance de las modalidades de la invención, se pretende que todo el tema contenido en la descripción anterior y mostrado en los dibujos anexos deba interpretarse como ilustrativo y no en un sentido limitante.

Claims (20)

REIVINDICACIONES
1.- Un método para implementar transmisión de mensajes agnóstico de protocolo entre un huésped de flujo de trabajo y un caso de flujo de trabajo de ejecución, el método comprende: recibir, de un usuario, una selección de una actividad de datos de flujo de trabajo predefinido para modelar una operación de transmisión de mensajes entre un flujo de trabajo y un huésped de flujo de trabajo; especificar una definición de fuente de datos, la definición de fuente de datos especificados definiendo un objeto de datos para almacenar datos de mensaje para comunicarse entre un caso de ejecución del flujo de trabajo y el huésped de flujo de trabajo, el huésped de flujo de trabajo inicia el caso de flujo de trabajo; enlazar la actividad de datos seleccionada a la definición de fuente de datos especificada; y hacer referencia a la actividad de datos de límite como uno de una pluralidad de actividades en el flujo de trabajo para implementar transmisión de mensajes entre el flujo de trabajo y el huésped de flujo de trabajo.
2.- El método de acuerdo con la reivindicación 1, en donde especificar la definición de fuente de datos comprende recibir, del usuario, un identificador que corresponde a la definición de fuente de datos.
3.- El método de acuerdo con la reivindicación 1, en donde recibir la selección de la actividad de datos de flujo de trabajo predefinida comprende recibir la selección a través de una interfase de programación de aplicación.
4.- El método de acuerdo con la reivindicación 1, que además comprende, durante la ejecución del caso de flujo de trabajo: generar el objeto de datos por la definición de fuente de datos especificada; enviar el objeto de datos generado al huésped de flujo de trabajo, en donde el huésped de flujo de trabajo llena el objeto de datos con los datos de mensaje; recibir el objeto de datos lleno del huésped de flujo de trabajo; y procesar los datos de mensaje en el objeto de datos recibido, lleno.
5.- El método de acuerdo con la reivindicación 4, en donde los datos de mensaje corresponden a una solicitud de datos, y que además comprende llenar el objeto de datos con los datos solicitados y enviar el objeto de datos lleno al huésped de flujo de trabajo.
6.- El método de acuerdo con la reivindicación 1, en donde la actividad de datos predefinida es agnóstica para protocolos de transmisión de mensajes.
7.- El método de acuerdo con la reivindicación 1, en donde uno o más medios legibles por computadora tienen instrucciones ejecutables por computadora para realizar el método de acuerdo con la reivindicación 1.
8.- Un sistema implementado por computadora para transmisión de mensajes agnósticos de protocolo en un ambiente de flujo de trabajo, dicho sistema implementado por computadora que comprende: un huésped de flujo de trabajo para iniciar un flujo de trabajo para crear un caso de flujo de trabajo para ejecución; una o más actividades de datos predefinidas para uso en el flujo de trabajo, cada una de las actividades de datos predefinidas modelando una operación de transmisión de mensaje entre el caso de flujo de trabajo y el huésped de flujo de trabajo, cada una de las actividades de datos predefinidas generando un objeto de datos durante ejecución del caso de flujo de trabajo para almacenar datos de mensaje, dicho objeto de datos se comunica del caso de flujo de trabajo al huésped de flujo de trabajo; y un servicio de fuente de datos asociado con el huésped de flujo de trabajo para llenar el objeto de datos con los datos de mensaje y comunicar el objeto de datos lleno al caso de flujo de trabajo para procesamiento.
9.- El sistema implementado por computadora de acuerdo con la reivindicación 8, que además comprende una definición de fuente de datos para definir una estructura de datos asociada con el objeto de datos.
10.- El sistema ¡mplementado por computadora de acuerdo con la reivindicación 9, que además comprende un medio legible por computadora que tiene almacenada en él la estructura de datos que representa el objeto de datos, la estructura de datos comprende: un campo de tipo de protocolo para almacenar un valor que identifica un protocolo para uso en comunicación entre el caso de flujo de ejecución y el huésped de flujo de trabajo; un campo de carga útil para almacenar los datos de mensaje; y un campo de fuente para almacenar un valor que identifica la definición de fuente de datos para el objeto de datos.
11.- El sistema implementado por computadora de acuerdo con la reivindicación 8, en donde las actividades de datos predefinidas incluyen uno o más de los siguientes: una actividad de actualizar datos para comunicar los datos del caso de flujo de trabajo de ejecución al huésped de flujo de trabajo, una actividad de seleccionar datos para permitir el caso de flujo de trabajo de ejecución para consultar los datos del alojamiento de flujo de trabajo, una actividad de esperar datos para permitir la ejecución de caso de flujo de trabajo para esperar recibir los datos del huésped de flujo de trabajo, y actividad de esperar datos de consulta para permitir la ejecución del caso de flujo de trabajo para esperar recibir los datos correspondientes a una solicitud de consulta del huésped de flujo de trabajo.
12.- El sistema implementado por computadora de acuerdo con la reivindicación 8, que además comprende medios para implementar la transmisión de mensajes agnósticos de protocolo en el flujo de trabajo.
13.- El sistema implementado por computadora de acuerdo con la reivindicación 8, que además comprende una pluralidad de controladores de datos accesibles por el servicio de fuente de datos para procesar el objeto de datos generado, y en donde el servicio de fuente de datos realiza lo siguiente: recibir el objeto de datos generado del caso de flujo de trabajo de ejecución, el objeto de datos generado teniendo una carga útil asociada con él; invocar uno de la pluralidad de controladores de datos para procesar el objeto de datos recibido; recibir datos de una fuente de datos; llenar la carga útil con los datos recibidos como los datos de mensaje para crear un objeto de datos publicado; enviar el objeto de datos publicado al caso de flujo de trabajo de ejecución.
14.- El sistema implementado por computadora de acuerdo con la reivindicación 8, que además comprende una interfase de programación de aplicación que permite a un usuario crear el flujo de trabajo.
15.- Uno o más medios legibles por computadora que tienen componentes ejecutables por computadora para transmisión de mensajes entre un caso de flujo de trabajo y un huésped de flujo de trabajo, los componentes comprenden: un componente de interfase de usuario para recibir, de un usuario, una selección de una actividad de datos de flujo de trabajo predefinida para modelar una operación de transmisión de mensajes entre un caso de flujo de trabajo y un huésped de flujo de trabajo; un componente de propiedad para especificar una definición de fuente de datos, dicha definición de fuente de datos especificada definiendo un objeto de datos para almacenar datos de mensaje para comunicarse entre el caso de flujo de trabajo y el huésped de flujo de trabajo, dicho huésped de flujo de trabajo inicia el caso de flujo de trabajo, dicho componente de propiedad uniendo la actividad de datos seleccionados a través del componente de interfase de usuario a la definición de fuente de datos especificada, dicho componente de interfase de usuario además hace referencia a la actividad de datos de límite como una de una pluralidad de actividades en el flujo de trabajo para implementar la transmisión de mensajes entre el caso de flujo de trabajo y el huésped de flujo de trabajo; y un componente de caso para: generar, durante ejecución del caso de flujo de trabajo, el objeto de datos por la definición de fuente de datos especificada; enviar el objeto de datos generado al huésped de flujo de trabajo, en donde el huésped de flujo de trabajo llena el objeto de datos con datos de mensaje; recibir el objeto de datos lleno del huésped de flujo de trabajo; y procesar los datos de mensaje en el objeto de datos recibido, lleno.
16.- El medio legible por computadora de acuerdo con la reivindicación 15, en donde el componente de caso además llena el objeto de datos con datos y envía el objeto de datos lleno al huésped de flujo de trabajo para actualizar una forma.
17.- El medio legible por computadora de acuerdo con la reivindicación 15, en donde la definición de fuente de datos define un esquema para los datos de mensaje.
18.- El medio legible por computadora de acuerdo con la reivindicación 15, en donde el componente de caso además presenta los datos de mensaje a un usuario
19.- El medio legible por computadora de acuerdo con la reivindicación 15, que además comprende un componente de huésped para recibir el objeto de datos generado del componente de caso, llenar el objeto de datos recibido con los datos de mensaje, y enviar el objeto de datos lleno al caso de flujo de trabajo.
20.- El medio legible por computadora de acuerdo con la reivindicación 15, en donde la definición de fuente de datos identifica un protocolo para comunicación entre el caso de flujo de trabajo y el huésped de flujo de trabajo.
MX2007015887A 2005-06-27 2006-05-05 Flujos de trabajos centricos de datos. MX2007015887A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/167,472 US7363628B2 (en) 2005-06-27 2005-06-27 Data centric and protocol agnostic workflows for exchanging data between a workflow instance and a workflow host
PCT/US2006/017766 WO2007001640A2 (en) 2005-06-27 2006-05-05 Data centric workflows

Publications (1)

Publication Number Publication Date
MX2007015887A true MX2007015887A (es) 2008-03-04

Family

ID=37568786

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2007015887A MX2007015887A (es) 2005-06-27 2006-05-05 Flujos de trabajos centricos de datos.

Country Status (9)

Country Link
US (1) US7363628B2 (es)
EP (1) EP1896939A4 (es)
JP (1) JP5026415B2 (es)
KR (1) KR20080017351A (es)
CN (1) CN101223505B (es)
BR (1) BRPI0612281A2 (es)
MX (1) MX2007015887A (es)
RU (1) RU2419837C2 (es)
WO (1) WO2007001640A2 (es)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7441249B2 (en) * 2003-11-13 2008-10-21 International Business Machines Corporation Activity monitoring without accessing a process object
US7509519B2 (en) * 2005-11-29 2009-03-24 International Business Machines Corporation Recovery and debugging of failed network-accessible service construction
US8849691B2 (en) * 2005-12-29 2014-09-30 Microsoft Corporation Modeling user input and interaction in workflow based applications
KR101501174B1 (ko) * 2007-09-28 2015-03-19 엑세리온 악티에볼라그 네트워크 오퍼레이팅 시스템
US8131663B1 (en) 2007-10-12 2012-03-06 Bonamy Taylor Apparatus for generating software logic rules by flowchart design
KR101390177B1 (ko) * 2008-04-01 2014-05-26 삼성전자주식회사 워크폼 관리 방법, 워크폼 관리를 위한 호스트 장치,화상형성장치의 워크폼 관리방법 및 워크폼 관리 시스템
US8478715B2 (en) * 2008-05-16 2013-07-02 Microsoft Corporation Extending OLAP navigation employing analytic workflows
JP5393059B2 (ja) * 2008-06-04 2014-01-22 キヤノン株式会社 ワークフロー処理装置及びワークフロー処理方法
KR101437453B1 (ko) * 2008-08-29 2014-11-03 삼성전자주식회사 워크폼 관리장치, 워크폼 관리방법, 화상형성장치 및 워크폼 관리 시스템
US9354847B2 (en) 2008-12-29 2016-05-31 Microsoft Technology Licensing, Llc Interface infrastructure for a continuation based runtime
US8413150B2 (en) * 2009-07-31 2013-04-02 Sap Ag Systems and methods for data aware workflow change management
US8522256B2 (en) * 2010-10-12 2013-08-27 Microsoft Corporation Hosting non-messaging workflows in a messaging host
US8862975B2 (en) 2011-09-19 2014-10-14 Microsoft Corporation Web-based workflow service visualization and navigation
US9536264B2 (en) * 2011-11-14 2017-01-03 Microsoft Technology Licensing, Llc Host agnostic messaging in a continuation based runtime
US9524323B2 (en) 2012-09-05 2016-12-20 Microsoft Technology Licensing, Llc Delegation of expression tree evaluation
CN105765577A (zh) * 2014-09-29 2016-07-13 微软技术许可有限责任公司 可定制的数据服务
US10592082B2 (en) * 2015-11-24 2020-03-17 Microsoft Technology Licensing, Llc Parallel front end application and workflow development
US10223163B2 (en) * 2016-07-14 2019-03-05 Microsoft Technology Licensing, Llc Workflow-based object destruction
CN107102978B (zh) * 2017-05-24 2020-11-24 北京星选科技有限公司 数据回填方法、装置及移动终端
CN110297625B (zh) * 2018-03-22 2023-08-08 阿里巴巴集团控股有限公司 应用的处理方法及装置
US10666718B2 (en) * 2018-06-07 2020-05-26 Spatika Technologies Inc. Dynamic data transport between enterprise and business computing systems
US11216424B2 (en) 2018-06-07 2022-01-04 Spatika Technologies Inc. Dynamically rendering an application programming interface for internet of things applications
CN111309315B (zh) * 2018-12-12 2024-03-29 中国科学院沈阳自动化研究所 一种基于工业物联网数据和业务建模的自动化配置方法
CN111382729A (zh) * 2018-12-27 2020-07-07 北京图森智途科技有限公司 一种从数据源采集数据的方法、主机和汽车

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2263988B (en) * 1992-02-04 1996-05-22 Digital Equipment Corp Work flow management system and method
US5634127A (en) * 1994-11-30 1997-05-27 International Business Machines Corporation Methods and apparatus for implementing a message driven processor in a client-server environment
US5774661A (en) * 1995-04-18 1998-06-30 Network Imaging Corporation Rule engine interface for a visual workflow builder
EP0854431A3 (en) * 1997-01-20 2001-03-07 International Business Machines Corporation Events as activities in process models of workflow management systems
US6225998B1 (en) * 1997-12-02 2001-05-01 Aspect Communications Visual design of workflows for transaction processing
US6430538B1 (en) 1998-04-30 2002-08-06 Enterworks Workflow management system, method and medium with personal subflows
US6567783B1 (en) * 1998-06-05 2003-05-20 I2 Technologies Us, Inc. Communication across one or more enterprise boundaries regarding the occurrence of a workflow event
US6397192B1 (en) * 1998-06-05 2002-05-28 I2 Technologies Us, Inc. Synchronizing one or more workflows using one or more synchronization-join activities that include synchronization logic
WO2000054202A2 (en) 1999-03-11 2000-09-14 Paysys International, Inc. Methods and systems for developing applications and for interfacing with users
GB2350911B (en) * 1999-06-10 2004-06-09 Ibm Form data files generator
US6768986B2 (en) * 2000-04-03 2004-07-27 Business Objects, S.A. Mapping of an RDBMS schema onto a multidimensional data model
US6845507B2 (en) * 2000-05-18 2005-01-18 Ss & C Technologies, Inc. Method and system for straight through processing
JP2002041744A (ja) * 2000-07-27 2002-02-08 Ranseputo Kk ワークフロー処理方法及びワークフロー処理システム
US20020032692A1 (en) * 2000-09-08 2002-03-14 Atsuhito Suzuki Workflow management method and workflow management system of controlling workflow process
WO2002029517A2 (en) * 2000-10-02 2002-04-11 International Projects Consultancy Services, Inc. Automated loan processing system and method
US6604104B1 (en) * 2000-10-02 2003-08-05 Sbi Scient Inc. System and process for managing data within an operational data store
US7174534B2 (en) * 2001-01-22 2007-02-06 Symbol Technologies, Inc. Efficient system and method for running and analyzing multi-channel, multi-modal applications
US6757689B2 (en) * 2001-02-02 2004-06-29 Hewlett-Packard Development Company, L.P. Enabling a zero latency enterprise
US7240324B2 (en) * 2001-02-28 2007-07-03 Hewlett-Packard Development Company, L.P. Event-based scheduling method and system for workflow activities
US7069536B2 (en) * 2001-06-28 2006-06-27 International Business Machines Corporation Method, system, and program for executing a workflow
US20030097457A1 (en) * 2001-08-08 2003-05-22 Amitabh Saran Scalable multiprocessor architecture for business computer platforms
US6895573B2 (en) * 2001-10-26 2005-05-17 Resultmaker A/S Method for generating a workflow on a computer, and a computer system adapted for performing the method
US20030177046A1 (en) * 2001-12-03 2003-09-18 John Socha-Leialoha Method and system for reusing components
US7441197B2 (en) * 2002-02-26 2008-10-21 Global Asset Protection Services, Llc Risk management information interface system and associated methods
DE10215653A1 (de) 2002-04-09 2003-11-06 Bernhard Voslamber Verfahren und Anordung zur automatischen Erzeugung von Programmcodeabschnitten sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium
EP1502218A4 (en) * 2002-04-15 2005-08-17 Invensys Sys Inc METHOD AND DEVICES FOR A PROCESS-, FACTORY-, ENVIRONMENT-, ENVIRONMENT- AND COMPUTER AIDED MANUFACTURING-BASED OR OTHERWISE CONTROL SYSTEM WITH REAL-TIME DATA DISTRIBUTION
US7272816B2 (en) * 2002-07-31 2007-09-18 Sap Aktiengesellschaft Transformations between private and shared workflows
US7437703B2 (en) * 2002-10-25 2008-10-14 Sap Ag Enterprise multi-agent software system with services able to call multiple engines and scheduling capability
US20040148213A1 (en) * 2002-11-25 2004-07-29 Microsoft Corporation Automated workflow constraints
US20040162741A1 (en) * 2003-02-07 2004-08-19 David Flaxer Method and apparatus for product lifecycle management in a distributed environment enabled by dynamic business process composition and execution by rule inference
US20050066002A1 (en) * 2003-07-31 2005-03-24 Arnold Teres Workflow compatible healthcare information message communication system
CA2442796A1 (en) * 2003-09-26 2005-03-26 Ibm Canada Limited - Ibm Canada Limitee Binding a workflow engine to a data model
US7093207B1 (en) * 2003-11-17 2006-08-15 Kla-Tencor Technologies Corporation Data analysis flow engine
US7650344B2 (en) * 2004-02-09 2010-01-19 Coremetrics, Inc. System and method of managing software product-line customizations
US7631291B2 (en) * 2004-10-01 2009-12-08 Microsoft Corporation Declarative representation for an extensible workflow model
US7493594B2 (en) * 2005-03-14 2009-02-17 Research In Motion System and method for designing component based applications
US20060241954A1 (en) * 2005-04-22 2006-10-26 International Business Machines Corporation Method and system for adaptive action management for business solutions
US7983943B2 (en) * 2005-05-27 2011-07-19 Xerox Corporation Method and system for workflow process node synchronization

Also Published As

Publication number Publication date
BRPI0612281A2 (pt) 2010-11-03
EP1896939A2 (en) 2008-03-12
CN101223505B (zh) 2011-09-07
US7363628B2 (en) 2008-04-22
RU2419837C2 (ru) 2011-05-27
US20060294048A1 (en) 2006-12-28
RU2007149277A (ru) 2009-07-10
WO2007001640A2 (en) 2007-01-04
KR20080017351A (ko) 2008-02-26
WO2007001640A3 (en) 2007-11-22
CN101223505A (zh) 2008-07-16
EP1896939A4 (en) 2010-09-22
JP2008544400A (ja) 2008-12-04
JP5026415B2 (ja) 2012-09-12

Similar Documents

Publication Publication Date Title
MX2007015887A (es) Flujos de trabajos centricos de datos.
US8473896B2 (en) Computer software development incorporating core and compound services
US9258668B2 (en) Mobile application framework extensibiilty
US7797708B2 (en) Simulating actions on mockup business objects
AU2004206974B2 (en) Programming interface for a computer platform
CA2557111C (en) System and method for building mixed mode execution environment for component applications
US7065744B2 (en) System and method for converting management models to specific console interfaces
US7865900B2 (en) Systems and methods for providing mockup business objects
US8056091B2 (en) Systems and methods for using application services
US20040003013A1 (en) Transferring data and storing metadata across a network
US20030055624A1 (en) Dynamic, real-time integration of software resources through services of a content framework
US20080010074A1 (en) Systems and methods for providing a mockup data generator
US20030055878A1 (en) Programmatic management of software resources in a content framework environment
KR101203284B1 (ko) 메시지를 이용하여 crm 기능성을 확장하는 방법
JP2014044743A (ja) コンピュータプラットフォームのプログラミングインターフェース
JP2006252536A (ja) レガシーコンポーネントのための動的サービスの生成
KR20070049166A (ko) 목표 기기 상에서의 종속 소프트웨어 패키지의 검출 및이용을 자동화하기 위한 방법 및 소프트웨어 리포지터리를생성하기 위한 시스템
US20030055862A1 (en) Methods, systems, and articles of manufacture for managing systems using operation objects
US7191404B2 (en) System and method for mapping management objects to console neutral user interface
WO2003034182A2 (en) System and method for invoking business functionality for a workflow
JP2006500650A (ja) 自律型計算のための構成サービス
Preston RADGIS-An improved architecture for runtime-extensible, distributed GIS applications
Ahmad Migration from client/server architecture to internet computing architecture

Legal Events

Date Code Title Description
FA Abandonment or withdrawal