MXPA06001211A - Activacion de datos del usuario final. - Google Patents

Activacion de datos del usuario final.

Info

Publication number
MXPA06001211A
MXPA06001211A MXPA06001211A MXPA06001211A MXPA06001211A MX PA06001211 A MXPA06001211 A MX PA06001211A MX PA06001211 A MXPA06001211 A MX PA06001211A MX PA06001211 A MXPA06001211 A MX PA06001211A MX PA06001211 A MXPA06001211 A MX PA06001211A
Authority
MX
Mexico
Prior art keywords
end user
component
user
programs
programming
Prior art date
Application number
MXPA06001211A
Other languages
English (en)
Inventor
Praveen Seshadri
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 MXPA06001211A publication Critical patent/MXPA06001211A/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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • 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/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Se describe un sistema para crear tareas de procesamiento de datos que comprende un modulo de programacion del usuario final que permite que un usuario final asocie una o mas acciones definidas por el usuario final al menos con un componente de computo disponible; el sistema incluye una plataforma normativa que provee una relacion de una o mas acciones definidas por el usuario final con el componente de computo disponible, de manera que un programa de usuario final integrado se crea usando el componente de computo disponible; de igual manera se proporciona los metodos para usar el sistema.

Description

ACTIVACIÓN DE DATOS DEL USUARIO FINAL REFERENCIA CRUZADA CON SOLICITUDES RELACIONADAS Este es un beneficio de reclamación de la solicitud bajo 35 U.S.C. 119(e) de la solicitud de patente provisional de EE.UU. con número de serie 60/657,330, titulada "ACTIVACIÓN DE DATOS DEL USUARIO FINAL" la cual se presentó el 28 de febrero de 2005. La cual se incorpora por completo a la presente por referencia. Antecedentes de la Invención Los sistemas de cómputo modernos pueden tener cientos de procesos de programas y sistemas de programación activos en cualquier momento en varios estados de ejecución. Estos procesos pueden ser procesos en segundo plano iniciados a través de un sistema operativo, procesos de supervisión o servicios que se inicializan en el momento del arranque o al lanzar una aplicación o aplicaciones mismas. Muchos, si no la mayoría, de estos procesos o características estos procesos se encuentran más allá de la capacidad de un usuario para controlarlos directamente. Por lo tanto, si la funcionalidad que ofrecen estos procesos debe tener un acceso completo, dicho acceso comúnmente debe acompañarse por otro proceso de programas y sistemas de programación. El número de procesos que se ejecutan en un sistema de cómputo generalmente es una función de la cantidad de datos que el sistema debe procesar y el número de tareas que se pide al sistema que realice. Un general, las partes menos eficientes de estas tareas de cómputo son las que requieren de la interacción de un humano. Adicionalmente, un proceso de cómputo ¡mplementado adecuadamente comúnmente puede realizar tareas complejas repetitivas de manera más precisa que un operador humano. Por lo tanto, existe la necesidad de sistemas y métodos que puedan ayudar a reducir la necesidad de la interacción humana durante las tareas de procesamiento. En general, para explotar completamente la funcionalidad que proveen los procesos de cómputo, un usuario final debe ser un programador de cómputo con habilidades. Los usuarios finales no usan muchas funciones disponibles debido a que están capacitados para usar la computadora y no tienen las habilidades para programar una computadora. Con frecuencia esto sucede debido que los usuarios finales con frecuencia no saben qué existe alguna funcionalidad integrada en un sistema de cómputo. Muchos de estos mismos usuarios se beneficiarían de la capacidad de acceder a las funciones subyacentes de los componentes de cómputo. Los sistemas actuales no proporcionan una capacidad para que un usuario final tenga acceso a las funciones de un sistema de cómputo y ensamble grupos de dichas funciones de diversas maneras que están diseñadas para las necesidades de usuarios finales individuales. Sumario de la Invención A continuación se presenta una breve descripción simplificada para proveer una comprensión básica y un reconocimiento de alto nivel. Esta breve descripción no es una descripción extensa. No tiene la intención de identificar elementos clave/críticos y tampoco debe delinear el alcance. Su único objetivo es presentar algunos conceptos de una forma simplificada a manera de introducción a la descripción detallada que se presenta posteriormente. De manera adicional, los encabezados de secciones que se usan en la presente se proveen únicamente por comodidad y no deben interpretarse como limitantes de manera alguna. Un módulo de programación de usuario final se puede usar para crear programas de usuario final que puedan combinar la funcionalidad de los componentes en un sistema de cómputo. Estos componentes pueden ser piezas de códigos de los programas y sistemas de programación que se encuentran en el sistema de cómputo, como procesos de sistema operativo, procesos de segundo plano, daemons, y aplicaciones autónomas, entre otros. La ejecución de un módulo de programación de usuario final se puede producir de manera automática como respuesta a alguna activación definida por el usuario final de un evento y puede realizar tareas de cómputo definidas por el usuario final sin que intervenga éste. De manera adicional o alternativa, la ejecución de un programa de usuario final puede ser como respuesta a un comando del usuario final. Los usuarios finales pueden usar plataformas de normas como una base para crear componentes que realizan tareas identificadas por los mismos usuarios finales. Los usuarios finales pueden, al usar una plataforma de normas, definir tareas de procesamiento de datos para que se realicen de manera automática cuando suceda un evento elegido o se pueden realizar manualmente al emitir un comando por parte del usuario. El desempeño de dichas tareas se puede realizar por uno o más componentes del sistema de cómputo. El o los componentes del sistema de cómputo pueden contribuir cada uno a una parte del procesamiento general de un programa de usuario final. El programa del usuario final puede proveer una funcionalidad personal a los componentes ya existentes, por ejemplo las aplicaciones del usuario. Esta funcionalidad se puede crear mediante el acceso a la plataforma de normas y a la asociación de tareas con diversos controles de los componentes de existentes, como los elementos de una interfase gráfica del usuario (u otras). De esta manera, los usuarios finales pueden extender o modificar la funcionalidad que proveen los componentes estándar como las aplicaciones autónomas. Los componentes descritos y revelados así como sus métodos comprenden una o más de las características mencionadas en la presente y señaladas en particular en las reivindicaciones. La siguiente descripción y el conjunto de dibujos anexos establecen con detalle ciertos componentes y métodos específicos ilustrativos. Sin embargo, estos componentes y métodos sólo indican algunas de las diversas maneras en las que los componentes revelados y sus métodos se pueden emplear. Las implementaciones específicas de los componentes revelados descritos y sus métodos pueden incluir algunos, muchos o todos los componentes y sus métodos, así como sus equivalentes. Las variaciones de las implementaciones de los ejemplos específicos presentados en la presente serán evidentes a partir de la siguiente descripción detallada cuando se tomen en conjunto con los dibujos. Breve Descripción de las Figuras La figura 1 es un diagrama de bloques del sistema de un sistema de programación del usuario final. La figura 2 es un diagrama de bloques del sistema de un módulo de programación del usuario final. La figura 3 es un diagrama de bloques del sistema de un sistema de procesamiento del usuario final. La figura 4 es un diagrama de bloques del sistema de un sistema de programación del usuario final que incluye componentes remotos. La figura 5 es un diagrama de bloques del sistema de un sistema de programación automático del usuario final. La figura 6 es un diagrama de bloques del sistema de un sistema de programación seguro del usuario final. La figura 7 es un diagrama de flujo de un flujo de procesamiento general que se puede usar con varios componentes descritos y revelados en la presente. La figura 8 es un diagrama de flujo de un flujo de procesamiento general que se puede usar con varios componentes descritos y revelados en la presente. La figura 9 es un diagrama de flujo de un flujo de procesamiento general que se puede usar con varios componentes descritos y revelados en la presente. La figura 10 es un diagrama de flujo de un flujo de procesamiento general que se puede usar con varios componentes descritos y revelados en la presente. La figura 11 es un diagrama de flujo de un .flujo de procesamiento general que se puede usar con varios componentes descritos y revelados en la presente. La figura 12 es un diagrama de flujo de un flujo de procesamiento general que se puede usar con varios componentes descritos y revelados en la presente. La figura 13 es un diagrama esquemático de un entorno de cómputo en el que varios componentes revelados y descritos y sus métodos se pueden implementar. La figura 14 es un diagrama de bloques del sistema de un entorno de redes dentro del cual varios componentes revelados y descritos y sus métodos se pueden usar. Descripción Detallada de la Invención Como se usan en la presente solicitud, los términos "componente", "sistema", "módulo", y similares tienen la intención de referirse a una entidad relacionada con una computadora, por ejemplo los componentes físicos de cómputo, los programas y sistemas de programación (por ejemplo, en ejecución), y/o las instrucciones físicas o inalterables. Por ejemplo, un componente puede ser un proceso que se ejecuta en un procesador, un procesador, un objeto, un ejecutable, un programa, y/o una computadora. También, pueden ser componentes tanto la aplicación que se ejecuta en un servidor como el servidor. Uno o más componentes pueden encontrarse dentro de un proceso y un componente se puede localizar en una computadora y/o distribuirse entre dos o más computadoras. Los componentes revelados y sus métodos se describen haciendo referencia a los dibujos, en donde los números de referencia similares se usan para hacer referencia a elementos similares en toda la descripción. En la siguiente descripción, por razones de explicación, se establecen diversos detalles específicos para proveer una comprensión completa de la materia objeto revelada. No obstante, puede ser evidente que algunos de estos detalles específicos puedan ser omitidos o combinarse con otros en una implementación específica. En otros ejemplos, algunas estructuras y dispositivo se muestran en forma de diagrama de bloques para facilitar su descripción. Además, aunque los ejemplos específicos establecidos pueden usar terminología que es consistente con las arquitecturas de cliente/servidor o incluso pueden ser ejemplos de implementaciones de cliente/servidor, los expertos en la técnica podrán apreciar que el desempeño del cliente y del servidor pueden invertirse, que los componentes revelados y descritos así como sus métodos no están invitados a las arquitecturas de cliente/servidor y se pueden adaptar fácilmente para usarse con otros arquitecturas, específicamente incluyendo las arquitecturas de cliente a cliente (P2P), sin separarse del espíritu o alcance de los componentes y métodos revelados y descritos. Adicionalmente, debe observarse que aún que los ejemplos específicos presentados en la presente incluyen o hacen referencia a componentes específicos, una implementación de los componentes y métodos descritos y revelados en la presente no está limitada necesariamente a los componentes específicos y se pueden emplear en otro contexto también.
Debe apreciarse que aunque los ejemplos presentados pueden describir o ilustrar sistemas o métodos que se basa de los componentes de las computadoras personales, el uso de componentes y métodos descritos y revelados en la presente no está limitado dicho dominio. Por ejemplo, los componentes y métodos revelados y descritos se pueden usar en un entorno de cómputo en red o distribuido. De manera adicional o alternativa, los componentes revelados y descritos, así como sus métodos se pueden usar en un servidor único al que tiene acceso varios clientes. Los expertos en la técnica reconocerán fácilmente que los componentes revelados y descritos así como sus métodos se pueden usar para crear otros componentes y ejecutar otros métodos en una amplia variedad de dispositivos de cómputo. La figura 1 es un diagrama de bloques del sistema de un sistema de programación del usuario final 100. El sistema de programación del usuario final 100 se puede usar para crear un componente de cómputo que pueda realizar tareas de cómputo como describió o definió el usuario final. El componente de cómputo puede realizar tareas que de otra manera puede realizar de manera manual el usuario final a través de la entrada de uno o más comandos en una interfase del usuario. De manera adicional o alternativa, el componente de cómputo puede realizar para tareas a través del uso de la funcionalidad de cómputo a la cual un usuario final no puede tener acceso directamente de manera común. El sistema de programación del usuario final 100 incluye una plataforma operativa 110 que proporciona un entorno de procesamiento para el sistema 100. En este contexto, la plataforma operativa 110 puede incluir componentes físicos de cómputo, componentes de programas y sistemas de programación o ambos componentes físicos de cómputo y de programas y sistemas de programación. Entre las implementaciones que se contemplan específicamente para usarse como la plataforma operativa 110 se encuentran los sistemas operativos basados en programas y sistemas de programación, dispositivos de cómputo con sistemas operativos alojados en instrucciones inalterables y sistemas incrustados. Varios acontecimientos en un entorno de cómputo se pueden tratar como importantes y usarse para generar un evento. Dichos acontecimientos pueden influir la creación de un archivo, su modificación y eliminación, la recepción de un mensaje de correo electrónico y el lanzamiento o salida de una aplicación, entre otras cosas. Se puede crear un evento 120 mediante la plataforma operativa 110 para expresar que ha sucedido un acontecimiento en el entorno de cómputo. El evento 120 puede servir como un indicador de que una tarea de procesamiento puede o debe realizarse. La forma de un evento 120 puede ser mensaje que pasa entre los componentes de cómputo, un indicador de procesamiento u otro indicador adecuado. Específicamente, la forma del evento 120 depende en gran medida de la implementación y puede variar según las características que provea la plataforma operativa 110, entre otras cosas. Un módulo de programación del usuario final ("EUP") 130 puede proveer un componente que puede ser operado por un usuario para definir una acción, por ejemplo un programa de usuario final 140, ser tomado de manera automática ante el acontecimiento de un evento o, de manera alternativa, cuando el usuario final invoca un comando. Un usuario final puede acceder al módulo EUP 130 para crear un programa del usuario final que comprende un grupo de administración de datos o tareas de procesamiento de información seleccionadas entre las funciones disponibles de un sistema de cómputo. Por ejemplo, un programa de un usuario final se puede crear para que detecte cuando llegue un mensaje de correo electrónico de un usuario específico, para que verifique si el mensaje contiende archivos anexos y para que guarde los archivos anexos en un director específico. Estas acciones se pueden realizar de manera automática si la participación activa de un usuario final más allá de la creación inicial del programa del usuario final. El módulo EUP 130 puede incluir una interfase de usuario que permite que un usuario identifique o designe una acción específica que puede realizar un componente de cómputo. La interfase del usuario puede ser una interfase gráfica del usuario (GUI), una interfase de línea de comandos (CLI), una interfase basada en texto, o una interfase basada en la red, entre otros. La interfase del usuario también puede ser de un tipo de entorno de programación del usuario final similar a un entorno de desarrollo integrado que usan los desarrolladores de programas y sistemas de programación para escribir, compilar y probar códigos de programas y sistemas de programación. Específicamente, la interfase del usuario puede ser un entorno de desarrollo gráfico que permite que un usuario seleccione elementos gráficos que representan varias funciones del programa u objetos de datos y ensamble los elementos en un programa del usuario final. Debe observarse que el programa del usuario final 140 puede ser una sola tarea o puede ser un grupo de tareas a realizar. El módulo EUP 130 puede proveer una interfase a las funciones que se incluyen en lo sistema de cómputo del cual se puede operar manual o automáticamente o que anteriormente sólo se podía acceder a éstas a través de otros componentes de programas y sistemas de programación, como, sin limitarse a esto, un sistema operativo, un componente de servicio, una aplicación u otro componente de cómputo. El usuario final puede usar la interfase del módulo EUP 130 par construir un componente de cómputo que usa estas funciones del sistema de cómputo para lograr una amplia variedad de tareas de cómputo. Un ejemplo específico incluye correo electrónico y organización de archivos. Un usuario final puede definir una acción que realizará al recibir un mensaje de correo electrónico que tiene un archivo adjunto. Por ejemplo, ilusorio final puede especificar que cuando se reciba un mensaje de correo electrónico de cierto dominio (o usuario en un dominio) que incluye un archivo adjunto, el archivo adjunto se debe guardar en un directorio específico, explorarse en busca de virus y después a abrirse usando un programa específico. Para definir esta acción, el usuario final puede acceder a una lista de funciones específicas disponibles en el sistema de cómputo. En este ejemplo, las funciones involucradas incluyen la detección de nuevos mensaje de correo electrónico, archivo de mensajes, exploración de virus y abertura de un archivo. El usuario final puede usar el módulo EUP 130 para agregar estas funciones a un programa definido por el usuario final único y especificar las normas que se activan a través de los eventos que ocasionarán el acontecimiento de las funciones agregadas. Aquí, se puede activar un primer evento mediante la recepción de un mensaje de correo electrónico. El programa definido por el usuario final puede procesar normas que determinen si el mensaje de correo electrónico es de un remitente definido previamente, y si es así, si el mensaje de correo electrónico incluye un archivo adjunto. Si la respuesta es así en ambas condiciones de la norma, el módulo definido por el usuario puede guardar el archivo adjunto en un directorio predeterminado. Después, el módulo definido por el usuario final puede activar un programa de exploración de virus para detectar si existen virus en el archivo guardado. Si el archivo guardado no incluye virus detectados durante su exploración, el módulo definido por el usuario puede lanzar una aplicación, por ejemplo un procesador de palabra, un programa de edición de fotografías o alguna otra aplicación adecuada, y ocasiona que la aplicación abierta abra el archivo guardado. Todos estos pasos se pueden realizar de manera automática sin que intervenga el usuario final. El procesamiento de las normas como se describió en el ejemplo anterior se puede lograr usando una plataforma de normas 150 que provea la capacidad de un usuario para definir las condiciones o situaciones relacionadas con ciertas tareas de procesamiento. La plataforma de normas 150 puede incluir una lógica que permita que un usuario final defina una o más acciones que se pueden realizar automáticamente o al recibir un comando por parte del usuario final. Estas normas se pueden adjuntar o incorporar a los programas o agentes que se pueden ejecutar usando los elementos de una interfase del usuario, como seleccionar botones, enlaces, menús u otros elementos de interfase. De manera adicional alternativa, lo si con los para los nodulos definidos por el usuario final o incluso aplicaciones autónomas definidas por el usuario se pueden crear y ejecutar al seleccionar dos veces el icono o activar de otra manera el código ejecutable asociado con el icono. Dichas acciones se pueden añadir a los componentes ya existentes que tienen acciones o funciones diseñadas por el desarrollador o que pueden- ser creadas como autónomas, componentes creados por el usuario final. La plataforma de normas puede usar la reflexión contra las fijaciones y los elementos instalados por el sistema o instalados por una aplicación para crear y ejecutar componentes definidos por el usuario final. En este contexto, y en otros lugares como sea necesario o adecuado, las fijaciones se pueden comprender como enlaces o correspondencias entre una representación de una función u objetos de datos, por ejemplo un elemento gráfico en una interfase del usuario que representa una función o un archivo, y un código subyacente que desarrolla en realidad la función cuando está en ejecución o comprende el objeto de datos. La figura 2 es un diagrama de bloques del sistema de un módulo de programación del usuario final 200. El módulo de programación del usuario final se puede usar como parte de una interfase del usuario general que permite que un usuario final defina y cree un componente de programa definido por el usuario final. Específicamente, el módulo de programación del usuario final 200 se puede usar como el módulo de programación del usuario final 130 de la figura 1. Un usuario final puede acceder al módulo de programación del usuario final 200 para descubrir funciones u objetos de datos que están disponibles para su uso y para ensamblar las funciones u objetos de datos en los programas del usuario final. El módulo de programación del usuario final 200 incluye un módulo de código 210. El módulo de código 210 puede acceder a un almacén de datos de código 220. El almacén de datos de código 220 ¡ncluye un código de programas y sistemas de programación subyacente que incluye funciones y objetos de datos que están disponibles para usarse como parte de un componente de acción definido por el usuario. Debe observarse en algunas implementaciones, por ejemplo una implementación que usa la reflexión en fijaciones, las técnicas proporcionadas por un esquema de reflexión se pueden usar para descubrir el código disponible de manera dinámica como una alternativa del, o además del, mantenimiento de un conjunto de descriptores dentro del almacén de datos de código 220. El módulo de código 210 puede proveer una descripción breve de cada pieza disponible del código u objetos de datos, por ejemplo cualquiera de los códigos dentro del almacén de datos de código 220, en un formato legible por un humano. De manera adicional o alternativa, el módulo de códigos 210 puede proveer descriptores o identificadores legibles por una máquina del código dentro del almacén de datos de códigos 220 a una o más acciones del usuario final. De esta manera, un componente de cómputo adecuado que provee alguna funcionalidad se puede correlacionar con una descripción de una acción que un usuario final desea que se realice. Un módulo de acción del usuario final 240 puede acceder a una acción de usuario final que se puede describir, definido designar por un usuario final y que puede proveer un descriptor adecuado para esa acción del usuario final en una forma en que el módulo de correlación 230 lo puede usar para correlacionar o unir la acción del usuario final con el código que proporciona el módulo de códigos 210. Por ejemplo, un descriptor codificado se puede asociar con la acción de un usuario final que está almacenada en un almacén de datos de acción del usuario final 250. Esta acción del usuario final puede ser, por ejemplo, un comando para "guardar archivo X. en el directorio Y" o alguna otra acción adecuada. Un descriptor correspondiente del código en el almacén de datos de código 220 se puede correlacionar con la acción del usuario final a través del módulo de correlación 230 para correlacionar una acción del usuario final con alguna parte del código. Una o más de dichas acciones del usuario final correlacionadas y partes del código se pueden usar como parte de un módulo de acción definido por el usuario final 260 o un programa de usuario final completado. A continuación se presenta un ejemplo posible de un modo de operación del módulo de programación del usuario final 200. Un usuario puede acceder al módulo de programación del usuario final 200 a través de una interfase del usuario como una GUI, una CLI o cualquier otra interfase del usuario computadora-humano adecuada. El usuario final puede usar componentes de la interfase del usuario para definir una o más acciones del usuario final. Adicional o alternativamente, el usuario puede seleccionar una o más acciones del usuario final entre un conjunto de acciones de usuario final definidas previamente que se almacenan en el almacén de datos de acciones del usuario final 250. El módulo de acción del usuario final 240 proporciona o accede a un descriptor que está asociado con la acción del usuario final que definió o seleccionó el usuario final. Este descriptor puede proporcionar una descripción que puede interpretar una máquina de la funcionalidad que desea el usuario final. El módulo de acción del usuario final 240 puede proporcionar al descriptor en el módulo de correlación 230. El módulo de correlación 230 puede proporcionar el descriptor al módulo de códigos 210. El módulo de códigos 210 usa el descriptor para ubicar una parte del código que tiene un descriptor correspondiente y que proporciona la función de procesamiento que desea el usuario final. El módulo de códigos 210, después de ubicar esa parte del código dentro del almacén de datos de códigos 220, proporciona un identificador de la parte del código para el módulo de correlación 230. El módulo de correlación 230 entonces correlaciona o une la acción del usuario final con la parte del código para crear el módulo de acción definido por el usuario 260. La figura 3 es un diagrama de bloques del sistema de un sistema de procesamiento del usuario final 300. El sistema 300 incluye un módulo de programación del usuario final 310 que proporciona acceso al sistema a un usuario humano. El módulo de programación del usuario final 310 se acopla a una plataforma operativa 320 que puede incluir tanto componentes físicos de cómputo como programas y sistemas de programación. El módulo de programación del usuario final 310 también accede a un conjunto de tareas definidas por el usuario final 330 y una plataforma de normas 340. Las tareas definidas por el usuario final 330 incluyen la fijación de tareas a la lógica de una acción. Una interfase del usuario 350 proporciona una interfase de extremo frontal entre el sistema 300 y un usuario humano e incluye elementos de control para los componentes.
Para realizar algunas de las tareas descritas, el sistema de procesamiento del usuario final 300 puede usar una regla de álgebra. Aunque en la presente se describe una regla algebraica específica, se puede sustituir por una variante de esta misma regla algebraica o reglas completamente diferentes. También se debe observar que las reglas algebraicas reveladas y descritas se pueden sustituir con otro componente adecuado. Las reglas algebraicas contempladas pueden tener cinco términos básicos: una propiedad, un filtro, un evento, una acción, y un conjunto. Una propiedad puede describir atributos de un tipo de datos del usuario final. El usuario final puede usar las propiedades para describir filtros y acciones. Un filtro puede definir una función Booleana que se puede usar como una pantalla de procesamiento aplicada a los tipos de datos. El filtro puede devolver valores de cierto o falso. Un evento puede definir un suceso de interés. Los eventos pueden asociarse con uno o más tipos de datos. Una acción es un método que se efectúa de manera lateral de un tipo de datos que realiza alguna función de procesamiento. Una acción puede tomar cero parámetros de entrada o más. Un conjunto puede ser una colección de tipos de datos. Las propiedades, filtros y acciones se pueden construir usando reglas. Dentro de cada regla, se puede usar una variedad de condiciones, incluyendo la comparación de una propiedad con una expresión, la correlación de un objeto objetivo con un filtro y la determinación de si un objeto objetivo se encuentra dentro de un conjunto. Los elementos construidos como esos se pueden usar como partes de programas de usuario final. Por ejemplo, un conjunto derivado puede ser un programa de usuario final completo o puede estar combinado (en unión) con otro conjunto para crear un programa de usuario final más complejo. Un conjunto puede estar asociado con una acción para crear un lote. Un lote puede definir una tarea orientada por conjunto para que su desempeño. Los lotes se pueden ejecutar o programar manualmente para su ejecución en un momento predeterminado o por una programación. Un agente se puede crear a partir de un evento y una acción. Un agente define una acción que se realizará cuando suceda un evento determinado. Para soportar el uso de una regla algebraica, se puede usar un sistema de archivos que pueda almacenar objetos o tipos de datos de una manera tal que soporte de manera directa las consultas de dichos objetos o tipos de datos. Los metadatos sobre dichos objetos o tipos de datos se pueden almacenar junto con los mismos objetos y usarse para soportar consultas y acciones. Una variedad de los sistemas de archivos se puede usar para almacenar estos objetos o tipos de datos. El sistema de archivos puede proveer un modelo de organización física que se basa en las propiedades de elemento-nivel y relaciones de elementos cruzados. Con un sistema de archivos como tal, los objetos o tipos de datos se pueden organizar de manera dinámica basado en las reglas de ejecución diseñadas para seleccionar o agregar objetos o tipos de datos de diversas maneras. La figura 4 es un diagrama de bloques del sistema de un sistema de programación del usuario final 400. El sistema de programación del usuario final 400 se puede usar para obtener módulos de programación del usuario final que ya existían previamente desde una ubicación remota. Específicamente, los módulos de programación del usuario final que se pueden obtener corresponden a una o más acciones definidas por el usuario en lo sistema de cómputo local. El sistema de programación del usuario final 400 incluye una acción definida por el usuario 410. La acción definida por el usuario 410 puede ser una descripción de alguna tarea de cómputo que un usuario final desea que se realice y se constituya principalmente, por ejemplo, y se constituya principalmente, por ejemplo, al emitir el usuario un comando específico que puede tener una clave para ejecutarse como respuesta a un evento de conformidad con alguna programación. De manera adicional, la acción definida por el usuario 410 puede incluir o estar asociada con un identificador específico o un descriptor que permite que otros componentes determinen la función o las funciones solicitadas por la acción definida por el usuario. Una interfase de programación del usuario final 420 puede proveer un medio mediante el cual un usuario pueda designar o definir las acciones que usa. Las descripciones de las acciones designadas o definidas pueden enviarse a través de la interfase de programación del usuario final cuatrocientos 20 sobre una red 430 hacia un servidor de módulo 440. El servidor de módulo 440 puede funcionar como una máquina principal para proveer módulos de programación del usuario final construidos previamente a los usuarios que desean obtener una funcionalidad adicional que sirva a sus necesidades. El módulo de servidor 440 puede depender de la descripción recibida de la acción definida por el usuario final 410 con un componente correspondiente 450. El componente correspondiente 450 puede usar la descripción de dependencia para buscar una librería de módulo 460 para ubicar uno o más módulos de programación del usuario final que puede proveer la funcionalidad que el usuario final requiere. El componente correspondiente entonces puede enviar copias de los módulos de programación del usuario final correspondiente a servidor de módulo para la transmisión hacia la interfase de programación del usuario final 420 sobre la red 430. De manera adicional alternativa, el servidor de módulo 440 puede proveer una lista de módulos de programación del usuario final disponibles para la interfase de programación del usuario final 420 y esperar un comando para transmitir uno de los módulos de programación del usuario final de la lista. Los expertos en la técnica reconocerán que el servidor de módulo 440 se puede ¡mplementar como un servidor de red o como servidor de protocolo de transferencia de archivos (FTP), entre otros tipos. Adicional o alternativamente, las búsquedas y transferencias del módulo se pueden proveer como servicios de red. Varios componentes que se revelan y describen en la presente, por ejemplo en conjunto con las tareas de correspondencia o identificación, pueden usar varios esquemas basados en inteligencia artificial para desarrollar varios aspectos de éstos. Por ejemplo, la correspondencia de una acción definida por el usuario final con módulo de programación del usuario final se puede desarrollar a través de una red neural, un sistema experto, un componente de procesamiento basado en reglas o una máquina de vector de soporte (SVM). Un clasificador es una función que correlaciona un vector de atributos de entrada X = (.??>x?>x3>x4>-xn)' t a una confianza de que el ingreso pertenece una clase, esto es f(X)-confianza(clase) Dicha clasificación puede emplear un análisis basado en probabilística y/o estadística (por ejemplo, la actualización en el análisis de utilidades y costos) pronosticar o deducir una acción que un usuario desea que se realice automáticamente. En el caso de un módulo de programación del usuario final, los patrones de los eventos se pueden clasificar para determinar si se toma uno o una acción especificada. Otras tareas correspondientes a los patrones también se pueden emplear cómo será evidente para un experto en la técnica a leer esta descripción. Una SVM es un ejemplo de un clasificador que se puede usar. La SVM funciona buscando una de híper superficie en el espacio de entradas posibles, dicha híper superficie intenta separar los criterios de activación de los eventos sin activación. De manera intuitiva, esto hace que la clasificación sea correcta para probar datos que están cercanos, pero que no son idénticos a los datos de entrenamiento. Otros enfoques de clasificación del modelo dirigido y no dirigido incluyen, por ejemplo, naive Bayes, redes Bayesianas, árboles de decisión y modelos de clasificación probabilística que proveen diferentes patrones e independencia, todos estos se pueden emplear. La clasificación como se usa en la presente también incluye una regresión estadística que se utiliza para desarrollar modelos de prioridad.
Como será evidente a partir del especificación presente, los componentes revelados y descritos en la presente pueden emplear clasificadores que están entrenados explícitamente (por ejemplo, a través de datos de entrenamiento genérico) así como entrenados implícitamente (por ejemplo, al observar la conducta del usuario, recibir información extrínseca). Por ejemplo, las SVM están configuradas a través de una fase de aprendizaje o de entrenamiento dentro de un constructor Clasificador y un módulo de selección de características. De esta manera, los clasificadores se pueden usar para realice automáticamente diversas funciones, incluyendo sin limitarse a esto, determinar si se pueden enviar datos a un dispositivo. Debe ser evidente que los componentes y los métodos descritos proveen estructuras generales para la programación de usuario final. Entre los usos para dichos componentes de la programación de usuario final y sus métodos está la creación de tareas automatizadas definidas por el usuario final. También es posible una capacidad de hacer tipos similares de cambios en una manera de lote a un número grande de archivos. Además, al combinar más módulos complejos, como los módulos agregados que realizan múltiples tareas junto con los componentes de inteligencia artificial, es posible una conducta inteligente sofisticada. Un modo de operación posible del sistema de programación del usuario final 400 se describe a continuación. Un usuario final accede a la interfase de programación del usuario final 420 y define una o más acciones que el usuario final desea haber realizado en su computadora. La interfase de programación del usuario final 410 crea la acción definida por el usuario final 410 partiendo de la definición que proporcionó el usuario final y también crea un descriptor adecuado de dicha acción definida por el usuario final. La interfase de programación del usuario final 420 envía entonces el descriptor sobre la red 430 hacia el servidor de módulo 440. El servidor de módulo 440 envía el descriptor al componente correspondiente 450. El componente correspondiente 450 busca la librería de módulos 460 para ubicar uno módulo que proveerá la funcionalidad especificada por el usuario. El componente correspondiente entonces proporciona una lista de módulos ubicados para el servidor de módulo 450. El módulo servidor 450 envía la lista de los módulos ubicados sobre la red 430 a la interfase de programación del usuario final 420. El usuario final selecciona uno o más módulos de la lista y envía sus elecciones sobre la red 430 a servidor de módulo 450. Los módulos seleccionados entonces se envían sobre la red 430 a la interfase de programación del usuario final 420 y se instalan en la máquina del usuario final.
La figura 5 es un diagrama de bloques del sistema de un sistema de programación automático del usuario final 500. El sistema de programación automático del usuario final 500 se puede usar para crear de manera automática módulos de programas funcionales que están basados en la manera en que el usuario final interactúa realmente con la computadora mientras realiza varias tareas de cómputo. Específicamente, el sistema de programación automático del usuario final 500 puede supervisar y analizar los comandos del usuario y sus acciones en la computadora para identificar los patrones de las tareas que realiza comúnmente y que pueden automatizarse al crear un módulo de programación del usuario final. El sistema automático de programación del usuario final 500 incluye un monitor 510. El monitor 510 puede rastrear las acciones del usuario final, por ejemplo, en un entorno de una interfase gráfica del usuario (GUI), las elecciones que hace con el ratón en las acciones específicas que inicia a través de esas elecciones con el ratón. El monitor 510 funciona e interactúa con una plataforma operativa 520. Como reconocerán los expertos en la técnica, ciertas acciones del usuario final realizadas en un entorno de interfase como una GUI inician acciones que se realizan en realidad a través del entorno operativo como la plataforma operativa 520. Además de la capacidad de rastrear las operaciones y acciones del usuario final, el monitor 510 puede rastrear acciones que realizó la plataforma operativa 520 en nombre de, o como respuesta a un comando de un usuario final. El monitor 510 puede almacenar las acciones detectadas en un almacén de datos de acción 530. El almacén de datos de acción 530 puede ser una colección de objetos de acción, una lista de acciones del usuario final u otra forma adecuada que conserva un registro de la manera en que el usuario final ha interactuado con la computadora. El monitor puede analizar estas acciones de usuario para intentar determinar si un patrón de acciones está emergiendo o ha emergido. Por ejemplo, un usuario final puede estar trabajando con un lote grande de fotografías abriendo cada archivo de imagen individual en un programa de edición de fotografías e inserta un aviso de derechos de autor en el archivo de imagen. El monitor 510 puede determinar que el usuario final repite esta tarea y envía la ¡nformación sobre la tarea repetida a un módulo de programación de usuario final 540. El módulo de programación del usuario final 540 puede usar esta información sobre la tarea repetida (o serie de tareas) para crear una acción definida por el usuario final y ubicar las funciones en un almacén de datos de funciones 550 que se puede usar para realizar la tarea. Las funciones ubicadas se pueden usar para crear un programa del usuario final que pueda realizar de manera automática las tareas identificadas por el monitor 510. Es posible que estas acciones hasta la inclusión de la creación del programa del usuario final se pueda realizar como tareas de cómputo en segundo plano sin la intervención del usuario final. Cuando se ha creado el programa del usuario final, el sistema puede pedir al usuario final que determine si el usuario final desea que la computadora completa de manera automática las tareas que está realizando. En el caso del aviso de derechos de autor de fotografías que se proporcionó anteriormente, el sistema puede preguntar al usuario final sin la computadora debería insertar de manera automática en los avisos de derecho de autor en los archivos remanentes del directorio con el que está trabajando. La figura 6 es un diagrama de bloques del sistema de un sistema de programación seguro del usuario final 600. El sistema de programación seguro del usuario final 600 se puede usar para proveer un acceso controlado a un módulo de programación del usuario final. Adicionalmente, los programas de usuario final creados por el sistema de programación seguro del usuario final 600 se puede verificar para asegurar que dichos programas no se ejecutan sin privilegios escalados. El sistema de programación seguro del usuario final 600 incluye un módulo de programación del usuario final 610. El módulo de programación del usuario final 610 puede realizar todas las funciones reveladas y descritas anteriormente en conjunto con otros componentes de programación de usuario final a los que se hace referencia en otras figuras. Un módulo de autentificación de usuario 620 puede controlar el acceso al módulo de programación del usuario final 610 para limitar el acceso solamente a usuarios finales autorizados. Se puede usar una variedad de mecanismos y enfoques para implementar el módulo de autentificación del usuario 620. El módulo de autentificación del usuario 620 puede tener una variedad de forma de conformidad con las necesidades de la implementación específica o las opciones de elección. Específicamente, el módulo de autentificación del usuario 620 puede usar un esquema de seguridad que funciona de conformidad con uno o más paradigmas de seguridad sobre quién es usted, qué sabe usted y qué tiene usted. Los componentes que se pueden usar en las implementaciones basadas en el paradigma de seguridad de "quién es usted" incluyen una variedad de dispositivos basados en la biométrica, como exploradores de huellas digitales y exploradores de retina, entre otros. Para las implementaciones que usan el paradigma "qué sabe usted" se puede emplear un sistema de autentificación de nombre de usuario y contraseña. En la categoría de implementaciones basadas en el paradigma "qué tiene usted" se encuentran los sistemas que usan elementos de seguridad y detectores de proximidad, por ejemplo los sistemas basados en etiquetas de identificación con radiofrecuencia (RFID). De conformidad con el nivel deseado de seguridad, uno o más de los siguientes sistemas se pueden combinar como parte del módulo de autentificación del usuario 620. El módulo de autentificación del usuario 620 puede funcionar como un portero para el módulo de programación del usuario final 610. Para que un usuario pueda acceder y usar el módulo de programación del usuario final 610, el usuario final debe verificar su autoridad para usar el sistema al responder de manera adecuada a los retos de seguridad emitidos por el módulo de autentificación de usuario 620. De conformidad con una implementación específica, dichas respuesta se pueden proveer a través de una interfase del usuario especificada o a través de otros medios adecuados. Un módulo de autentificación de privilegios 630 puede supervisar la ejecución de los módulos de programa creados por el usuario final 640. Específicamente, el módulo de autentificación de privilegios 630 puede verificar si los módulos creados por el usuario final 640 intentan, durante la ejecución, acceder a componentes o realizar tareas que están reservadas para otros procesos o que no están permitidas.
Por ejemplo, un módulo creado por un usuario final, como uno de los módulos creados por el usuario final 640 puede intentar, como parte de su ejecución, modificar un conjunto de archivos que pertenecen a otro usuario final. El módulo de autentificación de privilegios 630 puede verificar si el usuario final que ejecuta el módulo creado por el usuario final tiene credenciales de acceso suficientes en el sistema de cómputo para acceder a los archivos del otro usuario final. Si no es así, el módulo de autentificación de privilegios 630 puede interrumpir o detener la ejecución del módulo creado por el usuario final. Adicionalmente, el módulo de autentificación de privilegios 630 puede realizar varias tareas relacionadas como el registro de eventos, por ejemplo los ataques de aumento de privilegios bajo sospecha y la emisión de advertencias para un usuario final. Haciendo referencia a las figuras 7-12, se presentan diagramas de flujo de conformidad con varios métodos o procedimientos. Mientras que, por razones de simplicidad para la explicación, la o las metodologías que se muestran en la presente, por ejemplo, en forma de un diagrama de flujo, se muestran y describen como una serie de actos, debe comprenderse y apreciarse que ninguno de los métodos y procedimientos ilustrados descritos y tampoco sus componentes con los que dichos métodos o procedimientos pueden usarse están imitados necesariamente por el orden de actos, de que algunos actos pueden presentarse en diferente orden y/o manera concurrente con otros actos de los que se muestran y describen en la presente. Por ejemplo, los expertos en la técnica comprenderán y apreciarán que una metodología se puede representar de manera alternativa con una serie de estados o eventos interrelacionados, como en un diagrama de estado. Adicionalmente, no todos los actos ilustrados pueden requerirse para implementar una metodología o procedimiento. La figura 7 es un diagrama de flujo de un flujo de procesamiento general 700 que se puede usar con varios componentes revelados y descritos en los párrafos anteriores en conjunto con otras figuras. El flujo de procesamiento general 700 se ilustra partiendo de la perspectiva de un usuario final y se puede usar para crear módulos de programa definidos por el usuario final que pueden complementar las funcionalidad es de cómputo preexistentes. Son posibles otros usos. El procesamiento del flujo de procesamiento general 700 comienza en el bloque INICIO 710 y continúa al bloque de proceso 720, en donde el usuario final accede a la interfase de programación del usuario final. La ¡nterfase de programación del usuario final puede ser una de las ¡nterfaces o módulos de programación del usuario final descritos o revelados en los párrafos anteriores en conjunto con otras figuras. El usuario final define un conjunto de acciones que se llevarán a cabo en el bloque de proceso 730. Estas acciones se pueden crear a partir de un espacio de trabajo temporal o se puede seleccionar de una lista de acciones disponibles que están soportadas por el sistema de cómputo en operación a través del usuario final. En el bloque de proceso 740, se identifica uno o más componentes que proveen la funcionalidad deseada. Estos componentes pueden ser programas autónomos, procesos en segundo plano, características de programas, programas ingleses o algún componente ejecutable adecuado. En el bloque de proceso 750 se crea un programa de usuario final integrado. La base normativa se actualiza en el bloque de proceso 760. El procesamiento concluye en el bloque FIN 770. La figura 8 es un diagrama de flujo de un flujo de procesamiento general 800 que se puede usar con varios componentes revelados y descritos en los párrafos anteriores en conjunto con otras figuras. El flujo de procesamiento general 800 se ilustra desde la perspectiva de un sistema de programación de usuario final y se puede usar para crear módulos de programa definidos por el usuario final que cuenta con componentes múltiples. Otros usos son posibles. El procesamiento del flujo de procesamiento general 800 inicia en el bloque INICIO 810 y continúa con el bloque de proceso 820. En el bloque de proceso 820, se obtiene un conjunto de acciones definidas por el usuario final. Este conjunto puede incluir múltiples acciones que el usuario final ha agrupado en conjunto y puede ordenarlo de la manera que desee. En el bloque de proceso 830, se selecciona una acción del conjunto de acciones definidas por el usuario final. El procesamiento continúa en el bloque de proceso 840 en donde se identifica una función que puede realizar la tarea de cómputo descrita por la acción definida por el usuario final. Dicha identificación puede basarse en una asociación o correspondencia definida previamente entre las acciones y funciones disponibles, usando un código descriptivo, o a través de algún otro enfoque adecuado. En el bloque de proceso 850, la acción seleccionada se correlaciona con la función identificada. En el bloque de decisión 860 se determina si aún hay acciones definidas por el usuario final remanentes en el conjunto que se obtuvo en el bloque de proceso 820. Si la determinación es no, el procesamiento continúa en el bloque de proceso 870, en donde se construye un módulo de programa del usuario final a partir de las funciones correlacionadas. Si la determinación es sí, el procesamiento regresa al bloque de proceso 830, en donde la siguiente acción definida por el usuario final se selecciona del conjunto. El procesamiento del bloque de proceso 870 termina en el bloque FIN 880.
La figura 9 es un diagrama de flujo de un flujo de procesamiento general 900 que se puede usar con varios componentes descritos y revelados en los párrafos anteriores en conjunto con otras figuras. El flujo de procesamiento general 900 se puede usar para ubicar y obtener los módulos de programación definidos por el usuario final creados previamente que proveen la funcionalidad que requiere el usuario. También son posibles otros usos para este flujo de procesamiento general. El procesamiento del flujo de procesamiento general 900 inicia en el bloque INICIO 910 y continúa en el bloque de proceso 920, en donde se obtiene un descriptor de un módulo de programa del usuario final. Este descriptor puede ser un código que describe la funcionalidad del módulo de programa del usuario final deseado, puede ser un nombre definido previamente o puede ser otro tipo de descriptor. El procesamiento continúa en el bloque de proceso 930, en donde se consulta un servidor usando el descriptor. En el bloque de proceso 940, el descriptor se correlaciona con un módulo de programas preexistentes. No es necesario que esta correspondencia tenga una correspondencia exacta, en su lugar puede ser una aproximación muy cercana o de mejor ajuste para el módulo deseado. Incluso las aproximaciones cercanas pueden ser útiles ya que dichas aproximaciones pueden reducir el tiempo de desarrollo del usuario al proveer una estructura que se puede modificar para crear el módulo deseado exacto en lugar de tener que construir un nuevo módulo partiendo de un espacio de trabajo temporal. En el bloque de proceso 950, el módulo de correspondencia se obtiene del servidor. Dicho módulo se instala en el cliente en el bloque de proceso 960. Una vez que esté instalado, el módulo se puede modificar como lo desee el usuario final o puede usarse como es. El procesamiento del flujo de procesamiento general 900 termina en el bloque FIN 970. La figura 10 es un diagrama de flujo de un flujo de procesamiento general 1000 que se puede usar con varios componentes descritos y revelados en párrafos anteriores en conjunto con otras figuras. El flujo de procesamiento general 1000 se puede usar para crear de manera automática módulos de programa definidos por el usuario final que pueden complementar la funcionalidad de cómputo preexistentes. El procesamiento comienza en el bloque INICIO 1010 y continúa hacia el bloque de proceso 1020, en donde las acciones del usuario final, como la operación de una computadora por el usuario final, son supervisadas. En el bloque de proceso 1030, se identifica un patrón de operación de la computadora. El procesamiento continúa en el bloque de proceso 1040, en donde se crea un indicador para obtener permiso del usuario final para crear un módulo de programa basado en las acciones supervisadas que realizó el usuario final. En el bloque de decisión 1050, se toma la determinación de si el usuario final autorizó la creación del módulo de programa del usuario final. Si la respuesta es sí, el procesamiento continúa en el bloque de proceso 1060, en donde se crea el módulo de programa del usuario final. Si la respuesta es no, el procesamiento regresa al bloque de proceso 1020 en donde se supervisa las acciones del usuario final. El procesamiento del bloque de proceso 1060 concluye en el bloque FIN 1070. La figura 11 es un diagrama de flujo de un flujo de procesamiento general 1100 que se puede usar con varios componentes revelados y descritos anteriormente en conjunto con otras figuras. El flujo de procesamiento general 1100 se puede usar para limitar el acceso al uso o creación de módulos de programa definidos por el usuario final que pueden complementar las funcionalidad de cómputo preexistentes sólo a los usuarios finales que tienen autorización previa de hacerlo. Otros usos son posibles. El procesamiento inicia en el bloque INICIO 1110 y continúa en el bloque de proceso 1120. En el bloque de proceso 1120, se produce el acceso a un módulo de programa del usuario final. El procesamiento continúa en el bloque de decisión 1130, en donde se determina si el usuario final que accede al módulo de programa del usuario final tiene la autorización de hacerlo. Si la respuesta es sí, el procesamiento continúa en el bloque de proceso 1140, en donde el usuario final construye un módulo de programa. El procesamiento del bloque de proceso 1140 continúa en el bloque de proceso 1150, en donde se ejecuta el módulo de programa del usuario final creado. En el bloque de decisión 1160 se determina si las funciones que se realizan a través del módulo de programación del usuario final pueden ser realizadas adecuadamente por el usuario final que invoca la ejecución del módulo. Si la respuesta es sí, la ejecución del módulo de programa del usuario final se permite que continúe en el bloque de proceso 1170. El procesamiento termina en el bloque FIN 1180. De manera similar, si la respuesta es negativa en cualquier bloque de decisión 1130 o 1160 el procesamiento concluye en el bloque FIN 1180. La figura 12 es un diagrama de flujo de un flujo de procesamiento general 1200 que puede seguir un programa de usuario final creado usando los componentes o métodos descritos y revelados en la presente. El procesamiento del flujo de procesamiento general 1200 comienza en el bloque INICIO 1210 y continúa en el bloque de proceso 1220, en donde sucede un evento activador, por ejemplo la llegada de un mensaje de correo electrónico. En el bloque de proceso 1230 un evento del sistema que indica que un evento activador se ha producido pasa a un programa de usuario final. El programa de usuario final usa el evento del sistema para iniciar el procesamiento en el bloque de proceso 1240. El procesamiento continúa en el bloque de proceso 1250, en donde el programa del usuario final aplica reglas o la lógica incluida en el programa del usuario final. En el bloque de proceso 1260, el programa del usuario final completa sus tareas de procesamiento de conformidad con el evento del sistema recibido y sus reglas o lógica. En el bloque de decisión 1270 se determina si el programa del usuario final completó sus tareas de manera satisfactoria. Si la respuesta es no, el procesamiento continúa en el bloque de proceso 1280 en donde se genera un mensaje de error y el usuario final recibe una notificación de dicho error. El procesamiento del bloque de proceso 1280 concluye en el bloque FIN 1290. De manera similar, si la determinación en el bloque de decisión 1270 es sí, el procesamiento concluye en el bloque FIN 1290. Para proveer un contexto adicional para la implementaclón, las figuras 12-13 y el siguiente análisis tienen la intención de proveer una descripción breve y general de un entorno de cómputo adecuado dentro del cual los componentes y métodos revelados y descritos pueden implementarse. Mientras que en los párrafos anteriores se han descrito diversas implementaciones específicas en el contexto general de las instrucciones ejecutables por una computadora de un programa de cómputo que se ejecuta en una computadora local y/o en una computadora remota, los expertos en la técnica reconocerán que son posibles otras implementaciones ya sea solas en conjunto con otros módulos de programa. En general, los módulos de programa incluyen rutinas, programas, componentes, estructuras de datos, etc. que realizan tareas particulares y/o implementan tipos de datos abstractos particulares. Adicionalmente, los expertos en la técnica apreciarán que los componentes y métodos descritos en los párrafos anteriores pueden practicarse con otras configuraciones de sistemas de cómputo, incluyendo sistemas de cómputo de un solo procesador o con procesadores múltiples, minicomputadoras, computadoras centrales, así como computadoras personales, dispositivos de cómputo de mano, aparatos electrónicos programables por el consumidor y/o basados en microprocesadores, y similares, cada uno de los cuales se puede comunicar de manera operativa con uno o más dispositivos asociados. Algunos aspectos ilustrados de los componentes y métodos revelados y descritos también pueden practicarse en entornos de cómputo distribuido, en donde ciertas tareas se realizan mediante dispositivos de procesamiento remoto que están enlazados a través de una red de comunicaciones u otra conexión de datos. No obstante algunos de estos aspectos, si no todos, se pueden practicar en computadoras autónomas. En un entorno de cómputo distribuido, los módulos de programa se pueden ubicar en dispositivos de almacenamiento de memoria local y/o remoto. Haciendo referencia a la figura 13, un entorno ejemplar 1300 para implementar diversos aspectos de la invención incluye una computadora 1312. La computadora 1312 incluye una unidad de procesamiento 1314, una memoria del sistema 1316 y una barra de distribución del sistema 1318. La barra de distribución del sistema 1318 acopla los componentes del sistema incluyendo, sin limitarse a éstos, la memoria del sistema 1316 a la unidad de procesamiento 1314. La unidad de procesamiento entre cientos 14 puede ser alguno de varios procesadores disponibles. Microprocesadores dobles y otras arquitecturas de procesadores múltiples se pueden emplear también como la unidad de procesamiento 1314. La barra de distribución del sistema 1318 puede ser cualquiera de diversos tipos de estructuras de barra de distribución incluyendo la barra de distribución de memoria o controlador de memoria, una barra de distribución periférica o una barra de distribución externa, y/o una barra de distribución local que usa cualquier variedad de arquitecturas de barras de distribución disponibles que ¡ncluyen, sin limitarse a esto, barra de distribución de arquitectura de estándar industrial (ISA), barra de distribución de arquitectura de microcanal (MCA), barra de distribución de arquitectura de estándar industrial mejorado (EISA), electrónicos de unidad inrteligente (IDE), barra de distribución local VESA (VLB), barra de distribución de interconexión de componentes periféricos (PCI), barra de distribución de tarjeta, barra de distribución en serie universal (USB), puerto de gráficos avanzado (AGP), barra de distribución de la asociación internacional de tarjetas de memoria para computadoras personales (PCMCIA), alambre termosensible (IEEE 1394) y una interfase de sistemas de cómputo pequeños (SCSI). La memoria del sistema 1316 ¡ncluye memoria no permanente 1320 y memoria permanente 1322. El sistema básico de entradas/salidas (BIOS), que ¡ncluye las rutinas básicas para transferir ¡nformación entre los elementos dentro de la computadora 1312, por ejemplo durante el arranque, se almacena en una memoria permanente 1322. A manera de ilustración, innovación limitante, la memoria permanente 1322 puede incluir memoria de sólo lectura (ROM), memoria de sólo lectura programable (PROM), memoria de sólo lectura programable eléctricamente (EPROM), memoria de sólo lectura borrable eléctricamente (EEPROM) o una memoria instantánea. La memoria volátil y 1320 incluye memoria de acceso aleatorio (RAM), la cual actúa como una memoria intermedia externa. A manera de ilustración y no de limitante, una RAM está disponible de varias formas, por ejemplo RAM síncrona (SRAM), RAM dinámica (DRAM), DRAM síncrona (SDRAM), SDRAM con doble velocidad de datos (DDR SDRAM), SDRAM mejorada (ESDRAM), DRAM de enlace sincronizado (Synchiink) (SLDRAM) y RAM de rambus directo (DDRAM). La computadora 1312 también incluye otros medios de almacenamiento de cómputo que pueden ser extraíble/no extraíble, permanente/no permanente. Por ejemplo, la figura 13 ilustra un almacenamiento en disco 1324. El almacenamiento en disco 1324 incluye, sin limitarse a esto, dispositivos similares a una unidad de disco magnético, unidad de disco flexible, única de cinta, unidad Jaz, unidad Zip, unidad LS-100, tarjeta de memoria instantánea o una tarjeta de memoria. Además, el almacenamiento en disco 1324 puede incluir medios de almacenamiento por separado o en conjunto con otros medios de almacenamiento incluyendo, sin limitarse a esto, una unidad de disco magnético como un dispositivo ROM de disco compacto (CD-ROM), una unidad para la grabación de discos compactos (CD-R), una unidad reescribible para discos compactos (CD-RW) o una unidad ROM de disco versátil digital (DVD-ROM). Para facilitar la conexión de los dispositivos de almacenamiento en disco 1324 a la barra de distribución del sistema 1318, típicamente se usa una interfase extraíble o no extraíble como una interfase 1326. Debe apreciarse que en la figura 13 se describen programas y sistemas de programación que actúan como un intermediario entre los usuarios y los recursos básicos en la computadora descritos en entorno operativo adecuado 1300. Dichos programas y sistemas de programación ¡ncluyen un sistema operativo 1328. El sistema operativo 1328, que puede almacenarse en el almacenamiento en disco 1324, actúa para controlar y asignar recursos del sistema de cómputo 1312. Las aplicaciones del sistema 1330 aprovechan la gestión de recursos a través del sistema operativo 1328 a través de los módulos de programa 1322 y los datos del programa 1334 almacenados en la memoria del sistema 1316 o en almacenamiento en disco 1324. Debe ser evidente que la presente invención se puede ¡mplementar con diversos sistemas operativos o combinaciones de sistemas operativos.
Un usuario Introduce comandos e información en una computadora 1312 a través de dispositivos de entrada 1336.
Los dispositivos de entrada 1336 incluyen, sin limitarse a esto, un dispositivo puntero como un ratón, una esfera de trazo, un lápiz óptico, una almohadilla sensible al tacto, un teclado, un micrófono, una palanca de mando, una almohadilla de juegos, una antena parabólica, un digitalizador, una tarjeta de sincronización para TV, una cámara digital, una cámara de vídeo digital, una cámara para red y similares. Estos y otros dispositivos de entrada se conectan a la unidad de procesamiento 1314 a través de la barra de distribución del sistema 1318 vía puertos de interfase 1338. Los puertos de interfase 1338 ¡ncluyen, por ejemplo, un puerto en serie, un puerto paralelo, un puerto de juegos y una barra de distribución en serie universal (USB). Los dispositivos de salida 1340 usan algunos del mismo tipo de puertos que los dispositivos de entrada 1336. De esta manera, por ejemplo, un puerto USB se puede usar para proveer la entrada a la computadora 1312 y para emitir información de la computadora 1312 a un dispositivo de salida 1340. Un adaptador de salida 1342 se proporciona para ilustrar que hay algunos dispositivos de salida 1340 como monitores, altavoces e impresoras entre otros dispositivos de salida 1340, que requieren adaptadores especiales. Los adaptadores de salida 1342 incluyen, a manera de ilustración y no así de limitante tarjetas de vídeo y de sonido que proporcionan un medio de conexión entre el dispositivo de salida 1340 y la barra de distribución del sistema 1318. Debe observarse que otros dispositivos y/o sistemas de dispositivos proporcionan capacidades tanto de entrada como de salida, por ejemplo computadoras remotas 1344. La computadora 1312 puede funcionar en un entorno de red usando conexiones lógicas a una o más computadoras remotas, como las computadoras remotas 1344. Las computadoras remotas 1344 pueden ser una computadora personal, un servidor, un enrutador, una PC en red, una estación de trabajo, un aparato electrodoméstico basado en un microprocesador, un dispositivo cliente u otro nodo de red común y similares, típicamente incluye muchos o todos los elementos descritos anteriormente con relación a la computadora 1312. Por razones de brevedad, sólo se ilustra un dispositivo de almacenamiento de memoria 1346 con computadoras remotas 1344. Las computadoras remotas 1344 están conectadas lógicamente a la computadora 1312 a través de una interfase de red 1348 y después están conectadas físicamente a través de una conexión de comunicación 1350. La interfase de red 1348 incluye redes de comunicación cableadas y/o inalámbricas, como redes de área local (LAN) y redes de área extensa (WAN). Las tecnologías de LAN incluyen interfases de datos distribuidos por fibra (FDDI), interfases de datos distribuidos por cobre (CDDI), Ethernet, anillo de fichas y similares. Las tecnologías de WAN incluyen, sin limitarse a esto, enlaces de punto a punto, redes de conmutación de circuitos como las redes digitales de servicios integrados (RDSI) variaciones de éstas, redes de conmutación de paquetes y líneas digitales de abonado (DSL). Las conexiones de comunicación entre 1350 se refieren a los componentes físicos de cómputo/programas y sistemas de programación que se emplean para conectar la interfase de red 1348 a la barra de distribución 1318. Aunque se muestra una conexión de comunicaciones 1350 por claridad en la ilustración dentro de la computadora 1312. Los componentes físicos de cómputo/programas y sistemas de programación necesarios para la conexión a la interfase de red 1248 incluye, sólo con el objetivo de ejemplificar, tecnología interna y externa como, modems incluyendo modems de grado telefónico regular, modems por cable y modems DSL, adaptadores de RDSI y tarjetas Ethernet. La figura 14 es un diagrama de bloques esquemático de un entorno de cómputo muestra 1400 dentro del cual los componentes y métodos revelados y descritos se pueden usar. El sistema 1400 incluye uno más clientes 1410. Los clientes 1410 pueden ser componentes físicos de cómputo y/o programas y sistemas de programación (por ejemplo, hilos, procesos, dispositivos de cómputo). El sistema 1400 también incluye uno o más servidores 1420. Los servidores 1420 pueden ser componentes físicos de cómputo y/o programas y sistemas de programación (por ejemplo, hilos, procesos, dispositivos de cómputo). Los servidores 1420 pueden alojar hilos o procesos para realizar transformaciones al emplear los componentes o métodos revelados y descritos, por ejemplo. Un medio posible de comunicación entre un cliente 1410 y un servidor 1420 puede ser en forma de un paquete de datos adaptado para que sea transmitido entre dos procesos de cómputo o más. El sistema 1400 incluye una estructura de comunicación 1440 que se puede emplear para facilitar las comunicaciones entre los clientes 1410 y los servidores 1420. Los clientes 1410 de conectan de manera que puedan funcionar a un almacén de datos cliente 1450, o más que se puede emplear para almacenar información local a los clientes 1410. De manera similar, los servidores 1420 se conectan de manera operable a uno o más almacenes de datos de servidor 1430 que se pueden emplear para almacenar información local para los servidores 1340. Lo que se ha descrito en los párrafos anteriores incluye ejemplos de la invención presente. Desde luego, no es posible describir cada una de las combinaciones concebibles de los componentes o metodologías con el objetivo de describir la presente invención, sin embargo, un experto en la técnica podrá reconocerse que son posibles diversas combinaciones y permutaciones de la presente invención. De esta manera, la presente invención tiene la intención de incluir dichas modificaciones, alteraciones y variaciones que caen dentro del espíritu y alcance de las reivindicaciones anexas. En particular y respecto a las diversas funciones realizadas por los componentes, dispositivos, circuitos, sistemas y similares descritos en los párrafos anteriores, los términos (incluyendo una referencia a "medios") usados para describir dichos componentes tienen la intención de corresponder, a menos que se indique de otra manera, a cualquier componente que realice la función especificada del componente descrito (por ejemplo, un equivalente funcional), aunque no sea equivalente estructuralmente a la estructura descrita, la cual realiza la función en el aspecto ejemplar ilustrado en la presente de la invención. A este respecto, se reconocerá que la ¡nvención incluye un sistema, así como un medio legible por una computadora que tiene ¡nstrucciones ejecutables por una computadora para realizar los actos y/o eventos de los diversos métodos de la invención. Además, aunque se pudo haber descrito una característica particular de la invención con respecto a sólo una de diversas implementaciones, dicha característica se puede combinar con una o más características diferentes de las otras implementaciones como puede desearse o sea útil para cualquier aplicación determinada o particular. Adicionalmente, en la extensión de que los términos "incluye" y "incluyendo" y las variantes de éstos se usan tanto en la descripción detallada como las reivindicaciones, estos términos en la intención de ser incluyentes de una manera similar al término "comprende".

