ES2692120T3 - Procedimiento y aparato de generación de interfaces de usuario a base de automatización con flexibilidad total - Google Patents

Procedimiento y aparato de generación de interfaces de usuario a base de automatización con flexibilidad total Download PDF

Info

Publication number
ES2692120T3
ES2692120T3 ES05104723.1T ES05104723T ES2692120T3 ES 2692120 T3 ES2692120 T3 ES 2692120T3 ES 05104723 T ES05104723 T ES 05104723T ES 2692120 T3 ES2692120 T3 ES 2692120T3
Authority
ES
Spain
Prior art keywords
logical
logical form
visualization
objective
model
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
ES05104723.1T
Other languages
English (en)
Inventor
Freddy Kristiansen
Jens Moller-Pedersen
Jesper Theil Hansen
Per Bendsen
Peter Christensen
Peter Sloth
Peter Villadsen
Uffe Kjall
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Application granted granted Critical
Publication of ES2692120T3 publication Critical patent/ES2692120T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Digital Computer Display Output (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Un procedimiento implementado por ordenador de generación de una interfaz de usuario de formulario controlada por modelo para representar un modelo de aplicación, comprendiendo el procedimiento: recibir una entrada de selección para seleccionar cuál de una pluralidad de diferentes tipos de formulario lógico usar para generar una interfaz de usuario de formulario para representar un modelo de aplicación; proporcionar un primer mapa declarativo; generar un formulario lógico independiente del objetivo de visualización usando el modelo de aplicación, el tipo de formulario lógico seleccionado y el primer mapa declarativo, en el que generar el formulario lógico independiente del objetivo de visualización usando el primer mapa declarativo comprende además correlacionar tipos de propiedades de dato del modelo de aplicación con controles lógicos independientes del objetivo visualización en el formulario lógico independiente del objetivo de visualización; correlacionar el formulario lógico independiente del objetivo de visualización con un formulario físico usando un segundo mapa declarativo, en el que el formulario físico tiene una pluralidad de controles físicos disponibles para su uso en la presentación del formulario lógico en un objetivo de visualización, comprendiendo el uso del segundo mapa declarativo correlacionar cada uno de los controles lógicos en el formulario lógico con uno de la pluralidad de controles físicos disponibles; y presentar la interfaz de usuario de formulario en tiempo de ejecución usando el formulario lógico generado de tal forma que el modelo de aplicación está accionado en un tiempo de ejecución, comprendiendo la presentación del formulario lógico como el formulario físico en el objetivo de visualización, en el que el formulario lógico se genera en tiempo de ejecución usando tanto el tipo de formulario lógico seleccionado como metadatos del modelo de aplicación.

Description

5
10
15
20
25
30
35
40
45
50
55
DESCRIPCION
Procedimiento y aparato de generacion de interfaces de usuario a base de automatizacion con flexibilidad total Antecedentes de la invencion
La presente invencion se refiere a la generacion de formularios. Mas particularmente, la presente invencion se refiere a procedimientos y aparato de generacion de interfaces de usuario (UI) de formulario.
En productos de software tipicos y aplicaciones, tal como sistemas de planificacion de recursos empresariales (ERP) y sistemas de gestion de relaciones con clientes (CRM), se usan un gran numero de formularios o interfaces de usuario de formulario. Un formulario es una ventana, un dialogo, una pagina u otro elemento de UI de visualizacion y/o entrada de datos. No es comun que el numero de formularios que se usan en conjuncion con una aplicacion de software de negocio exceda de varios miles. Desarrollar un gran numero de formularios ha sido tradicionalmente una tarea de mucho trabajo para los desarrolladores de software.
Ademas, esta creciendo la complejidad en aplicacion de negocio tal como sistemas ERP, sistemas CRM y otras aplicaciones basadas en formularios. Esto esta provocado por un numero de factores que incluyen: (1) un numero creciente de formularios en cada sistema que se debe a funcionalidad aumentada; (2) un foco creciente sobre la usabilidad que se origina desde usuarios finales que se han acostumbrado a usabilidad de pagina web; (3) numero creciente de diferentes plataformas, dispositivos y tecnologfas; (4) un foco creciente en seguridad que puede resultar en diferentes formularios dependiendo de derechos de usuario; y (5) una demanda creciente de flexibilidad, eficiencia y personalizacion. Al mismo tiempo existe un empuje para desarrollar sistemas mas rapidos con mayor calidad.
Como un ejemplo de una aplicacion de negocio real, considerese Microsoft Business Solutions-Axapta®, que tiene cerca de 3.000 tablas, resultando en cerca de 2.000 formularios. Cada formulario tiene que alinearse con la disposicion de cada tabla desde la que se vinculan los datos de tiempo de ejecucion. Los formularios y logica de formularios relacionados tienen que alinearse siempre que cambia la disposicion de tabla y cuando cambia la logica de negocio. Se anade a la complejidad el numero creciente de diferentes tecnologfas de plataformas cliente. La UI de Windows clasica se acompana ahora con el explorador web. En el futuro cercano, asistente digital personal (PDA), telefono celular y otras tecnologfas de UI se anadiran a la complejidad.
La Internet ha ensenado a los usuarios finales que no necesitan un curso de 14 dfas para aprender como usar una aplicacion. Los usuarios finales esperan que las aplicaciones les grnen a traves de tareas y esperan que la aplicacion tenga un aspecto atrayente. Porque mas roles de usuarios se exponen a la tecnologfa de la informacion presentada a traves de aplicaciones de negocio, existe una demanda creciente para que formularios reflejen la informacion que necesita cada usuario y las tareas que cada rol tiene que conseguir. En general estan aumentando las demandas de experiencia de usuario.
Tfpicamente, la experiencia de usuario y experiencia de desarrollador se mueven en direcciones opuestas. Un desarrollador de aplicacion tarda mas en crear y mantener una buena experiencia de usuario. La vision de que tiene una excelente experiencia de usuario y al mismo tiempo soporta productividad de desarrollador alta, puede verse contradictorio. Esto es particularmente cierto en el area de generacion formularios para aplicaciones de negocio.
Aplicaciones que presentan informacion deben proporcionar a sus usuarios con una experiencia tan rica como sea posible en plataformas de muy varias capacidades (oscilando desde clientes enriquecidos que ejecutan en el escritorio del usuario, a clientes Web que se ejecutan en el navegador del usuario, a Asistentes Digitales de Bolsillo, dispositivos basados en telefoma e incluso interfaces de voz). Un arquitecto de negocio usa su conocimiento en ingeniena de negocios para resolver problemas al cliente. Esta persona no es un desarrollador de programa informatico y debena protegerse de las particularidades del desarrollo de programas.
La presente invencion proporciona soluciones a uno o mas de los problemas anteriormente mencionados y/o proporciona otras ventajas sobre la tecnica anterior.
El documento US 2003/025693 se refiere a un procedimiento para proporcionar una pantalla de interfaz de usuario. Se genera un formulario electronico independiente de una imagen de visualizacion objetivo. Informacion de control de presentacion comprende sentencias declarativas para su uso en la generacion de formulario de interfaz de usuario electronico. La informacion de control de presentacion especifica ubicaciones relativas de elementos de visualizacion de interfaz y elementos de aviso. Se determina la disposicion general de formulario electronico y los datos visualizados dentro del formulario. Se usa un motor de generador de codigos separado para la generacion de codigo a partir la informacion de control de presentacion y otros datos en un formato de codigo deseado. Se genera codigo de provision de un formulario electronico a base de la informacion de control de presentacion y elementos adicionales mantenidos de forma separada. Se genera codigo DHTML que representa un formulario deseado a base de datos de entrada proporcionados por el constructor de interfaz de usuario que incluye informacion de control de presentacion y artfculos de datos de entrada auxiliares. Se usa informacion de control de presentacion para dirigir la generacion de codigo DHTML que representa una forma deseada. Informacion de control a su vez usa estructura de formato de datos de informacion formulario que contiene datos presentados en la forma deseada. Informacion de
5
10
15
20
25
30
35
40
45
50
55
control tambien emplea objetos que comprenden procedimientos a ejecutar en respuesta a una seleccion de usuario de elementos de visualizacion. Informacion de control de presentacion comprende sentencias declarativas que determinan los elementos de visualizacion de presentacion que contiene el formulario deseado. De este modo, un formulario se adapta facilmente para diferentes tamanos de imagen de visualizacion y para su uso por diferentes arquitecturas de sistema.
El documento US 2003/025732 se refiere a una interfaz grafica de usuario personalizable. Se usan ficheros de texto de XML para describir una o mas interfaces de usuario. La informacion en el fichero de XML se usa para generar la interfaz de usuario. Actualizaciones dinamicas permiten cambios en los ficheros y la adicion/eliminacion de ficheros incluso en tiempo de ejecucion. La disposicion general de la interfaz de usuario se define en una plantilla basada en HTML. Se generan detalles de la interfaz de usuario recuperando un fichero de texto de plantilla de XML seleccionado, rellenando el texto de XML con datos de sistema actuales, convirtiendo los datos de XML a HTML y rellenando la plantilla HTML para producir un texto basado en HTML para su visualizacion. La interfaz de usuario se genera a continuacion a partir del texto visualizado basado en HTML mediante el explorador web.
Es el objeto de la presente invencion proporcionar una tecnica de generacion de una interfaz de usuario de formulario controlada por modelo con flexibilidad y extensibilidad mejoradas.
Este objeto se resuelve mediante el objeto de las reivindicaciones independientes.
Se definen realizaciones preferidas en las reivindicaciones dependientes.
Sumario
Se proporcionan un procedimiento, medio legible por ordenador y sistema que generan una interfaz de usuario de formulario controlada por modelo para representar una aplicacion/modelo de negocio (tambien denominado como un modelo de datos o un modelo de dominio del problema). El procedimiento incluye seleccionar cual de multiples diferentes tipos de formulario logico aplicar a un formulario logico para generar la interfaz de usuario de formulario para representar el modelo de aplicacion. El procedimiento tambien incluye proporcionar un primer mapa. Se genera un formulario logico independiente del objetivo de visualizacion usando el modelo de aplicacion, el tipo de formulario seleccionado y el primer mapa. En realizaciones de la presente invencion, el primer mapa es un mapa declarativo, aunque puede tener funciones o aspectos imperativamente definidos en algunas realizaciones.
La generacion del formulario logico independiente del objetivo de visualizacion usando el primer mapa incluye correlacionar tipos de propiedades de dato del modelo de aplicacion con controles logicos independientes del objetivo visualizacion en el formulario logico independiente del objetivo de visualizacion. En algunas realizaciones, el primer mapa es externo a un motor de correlacion usado para generar el formulario logico independiente del objetivo de visualizacion.
En algunas realizaciones, comportamientos aplicados declarativamente anaden funcionalidad al formulario logico independiente del objetivo de visualizacion. Los comportamientos aplicados declarativamente se adjuntan al formulario logico independiente del objetivo de visualizacion y se activan mediante eventos en el formulario. Los comportamientos declarativos pueden ser patrones de logica que, dependiendo de valores y propiedades de los controles logicos, establecen propiedades en otros controles.
El procedimiento puede incluir tambien la etapa adicional de correlacion del formulario logico con un formulario ffsico usando un segundo mapa. Mientras el formulario logico contiene una pluralidad de controles logicos, el formulario ffsico tiene una pluralidad de controles ffsicos disponibles para su uso en la presentacion del formulario logico en un objetivo de visualizacion. La correlacion del formulario logico al formulario ffsico usando el segundo mapa incluye correlacionar cada uno de los controles logicos en el formulario logico con uno de la pluralidad de controles ffsicos disponibles. Habitualmente tambien incluye la correlacion con una disposicion espedfica para el tipo de formulario particular en el objetivo de visualizacion particular.
Otras caractensticas y beneficios que caracterizan las realizaciones de la presente invencion seran evidentes tras la lectura de la siguiente descripcion detallada y revision de los dibujos asociados.
Breve descripcion de los dibujos
La Figura 1 es un diagrama de bloques de un entorno ilustrativo en el que puede usarse la presente invencion.
La Figura 2 es un diagrama de bloques de un entorno informatico movil general en el que puede implementarse la presente invencion.
La Figura 3-1 es una ilustracion diagramatica del uso de tipos de formulario de la presente invencion para generar formularios logicos y formularios ffsicos.
La Figura 3-2 es una ilustracion diagramatica del uso de tipos de formulario como se muestra en la Figura 3-1, y que ilustra adicionalmente la relacion entre tipos de formulario y la generacion de formularios logicos y formularios ffsicos.
La Figura 4-1 es un diagrama de bloques que ilustra un modelo de negocio de ejemplo.
La Figura 4-2 es un diagrama de bloques que ilustra un modelo de negocio de entidad correlacionado con un
5
10
15
20
25
30
35
40
45
50
55
60
formulario.
La Figura 5-1 es un diagrama de bloques que ilustra un proceso de generacion de modelos usando mapas y otros modelos.
La Figura 5-2 es un diagrama de bloques que ilustra un proceso de generacion de un modelo espedfico de objetivo de visualizacion a partir de una aplicacion inicial o modelo de negocio a traves de una serie de correlaciones.
La Figura 5-3 es un diagrama de bloques que ilustra un proceso del tipo mostrado en las Figuras 4-1 y 4-2 para una realizacion de ejemplo.
La Figura 5-4 es un diagrama de bloques que ilustra un procedimiento de correlacion de ejemplo en el que una entidad de modelo de negocio se correlaciona primero con un formulario independiente del objetivo de visualizacion, con las propiedades de entidad correlacionadas con controles para crear un formulario logico independiente del objetivo de visualizacion, y a continuacion el formulario logico se correlaciona con el objetivo u objetivos de visualizacion
La Figura 6 es un diagrama de bloques que ilustra aspectos de tiempo de diseno y tiempo de ejecucion de la presente invencion y que ilustra que la capa logica es el puente entre la logica de negocio y el objetivo de visualizacion.
La Figura 7 es un diagrama de bloques que ilustra formularios logicos correlacionados con tecnologfas de presentacion espedficas del objetivo de visualizacion.
La Figura 8 es una ilustracion diagramatica de conceptos de la presente invencion.
Descripcion detallada de realizaciones ilustrativas
Con la creciente complejidad en las aplicaciones de negocios y otras aplicaciones de software administrativas o basadas en formularios, la demanda de automatizacion esta aumentando. La presente invencion proporciona un procedimiento de facilitacion y mejora de tal automatizacion. La presente invencion utiliza un enfoque declarativo y automatizado de desarrollo de interfaces de usuario sin poner en peligro la libertad de innovacion.
Usando los sistemas y procedimientos de la presente invencion, los desarrolladores de aplicaciones pueden centrarse en el desarrollo de un modelo de negocio. El modelo de negocio (UML, diagrama de ER, clase, etc.) se correlaciona despues con un formato intermedio independiente de la tecnologfa que de nuevo - en una o mas etapas - se correlaciona con la tecnologfa espedfica del objetivo de visualizacion y disposicion (Windows, Navegador Web, PDA, telefono, etc.). Los desarrolladores de marcos pueden entonces, independientemente de los desarrolladores de aplicaciones, enriquecer la tecnologfa espedfica del objetivo de visualizacion, y hacer que se aplique a toda la aplicacion desarrollada. El formato intermedio se crea una vez por formulario y usa a traves de varios objetivos de visualizacion. La correlacion es inherentemente flexible debido a mapas abiertos y modificables usados por los motores de correlacion. Los modelos de UI intermedios y los formatos de objetivo de visualizacion finales son tambien abiertos y modificables permitiendo un nivel de flexibilidad unico. Las siguientes descripciones ilustran adicionalmente los conceptos inventivos.
La Figura 1 ilustra un ejemplo de un entorno 100 de sistema informatico adecuado en el que puede implementarse la invencion. El entorno 100 de sistema informatico es unicamente un ejemplo de un entorno informatico adecuado y no pretende sugerir ninguna limitacion al alcance de uso o funcionalidad de la invencion. Ni debena interpretarse el entorno 100 informatico como que tiene alguna dependencia o requisito en relacion con uno cualquiera o combinacion de componentes ilustrados en el entorno 100 de operacion ilustrativo.
La invencion es operacional con numerosos otros entornos de sistema informatico o configuraciones de fin general o fin especial. Ejemplos de sistemas informaticos bien conocidos, entornos y/o configuraciones que pueden ser adecuados para su uso con la invencion incluyen, pero sin limitacion, ordenadores personales, ordenadores de servidor, dispositivos de mano o portatiles, sistemas multiprocesador, sistemas basados en microprocesadores, decodificadores de salon, electronica de consumo programable, PC de red, miniordenadores, ordenadores centrales, entornos informaticos distribuidos que incluyen cualquiera de los sistemas o dispositivos anteriores y similares.
La invencion puede describirse en el contexto general de instrucciones ejecutables por ordenador, tal como modulos de programa, que se ejecutan mediante un ordenador. En general, modulos de programa incluyen rutinas, programas, objetos, componentes, estructuras de datos, etc. que realizan tareas particulares o implementan tipos de datos abstractos particulares. La invencion tambien puede practicarse en entornos informaticos distribuidos en los que se realizan tareas mediante dispositivos de procesamiento remotos que estan enlazados a traves de una red de comunicaciones. En un entorno informatico distribuido, pueden ubicarse modulos de programa tanto en medio de almacenamiento informatico local como remoto incluyendo dispositivos de almacenamiento de memoria.
Con referencia a la Figura 1, un sistema ilustrativo de implementacion de la invencion incluye un dispositivo informatico de fin general en forma de un ordenador 110. Componentes del ordenador 110 pueden incluir, pero sin limitacion, una unidad 120 de procesamiento, una memoria 130 de sistema y un bus 121 de sistema que acopla diversos componentes de sistema incluyendo la memoria de sistema a la unidad 120 de procesamiento. El bus 121 de sistema puede ser cualquiera de varios tipos de estructuras de bus incluyendo un bus de memoria o controlador de memoria, un bus periferico y un bus local usando cualquiera de una diversidad de arquitecturas de bus. A modo de ejemplo, y no como limitacion, tales arquitecturas incluyen bus de Arquitectura Estandar de la Industria (ISA), bus
5
10
15
20
25
30
35
40
45
50
55
60
de Arquitectura Micro Canal (MCA), bus de ISA mejorada (EISA), bus local de Asociacion de Normalizacion en la Electronica de Video (VESA) y bus de Interconexion de Componentes Perifericos (PCI) tambien conocido como bus de Mezzanine.
El ordenador 110 habitualmente incluye una diversidad de medios legibles por ordenador. El medio legible por ordenador puede ser cualquier medio disponible que puede accederse mediante el ordenador 110 e incluye tanto medio volatil como no volatil, memoria extrafble y no extrafole. A modo de ejemplo, y no como limitacion, el medio legible por ordenador puede comprender medio de almacenamiento informatico y medio de comunicacion. El medio de almacenamiento informatico incluye memoria tanto volatil como no volatil, extrafble como no extrafble implementada en cualquier procedimiento o tecnologfa para almacenamiento de informacion tal como instrucciones legibles por ordenador, estructuras de datos, modulos de programa u otros datos. El medio de almacenamiento informatico incluye, pero sin limitacion, RAM, ROM, EEPROm, memoria flash u otra tecnologfa de memoria, CD- ROM, discos versatiles digitales (DVD) u otro almacenamiento de disco optico, cintas magneticas, cinta magnetica, almacenamiento de disco magnetico u otros dispositivos de almacenamiento magnetico, o cualquier otro medio que puede usarse para almacenar la informacion deseada y que puede accederse mediante el ordenador 110. El medio de comunicacion habitualmente incorpora instrucciones legibles por ordenador, estructuras de datos, modulos de programa u otros datos en una senal de datos modulada tal como una onda portadora u otro mecanismo de transporte e incluye cualquier medio de distribucion de informacion. La expresion "senal de datos modulada" significa una senal que tiene una o mas de sus caractensticas establecidas o cambiadas de tal manera que codifica informacion en la senal. A modo de ejemplo, y no como limitacion, el medio de comunicacion incluye medio por cable tal como una red por cable o conexion por cable directo, y medio inalambrico tal como acustico, RF, infrarrojos y otro medio inalambrico. Combinaciones de cualquiera de los anteriores tambien debena incluirse dentro del alcance de medio legible por ordenador.
La memoria 130 de sistema incluye medio de almacenamiento informatico en forma de memoria volatil y/o no volatil tal como memoria 131 de solo lectura (ROM) y memoria 132 de acceso aleatorio (RAM). Un sistema 133 basico de entrada/salida (BIOS), que contiene las rutinas basicas que ayudan a transferir informacion entre elementos dentro del ordenador 110, tal como durante el inicio, se almacena habitualmente en la ROM 131. La RAM 132 habitualmente contiene datos y/o modulos de programa que son accesibles inmediatamente a y/o en los que se operan actualmente mediante la unidad 120 de procesamiento. A modo de ejemplo, y no como limitacion, la Figura 1 ilustra el sistema 134 operativo, programas 135 de aplicacion, otros modulos 136 de programa y datos 137 de programa. Un grupo particular de programas de aplicacion se llaman aplicaciones de negocio. Estas se dirigen a la gestion de empresas incluyendo - pero sin limitacion - tratar el libro de contabilidad general, inventario, salarios, clientes, ventas, compras, informes financieros y cualquier otro dato relevante para un negocio.
El ordenador 110 tambien puede incluir otro medio de almacenamiento informatico extrafble/no extrafble y volatil/no volatil. A modo de ejemplo unicamente, la Figura 1 ilustra una unidad 141 de disco duro que lee de o escribe a medio magnetico no extrafble y no volatil, una unidad 151 de disco magnetico que lee de o escribe a un disco 152 magnetico extrafble y no volatil, y una unidad 155 de disco optico que lee de o escribe a un disco 156 optico extrafble y no volatil tal como un CD ROM u otro medio optico. Otro medio de almacenamiento informatico extrafble/no extrafble y volatil/no volatil que puede usarse en el entorno de operacion ilustrativo incluye, pero sin limitacion, casetes de cinta magnetica, tarjetas de memoria flash, discos versatiles digitales, cinta de video digital, RAM de estado solido, ROM de estado solido y similares. La unidad 141 de disco duro se conecta habitualmente al bus 121 de sistema a traves de a interfaz de memoria no extrafble tal como la interfaz 140, y la unidad 151 de disco magnetico y unidad 155 de disco optico se conectan habitualmente al bus 121 de sistema mediante una interfaz de memoria eXtrafble, tal como la interfaz 150.
Las unidades de disco y sus medios de almacenamiento informatico asociados analizados anteriormente e ilustrados en la Figura 1, proporcionan almacenamiento de instrucciones legibles por ordenador, estructuras de datos, modulos de programa y otros datos para el ordenador 110. En la Figura 1, por ejemplo, la unidad 141 de disco duro se ilustra como que almacena el sistema 144 operativo, programas 145 de aplicacion, otros modulos 146 de programa y datos 147 de programa. Observese que estos componentes pueden o bien ser los mismos que o diferentes del sistema 134 operativo, programas 135 de aplicacion, otros modulos 136 de programa y datos 137 de programa. Se proporcionan diferentes numeros al sistema 144 operativo, programas 145 de aplicacion, otros modulos 146 de programa y datos 147 de programa en este punto para ilustrar que, como mmimo, son copias diferentes.
Un usuario puede introducir ordenes e informacion en el ordenador 110 a traves de dispositivos de entrada tal como un teclado 162, un microfono 163 y un dispositivo 161 apuntador, tal como un raton, bola de mando o panel tactil. Otros dispositivos de entrada (no mostrados) pueden incluir una palanca de mandos, control de juegos, antena parabolica, escaner o similar. Estos y otros dispositivos de entrada se conectan a menudo a la unidad 120 de procesamiento a traves de una interfaz 160 de entrada de usuario que se acopla al bus de sistema, pero pueden conectarse mediante otra interfaz y estructuras de bus, tal como un puerto paralelo, puerto de juegos o un bus serial universal (USB). Los dispositivos de entrada se usan para la creacion, modificacion y borrado de datos. Dispositivos de entrada tambien pueden usarse para el control (inicio y parada) de los programas de aplicacion y funciones particulares en el presente documento. Las funciones incluyen formularios de apertura (muestra) y cierre de los formularios. Un monitor 191 u otro tipo de dispositivo de visualizacion tambien se conecta al bus 121 de sistema a traves de una interfaz, tal como una interfaz 190 de video. Ademas del monitor, los ordenadores tambien pueden
5
10
15
20
25
30
35
40
45
50
55
incluir otros dispositivos de salida perifericos tal como altavoces 197 e impresora 196, que puede conectarse a traves de una interfaz 195 periferica de salida. El monitor u otro dispositivo de visualizacion se usa para mostrar (presentar) formularios.
El ordenador 110 puede operar en un entorno en red usando conexiones logicas a uno o mas ordenadores remotos, tal como un ordenador 180 remoto. El ordenador 180 remoto puede ser un ordenador personal, un dispositivo de mano, un servidor, un encaminador, un PC de red, un dispositivo de par u otro nodo de red comun, y habitualmente incluye muchos o todos los elementos descritos anteriormente en relacion al ordenador 110. Las conexiones logicas representadas en la Figura 1 incluyen una red 171 de area local (LAN) y una red 173 de area extensa (WAN), pero tambien pueden incluir otras redes. Tales entornos de red son comunes en oficinas, redes informaticas de empresas, intranets y la Internet.
Cuando se usa en un entorno de interconexion de red LAN, el ordenador 110 se conecta a la LAN 171 a traves de una interfaz de red o adaptador 170. Cuando se usa en un entorno de interconexion de red WAN, el ordenador 110 habitualmente incluye un modem 172 u otro medio de establecimiento de comunicaciones a traves de la WAN 173, tal como internet. El modem 172, que puede ser interno o externo, puede conectarse al bus 121 de sistema a traves de la interfaz 160 de entrada de usuario, u otro mecanismo apropiado. En un entorno en red, modulos de programa representados con relacion al ordenador 110, o porciones de los mismos, pueden almacenarse en el dispositivo de almacenamiento de memoria remoto. A modo de ejemplo, y no como limitacion, la Figura 1 ilustra programas 185 de aplicacion remotos como que residen en el ordenador 180 remoto. Se apreciara que las conexiones de red mostradas son ilustrativas y pueden usarse otros medios de establecimiento de un enlace de comunicaciones entre los ordenadores.
La Figura 2 es un diagrama de bloques de un dispositivo 200 movil, que es un entorno informatico ilustrativo alternativo. El dispositivo 200 movil incluye un microprocesador 202, memoria 204, componentes 206 de entrada/salida (I/O) y una interfaz 208 de comunicacion de comunicacion con ordenadores remotos u otros dispositivos moviles. En una realizacion, los componentes anteriormente mencionados se acoplan para comunicacion entre sf a traves de un bus 210 adecuado.
La memoria 204 se implementa como memoria electronica no volatil tal como memoria de acceso aleatorio (RAM) con un modulo de respaldo de batena (no mostrado) de tal forma que la informacion almacenada en la memoria 204 no se pierde cuando se corta la potencia general al dispositivo 200 movil. Una porcion de la memoria 204 se asigna preferentemente como memoria direccionable para ejecucion de programa, mientras otra porcion de la memoria 204 se usa preferentemente para almacenamiento, tal como para simular almacenamiento en una unidad de disco.
La memoria 204 incluye un sistema 212 operativo, programas 214 de aplicacion asf como un almacen 216 de objetos. Durante operacion, el sistema 212 operativo se ejecuta preferentemente mediante el procesador 202 de la memoria 204. El sistema 212 operativo, en una realizacion preferida, es un sistema operativo de la marca WINDOWS ® CE comercialmente disponible en Microsoft Corporation. El sistema 212 operativo se disena preferentemente para dispositivos moviles e implementa caractensticas de base de datos que pueden utilizarse mediante las aplicaciones 214 a traves de un conjunto de interfaces de programacion de aplicacion y procedimientos expuestos. Los objetos en el almacen 216 de objetos se mantienen mediante las aplicaciones 214 y sistema 212 operativo, al menos parcialmente en respuesta a llamadas a las interfaces de programacion de aplicacion y procedimientos expuestos.
La interfaz 208 de comunicacion representa numerosos dispositivos y tecnologfas que permiten que el dispositivo 200 movil envfe y reciba informacion. Los dispositivos incluyen modems por cable e inalambricos, receptores por satelite y sintonizadores de radiodifusion por nombrar algunos. El dispositivo 200 movil tambien puede conectarse directamente a un ordenador para intercambiar datos con el mismo. En tales casos, la interfaz 208 de comunicacion puede ser un transceptor de infrarrojos o una conexion de comunicacion en serie o paralelo, todas las cuales son capaces de transmitir informacion de difusion en continuo.
Los componentes 206 de entrada/salida incluyen una diversidad de dispositivos de entrada tal como una pantalla tactil, botones, ruedas y un microfono asf como una diversidad de dispositivos de salida que incluyen un generador de audio, un dispositivo de vibracion y una pantalla. Los dispositivos listados anteriormente son a modo de ejemplo y no necesitan estar todos presentes en el dispositivo 200 movil. Ademas, pueden adjuntarse otros dispositivos de entrada/salida a o encontrarse con el dispositivo 200 movil.
ARQUITECTURA DE UI CORRELACIONADA Y POR CAPAS Y PROCEDIMIENTO
Como se ha descrito anteriormente, aplicaciones que presentan informacion deben proporcionar a usuarios con una experiencia tan rica como sea posible en plataformas (por ejemplo objetivos de visualizacion) de muchas varias capacidades. Estas plataformas abarcan desde clientes enriquecidos que se ejecutan en el escritorio del usuario, a clientes Web que se ejecutan en el navegador del usuario, a PDA, a dispositivos basados en telefoma e incluso interfaces de voz. Tambien son posibles otras plataformas. De acuerdo con realizaciones de la presente invencion, se emplea un esquema que define perceptivamente como los tipos de datos se correlacionan con controles nativos en la plataforma en cuestion.
5
10
15
20
25
30
35
40
45
50
55
Un arquitecto de negocio usa su conocimiento en ingeniena de negocios para resolver problemas a sus clientes. Sin embargo, esta persona habitualmente no es un desarrollador de programa informatico e idealmente se protege de las particularidades del desarrollo de programas. La presente invencion proporciona procedimientos y aparato que permiten que un arquitecto de negocio (usuario) se centre en la logica de negocio de una aplicacion y no en como se presentan los datos en una plataforma dada. La invencion presentada permite que los desarrolladores de aplicaciones, a base de un modelo del negocio, obtengan la interfaz de usuario que se dirige a multiples objetivos de visualizacion y que explota las capacidades tecnologicas de cada objetivo de visualizacion.
Esto se consigue mediante una definicion de UI por capas que permite que el desarrollador centre el esfuerzo intelectual a la capa que tiene el nivel de abstraccion "correcto". Se captura y reutilizan patrones en cada nivel de abstraccion. Mapas - desde niveles superiores de abstraccion a niveles mas espedficos - capturan patrones en el procedimiento de correlacion, pero tambien permiten al desarrollador de aplicacion afinar los resultados. La presente invencion usa estos mapas, junto con controles, tipos de formularios logicos y comportamientos, para correlacionar el modelo de negocio con modelos ffsicos espedficos de objetivo de visualizacion.
En los procedimientos de la presente invencion, el modelo de negocio es el maestro. El trabajo intelectual puesto en el modelo de negocio se preserva y usa como base de generacion de la interfaz de usuario. El modelo puede describirse en Lenguaje de Modelizacion Unificado (UML), diagrama de recursos de empresa (ER) o cualquier otro lenguaje de modelizacion grafico o no grafico. Modelos de negocio tambien pueden encontrarse en programas orientados a objeto clasicos, en bases de datos relacionales o en otros formatos. Como se describe a continuacion, en algunas realizaciones ilustrativas de la presente invencion, el modelo de negocio es una jerarqrna de clases de entidades con propiedades.
En realizaciones de la presente invencion, el modelo de negocio se correlaciona con un modelo intermedio de la interfaz de usuario que es independiente del objetivo de visualizacion. El modelo de UI se describe en un alto nivel de abstraccion que permite al desarrollador de aplicacion ver y modificar la misma sin la necesidad de ningun conocimiento tecnico del objetivo de visualizacion final. Puede anadirse codigo al modelo de UI que trabajara para todos los objetivos de visualizacion. Patrones en los modelos de UI se capturan y pueden reutilizarse, resultando en una UI homogenea. Los componentes basicos usados para describir el modelo de UI tambien pueden extenderse.
Como se describiran a continuacion en mayor detalle, en algunas realizaciones de la invencion las entidades se correlacionan con un modelo de UI llamado "la UI logica" que incluye un formulario logico con controles logicos. Las entidades y propiedades se correlacionan con formularios logicos y controles logicos respectivamente en tiempo de diseno. En tiempo de ejecucion los formularios logicos y datos de controles logicos se unen a las entidades y propiedades. Los patrones en los formularios se llaman tipos de formulario. Los formularios y controles se usan mediante, pero no son una a parte de, el motor de correlacion de cliente principal. El cliente principal es la parte independiente del objetivo de visualizacion del cliente de UI. En realizaciones de la invencion, la lista de controles logicos y tipos de formulario puede extenderse. A continuacion tambien se proporciona una descripcion adicional de estos aspectos de la invencion.
En algunas realizaciones de la invencion, el modelo de UI se correlaciona con un lenguaje de marcas espedfico de objetivo de visualizacion tal como el lenguaje de paginas de servidor activo (ASP.NET), el lenguaje de marcas inalambrico (WML), el lenguaje de marcas de hipertexto (HTML), etc. El modelo de UI tambien puede correlacionarse con otras tecnologfas de visualizacion (por ejemplo, Win32, WinForms, PocketPC). En un ejemplo de realizacion particular de la invencion, los formularios logicos se correlacionan con un objetivo de visualizacion de Cliente Web, un objetivo de visualizacion de Cliente de WinForms, etc., y pueden anadirse nuevos objetivos de visualizacion dinamicamente.
De acuerdo con realizaciones de la invencion, las correlaciones se basan en mapas declarativos que son abiertos y modificables. Patrones en la UI se capturan en los mapas. Los mapas pueden hacerse a base de varias condiciones lo que resulta en un nivel alto de flexibilidad. Los diferentes modelos pueden modificarse manualmente (incluyendo a traves de codigo) despues de que se han correlacionado. Esto proporciona al desarrollador el nivel final de flexibilidad. La naturaleza dinamica de los mapas permite el desarrollo y uso de nuevos elementos de UI tal como controles. Los nuevos controles simplemente se habilitan en un formulario, correlacionando propiedades a los nuevos controles. Los nuevos controles deben cumplir con un cierto contrato - en esta realizacion los nuevos controles deben heredar de una clase base especificada. En tiempo de ejecucion, el formulario logico se une a las entidades y el objetivo de visualizacion se une a la capa logica. Esto permite que toda funcionalidad que es comun entre los objetivos de visualizacion (seguridad, personalizacion, logica dentro de formularios) se implemente una vez en la capa logica y use en muchos casos.
TIPOS DE FORMULARIO
La presente invencion utiliza los conceptos de formularios logicos y tipos de formulario logico para proporcionar un nuevo procedimiento de construccion de interfaces de usuario de formulario (formularios) para negocios y otras aplicaciones. Mientras en realizaciones ilustrativas o implementaciones de la invencion se usan formularios logicos y tipos de formulario logico, no se requiere el uso de la capa logica en todas las realizaciones. Por lo tanto, la presente invencion se aplica al uso de tipos de formulario para crear formularios en general. Aplicaciones de negocio de hoy
5
10
15
20
25
30
35
40
45
50
55
habitualmente que consiste en un gran numero de formularios que a menudo se encuadran dentro de unas pocas categonas o siguen un patron similar. El numero de categonas es habitualmente entre dos y veinte, pero pueden definirse mas. Los tipos de formulario de la presente invencion facilitan interfaces de usuario controladas por modelos preservando y actuando en el modelo de negocio o de aplicacion o ambos en tiempo de diseno y en tiempo de ejecucion. Esto proporciona un nivel alto de abstraccion a un desarrollador de software. Ademas, el uso de tipos de formulario de acuerdo con la presente invencion garantiza la reutilizacion (una disposicion se usa muchas veces), un conjunto mucho mas homogeneo de interfaces de usuario de formulario ya que todos los formularios se encuadran dentro de unos pocos tipos distintos y formularios que son mas faciles de mantener (la disposicion del tipo puede cambiarse sin cambiar el formulario y puede aplicarse un tipo diferente sin cambiar el formulario). La invencion garantiza que desarrolladores de aplicaciones tienen control completo, a traves de multiples objetivos de visualizacion, del aspecto y comportamiento de la aplicacion y como se efectua la navegacion dentro de la aplicacion. Ejemplos de objetivos de visualizacion incluyen cada uno de los multiples tipos de sistemas operativos actuales y futuros, asf como cada uno de los muchos dispositivos moviles disponibles o futuros. Como otro ejemplo, cada tecnologfa de presentacion en un sistema operativo particular tambien puede ser un objetivo de visualizacion.
Usando lo conceptos de la presente invencion, un formulario logico contiene controles logicos independientes de objetivo de visualizacion, que hace el formulario logico independiente de los propios objetivos de visualizacion. Un formulario logico se refiere a un tipo de formulario logico que define el patron que el formulario logico debe seguir. El tipo de formulario logico al que se hace referencia mediante un formulario logico puede seleccionarse desde multiples diferentes tipos de formulario logico para establecer rapidamente el aspecto y contendidos del formulario logico. En realizaciones de la presente invencion, el tipo de formulario logico son modelos que, cuando se combinan con un negocio u otro modelo de aplicacion, resulta en la generacion de un formulario logico.
El tipo de formulario logico expone el esquema (que describe la estructura del formulario, que elementos puede contener, etc.) al que el formulario debe ajustarse, los Mapas (o Reglas) que correlacionan (automatica o manualmente a traves de un desarrollador de aplicacion) el modelo de negocio con el modelo logico y desde este con el modelo ffsico. Ademas, el tipo de formulario puede contener codigo que modifica el comportamiento dinamico del formulario (logico). Por lo tanto, tipos de formulario exponen informacion de estilo y disposicion, y otros tipos de informacion espedfica a un objetivo de visualizacion. Sin embargo, ya que tambien especifican reglas para el formulario logico y sus contenidos tienen un rol mucho mayor. Ciertos aspectos de los tipos de formulario de la presente invencion se introducen como se indica a continuacion:
Diferentes Tipos de formulario
Como se ha mencionado, en un uso tfpico de la presente invencion, se proporcionan multiples tipos de formulario diferentes para su uso por un desarrollador de aplicacion en la creacion de formularios. Por ejemplo, en una realizacion de ejemplo, tipos de formulario podnan incluir un tipo de formulario de dialogo, un tipo de formulario de Tarjeta o Vista de Tarjeta, un tipo de formulario de Vista de Lista, un tipo de formulario de Vista General de Entidad y un tipo de formulario de Centro de Actividad. Estos tipos de formulario corresponden a diferentes categonas de formularios tfpicas usadas en una aplicacion de negocio en un ejemplo. Por lo tanto, proporcionar los multiples tipos de formulario permite a desarrolladores de aplicaciones construir todos los formularios que forman una aplicacion de negocio de estado de la tecnica. Como entenderan los expertos en la materia, estos tipos de formulario particulares son simplemente un ejemplo y la presente invencion no se limita a ningun tipo de formulario particular o a ningun numero particular de tipos de formulario.
Disposicion de tipo de formulario
Los contenidos y estructura de la informacion de disposicion pueden ser diferentes para cada tipo de formulario. Ademas, la informacion de disposicion puede ser espedfica del objetivo de visualizacion. Por ejemplo, la informacion de disposicion para el tipo de formulario de Centro de Actividad podna tener soporte para Temas/Apariencias/Estilos y Paginas Maestras que se usaran en el objetivo de visualizacion HTML (es decir, red informatica mundial o Internet) para la visualizacion del formulario en una plataforma de sistema operativo particular. Esto proporciona al desarrollador de negocio la libertar para innovar en diferentes objetivos de visualizacion y retocar la interfaz de usuario de formulario tanto como sea necesario.
Conectable y Extensible
Tipos de formulario ofrecen flexibilidad total y extensibilidad ya que un vendedor de software independiente (ISV) puede modificar o extender los mismos y crear nuevos tipos de formulario, cambiando de este modo el aspecto y comportamiento de toda la aplicacion.
Haciendo referencia ahora a las Figuras 3-1 y 3-2, se muestran ilustraciones diagramaticas de un formulario logico de Orden de Ventas creado usando un tipo de formulario de Tarjeta de acuerdo con una realizacion de ejemplo de la presente invencion. En este ejemplo, el formulario logico de Orden de Ventas contiene un conjunto de controles logicos agrupados en tres diferentes grupos de controles logicos. Como se describira adicionalmente a continuacion, el tipo de formulario de Tarjeta define como y donde apareceran los controles en los formularios ffsicos en diferentes objetivos de visualizacion. Las Figuras 3-1 y 3-2 ilustran la misma informacion, incluyendo la Figura 3-2 flechas que
5
10
15
20
25
30
35
40
45
50
55
ilustran relaciones y ongenes de informacion entre el tipo de formulario logico y el formulario logico, y la generacion de un formulario ffsico a partir del formulario logico.
Las Figuras 3-1 y 3-2 en forma de diagrama ilustran una instancia 305 de formulario generada usando un tipo 300 de formulario. En un cliente 310 principal, la instancia 305 de formulario es el formulario 306 logico (mostrado como un modelo conceptual de un formulario) y el tipo 300 de formulario es un tipo 301 de formulario logico. En un objetivo 320 de visualizacion, el formulario 305 es un formulario 370 presentado creado usando el formulario 306 logico, y finalmente a partir del tipo 301 de formulario logico. El formulario 370 presentado es una implementacion particular, pero pueden conseguirse muchas otras implementaciones o presentaciones. El formulario 370 presentado tambien puede denominarse como un formulario ffsico.
El tipo 300 de formulario incluye dos partes, un esquema 330 que define que tiene que incluirse en formularios particulares usando el tipo de formulario, y una disposicion 331 que incluye controles que especifican como debena presentarse o dibujarse el formulario en un objetivo de visualizacion espedfico. Un tipo de formulario tambien puede incluir una clase detras de codigo. Teniendo diferentes disposiciones que pueden usarse por un tipo de formulario, los formularios creados usando el tipo de formulario pueden personalizarse a diferentes objetivos de visualizacion (por ejemplo, pantallas de telefonos moviles, pantallas de asistentes digitales personales, monitores de ordenadores personales, etc.). Con el tipo 300 de formulario representando un patron capturado a usar en multiples formularios, pueden generarse multiples instancias 305 de formularios usando el tipo 300 de formulario.
Considerese para este ejemplo un procedimiento a traves del cual puede ir un desarrollador para crear un formulario para una entidad de Orden de Ventas o modelo de objeto (es decir, el modelo de negocio o aplicacion). En primer lugar, el desarrollador podna mirar para ver entre que clases de formularios puede elegir. Seleccionar el tipo de formulario "Tarjeta", como se muestra en 325 en las Figuras 3-1 y 3-2, llama o designa el Esquema 330 de Tarjeta como se representa mediante la flecha 326 en la Figura 3-2.
Cuando el desarrollador especifica un tipo de formulario particular y esquema asociado, en algunas realizaciones esta eligiendo incluir en el formulario la informacion o campos impuestos por el esquema, con metadatos del negocio del usuario u otro modelo que rellena los valores de campos. Por ejemplo, seleccionado el tipo 301 de formulario de Tarjeta (y Esquema 330 de Tarjeta asociado), el formulario 306 logico incluira un Area 336 de Contenido que corresponde al Area 335 de Contenido definida en el esquema 330. El origen del Area 336 de Contenido que corresponde al Area 335 de Contenido se representa mediante la flecha 337 en la Figura 3-2. Analogamente, porque el esquema 330 del tipo de formulario de Tarjeta incluye un Area 340 de Parte de UI, un Area 345 de Parte de UI de Entidad Relacionada y un Area 350 de Accion, el formulario 306 logico incluye estas areas o campos tambien como se muestra en 341, 346 y 351. De nuevo, los ongenes de estos campos se representan en forma de diagrama mediante las flechas 342, 347 y 352.
Como se ha mencionado anteriormente, cada tipo de formulario tambien incluye al menos una disposicion 331 (normalmente una por objetivo de visualizacion) que incluye controles que especifican como debena presentarse o dibujarse el formulario en un objetivo de visualizacion espedfico. Como se muestra en forma de diagrama en las Figuras 3-1 y 3-2, la disposicion para el tipo de formulario de Tarjeta incluye controles que provocan que un objetivo 320 de visualizacion incluya un Area 339 de Contenido, un Area 344 de Parte de UI, un Area 349 de parte de UI de Entidad Relacionada y una Area 354 de Accion. Las flechas 338, 343, 348 y 353 ilustran la correlacion de estas areas en la disposicion de tarjeta con sus correspondientes areas en el esquema de Tarjeta. El formulario 306 logico, que se genera usando el tipo de formulario logico seleccionado y metadatos del modelo de aplicacion (en este ejemplo una entidad de Orden de Ventas), se presenta como un formulario ffsico 370 en el objetivo 320 de visualizacion. Este procedimiento se ilustra en la Figura 3-2 usando las flechas 361 y 362.
MODELOS Y MAPAS
Muchos sistemas de informacion usan modelos. Ejemplos de modelos son: diagramas de objeto, esquemas de Lenguaje de Marcas Extensible (XML), definiciones de bases de datos y definiciones de formularios. Un modelo a menudo se define como un conjunto de objetos, cada uno de los cuales tiene propiedades, composiciones y asociaciones. En UI de negocios, las jerarqrnas de control usadas para presentar los formularios pueden considerarse como modelos, tal como arboles de control de Windows y modelos de objetos de Lenguaje de Marcas de Hipertexto (HTML). Tambien, puede usarse sintaxis tal como Lenguaje de Modelizacion Unificado (UML) para definir un modelo (por ejemplo, las definiciones de clases). En un marco de ejemplo usado para ilustrar los procedimientos de la presente invencion, las aplicaciones se modelan usando entidades de negocio. Por lo tanto, el modelo de negocio que consiste en estos objetos de negocio llamados entidades, relaciones entre entidades y propiedades en las entidades. Vease para un ejemplo de un modelo 380 simple las entidades 381, 382, 383 y 384 mostradas en la Figura 4-1. Las entidades tienen propiedades (veasen por ejemplo las propiedades 385 de la entidad 381) y relaciones con otras entidades (vease por ejemplo la relacion 386 entre las entidades 381 y 384).
Cuando un modelo se transforma en otro modelo, se usa un mapa explfcitamente o en ocasiones implfcitamente. Los mapas describen las relaciones entre modelos. Algunos ejemplos incluyen: Transformacion de Lenguaje de Hojas de Estilo Extensible (XSLT) que se concibe para correlacionar XML con XML; controles que se usan para presentar un modelo de objeto en una superficie de dispositivo espedfico; correlaciones de ordenes desde una
5
10
15
20
25
30
35
40
45
50
55
60
aplicacion a otra (porque ordenes en diferentes aplicaciones pueden tener formatos diferentes); y herramientas de Ingeniena de Software Asistida por Ordenador (CASE) que correlacionan UML con definiciones de clases.
En aplicaciones de negocio actuales, los mapas se programan en su mayona usando correlaciones de un objeto a la vez, significando que las correlaciones se codifican como declaraciones de "conmutacion" en codigo, que toman un objeto particular como entrada y devuelven otro objeto. Por lo tanto, aplicaciones de negocio convencionales habitualmente usan mapas imperativos, mapas escritos en el codigo de un lenguaje de programacion ffpico. Usando modelo a la vez de acuerdo con la presente invencion, se presenta que la productividad puede mejorarse por un orden de magnitud. Ademas de la ganancia de productividad, existe una ganancia mental en la percepcion del problema de generacion de UI como una correlacion de modelos con otros modelos mapas de uso. Ademas, otro beneficio es el mayor nivel de abstraccion encontrado en los mapas definidos declarativamente de la presente invencion. La presente invencion permite que los mapas sean expffcitos y declarativos. En la presente invencion, los mapas pueden ser o bien declarativos o bien imperativos (debido al hecho de que uno puede invalidar la correlacion en codigo).
La naturaleza expffcita de los mapas significa que los mapas son externos al motor de generacion usado para hacer la correlacion o presentacion, y que los mapas son en sf mismos modelos. Dicho de otra forma, la naturaleza expffcita de los mapas significa que se definen de forma separada de los controles y los formularios. Convencionalmente, esta correlacion se ha hecho impffcitamente dentro del codigo de controles o codigo de formularios.
La naturaleza declarativa de los mapas significa que los mapas no son imperativos (codificados en un lenguaje de programacion ffpico). Como se usa en el presente documento, la frase "definido declarativamente" significa que los mapas no solo se definen en codigo como ha sido el caso convencionalmente, sino que se definen en un formato que permite que los mapas se cambien facilmente. Ejemplos de un formato definido declarativamente incluyen, pero no se limitan a, documentos XML, ficheros separados por comas, Mapas de BizTalk (correlacionando un esquema de datos con otro) y Mapas de Entidad de MBF (correlacionando un modelo de objeto con un esquema de una base de datos). Pueden usarse una amplia variedad de formatos de correlacion declarativos de acuerdo con la presente invencion, y que formato se elige no es de particular importancia. Es importante que el mapa declarativo tenga un conjunto limitado de posibilidades, haciendo por lo tanto mas facil proporcionar una herramienta de diseno intuitiva para definir el mapa. En contraste, un mapa imperativo (usando codigo) tiene casi ilimitadas posibilidades a traves del lenguaje de programacion y por lo tanto es extremadamente diffcil crear una herramienta de diseno intuitiva. En su lugar, se requieren conocimientos de programacion para crear la misma.
Debe observarse que en realizaciones de la presente invencion que usan mapas declarativos, los mapas no necesitan ser unicamente declarativos. En instancias en las que es necesario crear un mapa que es demasiado complejo definir declarativamente, pueden incluirse aspectos de correlacion imperativa en el de otra manera mapa declarativo. Por ejemplo, pueden crearse funciones complejas e incluirse en el mapa. Un ejemplo podna ser que si una Direccion de Facturacion y Direccion de Envfo son casi la misma, entonces unicamente se muestra la Direccion de Facturacion en el Formulario. El algoritmo de determinacion de si dos direcciones son casi la misma podna ser una funcion definida impffcitamente usada en el Mapa.
La presente invencion proporciona abstracciones de programacion y una arquitectura de perspectiva adecuada para el desarrollo y despliegue de aplicaciones de negocio a base de una arquitectura distribuida y orientada a servicio. El marco afsla la logica de negocio escrita a estas abstracciones de cambios a tecnologfas subyacentes, preservando el activo cntico de un equipo de desarrollo de aplicacion de negocio. La presente invencion extiende enfoques a desarrollo controlado por modelo, moviendose de un modelo de tiempo de diseno con generacion de codigo a tener "servicios de aplicacion conocedor de modelo" verdaderos, que pueden interpretar el modelo de negocio en tiempo de ejecucion.
UI CONTROLADA POR MODELO A BASE DE MAPAS
Tener el modelo de aplicacion es una caractenstica importante cuando se genera la UI para una aplicacion de negocio construida en realizaciones de la presente invencion. Una gran mayona de la UI puede generarse solamente a base del modelo de la logica de negocio y mapas. Cuando un desarrollador de aplicacion ha modelado una nueva entidad, la UI se obtiene a partir de esta. Esto se ilustra en forma de diagrama en la Figura 4-2 que ilustra el modelo de negocio 380 que se correlaciona (como se muestra en 388) con un modelo de UI 390. La flecha 388 representa el procedimiento de correlacion, asf como un motor de correlacion configurado adecuadamente que usa un mapa para llevar a cabo el procedimiento de correlacion.
Aunque esta correlacion puede conseguirse usando tecnicas de codificacion tradicionales, la correlacion no es tan sencilla si deben cumplirse ciertos desaffos. El desaffo es que cuando se crean y usan nuevos tipos de propiedades en una entidad, la transformacion codificada podna no saber como tratar el nuevo tipo y la transformacion por lo tanto tiene que modificarse y recompilarse. Otro desaffo es tratar controles desarrollados recientemente que unicamente seran de valor si se incluyen en la transformacion - de nuevo esto resulta en la preprogramacion de la transformacion. Las tecnicas de correlacion de la presente invencion son capaces de cumplir estos desaffos. Observese que cualquier modificacion de la UI en tiempo de ejecucion (a traves de codigo) tambien puede considerarse una correlacion. La plataforma usada en la presente invencion expone un modelo de UI por capas y
5
10
15
20
25
30
35
40
45
50
55
usa mapas para transformar modelos desde una capa a otra. Esto se describe a continuacion en mayor detalle.
Los procedimientos y aparato de la presente invencion proporcionan una forma de calcular como presentar informacion de negocio al usuario en una plataforma dada. La invencion se construye sobre la correlacion de modelos con otros modelos, trabajando desde un modelo abstracto (describiendo las entidades de negocio con las que interactuar) hasta un modelo concreto (especificando exactamente que control espedfico del dispositivo debena usarse para presentar la informacion de negocio). En general, esta correlacion puede implicar cualquier numero de etapas.
Por ejemplo, considerese el diagrama 400 de bloques mostrado en la Figura 5-1 que ilustra un proceso de correlacion desde un modelo 405 maestro a un modelo 425 especializado usando dos etapas de correlacion expffcitas y declarativas. El modelo 405 maestro (es decir, "modelo A") puede ser, por ejemplo, una base de datos, tabla, entidad, objeto u otros tipos de modelos en un dominio de problema espedfico a un usuario. El modelo 405 maestro se correlaciona con un modelo 415 intermedio (es decir, "modelo B") con la etapa de correlacion ilustrada en 411 usando un mapa 410 (es decir, "mapa A-B"). El modelo 415 intermedio puede ser un modelo independiente del objetivo de visualizacion que tiene controles logicos, como se describiran a continuacion en mayor detalle. El modelo 415 intermedio se correlaciona a continuacion con un modelo 425 especializado (es decir, "modelo C") con la etapa de correlacion ilustrada en 421 usando un segundo mapa 420 (es decir, "mapa B-C"). El modelo 425 especializado puede ser un modelo espedfico de objetivo de visualizacion que tiene controles ffsicos, como tambien se describira a continuacion en mayor detalle. Las flechas usadas para representar las etapas 411 y 421 de correlacion tambien representan motores de correlacion que se configuran para utilizar los mapas 410 y 420 para implementar las etapas de correlacion.
De acuerdo con algunas realizaciones de la presente invencion, el esquema de correlacion implicado en la determinacion de como permitir que el usuario interactue con informacion de negocio en la plataforma cliente implica al menos tres etapas, como se describe a continuacion y como se muestra en forma de diagrama en el diagrama 450 de bloques de la Figura 5-2. El modelo 455 inicial (vease tambien el modelo 405 maestro mostrado en la Figura 5-1) contiene informacion acerca de las entidades de negocio con las que el usuario debe interactuar. Cada dato de este modelo de aplicacion es de un tipo particular. La primera etapa implica la determinacion de que control logico emplear para un tipo dado (cadena, numero entero, tipo decimal que representa valores monetarios, direcciones que contienen otros valores, etc.) del dato a presentar.
El control logico a usar para el tipo dado se determina usando una correlacion desde tipo de datos en el modelo 455 con control logico en el modelo 465. El procedimiento de correlacion se ilustra en 461, y utiliza un mapa 460 (es decir, el "mapa de tipo de dato a control logico"). Controles logicos tienen varias propiedades utiles. No tienen ninguna dependencia de ningun objetivo de visualizacion espedfico, pero mantienen propiedades que gobiernan el comportamiento de controles ffsicos espedficos de dispositivo. La consulta del control logico se realiza teniendo en cuenta el tipo jerarqrna. Si ningun control logico es espedficamente adecuado para el encapsulado de las propiedades de un tipo espedfico, la busqueda continua con un tipo base, hasta que se encuentra un control logico para tratar el tipo.
Una vez que se ha identificado un control logico a partir del tipo de datos a representar, debe encontrarse el control ffsico usado para realizar realmente la presentacion en la plataforma dada. Estos controles ffsicos se denominan en ocasiones como "adaptadores". Esto se hace usando otra correlacion, produciendo el control ffsico del control logico y el objetivo de visualizacion. El procedimiento de correlacion se ilustra en 471 y usa el mapa 470 (es decir, el "mapa de control de control logico a control ffsico ") para generar el modelo 475 de control ffsico a partir del modelo 465 de control logico.
Cuando el cliente se ejecuta en el objetivo de visualizacion del usuario, el control ffsico se usara para crear instancias de los controles nativos usados para interactuar con el usuario. Esto se hace mediante una tercera correlacion, produciendo un conjunto de controles nativos a partir del control ffsico. Por ejemplo, si el control ffsico fuera un control de direccion, el control ffsico correlacionana con controles nativos para calle, ciudad, pafs. El procedimiento de correlacion se ilustra en 481 y usa el mapa 480 (es decir, el "mapa de control ffsico a control nativo") para generar el modelo 485 de control nativo a partir del modelo 475 de control ffsico. En algunas realizaciones, esto es un mapa imperativo - pero no tiene por que serlo. De nuevo, las flechas 461, 471 y 481 tambien representan el motor o motores de correlacion usados para implementar las funciones de correlacion como se especifica mediante los mapas 460, 470 y 480.
La correlacion descrita anteriormente puede aumentarse con otras correlaciones para conseguir el resultado deseado. Otros factores incluyen el tipo de formulario presentado (tarjeta o vista de lista), el rol de usuario (posiblemente limitando la informacion ofrecida al usuario). El procedimiento de llegada desde el modelo abstracto al modelo concreto es puramente prescriptivo (describiendo las correlaciones implicadas) y se permite flexibilidad siendo capaz de cambiar estas correlaciones.
Como otro ejemplo, la Figura 5-3 ilustra un diagrama 500 de bloques que muestra un procedimiento de correlacion para conseguir desde un nombre del usuario y numero de identificacion (ID) hasta el HTML usado para presentar esta informacion en un navegador. El modelo 505 de negocio maestro inicial es una entidad (u objeto) o clase de
5
10
15
20
25
30
35
40
45
50
55
entidades (o clase de objetos) que tiene el nombre del cliente e ID como propiedades. Las propiedades de "Nombre" e "ID" del modelo 505 son de tipos "Cadena" y "Numero", respectivamente. El modelo 505 se correlaciona con una capa de control logico del modelo 515 usando un mapa 510 prescriptivo. El procedimiento de correlacion se representa en 511. En este ejemplo, los datos tipo "Cadena" se correlacionan con un control logico de "Caja de Texto", mientras los datos tipo "Numero" se correlaciona con un control logico de "Caja de Numeros".
A continuacion, el modelo 515 de control logico se correlaciona con un modelo 525 HTML usando el mapa 520. El procedimiento de correlacion se representa en 521. En este ejemplo, el modelo 525 es un modelo de control ffsico en forma de un modelo de HTML. Por lo tanto, el mapa 520 correlaciona los controles logicos del modelo 515 con etiquetas de HTML o elementos en el modelo 525. El modelo 525 de HTML se usa continuacion para presentar la informacion desde el modelo 505 en un navegador. De nuevo, las flechas usadas para representar las etapas 511 y 521 de correlacion tambien representan motores de correlacion configurados adecuadamente que utilizan los mapas 510 y 520 para implementar el procedimiento de correlacion.
La Figura 5-4 ilustra un aspecto adicional de realizaciones de la presente invencion en el que pueden relacionarse varios tipos de propiedades diferentes con los mismos controles finales, asf que el numero de controles requeridos no aumenta necesariamente cuando el numero de tipos de propiedades aumenta. Como se muestra en el diagrama 550 de bloques de la Figura 5, un modelo 560 de negocio que tiene propiedades 561 de diferentes tipos se correlaciona con un modelo 580 de objetivo de visualizacion usando los mapas 555. Similar a ejemplos anteriormente analizados, el modelo 560 se correlaciona con un modelo 570 de capa logica que tiene controles 571 logicos. El motor de correlacion y procedimiento de correlacion, que usan el mapa 565, se ilustran en 566. El mapa 565 correlaciona los tipos de dato ("Tipo de ID", "Cadena" y "Flotante") de las propiedades 561 del modelo 560 con controles logicos ("Numero" y "Cadena"). En este caso, tanto los tipos de dato "Tipo de ID" como "Flotante" se correlacionan con el tipo de control logico de "Numero", mientras el tipo de dato de "Cadena" se correlaciona con el tipo de control logico de "Cadena".
A continuacion, modelo 570 de capa logica se correlaciona con modelo 580 de objetivo de visualizacion que tiene controles 581 ffsicos espedficos para un objetivo de visualizacion particular. El modelo 570 se correlaciona con el modelo 580 usando el mapa 575, con el procedimiento y motor de correlacion representado en 576. El mapa 575 correlaciona los tipos de control logico "Numero" y "Cadena" del modelo 570 con el tipo de control ffsico "Caja de Texto" del modelo 580, ilustrando de nuevo que varios tipos diferentes de un modelo particular pueden relacionarse con un unico tipo en otro modelo. Por extension, varios tipos diferentes de propiedades de un modelo de negocio pueden relacionarse con el mismo control final (por ejemplo "ffsico").
Experiencia de Desarrollador
Cuando un desarrollador crea una nueva entidad, que se construye unicamente a partir de tipos existentes, tambien se construye una UI por defecto a traves de los mapas. Si la UI por defecto no ofrece la experiencia de usuario deseada, el desarrollador puede elegir:
• Modificar el modelo de negocio para reflejar los requisitos. Por ejemplo, en algunas realizaciones si la ordenacion de una secuencia de propiedades esta mal, digamos que el ID debeffa visualizarse antes del Nombre, entonces la entidad podffa editarse. En otras realizaciones, la ordenacion de propiedades reside en un "comportamiento" externo. Sin embargo, una agrupacion ordenada de propiedades puede "anadirse" a la entidad - y esto puede usarse para hacerlo. Por lo tanto, en estas realizaciones, el mejor enfoque podffa ser cambiar el orden en el agrupamiento.
• Modificar el modelo de formulario logico generado. Conmutar el Nombre y ID tambien podffa hacerse en el formulario. Esto potencialmente presenta algunos desaffos de mantenimiento posteriormente si se cambia la logica de negocio, tal como hace el cambio en la logica de negocio que sobrescribe cambios en el formulario. Tambien, puede ser necesario cambiar la logica de negocio en cada formulario.
• Modificar el mapa. Si el ID se correlaciona con un control de Numero pero es mas adecuado un control de Cadena, el mapa es el lugar correcto para hacer el cambio.
Existe un numero de beneficios al cambio del mapa en lugar de la mas tradicional modificacion de modelos. En primer lugar, los cambios pueden tener un ambito mas amplio. Si se cambiase la entrada de mapa usada en el ejemplo anterior, todas las entidades que usan el "Tipo de ID" automaticamente obtendffan la actualizacion. Esto resultaffa en una UI muy consistente, de la que podffa beneficiarse el usuario final.
Otro beneficio se vuelve evidente cuando se mira al mantenimiento y versiones futuras de una aplicacion. Cambiando la forma en que se generan modelos, pero sin cambiar los modelos generados, el modelo maestro puede actualizarse, y en lo sucesivo los modelos dependientes pueden generarse sin ningun riesgo de conflicto. No regenerar en absoluto los formularios podffa resultar en inconsistencias entre entidades y los formularios usados para ver y editar las mismas. Los mapas tambien descomponen la gran tarea de generacion en varias entradas de mapa declarativas pequenas.
Si el desarrollador crea un nuevo tipo de propiedad, tal como "Dinero", esto puede usarse de forma instantanea porque la UI se generara eficientemente si unicamente se anade una unica entrada de mapa. En este ejemplo la
5
10
15
20
25
30
35
40
45
50
55
nueva propiedad "Dinero" podna correlacionarse a un control de "Numero". El desarrollador podna tambien elegir explotar la informacion de metadatas anadida, y crea un control de "Dinero", y tiene la propiedad correlacionada al nuevo control. La tecnologfa de correlacion hace que ambos escenarios sean validos.
El Lenguaje de Correlacion
La correlacion usa un lenguaje de correlacion declarativo simple que es extensible. La correlacion toma uno o mas testigos como entrada y devuelve uno o mas testigos como salida. Dado un tipo de propiedad como entrada, uno o mas controles logicos pueden especificarse como salida. Tambien debe ser posible especificar la salida como nula. Por ejemplo, el "Tipo de ID" podna ser un campo generado por ordenador, que el usuario no puede editar o ver, en cuyo caso el tipo se correlaciona a nada. Tambien, la correlacion puede controlar parametros en la salida. Por ejemplo, la propiedad "Cadena" podna resultar en una Caja de Texto mas ancha en comparacion con las otras Cajas de Texto en el formulario.
Para tratar el problema de alcance abordado antes, se necesita una condicion de ambito - en el formulario de ejemplo anteriormente analizado, "Tipos de ID" se correlacionan con "Controles de ID", pero en todos los demas formularios se usa un control "Numero". Tambien pueden usarse otros parametros como ambito, incluyendo la entidad de negocio, el estereotipo de entidad, el tipo de formulario, etc. Existen otras condiciones que senan beneficiosas tener en consideracion cuando debe realizarse una correlacion. Un ejemplo es el control padre. Si el control padre es una lista, una propiedad de enumerador podna elegir correlacionarse a una lista desplegable y no un boton de radio. Otra condicion podna ser el numero de posibles selecciones en el enumerador; podnan usarse botones de radio si hay dos o tres, pero mas elecciones podnan resultar en una lista. Siguiendo este camino, el lenguaje de correlacion terminara siendo muy complejo en comparacion al requisito inicial, y se necesita otro nivel de abstraccion encima del mapa para que los desarrolladores entiendan los mapas. Este patron se ha visto con Transformacion de Lenguaje de Hojas de Estilo Extensibles (XSLT), en la que varias herramientas se han implementado para ocultar la complejidad.
FORMULARIOS LOGICOS - UN MODELO DE UI
Cuando se correlaciona desde el modelo de la logica de negocio al modelo de UI, se inserta una capa independiente de la disposicion, tambien llamada una capa logica. Si se cree que el modelo de la logica de negocio puede relacionarse con la UI final independientemente del objetivo de visualizacion, la capa logica es una abstraccion sencilla. Algunos metadatos seran comunes para todos los objetivos de visualizacion tal como la propia entidad de negocio, y algunas partes seran espedficas para el objetivo de visualizacion espedfico. La capa logica es la parte comun.
La Figura 6 es una ilustracion diagramatica de las actividades de tiempo de diseno y actividades de tiempo de ejecucion usadas para crear formularios. En tiempo de diseno, se usan las herramientas 605 de modelado para crear modelos o definiciones de formulario y mapas tal como los analizados anteriormente. Estas definiciones de formulario y mapas pueden almacenarse en una base 610 de datos de metadatos.
En tiempo de ejecucion, los modelos o formularios se correlacionan con el modelo 625 de capa logica. El modelo 625 de capa logica tambien se genera usando datos de tiempo de ejecucion almacenados en la base 615 de datos aplicados a la logica 620 de negocio. Tambien en tiempo de ejecucion, el modelo 625 de capa logica se correlaciona con un modelo 630 de objetivo de visualizacion como se describe anteriormente.
Los formularios que incluyen capas logicas y controles es el puente entre la logica 620 de negocio y los objetivos 630 de visualizacion. Tiene conocimiento limitado de disposicion y conocimiento limitado de la logica de negocio. La capa logica define el contenido de un formulario a base de las entidades de negocio y trata cuestiones de tiempo de ejecucion comunes tal como formularios de vinculacion de datos a la instancia de tiempo de ejecucion de las entidades de negocio. Adicionalmente, la capa logica trata la seguridad comun a todos los objetivos de visualizacion; proporciona metadatos a cada objetivo de visualizacion y la capa logica puede tratar validacion de entradas.
Un arquitecto de negocio o desarrollador puede centrarse en logica de negocio espedfica de dominio y datos. Cuando el foco se cambia a la UI, los detalles de disposicion, cuestiones de vinculacion de datos, codigo de establecimiento, validacion de entrada, ocultacion de propiedades no legibles, tratamiento de errores, etc., se ocultan todos en el nivel superior de abstraccion encontrado en la capa logica. El especialista de dominio puede centrarse en los contenidos de la UI - que tiene sentido que vea el usuario - y no necesita tener un conocimiento profundo acerca de objetivos de visualizacion espedficos y sus diferentes tecnologfas de presentacion.
Como se ha analizado, los formularios logicos o modelos de capas logicas se construyen usando controles logicos. Pueden anadirse facilmente nuevos controles, haciendo la capa logica muy flexible y extensible. Cuando se desarrolla un nuevo control, simplemente se anade a formularios existentes cambiando los mapas usados. Cada objetivo de visualizacion se beneficiara de la nueva funcionalidad sin tener que implementar nuevos controles, pero si tiene sentido, puede introducirse un nuevo control.
5
10
15
20
25
30
35
40
45
50
55
OBJETIVOS DE VISUALIZACION
Los formularios logicos y controles se correlacionan con tecnologfas de presentacion espedficas usadas por los objetivos de visualizacion. Como en otras Figuras, esto se ilustra en la Figura 7 en la que el modelo de capa logica o formulario 705 se correlaciona con varios objetivos de visualizacion espedficos. En este ejemplo particular, el objetivo 710 de visualizacion usa tecnologfa de presentacion de Windows, mientras el objetivo 715 de visualizacion usa una tecnologfa de presentacion Web. Los objetivos de visualizacion son responsables del tratamiento de todas las interacciones de usuario, incluyendo la presentacion de los formularios y controles y tratamiento de la entrada de usuario. Cada objetivo de visualizacion necesita un numero de controles de modo que los controles en la capa logica se correlacionan con algo valido. Es decir, la propiedad tiene que ser compatible con los tipos de valor que puede tratar el control y el control debena presentar ese valor de una forma razonable. En otras palabras, no existe un numero espedfico de controles que necesiten estar disponibles en cada objetivo de visualizacion, ya que la tecnologfa de correlacion tiene un significativo impacto en esto.
Los objetivos de visualizacion controlan la interaccion de usuario y esencialmente tambien el paradigma de interaccion. Una pagina web y una ventana de Formularios de Windows podnan generarse a base del mismo formulario logico, pero si usan una pofftica de interaccion de comunicacion o una pofftica de envffo posterior solida se determina naturalmente mediante el objetivo de visualizacion. Cada objetivo de visualizacion elige cuanto se muestra de un formulario al usuario. Un formulario de Windows puede ocultar informacion en paginas de pestanas, mientras una pagina web puede elegir mostrar toda la informacion a la vez. Estas decisiones se toman a base del formulario logico y por lo tanto tambien el tipo de formulario, que obtienen los objetivos de visualizacion. Diferentes objetivos de visualizacion necesitan informacion adicional para tomar tales decisiones de paginacion y de forma similar los formularios logicos y controles pueden anotarse con informacion de objetivo de visualizacion espedfica.
COMPORTAMIENTOS - LOGICA DE FORMULARIO DECLARATIVA
Ya que los formularios se hacen de controles logicos, que definen el contenido, existe aun una necesidad de anadir dinamicas a los formularios. Esto podna hacerse usando codigo. Pero no es facil correlacionar codigo en un formulario y por lo tanto se necesita un nivel de abstraccion declarativo. Al mismo tiempo, existen muchos patrones en el codigo, que se anaden a los formularios. Por ejemplo, en muchos formularios se encuentra codigo para deshabilitar un campo si se rellena otro campo. Si se selecciona "En efectivo" como un tipo de pago en un formulario, el "Numero de Tarjeta de Credito" se sombrea o incluso se oculta.
Estos patrones se capturan en un concepto llamado "comportamientos." Los comportamientos se anaden declarativamente a los formularios y se activan a traves de eventos en el formulario. Los comportamientos pueden, dependiendo de valores y propiedades de los controles, establecer propiedades en otros controles, pero los comportamientos no se limitan a este uso. Los comportamientos se correlacionan principalmente a base de limitaciones en las entidades o en otras propiedades de metadatos. Las entidades son responsables del tratamiento de la logica de negocio y los comportamientos son responsables de la logica de UI. En otras palabras, los comportamientos no debenan implementar ninguna logica de negocio ya que esto violana la separacion de asuntos.
SISTEMA POR CAPAS Y EJEMPLO DE PROCEDIMIENTO
Haciendo referencia ahora a la Figura 8, se muestra una ilustracion diagramatica de un sistema por capas y procedimiento que implementa los diversos conceptos descritos anteriormente (es decir, tipos de formulario logico, mapas de UI, controles, comportamientos, etc.) en combinacion. Como se muestra en la Figura 8, el sistema o procedimiento 900 se implementa usando un marco 905 de negocio que puede incluir aplicaciones de negocio y sistemas informaticos, un motor de correlacion de cliente principal o componente 910 y uno o mas objetivos 915 de visualizacion. Para fines de ilustracion, la Figura 8 se segmenta para mostrar los mapas 920 (incluyendo mapas 921 y 922), modelos 925 (incluyendo aplicacion o modelo 926 de negocio, modelo 927 de formulario logico y modelo 928 ffsico) y librenas 930.
Las librenas 930 incluyen librenas 931 de tipos de propiedades, en el marco 905 de negocio, que define los diversos tipos 923 de propiedades de dato en el modelo 926 de aplicacion. En el cliente 910 principal, las librenas 930 incluyen la librena 932 de controles logicos, librena 933 de comportamientos y librena 934 de tipos de formulario logico. Como se ha descrito anteriormente, la librena 932 de controles logicos define los diversos controles 924 logicos con los que pueden relacionarse el dato o tipos 923 de propiedades del modelo 926. Esta correlacion entre el modelo 926 de aplicacion y modelo 927 de formulario logico se realiza mediante el motor de correlacion de cliente principal usando el mapa 921.
La librena 933 de comportamientos y librena 934 de tipos de formulario logico se usan por el motor 910 de correlacion de cliente principal en el procedimiento de diseno y generacion de formularios como se ha descrito anteriormente. Las librenas 930 tambien incluyen librena 935 de estilos, librena 936 de controles ffsicos o nativos y librena 937 de tipos de formulario que se usan por el objetivo 900 de visualizacion para generar el modelo 928 de formulario ffsico y por lo tanto para presentar el formulario ffsico. La librena 936 de control define los diversos controles ffsicos 925 para un objetivo de visualizacion particular a los que pueden relacionarse los controles 924 logicos usando el mapa 922.

Claims (16)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    REIVINDICACIONES
    1. Un procedimiento implementado por ordenador de generacion de una interfaz de usuario de formulario controlada por modelo para representar un modelo de aplicacion, comprendiendo el procedimiento:
    recibir una entrada de seleccion para seleccionar cual de una pluralidad de diferentes tipos de formulario logico usar para generar una interfaz de usuario de formulario para representar un modelo de aplicacion; proporcionar un primer mapa declarativo;
    generar un formulario logico independiente del objetivo de visualizacion usando el modelo de aplicacion, el tipo de formulario logico seleccionado y el primer mapa declarativo, en el que generar el formulario logico independiente del objetivo de visualizacion usando el primer mapa declarativo comprende ademas correlacionar tipos de propiedades de dato del modelo de aplicacion con controles logicos independientes del objetivo visualizacion en el formulario logico independiente del objetivo de visualizacion;
    correlacionar el formulario logico independiente del objetivo de visualizacion con un formulario ffsico usando un segundo mapa declarativo, en el que el formulario ffsico tiene una pluralidad de controles ffsicos disponibles para su uso en la presentacion del formulario logico en un objetivo de visualizacion, comprendiendo el uso del segundo mapa declarativo correlacionar cada uno de los controles logicos en el formulario logico con uno de la pluralidad de controles ffsicos disponibles; y
    presentar la interfaz de usuario de formulario en tiempo de ejecucion usando el formulario logico generado de tal forma que el modelo de aplicacion esta accionado en un tiempo de ejecucion, comprendiendo la presentacion del formulario logico como el formulario ffsico en el objetivo de visualizacion, en el que el formulario logico se genera en tiempo de ejecucion usando tanto el tipo de formulario logico seleccionado como metadatos del modelo de aplicacion.
  2. 2. El procedimiento de la reivindicacion 1, en el que generar el formulario logico independiente del objetivo de visualizacion comprende generar un modelo de formulario logico independiente del objetivo de visualizacion.
  3. 3. El procedimiento de la reivindicacion 1, en el que generar el formulario logico independiente del objetivo de visualizacion usando el modelo de aplicacion, el tipo de formulario seleccionado y el primer mapa declarativo comprende ademas tambien adjuntar comportamientos aplicados declarativamente al formulario logico independiente del objetivo de visualizacion.
  4. 4. El procedimiento de la reivindicacion 3, en el que los comportamientos aplicados declarativamente se activan mediante eventos en el formulario.
  5. 5. El procedimiento de la reivindicacion 4, en el que los comportamientos aplicados declarativamente son patrones de logica que, dependiendo de valores y propiedades de los controles logicos, establece propiedades en otros controles.
  6. 6. El procedimiento de la reivindicacion 1, en el que el primer mapa declarativo es externo a un motor de correlacion usado para generar el formulario logico independiente del objetivo de visualizacion.
  7. 7. El procedimiento de la reivindicacion 6, en el que el primer mapa declarativo es un modelo usado por el motor de correlacion para generar el modelo de control logico.
  8. 8. El procedimiento de la reivindicacion 1, en el que cada uno de la pluralidad de diferentes tipos de formulario logico tiene un esquema asociado que define datos de modelo de aplicacion a incluir en el formulario logico generado, y en el que generar el formulario logico en tiempo de ejecucion comprende ademas generar el formulario logico usando el esquema asociado.
  9. 9. El procedimiento de la reivindicacion 8, en el que el esquema de cada uno de la pluralidad de diferentes tipos de formulario logico representa patrones capturados de una pluralidad de formularios.
  10. 10. El procedimiento de la reivindicacion 8, en el que cada uno de la pluralidad de tipos de formulario logico tiene al menos una disposicion definida, comprendiendo el procedimiento ademas generar el formulario ffsico en tiempo de ejecucion usando la al menos una disposicion definida.
  11. 11. Un medio legible por ordenador que tiene instrucciones ejecutables por ordenador de realizacion de etapas de generacion de interfaz de usuario de formulario que comprenden:
    recibir una entrada de seleccion para seleccionar cual de una pluralidad de diferentes tipos de formulario logico usar para generar una interfaz de usuario de formulario para representar un modelo de aplicacion; proporcionar un primer mapa declarativo;
    generar un formulario logico independiente del objetivo de visualizacion usando el modelo de aplicacion, el tipo de formulario logico seleccionado y el primer mapa declarativo que comprende correlacionar tipos de propiedades de dato del modelo de aplicacion con controles logicos independientes del objetivo visualizacion en el formulario logico independiente del objetivo de visualizacion;
    correlacionar el formulario logico independiente del objetivo de visualizacion con un formulario ffsico usando un
    5
    10
    15
    20
    25
    segundo mapa declarativo, en el que el formulario ffsico tiene una pluralidad de controles ffsicos disponibles para su uso en la presentacion del formulario logico en un objetivo de visualizacion, y en el que presentar el formulario logico al formulario ffsico usando el segundo mapa declarativo comprende ademas usar el segundo mapa declarativo para correlacionar cada uno de los controles logicos en el formulario logico con uno de la pluralidad de controles ffsicos disponibles; y
    presentar la interfaz de usuario de formulario en tiempo de ejecucion usando el formulario logico generado de tal forma que el modelo de aplicacion esta accionado en un tiempo de ejecucion, comprendiendo la presentacion del formulario logico como el formulario ffsico en el objetivo de visualizacion, en el que el formulario logico se genera en tiempo de ejecucion usando tanto el tipo de formulario logico seleccionado como metadatos del modelo de aplicacion.
  12. 12. El medio legible por ordenador de la reivindicacion 11, en el que generar el formulario logico independiente del objetivo de visualizacion usando el modelo de aplicacion, el tipo de formulario seleccionado y el primer mapa declarativo comprende ademas adjuntar comportamientos aplicados declarativamente al formulario logico independiente del objetivo de visualizacion.
  13. 13. El medio legible por ordenador de la reivindicacion 11, en el que el primer mapa declarativo es externo a un motor de correlacion usado para generar el formulario logico independiente del objetivo de visualizacion.
  14. 14. El medio legible por ordenador de la reivindicacion 11, en el que cada uno de la pluralidad de diferentes tipos de formulario logico tiene un esquema asociado que define datos de modelo de aplicacion a incluir en el formulario logico generado, y en el que generar el formulario logico comprende ademas generar el formulario logico usando el esquema asociado.
  15. 15. El medio legible por ordenador de la reivindicacion 14, en el que el esquema de cada uno de la pluralidad de diferentes tipos de formulario logico representa patrones capturados de una pluralidad de formularios.
  16. 16. El medio legible por ordenador de la reivindicacion 14, en el que cada uno de la pluralidad de tipos de formulario logico tiene al menos una disposicion definida, teniendo el medio legible por ordenador adicionalmente instrucciones ejecutables por ordenador de realizacion de la etapa adicional de generacion del formulario ffsico en tiempo de ejecucion usando la al menos una disposicion definida.
ES05104723.1T 2004-06-03 2005-06-01 Procedimiento y aparato de generación de interfaces de usuario a base de automatización con flexibilidad total Active ES2692120T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US860306 2004-06-03
US10/860,306 US7424485B2 (en) 2004-06-03 2004-06-03 Method and apparatus for generating user interfaces based upon automation with full flexibility

Publications (1)

Publication Number Publication Date
ES2692120T3 true ES2692120T3 (es) 2018-11-30

Family

ID=34940048

Family Applications (1)

Application Number Title Priority Date Filing Date
ES05104723.1T Active ES2692120T3 (es) 2004-06-03 2005-06-01 Procedimiento y aparato de generación de interfaces de usuario a base de automatización con flexibilidad total

Country Status (11)

Country Link
US (1) US7424485B2 (es)
EP (1) EP1603034B1 (es)
JP (1) JP5099982B2 (es)
KR (1) KR101120815B1 (es)
CN (1) CN1704900B (es)
AU (1) AU2005201433B2 (es)
BR (1) BRPI0501581A (es)
CA (1) CA2504082C (es)
ES (1) ES2692120T3 (es)
MX (1) MXPA05004862A (es)
RU (1) RU2390822C2 (es)

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7412658B2 (en) 2002-11-14 2008-08-12 Sap Ag Modeling system for graphic user interface
US7665063B1 (en) 2004-05-26 2010-02-16 Pegasystems, Inc. Integration of declarative rule-based processing with procedural programming
US7363578B2 (en) * 2004-06-03 2008-04-22 Microsoft Corporation Method and apparatus for mapping a data model to a user interface model
US7665014B2 (en) * 2004-06-03 2010-02-16 Microsoft Corporation Method and apparatus for generating forms using form types
US7424485B2 (en) 2004-06-03 2008-09-09 Microsoft Corporation Method and apparatus for generating user interfaces based upon automation with full flexibility
US9047388B2 (en) 2004-07-01 2015-06-02 Mindjet Llc System, method, and software application for displaying data from a web service in a visual map
US9038001B2 (en) * 2004-07-01 2015-05-19 Mindjet Llc System and method for graphically illustrating external data source information in the form of a visual hierarchy in an electronic workspace
US20060026522A1 (en) * 2004-07-27 2006-02-02 Microsoft Corporation Method and apparatus for revising data models and maps by example
US7451432B2 (en) * 2004-10-01 2008-11-11 Microsoft Corporation Transformation of componentized and extensible workflow to a declarative format
US20060074735A1 (en) * 2004-10-01 2006-04-06 Microsoft Corporation Ink-enabled workflow authoring
US8170901B2 (en) * 2004-10-01 2012-05-01 Microsoft Corporation Extensible framework for designing workflows
US20060294006A1 (en) * 2005-06-28 2006-12-28 International Business Machines Corporation Business transaction process controller for composite transactions
US7840935B2 (en) * 2005-12-29 2010-11-23 Sap Ag Restrictive visualization of a stereotype construct for entities in a visual modeling environment
US8561048B2 (en) * 2005-12-29 2013-10-15 Sap Ag Late and dynamic binding of pattern components
US7840936B2 (en) * 2005-12-29 2010-11-23 Sap Ag Support of a platform-independent model including descriptions of modeling language entities
US7757204B2 (en) * 2005-12-29 2010-07-13 Sap Ag Limiting extensibility of a visual modeling language
US7774745B2 (en) * 2005-12-29 2010-08-10 Sap Ag Mapping of designtime to runtime in a visual modeling language environment
US8156469B2 (en) * 2005-12-29 2012-04-10 Sap Ag Single composition of pattern modules
US20070192364A1 (en) * 2005-12-29 2007-08-16 International Business Machines Corporation Apparatus and method for porting of business logic among computer platforms
US7584416B2 (en) * 2006-02-21 2009-09-01 Microsoft Corporation Logical representation of a user interface form
US8966456B2 (en) 2006-03-24 2015-02-24 The Mathworks, Inc. System and method for providing and using meta-data in a dynamically typed array-based language
US7984416B2 (en) * 2006-03-24 2011-07-19 The Mathworks, Inc. System and method for providing class definitions in a dynamically typed array-based language
US8924335B1 (en) * 2006-03-30 2014-12-30 Pegasystems Inc. Rule-based user interface conformance methods
US7945891B2 (en) * 2006-04-12 2011-05-17 Microsoft Corporation Time business process validations within data context
US20070244910A1 (en) * 2006-04-12 2007-10-18 Microsoft Corporation Business process meta-model
US7809663B1 (en) 2006-05-22 2010-10-05 Convergys Cmg Utah, Inc. System and method for supporting the utilization of machine language
US8379830B1 (en) 2006-05-22 2013-02-19 Convergys Customer Management Delaware Llc System and method for automated customer service with contingent live interaction
US8887130B2 (en) * 2006-06-16 2014-11-11 Sony Corporation Software design and development in a service oriented environment
US20080005159A1 (en) * 2006-06-28 2008-01-03 International Business Machines Corporation Method and computer program product for collection-based iterative refinement of semantic associations according to granularity
US7730412B2 (en) * 2006-06-30 2010-06-01 Sap Ag System and method for model-based user interface using transformation nodes
US20080059944A1 (en) * 2006-08-15 2008-03-06 Zeligsoft Inc. Deployment-aware software code generation
US7844912B2 (en) * 2006-12-22 2010-11-30 Sap Ag System and method using transformation nodes with enhancement layers
US8689174B2 (en) * 2006-12-28 2014-04-01 Sap Ag Extensibility of pattern components
US8250525B2 (en) 2007-03-02 2012-08-21 Pegasystems Inc. Proactive performance management for multi-user enterprise software systems
US7917893B2 (en) * 2007-03-07 2011-03-29 Microsoft Corporation Using a system of annotations to generate views and adapters
US8010970B2 (en) * 2007-04-10 2011-08-30 Microsoft Corporation Developing controls for outlook add-ins
CN101316296B (zh) * 2007-05-29 2012-09-05 中兴通讯股份有限公司 管理多种电子工单生成的方法及系统
US20090043592A1 (en) * 2007-08-06 2009-02-12 Sap Ag Method and system for managing product development processes
US20090064205A1 (en) * 2007-08-16 2009-03-05 Oracle International Corporation System and method for harvesting service metadata from a metadata repository into an architecture diagram
US20090083697A1 (en) * 2007-09-21 2009-03-26 Honeywell International Inc. Integration of User Interface Design and Model Driven Development
US8458648B2 (en) * 2007-12-10 2013-06-04 International Business Machines Corporation Graphical modelization of user interfaces for data intensive applications
US9817540B2 (en) * 2007-12-31 2017-11-14 Intel Corporation Device, system, and method of composing logical computing platforms
US10304095B2 (en) * 2008-02-04 2019-05-28 Thomson Reuters Global Resources Unlimited Company System and method for accounting gateway
US20090319923A1 (en) * 2008-06-20 2009-12-24 International Business Machines Corporation Method for generating role-based user interfaces utilizing uml models
US20100070891A1 (en) * 2008-09-18 2010-03-18 Creekbaum William J System and method for configuring an application via a visual map interface
US9396455B2 (en) 2008-11-10 2016-07-19 Mindjet Llc System, method, and software application for enabling a user to view and interact with a visual map in an external application
KR20110099311A (ko) * 2008-12-19 2011-09-07 인터내셔널 비지네스 머신즈 코포레이션 데이터 메타-모델로부터 음성 사용자 인터페이스 코드를 발생시키는 방법 및 시스템
US8843435B1 (en) 2009-03-12 2014-09-23 Pegasystems Inc. Techniques for dynamic data processing
US8468492B1 (en) 2009-03-30 2013-06-18 Pegasystems, Inc. System and method for creation and modification of software applications
US8190499B1 (en) 2009-08-21 2012-05-29 Intuit Inc. Methods systems and articles of manufacture for collecting data for future electronic tax return
US8428984B2 (en) * 2009-08-31 2013-04-23 Sap Ag Transforming service oriented architecture models to service oriented infrastructure models
CA2679786A1 (en) * 2009-09-16 2009-12-16 Ibm Canada Limited - Ibm Canada Limitee Conceptual representation of business processes for cross-domain mapping
KR101277274B1 (ko) * 2009-11-27 2013-06-20 한국전자통신연구원 자원 간의 물리적/논리적 관계를 맵핑하는 방법 및 장치
US20110185294A1 (en) * 2010-01-22 2011-07-28 Microsoft Corporation Pattern-based user interfaces
US9513882B2 (en) * 2010-04-15 2016-12-06 Microsoft Technology Licensing, Llc Platform independent presentation composition
US8583517B1 (en) 2010-04-30 2013-11-12 Intuit Inc. Systems and methods for generating and sending electronic messages related to a tax return
DK177307B1 (en) * 2010-12-17 2012-11-12 Aquaporin As A liquid membrane
CN102004645B (zh) * 2010-12-17 2014-06-25 无锡永中软件有限公司 一种实现电子表格单变量求解的方法
US8560827B1 (en) * 2010-12-28 2013-10-15 Emc International Company Automatically determining configuration parameters for a system based on business objectives
RU2479867C2 (ru) * 2010-12-29 2013-04-20 Олег Владимирович Горохов Способ работы пользовательского лингвистического интерфейса
US9141403B2 (en) * 2011-02-15 2015-09-22 Microsoft Technology Licensing, Llc Data-driven schema for describing and executing management tasks in a graphical user interface
US8880487B1 (en) 2011-02-18 2014-11-04 Pegasystems Inc. Systems and methods for distributed rules processing
US20120284631A1 (en) * 2011-05-02 2012-11-08 German Lancioni Methods to adapt user interfaces and input controls
US20120284735A1 (en) * 2011-05-06 2012-11-08 Microsoft Corporation Interaction-Based Interface to a Logical Client
US20130067365A1 (en) * 2011-09-13 2013-03-14 Microsoft Corporation Role based user interface for limited display devices
US9720583B2 (en) 2011-09-22 2017-08-01 Microsoft Technology Licensing, Llc User interface for editing a value in place
US9195936B1 (en) 2011-12-30 2015-11-24 Pegasystems Inc. System and method for updating or modifying an application without manual coding
US20130290851A1 (en) * 2012-04-30 2013-10-31 Microsoft Corporation User interface web services
CN103473622B (zh) * 2012-06-07 2021-11-02 Sap欧洲公司 基于业务方案的范围界定
US10268662B2 (en) * 2012-09-10 2019-04-23 The Boeing Company Panoptic visualization of a document according to the structure thereof
US9858624B2 (en) * 2012-10-04 2018-01-02 Qvinci Software, Llc Methods and apparatus for providing data normalization, scalability and maintainability
GB201300465D0 (en) 2013-01-11 2013-02-27 Aquaporin As A hollow fiber module having tfc-aquaporin modified membranes
DK177696B1 (en) 2013-02-25 2014-03-17 Aquaporin As Systems for water extraction
CN103713901B (zh) * 2013-12-24 2018-01-12 金蝶软件(中国)有限公司 单据的展示方法和系统
CN103809976A (zh) * 2014-02-19 2014-05-21 浪潮软件股份有限公司 工作流关联多终端类型表单的方法
US10469396B2 (en) 2014-10-10 2019-11-05 Pegasystems, Inc. Event processing with enhanced throughput
CN104391725B (zh) * 2014-12-08 2017-11-14 畅捷通信息技术股份有限公司 页面展示方法和页面展示装置
US10572129B2 (en) * 2014-12-24 2020-02-25 Sap Portals Isreal Ltd Declarative user interface representation conversion via hierarchical templates
RU2015116133A (ru) * 2015-04-29 2016-11-20 Общество с ограниченной ответственностью "1С" Способ автоматизированного генерирования интерфейса приложения
RU2613026C1 (ru) * 2015-09-30 2017-03-14 Общество с ограниченной ответственностью "Интерсофт" Способ подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы
CN108351768B (zh) 2015-09-30 2021-04-20 伊恩杰里索芙特公司 用标记语言编写文档的同时实现处理信息系统的数据的用户界面的方法
US10203939B2 (en) * 2015-10-30 2019-02-12 Sap Se Method and system for parameter model framework
CN105739984B (zh) * 2016-01-29 2019-08-06 中国人民解放军63811部队 一种基于Qt的高可维护性数据显示系统
US10521721B2 (en) * 2016-04-08 2019-12-31 International Business Machines Corporation Generating a solution for an optimization problem
US10698599B2 (en) 2016-06-03 2020-06-30 Pegasystems, Inc. Connecting graphical shapes using gestures
US10698647B2 (en) 2016-07-11 2020-06-30 Pegasystems Inc. Selective sharing for collaborative application usage
US11625662B2 (en) 2016-09-22 2023-04-11 Qvinci Software, Llc Methods and apparatus for the manipulating and providing of anonymized data collected from a plurality of sources
US10372443B2 (en) 2016-10-18 2019-08-06 Oracle International Corporation Multi-platform pattern-based user interfaces
EP3462309A1 (en) * 2017-09-28 2019-04-03 Siemens Aktiengesellschaft Method for generating user interfaces from a manufacturing application model
US20200004798A1 (en) * 2018-06-27 2020-01-02 Q2 Software, Inc. Method and system for automating web processes utilizing an abstractable underlying platform layer
US11048488B2 (en) 2018-08-14 2021-06-29 Pegasystems, Inc. Software code optimizer and method
US11055073B2 (en) 2019-04-08 2021-07-06 Citrix Systems, Inc. Transforming validated user interface layouts using inter-platform design mapping data
CN110633459B (zh) * 2019-07-23 2023-10-10 石化盈科信息技术有限责任公司 数据报表的自动生成方法及系统、计算机可读存储介质
CN113050930A (zh) * 2019-12-27 2021-06-29 北京华为数字技术有限公司 用户图形界面修改方法以及相关设备
US11567945B1 (en) 2020-08-27 2023-01-31 Pegasystems Inc. Customized digital content generation systems and methods
CN112163049B (zh) * 2020-09-29 2024-04-09 北京中电普华信息技术有限公司 将业务对象映射为数据实体的方法及装置
CN113204329B (zh) * 2021-03-19 2024-06-14 浙江华云信息科技有限公司 统一数据模型驱动业务应用的控制方法及其应用系统
CN114064716B (zh) * 2021-10-29 2023-10-20 北京市农林科学院信息技术研究中心 基于元数据的web报表自动生成方法及装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649190A (en) * 1994-06-14 1997-07-15 Harris Corporation Multi-model database system for dynamic creation and maintenance of complex objects in a real time environment
US6076051A (en) 1997-03-07 2000-06-13 Microsoft Corporation Information retrieval utilizing semantic representation of text
US5999948A (en) * 1997-09-03 1999-12-07 3Com Corporation Dynamic configuration forms in network management software
US6012098A (en) 1998-02-23 2000-01-04 International Business Machines Corp. Servlet pairing for isolation of the retrieval and rendering of data
CA2363733C (en) 1999-03-02 2011-10-18 Quixtar Investments, Inc. Electronic commerce transactions within a marketing system
US6636242B2 (en) 1999-08-31 2003-10-21 Accenture Llp View configurer in a presentation services patterns environment
US6704743B1 (en) 1999-09-13 2004-03-09 Copernus, Inc. Selective inheritance of object parameters in object-oriented computer environment
AU2001281285A1 (en) 2000-06-23 2002-01-08 Sportvision, Inc. Locating an object using gps with additional data
US20020083068A1 (en) 2000-10-30 2002-06-27 Quass Dallan W. Method and apparatus for filling out electronic forms
EP1330709A2 (en) * 2000-11-03 2003-07-30 Wilde Technologies Limited A software development process
US20020152118A1 (en) * 2000-11-06 2002-10-17 Hadjigeorgis George K. System of a computer-networked, point-of-sale rebate award program
US20020111922A1 (en) 2000-11-06 2002-08-15 Terry Bernard Young Electronic markets business interchange system and method
US7194743B2 (en) * 2000-12-12 2007-03-20 Citrix Systems, Inc. Methods and apparatus for communicating changes between a user interface and an executing application using property paths
CA2329559A1 (en) * 2000-12-22 2002-06-22 Ibm Canada Limited-Ibm Canada Limitee Method and apparatus for generating serialization code for representing a model in different type systems
US7194683B2 (en) 2001-03-02 2007-03-20 International Business Machines Corporation Representing and managing dynamic data content for web documents
US20020163538A1 (en) * 2001-05-07 2002-11-07 Koninklijke Philips Electronics N.V. Electronic mail guide
US7246326B2 (en) * 2001-06-25 2007-07-17 Siemens Medical Solutions Health Services Corporation System and procedure for providing a user interface display
US20030025732A1 (en) * 2001-07-31 2003-02-06 Prichard Scot D. Method and apparatus for providing customizable graphical user interface and screen layout
US7895522B2 (en) * 2001-09-28 2011-02-22 Ntt Docomo, Inc. Layout of platform specific graphical user interface widgets migrated between heterogeneous device platforms
US20030221165A1 (en) 2002-05-22 2003-11-27 Microsoft Corporation System and method for metadata-driven user interface
US20050005259A1 (en) * 2003-03-14 2005-01-06 Infowave Software, Inc. System and method for communication and mapping of business objects between mobile client devices and a plurality of backend systems
US7698176B2 (en) 2003-07-28 2010-04-13 At&T Intellectual Property I, L.P. Method, system, and computer-readable medium for updating inventory data in an inventory management system
US7933762B2 (en) 2004-04-16 2011-04-26 Fortelligent, Inc. Predictive model generation
US7424485B2 (en) 2004-06-03 2008-09-09 Microsoft Corporation Method and apparatus for generating user interfaces based upon automation with full flexibility

Also Published As

Publication number Publication date
CN1704900A (zh) 2005-12-07
KR20060047250A (ko) 2006-05-18
CA2504082A1 (en) 2005-12-03
EP1603034A2 (en) 2005-12-07
US20060004845A1 (en) 2006-01-05
JP5099982B2 (ja) 2012-12-19
RU2390822C2 (ru) 2010-05-27
CA2504082C (en) 2012-02-07
BRPI0501581A (pt) 2006-01-24
AU2005201433A1 (en) 2005-12-22
MXPA05004862A (es) 2005-12-07
EP1603034A3 (en) 2007-12-26
RU2005116964A (ru) 2006-11-20
JP2005346719A (ja) 2005-12-15
AU2005201433B2 (en) 2010-04-08
KR101120815B1 (ko) 2012-03-23
US7424485B2 (en) 2008-09-09
EP1603034B1 (en) 2018-07-25
CN1704900B (zh) 2012-09-05

Similar Documents

Publication Publication Date Title
ES2692120T3 (es) Procedimiento y aparato de generación de interfaces de usuario a base de automatización con flexibilidad total
US7363578B2 (en) Method and apparatus for mapping a data model to a user interface model
JP4812337B2 (ja) フォームタイプを使用してフォームを生成する方法および装置
Bouman et al. Pentaho solutions
US8555249B2 (en) Lifecycle stable user interface adaptations
Porebski et al. Building PHP Applications with Symfony, CakePHP, and Zend Framework
US20080092068A1 (en) Method for automating construction of the flow of data driven applications in an entity model
MacDonald et al. Pro Asp. Net 3.5 In C# 2008 3Rd Ed: Includes Silverlight 2
Russell Dojo: The Definitive Guide: The Definitive Guide
Lecky-Thompson et al. Professional PHP5
Smyth IOS 8 App Development Essentials
Mechtley et al. Maya Python for Games and Film: A Complete Reference for the Maya Python API
Powers et al. Microsoft Visual Studio 2005 Unleashed
Zehoo Oracle Application Express 4 Recipes
Novák Beginning Microsoft Visual Studio LightSwitch Development
Hillerson Seven Mobile Apps in Seven Weeks: Native Apps, Multiple Platforms
Moore et al. Eclipse development
Krishnan Oracle ADF 11gR2 development beginner's guide
Brumbaugh et al. Making a Diner with a Rotating Sign
Wicklund et al. Professional Sitecore 8 Development: A Complete Guide to Solutions and Best Practices
Vogel Professional Web Parts And Custom Controls With Asp. Net2. 0
Baumgärtner Conceptual Foundation
Leung et al. Pro Visual Studio LightSwitch 2011 Development
Rinehart JavaScript Object Programming
Wicklund et al. Professional Sitecore 8 Development