Claims (20)

  1. REIVINDICACIONES 1. Un sistema para crear tareas de procesamiento de datos, que comprende: un módulo de programación del usuario final que permite que un usuario final asocie una o más acciones definidas por el usuario final con al menos un componente de cómputo disponible; y una plataforma normativa que provee una relación de la o las acciones definidas por el usuario con el componente de cómputo disponible, de manera que se crea un programa de usuario final integrado usando el componente de cómputo disponible.
  2. 2. El sistema tal y como se describe en la reivindicación 1, caracterizado además porque el componente de cómputo disponible es un sistema operativo.
  3. 3. El sistema tal y como se describe en la reivindicación 1, caracterizado además porque el componente de cómputo disponible es una aplicación de supervisión.
  4. 4. El sistema tal y como se describe en la reivindicación 1, caracterizado además porque el componente de cómputo disponible es una aplicación del usuario.
  5. 5. Un medio legible por computadora que comprende estructuras de datos que pueden ser interpretadas por una máquina, las estructuras de datos que pueden ser interpretadas por una máquina incluyen los componentes tal y como se describen en la reivindicación 1.
  6. 6. Una señal de datos que comprende datos que pueden ser interpretados por una máquina, los datos que pueden ser interpretados por una máquina incluyen estructuras de datos que incluyen los componentes tal y como se describen en la reivindicación 1.
  7. 7. Un método para crear componentes de procesamiento de datos, que comprende: especificar una acción definida por el usuario final que se realizará al suceder un evento; Identificar un primer componente de los programas y sistemas de programación que puede realizar la acción definida por el usuario final; y crear un segundo componente de los programas y sistemas de programación que usa el primer componente de los programas y sistemas de programación para realizar la acción definida por el usuario.
  8. 8. El método tal y como se describió en la reivindicación 7, que, además, comprende: crear un control gráfico dentro de un componente de los programas y sistemas de programación preexistentes, en donde el control gráfico activa el segundo componente de los programas y sistemas de programación.
  9. 9. El método tal y como se describió en la reivindicación 7, que, además, comprende: crear un icono para una interfase gráfica del usuario, en donde el icono activa el segundo componente de los programas y sistemas de programación.
  10. 10. El método tal y como se describió en la reivindicación 7, en donde la identificación de un primer componente de los programas y sistemas de programación ¡ncluye identificar un componente de un sistema operativo.
  11. 11. El método tal y como se describió en la reivindicación 8, en donde la identificación de un primer componente de los programas y sistemas de programación incluye identificar un componente de un proceso de supervisión.
  12. 12. El método tal y como se describió en la reivindicación 9, en donde la identificación de un primer componente de los programas y sistemas de programación ¡ncluye identificar un componente de un proceso en segundo plano (daemon).
  13. 13. El método tal y como se describió en la reivindicación 7, en donde la identificación de un primer componente de los programas y sistemas de programación ¡ncluye identificar un componente de una aplicación del usuario.
  14. 14. Un medio legible por computadora que comprende datos interpretados por una máquina que pueden ocasionar que un dispositivo de cómputo realice el método tal y como se describe en la reivindicación 13
  15. 15. Una señal de datos que comprende datos que pueden ser interpretados por una máquina que es capaz de hacer que un dispositivo de cómputo realice el método tal y como se describe en la reivindicación 13.
  16. 16. Un sistema para crear componentes de procesamiento de datos, que comprende: medios para especificar una acción definida por un usuario final que se realizará con un evento de comandos; medios para identificar un primer componente de los programas y sistemas de programación que es capaz de realizar la acción definida por el usuario final especificada; y medios para crear un segundo componente de los programas y sistemas de programación que usa el primer componente de los programas y sistemas de programación para realizar la acción definida por el usuario final.
  17. 17. El sistema tal y como se describió la reivindicación 16, caracterizado además porque comprende: medios para crear un control gráfico dentro de un componente de los programas y sistemas de programación preexistentes, en donde el control gráfico activa el segundo componente de los programas y sistemas de programación.
  18. 18. El sistema tal y como se describe en la reivindicación 16, caracterizado además porque comprende: medios para crear un mico no para una interfase gráfica del usuario, en donde el icono activa el segundo componente de los programas y sistemas de programación.
  19. 19. El sistema tal y como se describe en la reivindicación 16, caracterizado además porque comprende medios para supervisar las acciones el usuario que se pueden recolectar para crear una acción definida por el usuario final.
  20. 20. El sistema tal y como se describe en la reivindicación 19, caracterizado además porque comprende medios para crear un módulo de programas que se basa en la acción definida por el usuario final.
MXPA06001211A 2005-02-28 2006-01-30 Activacion de datos del usuario final. MXPA06001211A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US65733005P 2005-02-28 2005-02-28
US11/178,845 US20060195411A1 (en) 2005-02-28 2005-07-11 End user data activation

Publications (1)

Publication Number Publication Date
MXPA06001211A true MXPA06001211A (es) 2006-09-19

Family

ID=36616918

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA06001211A MXPA06001211A (es) 2005-02-28 2006-01-30 Activacion de datos del usuario final.

Country Status (10)

Country Link
US (1) US20060195411A1 (es)
EP (1) EP1696319A3 (es)
JP (1) JP2006244466A (es)
KR (1) KR20060095450A (es)
AU (1) AU2006200224B2 (es)
BR (1) BRPI0600196A (es)
CA (1) CA2532717A1 (es)
MX (1) MXPA06001211A (es)
RU (1) RU2419841C2 (es)
TW (1) TW200630890A (es)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8561069B2 (en) * 2002-12-19 2013-10-15 Fujitsu Limited Task computing
US8117280B2 (en) * 2003-12-12 2012-02-14 Fujitsu Limited Task computing
TWI293317B (en) * 2003-12-31 2008-02-11 Ind Tech Res Inst Method for preparing polymer microspheres by aqueous phase-aqueous phase emulsion process
JP2007537511A (ja) * 2004-04-30 2007-12-20 マイクロソフト コーポレーション 規則を用いたエンドユーザアプリケーションカスタマイズ
US8065336B2 (en) 2004-12-20 2011-11-22 Fujitsu Limited Data semanticizer
US8972872B2 (en) * 2006-03-27 2015-03-03 Fujitsu Limited Building computing applications based upon metadata
US7836002B2 (en) * 2006-06-27 2010-11-16 Microsoft Corporation Activity-centric domain scoping
US20070299713A1 (en) * 2006-06-27 2007-12-27 Microsoft Corporation Capture of process knowledge for user activities
US20070299631A1 (en) * 2006-06-27 2007-12-27 Microsoft Corporation Logging user actions within activity context
US8364514B2 (en) * 2006-06-27 2013-01-29 Microsoft Corporation Monitoring group activities
US20070300185A1 (en) * 2006-06-27 2007-12-27 Microsoft Corporation Activity-centric adaptive user interface
US7970637B2 (en) * 2006-06-27 2011-06-28 Microsoft Corporation Activity-centric granular application functionality
US7761393B2 (en) * 2006-06-27 2010-07-20 Microsoft Corporation Creating and managing activity-centric workflow
US20070297590A1 (en) * 2006-06-27 2007-12-27 Microsoft Corporation Managing activity-centric environments via profiles
US20070300225A1 (en) * 2006-06-27 2007-12-27 Microsoft Coporation Providing user information to introspection
US20080221478A1 (en) * 2007-03-07 2008-09-11 Ritchie Paul G Integrated Imaging and Biopsy System with Integrated Control Interface
US8347265B1 (en) * 2007-03-27 2013-01-01 Network Appliance, Inc. Method and apparatus for generating a command line interpreter
US8589821B1 (en) * 2007-08-27 2013-11-19 Sandia Corporation Storyboard method of end-user programming with natural language confirmation
JP5052367B2 (ja) * 2008-02-20 2012-10-17 株式会社リコー 画像処理装置、認証パッケージインストール方法、認証パッケージインストールプログラム、及び記録媒体
US9563877B2 (en) * 2008-03-11 2017-02-07 Microsoft Technology Licensing, Llc Customizable controls provided by a messaging application for performing selected actions
US9594602B1 (en) 2009-12-31 2017-03-14 Lenovoemc Limited Active folders
US9959150B1 (en) * 2009-12-31 2018-05-01 Lenovoemc Limited Centralized file action based on active folders
US9032412B1 (en) 2009-12-31 2015-05-12 Lenovoemc Limited Resource allocation based on active folder activity
RU2490711C1 (ru) * 2012-07-31 2013-08-20 Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом" - Госкорпорация "Росатом" Блок кодовый сменный
TWI557576B (zh) * 2014-08-15 2016-11-11 Chunghwa Telecom Co Ltd Method and System for Predicting Calculation of Timing Data
CN109783144B (zh) * 2017-11-13 2022-03-25 深圳市创客工场科技有限公司 虚拟环境交互实现中变量的处理方法、装置和存储介质

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5446885A (en) * 1992-05-15 1995-08-29 International Business Machines Corporation Event driven management information system with rule-based applications structure stored in a relational database
US5944819A (en) * 1993-02-18 1999-08-31 Hewlett-Packard Company Method and system to optimize software execution by a computer using hardware attributes of the computer
US5495603A (en) * 1993-06-14 1996-02-27 International Business Machines Corporation Declarative automatic class selection filter for dynamic file reclassification
JPH07306769A (ja) * 1994-05-11 1995-11-21 Oki Electric Ind Co Ltd マルチウィンドウ情報処理装置
US6496872B1 (en) * 1994-05-16 2002-12-17 Apple Computer, Inc. Computer system for automatically instantiating tasks designated by a user
US5831606A (en) * 1994-12-13 1998-11-03 Microsoft Corporation Shell extensions for an operating system
US5751914A (en) * 1995-10-10 1998-05-12 International Business Machines Corporation Method and system for correlating a plurality of events within a data processing system
US5925108A (en) * 1995-11-03 1999-07-20 Novell, Inc. Event notification in a computer system
US6272559B1 (en) * 1997-10-15 2001-08-07 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading for event notification in a distributed system
US5828376A (en) * 1996-09-23 1998-10-27 J. D. Edwards World Source Company Menu control in a graphical user interface
US6061740A (en) * 1996-12-09 2000-05-09 Novell, Inc. Method and apparatus for heterogeneous network management
US5917489A (en) * 1997-01-31 1999-06-29 Microsoft Corporation System and method for creating, editing, and distributing rules for processing electronic messages
US6233726B1 (en) * 1997-02-05 2001-05-15 Sybase, Inc. Development system with reference card and parameter wizard methodologies for facilitating creation of software programs
US6142684A (en) * 1997-04-03 2000-11-07 Hewlett-Packard Company Joining a plurality of type hierarchies in an object oriented programming language without inheriting from a base class and without modification to the type hiearchies
US6268852B1 (en) 1997-06-02 2001-07-31 Microsoft Corporation System and method for facilitating generation and editing of event handlers
US6209125B1 (en) * 1997-06-03 2001-03-27 Sun Microsystems, Inc. Method and apparatus for software component analysis
US5966707A (en) * 1997-12-02 1999-10-12 International Business Machines Corporation Method for managing a plurality of data processes residing in heterogeneous data repositories
US6272521B1 (en) * 1997-12-08 2001-08-07 Object Technology Licensing Corporation Apparatus and method for allowing object-oriented programs created with different framework versions to communicate
US6006035A (en) * 1997-12-31 1999-12-21 Network Associates Method and system for custom computer software installation
US6401097B1 (en) * 1998-01-23 2002-06-04 Mccotter Thomas M. System and method for integrated document management and related transmission and access
WO1999040512A1 (en) 1998-02-09 1999-08-12 Reuters, Ltd. Method and system for user defined interactions between plurality of active software applications
WO1999046689A1 (en) 1998-03-12 1999-09-16 Crossworlds Software, Inc. Execution of extended activity diagrams by code generation
US6133915A (en) * 1998-06-17 2000-10-17 Microsoft Corporation System and method for customizing controls on a toolbar
US6237135B1 (en) * 1998-06-18 2001-05-22 Borland Software Corporation Development system with visual design tools for creating and maintaining Java Beans components
JP4026940B2 (ja) * 1998-07-22 2007-12-26 松下電器産業株式会社 プログラム変換装置
US6519597B1 (en) * 1998-10-08 2003-02-11 International Business Machines Corporation Method and apparatus for indexing structured documents with rich data types
US6341369B1 (en) * 1998-12-03 2002-01-22 International Business Machines Corporation Method and data processing system for specifying and applying rules to classification-based decision points in an application system
US6633888B1 (en) * 1999-02-03 2003-10-14 International Business Machines Corporation Method and apparatus for visually creating and testing object oriented components
US6738964B1 (en) * 1999-03-11 2004-05-18 Texas Instruments Incorporated Graphical development system and method
US6407753B1 (en) * 1999-05-04 2002-06-18 International Business Machines Corporation System and method for integrating entities via user-interactive rule-based matching and difference reconciliation
US6332163B1 (en) * 1999-09-01 2001-12-18 Accenture, Llp Method for providing communication services over a computer network system
US6721727B2 (en) * 1999-12-02 2004-04-13 International Business Machines Corporation XML documents stored as column data
WO2001055898A1 (en) * 2000-01-14 2001-08-02 Synquiry Technologies, Ltd. Software composition using graph types, graphs, and agents
US6865566B2 (en) * 2000-05-09 2005-03-08 Fair Isaac Corporation Approach for re-using business rules
US7412501B2 (en) * 2000-06-07 2008-08-12 Microsoft Corporation Event consumers for an event management system
US6892228B1 (en) * 2000-08-23 2005-05-10 Pure Matrix, Inc. System and method for on-line service creation
AUPQ998100A0 (en) * 2000-09-08 2000-10-05 Frostbyte Consulting Pty Ltd Application development
US6734882B1 (en) * 2000-09-29 2004-05-11 Apple Computer, Inc. Combined menu-list control element in a graphical user interface
US6633889B2 (en) * 2001-01-17 2003-10-14 International Business Machines Corporation Mapping persistent data in multiple data sources into a single object-oriented component
US20040205706A1 (en) * 2001-05-31 2004-10-14 Portwood Michael T. Method for the automatic generation of computer programs which interact with existing objects
US7549129B2 (en) * 2001-10-31 2009-06-16 Microsoft Corporation Computer system with enhanced user interface for images
CA2360645C (en) * 2001-10-31 2006-03-07 Ibm Canada Limited-Ibm Canada Limitee Dynamic generic framework for distributed tooling
CA2371646A1 (en) * 2002-02-13 2003-08-13 Ibm Canada Limited-Ibm Canada Limitee Configuration model for configuring an adapter software component to selectively access software objects and object editor using instance of same
US20030192041A1 (en) * 2002-04-03 2003-10-09 Mentze Duane E. software distribution system and method
US20050223100A1 (en) * 2002-05-17 2005-10-06 Koninklijke Philips Electronics N.V. Rendering a first media type content on a browser
US7181694B2 (en) * 2002-05-31 2007-02-20 Sap Aktiengesellschaft Software customization objects for programming extensions associated with a computer system
US7346891B2 (en) * 2002-07-05 2008-03-18 Eka Systems Inc. System and method for automating generation of an automated sensor network
US20040012627A1 (en) * 2002-07-17 2004-01-22 Sany Zakharia Configurable browser for adapting content to diverse display types
JP4141799B2 (ja) * 2002-10-31 2008-08-27 シャープ株式会社 着脱可能な記録媒体、記録再生装置、記録再生装置の環境設定方法、および、環境設定プログラム
US7203667B2 (en) * 2002-11-11 2007-04-10 Zxibix, Inc. System and method of facilitating and evaluating user thinking about an arbitrary problem using an archetype process
US7409405B1 (en) * 2002-12-06 2008-08-05 Adobe Systems Incorporated File dispatcher for multiple application targets
US7383497B2 (en) * 2003-01-21 2008-06-03 Microsoft Corporation Random access editing of media
US7650591B2 (en) * 2003-01-24 2010-01-19 Bea Systems, Inc. Marshaling and un-marshaling data types in XML and Java
US7788588B2 (en) * 2003-02-07 2010-08-31 Microsoft Corporation Realizing users' preferences
US20040193575A1 (en) * 2003-03-25 2004-09-30 Chia-Hsun Chen Path expressions and SQL select statement in object oriented language
US20070150855A1 (en) * 2003-05-12 2007-06-28 Jeong An M Method and system of developing a software with utilizing extended metadata of component under component-based development environment
US20050060281A1 (en) * 2003-07-31 2005-03-17 Tim Bucher Rule-based content management system
US7734690B2 (en) * 2003-09-05 2010-06-08 Microsoft Corporation Method and apparatus for providing attributes of a collaboration system in an operating system folder-based file system
US20050262481A1 (en) * 2003-09-30 2005-11-24 Coulson Julia C Customizable toolbar creation and control
US20070083726A1 (en) * 2003-10-13 2007-04-12 Koninklijke Philips Electronics N.V. Storage allocation per application
US20050091181A1 (en) * 2003-10-23 2005-04-28 Mckee Timothy P. System and method for the presentation of items stored on a computer
US20050222996A1 (en) * 2004-03-30 2005-10-06 Oracle International Corporation Managing event-condition-action rules in a database system
WO2005111850A2 (en) * 2004-04-30 2005-11-24 Microsoft Corporation End-user application customization using rules
JP2007537511A (ja) * 2004-04-30 2007-12-20 マイクロソフト コーポレーション 規則を用いたエンドユーザアプリケーションカスタマイズ
US7921076B2 (en) * 2004-12-15 2011-04-05 Oracle International Corporation Performing an action in response to a file system event
US7565663B2 (en) * 2005-02-28 2009-07-21 Microsoft Corporation Automated data organization

Also Published As

Publication number Publication date
US20060195411A1 (en) 2006-08-31
JP2006244466A (ja) 2006-09-14
EP1696319A2 (en) 2006-08-30
RU2419841C2 (ru) 2011-05-27
EP1696319A3 (en) 2008-01-02
TW200630890A (en) 2006-09-01
AU2006200224A1 (en) 2006-09-14
BRPI0600196A (pt) 2006-10-24
RU2006102528A (ru) 2007-08-10
CA2532717A1 (en) 2006-08-28
KR20060095450A (ko) 2006-08-31
AU2006200224B2 (en) 2011-03-31

Similar Documents

Publication Publication Date Title
MXPA06001211A (es) Activacion de datos del usuario final.
Tian et al. {SmartAuth}:{User-Centered} authorization for the internet of things
US9418227B2 (en) Detecting malicious software
US7185192B1 (en) Methods and apparatus for controlling access to a resource
US6973577B1 (en) System and method for dynamically detecting computer viruses through associative behavioral analysis of runtime state
CN101894225B (zh) 聚集反病毒软件应用程序的知识库的系统和方法
TWI463405B (zh) 用於間碟軟體偵測機制之系統、方法與電腦儲存裝置
US8286254B2 (en) Behavioral learning for interactive user security
US8621278B2 (en) System and method for automated solution of functionality problems in computer systems
US6981279B1 (en) Method and apparatus for replicating and analyzing worm programs
US7013395B1 (en) Method and tool for network vulnerability analysis
US6108799A (en) Automated sample creation of polymorphic and non-polymorphic marcro viruses
CA2533797C (en) Automated data organization
US20060101282A1 (en) System and method of aggregating the knowledge base of antivirus software applications
US20090064000A1 (en) SYSTEMS, METHODS AND COMPUTER PRODUCTS TO AUTOMATICALLY COMPLETE a GUI TASK
CN103679031A (zh) 一种文件病毒免疫的方法和装置
KR101676366B1 (ko) 사이버 공격 대응을 위한 악성코드 침해 경로 및 행위 추적을 수행하는 침해 공격 추적 시스템 및 방법
CN107409134B (zh) 法证分析方法
US20080307505A1 (en) Determining roles for automated tasks in a role-based access control environment
US11636219B2 (en) System, method, and apparatus for enhanced whitelisting
JP4093811B2 (ja) ユーザアクセス権制御装置及び方法
ZA200510087B (en) End user data activation
US10089261B2 (en) Discriminating dynamic connection of disconnectable peripherals
CN111125701A (zh) 文件检测方法、设备、存储介质及装置
US20230038774A1 (en) System, Method, and Apparatus for Smart Whitelisting/Blacklisting

Legal Events

Date Code Title Description
FG Grant or registration