US7584416B2 - Logical representation of a user interface form - Google Patents

Logical representation of a user interface form Download PDF

Info

Publication number
US7584416B2
US7584416B2 US11/358,492 US35849206A US7584416B2 US 7584416 B2 US7584416 B2 US 7584416B2 US 35849206 A US35849206 A US 35849206A US 7584416 B2 US7584416 B2 US 7584416B2
Authority
US
United States
Prior art keywords
logical
application
module
representation
data
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, expires
Application number
US11/358,492
Other versions
US20070198940A1 (en
Inventor
Eric B. Beran
Jens Moller-Pedersen
Peter Sloth
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 Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Priority to US11/358,492 priority Critical patent/US7584416B2/en
Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BERAN, ERIC B., KJALL, UFFE, MOLLER-PEDERSEN, JENS, SLOTH, PETER
Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BERAN, ERIC B., KJALL, UFFE, MOLLER-PEDERSEN, JENS, SLOTH, PETER
Publication of US20070198940A1 publication Critical patent/US20070198940A1/en
Application granted granted Critical
Publication of US7584416B2 publication Critical patent/US7584416B2/en
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing

Definitions

  • ERP enterprise resource planning
  • CRM customer relationship management
  • ERP or CRM systems typically handle the logistics of various activity modules internal to a business or organization, such as accounting/financial management, customer relations management, supply chain management and human resource management.
  • Example ERP system and CRM system software packages include Microsoft® DynamicsTM AX, Microsoft® DynamicsTM GP, Microsoft® DynamicsTM NAV, Microsoft® DynamicsTM SL and Microsoft® DynamicsTM CRM.
  • ERP and CRM systems utilize a large number of files that are part of a collection of information, generally in tabular form, that are stored in a database shared by various management application modules in each system.
  • business logic that can change the structure and behavior of the data.
  • Both the tabular form of data and structure presented by the business logic can be considered the data source for each ERP or CRM system.
  • a data source can exist within a web service that exposes data in one way or another.
  • These files represent widely varying types of information, for example, including information related to transactions such as sales orders, purchase orders, bill payments and information related to customers and vendors.
  • a form is a type of user interface (UI) element for viewing data and/or entering data.
  • UI form is physically represented on a display target. If an ERP or CRM system is connected to a conventional Windows display target, then example forms that would need to be constructed by a developer include Window forms. If an ERP or CRM system is connected to an Internet browser display target, then example forms that would need to be constructed by a developer include web forms or web element forms.
  • ERP and CRM systems include the use of the classic Windows UI accompanied by the Internet browser UI.
  • a developer constructs a UI form for each type of display target and each type of data source.
  • PDAs personal digital assistants
  • cell phones and other portable and non-portable UI technologies will accompany the use of the Windows UI and the Internet browser UI.
  • the addition of new UI technologies will add to the complexity and amount of forms that need to be constructed by a developer.
  • data sources each have their own approach to constructing UI forms.
  • a developer creates a logical client or logical model that describes how data structures are transformed for use in making UI forms.
  • the logical client can be modeled based on a plurality of different applications and can allow the rendering of UI forms on a plurality of different display targets.
  • the logical client includes at least a session module and a builder module.
  • the builder builds a logical UI representation that can be used to render a UI form on different types of display targets.
  • To render a UI form one of the display target initiates a session provided by the session module.
  • the session validates the user's credentials and instantiates one of the plurality of builder instances of the builder module that corresponds with metadata for a type of UI form.
  • the builder instance reads and transforms metadata from a application source.
  • the builder instance builds a logical UI representation that includes content pertaining to logical forms, controls, actions and databinders.
  • the content of the logical UI representation is independent of the source of data and independent of the display target which it will be rendered.
  • Content of the logical UI representation is exposed to at least one display target for rendering of a UI form.
  • the display target renders the UI form in accordance a type of the display target.
  • FIG. 1 illustrates a block diagram of a general computing environment in which some embodiments may be practiced.
  • FIG. 2 illustrates a block diagram of a mobile device computing environment in which some embodiments may be practiced.
  • FIG. 3 illustrates a simplified block diagram of a system for generating a user interface (UI) form.
  • UI user interface
  • FIG. 4 illustrates a block diagram of the system of FIG. 3 employing a builder to build a logical user interface (UI) representation used for rendering a UI form on a display target.
  • UI logical user interface
  • FIG. 5 illustrates flowchart of a computer-implemented method of constructing a logical UI representation.
  • FIG. 6 illustrates a more detailed block diagram of the system of FIG. 3 for generating a UI form.
  • FIG. 7 illustrates a flowchart of a computer-implemented method of generating a UI form that can be rendered on different types of display targets.
  • a common type of business application includes an Enterprise Resource Planning (ERP) system or Customer Relationship Management (CRM) system that can manage many different business modules of a company or a merchant.
  • ERP Enterprise Resource Planning
  • CRM Customer Relationship Management
  • These form based applications include forms constructed by a developer that are to be rendered by a display target.
  • a form is a window, dialog, page or other type of user interface (UI) element for viewing and/or entering information.
  • UI user interface
  • a display target renders a physical representation of a UI form.
  • Example display targets that can render a form include each rendering technology on the multiple types of current and future operating systems, such as Windows, the rendering technology of an Internet browser, as well as each rendering technology on the many available or future mobile devices, such as personal digital assistants and cell phones.
  • ERP and CRM systems are typically implemented in a networked environment of server computers and/or other computers.
  • the computing environment shown in FIG. 1 is one such example.
  • FIG. 1 illustrates an example of a suitable computing system environment 100 on which embodiments may be implemented.
  • the computing system environment 100 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the claimed subject matter. Neither should the computing environment 100 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment 100 .
  • Embodiments are operational with numerous other general purpose or special purpose computing system environments or configurations.
  • Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with various embodiments include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, telephony systems, distributed computing environments that include any of the above systems or devices, and the like.
  • Embodiments may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer.
  • program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
  • Some embodiments are designed to be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
  • program modules are located in both local and remote computer storage media including memory storage devices.
  • an exemplary system for implementing some embodiments includes a general-purpose computing device in the form of a computer 110 .
  • Components of computer 110 may include, but are not limited to, a processing unit 120 , a system memory 130 , and a system bus 121 that couples various system components including the system memory to the processing unit 120 .
  • the system bus 121 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
  • such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.
  • ISA Industry Standard Architecture
  • MCA Micro Channel Architecture
  • EISA Enhanced ISA
  • VESA Video Electronics Standards Association
  • PCI Peripheral Component Interconnect
  • Computer 110 typically includes a variety of computer readable media.
  • Computer readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvolatile media, removable and non-removable media.
  • Computer readable media may comprise computer storage media and communication media.
  • Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
  • Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 110 .
  • Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.
  • modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
  • communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
  • the system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132 .
  • ROM read only memory
  • RAM random access memory
  • BIOS basic input/output system
  • RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120 .
  • FIG. 1 illustrates operating system 134 , application programs 135 , other program modules 136 , and program data 137 .
  • the computer 110 may also include other removable/non-removable volatile/nonvolatile computer storage media.
  • FIG. 1 illustrates a hard disk drive 141 that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive 151 that reads from or writes to a removable, nonvolatile magnetic disk 152 , and an optical disk drive 155 that reads from or writes to a removable, nonvolatile optical disk 156 such as a CD ROM or other optical media.
  • removable/non-removable, volatile/nonvolatile computer storage media that can be used in the, exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like.
  • the hard disk drive 141 is typically connected to the system bus 121 through a non-removable memory interface such as interface 140
  • magnetic disk drive 151 and optical disk drive 155 are typically connected to the system bus 121 by a removable memory interface, such as interface 150 .
  • hard disk drive 141 is illustrated as storing operating system 144 , application programs 145 , other program modules 146 , and program data 147 . Note that these components can either be the same as or different from operating system 134 , application programs 135 , other program modules 136 , and program data 137 . Operating system 144 , application programs 145 , other program modules 146 , and program data 147 are given different numbers here to illustrate that, at a minimum, they are different copies.
  • a user may enter commands and information into the computer 110 through input devices such as a keyboard 162 , a microphone 163 , and a pointing device 161 , such as a mouse, trackball or touch pad.
  • Other input devices may include a joystick, game pad, satellite dish, scanner, or the like.
  • These and other input devices are often connected to the processing unit 120 through a user input interface 160 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB).
  • a monitor 191 or other type of display device is also connected to the system bus 121 via an interface, such as a video interface 190 .
  • computers may also include other peripheral output devices such as speakers 197 and printer 196 , which may be connected through an output peripheral interface 195 .
  • the computer 110 is operated in a networked environment using logical connections to one or more remote computers, such as a remote computer 180 .
  • the remote computer 180 may be a personal computer, a hand-held device, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 110 .
  • the logical connections depicted in FIG. 1 include a local area network (LAN) 171 and a wide area network (WAN) 173 , but may also include other networks.
  • LAN local area network
  • WAN wide area network
  • Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet.
  • the computer 110 When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170 .
  • the computer 110 When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over the WAN 173 , such as the Internet.
  • the modem 172 which may be internal or external, may be connected to the system bus 121 via the user input interface 160 , or other appropriate mechanism.
  • program modules depicted relative to the computer 110 may be stored in the remote memory storage device.
  • FIG. 1 illustrates remote application programs 185 as residing on remote computer 180 . It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
  • FIG. 2 is a block diagram of a mobile device 200 , which is another exemplary computing environment.
  • Mobile device 200 includes a microprocessor 202 , memory 204 , input/output (I/O) components 206 , and a communication interface 208 for communicating with remote computers or other mobile devices.
  • I/O input/output
  • the afore-mentioned components are coupled for communication with one another over a suitable bus 210 .
  • Memory 204 is implemented as non-volatile electronic memory such as random access memory (RAM) with a battery back-up module (not shown) such that information stored in memory 204 is not lost when the general power to mobile device 200 is shut down.
  • RAM random access memory
  • a portion of memory 204 is preferably allocated as addressable memory for program execution, while another portion of memory 204 is preferably used for storage, such as to simulate storage on a disk drive.
  • Memory 204 includes an operating system 212 , application programs 214 as well as an object store 216 .
  • operating system 212 is preferably executed by processor 202 from memory 204 .
  • Operating system 212 in one preferred embodiment, is a WINDOWS® CE brand operating system commercially available from Microsoft Corporation.
  • Operating system 212 is preferably designed for mobile devices, and implements database features that can be utilized by applications 214 through a set of exposed application programming interfaces and methods.
  • the objects in object store 216 are maintained by applications 214 and operating system 212 , at least partially in response to calls to the exposed application programming interfaces and methods.
  • Communication interface 208 represents numerous devices and technologies that allow mobile device 200 to send and receive information.
  • the devices include wired and wireless modems, satellite receivers and broadcast tuners to name a few.
  • Mobile device 200 can also be directly connected to a computer to exchange data therewith.
  • communication interface 208 can be an infrared transceiver or a serial or parallel communication connection, all of which are capable of transmitting streaming information.
  • Input/output components 206 include a variety of input devices such as a touch-sensitive screen, buttons, rollers, and a microphone as well as a variety of output devices including an audio generator, a vibrating device, and a display.
  • input devices such as a touch-sensitive screen, buttons, rollers, and a microphone
  • output devices including an audio generator, a vibrating device, and a display.
  • the devices listed above are by way of example and need not all be present on mobile device 200 .
  • other input/output devices may be attached to or found with mobile device 200 .
  • FIG. 3 illustrates a simplified block diagram of a system 300 illustrating basic components of the embodiments that will be described in detail below.
  • the system 300 includes a logical client 302 .
  • Logical client 302 is created during design-time and describes or models how data structures are transformed for use in making a UI form.
  • Logical client 302 can be modeled based on data structures in a plurality of different applications 304 (e.g. applications 304 - 1 , 304 - 2 , 304 - 3 ) and can be used to render a UI form on a plurality of different display targets 306 (e.g. display targets 306 - 1 , 306 - 2 , 306 - 3 ).
  • applications 304 e.g. applications 304 - 1 , 304 - 2 , 304 - 3
  • display targets 306 e.g. display targets 306 - 1 , 306 - 2 , 306 - 3 .
  • Examples of applications 304 include business applications, such as ERP systems and CRM systems that store different types of data.
  • the different types of display targets 306 are configured to capture logical content generated by logical client 302 and render its logical content as a UI form. For example, if a display target is an Internet browser, the Internet browser captures the content of logical client 302 and renders the content as a web form.
  • the different types of display targets can display only a subset of the logical intent that is included in the logical client.
  • Logical client 302 includes at least one builder module 308 and a session module 310 .
  • one of the display targets 306 (display target 306 - 3 as illustrated in FIG. 3 ) initiates a session of session module 310 .
  • Session module 310 instantiates the at least one builder module 308 .
  • Each application 304 is configured to construct their own builders.
  • the at least one builder module 308 is configured to build a logical user interface (UI) representation 312 that captures the logical intent of a UI form.
  • UI logical user interface
  • logical UI representation 312 is described in non-specific terms or concepts such that it is not specific to any of the given display targets 306 or any of the given applications 304 .
  • builder module 308 builds logical UI representation 312 based on application 304 - 2 and allows display target 306 - 3 to render the UI form.
  • logical UI representation 312 is based on application 304 - 2
  • logical UI representation 312 is independent of a type of application 304 - 2 .
  • logical UI representation allows display target 306 - 3 to render the UI form
  • logical UI representation is independent of a type of display target 306 - 3 .
  • Logical UI representation 312 is able to allow the rendering of a UI form on other display targets 306 , such as display targets 306 - 1 and 306 - 2 .
  • a method of rendering a UI form on a display target is described in detail in connection with FIGS. 6 and 7 below.
  • FIG. 4 illustrates a more detailed block diagram of system 300 of FIG. 3 employing an instance of builder module 308 to build logical user interface (UI) representation 312 for rendering a UI form on display target 306 - 3 .
  • application 304 - 2 includes a application source 314 , metadata 316 and an interface (not shown) for reacting to user inputs.
  • each of the plurality of applications 304 of FIG. 3 include both metadata and an application source like application 304 - 2 illustrated in FIG. 4 .
  • Application source 314 includes both application data (i.e. business data) located in a database 318 and application logic 320 (i.e. business logic) built on top of database 318 .
  • database 318 includes application data or business data that pertains to customers, vendors, sales transactions and etc.
  • application logic or business logic 320 On top of this data is application logic or business logic 320 .
  • Application logic 320 interacts with instances of data stored in database 318 .
  • Metadata 316 includes information related to the intent of how logical client 302 should build a logical UI representation 312 . Metadata 316 can exist explicitly or it can be derived from a data model of application 304 - 2 .
  • session module 310 instantiates the at least one builder module 308 .
  • Each application 304 includes the ability to construct their own builders that can understand their own metadata.
  • the at least one builder module 308 constructs logical UI representation 312 in accordance with a computer-implemented method illustrated in a flowchart 400 of FIG. 5 .
  • builder 308 transforms metadata 316 into logical UI representation 312 in accordance with flowchart 400 .
  • Builder module 308 constructed by its corresponding application 304 - 2 , reflects over metadata 316 of one of the applications 304 such that builder module 308 can build logical UI representation 312 using information from an application source 308 on how the UI form should be constructed.
  • At least one databinder module 322 having a plurality of databinders is created at block 402 .
  • the created databinder is generally specialized to bind to the data in a corresponding application 304 - 2 .
  • FIG. 4 illustrates a single databinder module 322 , it should be understood that builder 308 can create more than one databinder module 322 for logical UI representation 312 .
  • a databinder module 322 can be created for each type of application 304 - 2 that information is being obtained. This step is illustrated at block 410 .
  • databinder module 322 is configured to represent data from database 318 of application 304 - 2 .
  • data represented in databinder module 322 is independent of a type of application 304 - 2 .
  • an actions module 324 having a plurality of actions is created.
  • Actions module 324 is configured to represent operations available to a user from application 304 - 2 .
  • operations represented in actions module 324 are mostly based on application logic 320 in application 304 - 2
  • operations represented in actions module 324 are independent of the type of application 304 - 2 .
  • Both databinder module 322 and actions module 324 can be considered to be in a layer of logical UI representation 312 in connection with applications 304 because their content depends on the underlying application 304 - 2 .
  • a logical forms and control module 326 is created.
  • Logical forms and controls module 326 represents an interface between at least one display target 306 - 3 and databinder module 322 and actions module 324 . It should be noted that logical forms and controls module 326 can represent an interface between other display targets 306 and databinder module 322 and actions module 324 .
  • Logical forms and controls module 326 handles user interaction from display target 306 - 3 as well as supplies state events from logical forms and controls module 326 to display target 306 - 3 for use rendering a UI form to a user.
  • Logical forms and controls module 326 can be considered to be in a layer of logical UI representation 312 in connection with display targets 306 because the rendering of UI forms on display targets 306 is based on the underlying logical forms and controls module 326 .
  • the at least one databinder module 322 is configured to access data from the at least one application 304 - 2 .
  • Databinder module 322 accesses data in application source 314 , such as in database 318 .
  • Databinder module 322 represents the data in application source 314 as a data structure that is independent of a type of application 304 - 2 .
  • the data structure expresses data in terms of how data should be displayed in a UI form.
  • the actions module 324 is configured to access logic from the at least one application 304 - 2 . Actions module 324 accesses logic in application logic 320 of application source 314 .
  • Actions module 324 represents and includes operations available to a user for performing on the data structure represented by databinder module 322 .
  • logical forms and controls module 326 are created for use in exposing content of logical UI representation 312 to the at least one display target 306 .
  • FIG. 6 illustrates a more detailed block diagram of system 300 illustrated in FIGS. 3 and 4 .
  • System 300 can generate a UI form that can be rendered on different types of display targets 304 during run-time.
  • FIG. 7 is a flowchart 500 illustrating a computer-implemented method of generating a UI form.
  • Run-time is the act of building a logical UI representation 312 , rendering a UI form in accordance with logical UI representation and then populating the UI form with data from the application.
  • metadata stored in application 306 - 2 is transformed to build logical UI representation 312 .
  • UI form is rendered on one of the different display targets 306 - 3 based on logical UI representation 312 .
  • UI form can be rendered as a Windows form if the display target is a conventional operating system on a personal computer.
  • the UI form can be rendered as a web form if the display target is an Internet browser.
  • the UI form can be rendered as a mobile device form if the display target is a personal digital assistant, cell phone or other type of mobile device.
  • data is accessed from the at least one application 304 - 2 to be represented in the logical UI representation 312 .
  • Data is represented in at least one databinder module 322 and in actions module 324 of logical UI representation 312 .
  • builder 308 uses metadata 316 from application 304 - 2 to build logical UI representation 312 .
  • Databinder module 322 accesses application data 330 from application 304 - 2 to be represented in data structures that is independent of the type of application 304 - 2 .
  • Actions module 324 accesses application logic 320 from application 304 - 2 to represent operations available to a user of display target 306 - 3 that is independent of the type of application 304 - 2 .
  • the rendered UI form is populated with data represented in logical UI representation 312 .
  • triggering of action module 324 occurs upon a user indication to do so.
  • display target 306 - 3 first initiates a session using session module 310 as illustrated in block 510 .
  • a session of session module 310 is responsible for validating a user's credentials, instantiating a builder or builders and notifying display targets 306 when new UI forms are ready for rendering. Therefore, session module 310 raises an event for notification to a display target before a UI form is to be rendered onto a display target. In other words, session module 310 raises an event prior to step 504 being performed.
  • Each type of display target 306 includes a control adapter 328 .
  • Each control adapter 328 adapts the controls of the logical UI representation 312 into controls in the display target 304 (i.e. native controls or controls native to the display target 304 ).
  • control adapter 328 translates the logical UI representation 312 such that the native controls of the display target 304 can understand the content of logical UI representation 312 and populate data on a rendered UI form in accordance with the type of display target that control adapter 328 is adapting for.

Abstract

User interface (UI) forms are rendered on different types of display targets. To generate a UI form that can be rendered on different types of display targets metadata stored in at least one application is transformed to build a logical user interface (UI) representation. The UI form is rendered on at least one of the different types of display targets based on the logical UI representation. Data and form layout from the at least one application is accessed for representation in the logical UI representation. The rendered UI form is populated with the data represented in the logical UI representation to provide content for the rendered UI form.

Description

BACKGROUND
Enterprise resource planning (ERP) and customer relationship management (CRM) are phrases used to describe a broad set of activities supported by multi-module application software that helps a company or merchant manage the important parts of its business. Computerized ERP or CRM systems typically handle the logistics of various activity modules internal to a business or organization, such as accounting/financial management, customer relations management, supply chain management and human resource management. Example ERP system and CRM system software packages include Microsoft® Dynamics™ AX, Microsoft® Dynamics™ GP, Microsoft® Dynamics™ NAV, Microsoft® Dynamics™ SL and Microsoft® Dynamics™ CRM.
ERP and CRM systems utilize a large number of files that are part of a collection of information, generally in tabular form, that are stored in a database shared by various management application modules in each system. On top of these large number of files exists business logic that can change the structure and behavior of the data. Both the tabular form of data and structure presented by the business logic can be considered the data source for each ERP or CRM system. In addition to a data source existing in an ERP or CRM system, a data source can exist within a web service that exposes data in one way or another. These files represent widely varying types of information, for example, including information related to transactions such as sales orders, purchase orders, bill payments and information related to customers and vendors.
In ERP systems, CRM systems and other forms based applications, a large number of forms or form user interfaces are used to view information in the data source as well as used for entering information into a database. A form is a type of user interface (UI) element for viewing data and/or entering data. A UI form is physically represented on a display target. If an ERP or CRM system is connected to a conventional Windows display target, then example forms that would need to be constructed by a developer include Window forms. If an ERP or CRM system is connected to an Internet browser display target, then example forms that would need to be constructed by a developer include web forms or web element forms.
Many ERP and CRM systems include the use of the classic Windows UI accompanied by the Internet browser UI. In this case, a developer constructs a UI form for each type of display target and each type of data source. In the near future, personal digital assistants (PDAs), cell phones and other portable and non-portable UI technologies will accompany the use of the Windows UI and the Internet browser UI. The addition of new UI technologies will add to the complexity and amount of forms that need to be constructed by a developer. In addition, typically, data sources each have their own approach to constructing UI forms.
The discussion above is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.
SUMMARY
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. The claimed subject matter is not limited to implementations that solve any or all disadvantages noted in the background.
During design-time, a developer creates a logical client or logical model that describes how data structures are transformed for use in making UI forms. The logical client can be modeled based on a plurality of different applications and can allow the rendering of UI forms on a plurality of different display targets. The logical client includes at least a session module and a builder module. During run-time, the builder builds a logical UI representation that can be used to render a UI form on different types of display targets. To render a UI form, one of the display target initiates a session provided by the session module. The session validates the user's credentials and instantiates one of the plurality of builder instances of the builder module that corresponds with metadata for a type of UI form. The builder instance reads and transforms metadata from a application source. The builder instance builds a logical UI representation that includes content pertaining to logical forms, controls, actions and databinders. The content of the logical UI representation, is independent of the source of data and independent of the display target which it will be rendered. Content of the logical UI representation is exposed to at least one display target for rendering of a UI form. The display target renders the UI form in accordance a type of the display target.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates a block diagram of a general computing environment in which some embodiments may be practiced.
FIG. 2 illustrates a block diagram of a mobile device computing environment in which some embodiments may be practiced.
FIG. 3 illustrates a simplified block diagram of a system for generating a user interface (UI) form.
FIG. 4 illustrates a block diagram of the system of FIG. 3 employing a builder to build a logical user interface (UI) representation used for rendering a UI form on a display target.
FIG. 5 illustrates flowchart of a computer-implemented method of constructing a logical UI representation.
FIG. 6 illustrates a more detailed block diagram of the system of FIG. 3 for generating a UI form.
FIG. 7 illustrates a flowchart of a computer-implemented method of generating a UI form that can be rendered on different types of display targets.
DETAILED DESCRIPTION
The following description of illustrative embodiments is described in the context of forms based business applications, such as client applications, client-server applications and various types of multi-tier applications. However, the description of illustrative embodiments can also be used in other types of form-based applications. A common type of business application includes an Enterprise Resource Planning (ERP) system or Customer Relationship Management (CRM) system that can manage many different business modules of a company or a merchant. These form based applications include forms constructed by a developer that are to be rendered by a display target. A form is a window, dialog, page or other type of user interface (UI) element for viewing and/or entering information. A display target renders a physical representation of a UI form. Example display targets that can render a form include each rendering technology on the multiple types of current and future operating systems, such as Windows, the rendering technology of an Internet browser, as well as each rendering technology on the many available or future mobile devices, such as personal digital assistants and cell phones.
Before describing aspects of the illustrated embodiments, however, it may be useful to describe suitable computing environments that can incorporate and benefit from these aspects. ERP and CRM systems are typically implemented in a networked environment of server computers and/or other computers. The computing environment shown in FIG. 1 is one such example.
FIG. 1 illustrates an example of a suitable computing system environment 100 on which embodiments may be implemented. The computing system environment 100 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the claimed subject matter. Neither should the computing environment 100 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment 100.
Embodiments are operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with various embodiments include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, telephony systems, distributed computing environments that include any of the above systems or devices, and the like.
Embodiments may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Some embodiments are designed to be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules are located in both local and remote computer storage media including memory storage devices.
With reference to FIG. 1, an exemplary system for implementing some embodiments includes a general-purpose computing device in the form of a computer 110. Components of computer 110 may include, but are not limited to, a processing unit 120, a system memory 130, and a system bus 121 that couples various system components including the system memory to the processing unit 120. The system bus 121 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.
Computer 110 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 110. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
The system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input/output system 133 (BIOS), containing the basic routines that help to transfer information between elements within computer 110, such as during start-up, is typically stored in ROM 131. RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120. By way of example, and not limitation, FIG. 1 illustrates operating system 134, application programs 135, other program modules 136, and program data 137.
The computer 110 may also include other removable/non-removable volatile/nonvolatile computer storage media. By way of example only, FIG. 1 illustrates a hard disk drive 141 that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive 151 that reads from or writes to a removable, nonvolatile magnetic disk 152, and an optical disk drive 155 that reads from or writes to a removable, nonvolatile optical disk 156 such as a CD ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the, exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. The hard disk drive 141 is typically connected to the system bus 121 through a non-removable memory interface such as interface 140, and magnetic disk drive 151 and optical disk drive 155 are typically connected to the system bus 121 by a removable memory interface, such as interface 150.
The drives and their associated computer storage media discussed above and illustrated in FIG. 1, provide storage of computer readable instructions, data structures, program modules and other data for the computer 110. In FIG. 1, for example, hard disk drive 141 is illustrated as storing operating system 144, application programs 145, other program modules 146, and program data 147. Note that these components can either be the same as or different from operating system 134, application programs 135, other program modules 136, and program data 137. Operating system 144, application programs 145, other program modules 146, and program data 147 are given different numbers here to illustrate that, at a minimum, they are different copies.
A user may enter commands and information into the computer 110 through input devices such as a keyboard 162, a microphone 163, and a pointing device 161, such as a mouse, trackball or touch pad. Other input devices (not shown) may include a joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 120 through a user input interface 160 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A monitor 191 or other type of display device is also connected to the system bus 121 via an interface, such as a video interface 190. In addition to the monitor, computers may also include other peripheral output devices such as speakers 197 and printer 196, which may be connected through an output peripheral interface 195.
The computer 110 is operated in a networked environment using logical connections to one or more remote computers, such as a remote computer 180. The remote computer 180 may be a personal computer, a hand-held device, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 110. The logical connections depicted in FIG. 1 include a local area network (LAN) 171 and a wide area network (WAN) 173, but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet.
When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over the WAN 173, such as the Internet. The modem 172, which may be internal or external, may be connected to the system bus 121 via the user input interface 160, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 110, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation, FIG. 1 illustrates remote application programs 185 as residing on remote computer 180. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
FIG. 2 is a block diagram of a mobile device 200, which is another exemplary computing environment. Mobile device 200 includes a microprocessor 202, memory 204, input/output (I/O) components 206, and a communication interface 208 for communicating with remote computers or other mobile devices. In one embodiment, the afore-mentioned components are coupled for communication with one another over a suitable bus 210.
Memory 204 is implemented as non-volatile electronic memory such as random access memory (RAM) with a battery back-up module (not shown) such that information stored in memory 204 is not lost when the general power to mobile device 200 is shut down. A portion of memory 204 is preferably allocated as addressable memory for program execution, while another portion of memory 204 is preferably used for storage, such as to simulate storage on a disk drive.
Memory 204 includes an operating system 212, application programs 214 as well as an object store 216. During operation, operating system 212 is preferably executed by processor 202 from memory 204. Operating system 212, in one preferred embodiment, is a WINDOWS® CE brand operating system commercially available from Microsoft Corporation. Operating system 212 is preferably designed for mobile devices, and implements database features that can be utilized by applications 214 through a set of exposed application programming interfaces and methods. The objects in object store 216 are maintained by applications 214 and operating system 212, at least partially in response to calls to the exposed application programming interfaces and methods.
Communication interface 208 represents numerous devices and technologies that allow mobile device 200 to send and receive information. The devices include wired and wireless modems, satellite receivers and broadcast tuners to name a few. Mobile device 200 can also be directly connected to a computer to exchange data therewith. In such cases, communication interface 208 can be an infrared transceiver or a serial or parallel communication connection, all of which are capable of transmitting streaming information.
Input/output components 206 include a variety of input devices such as a touch-sensitive screen, buttons, rollers, and a microphone as well as a variety of output devices including an audio generator, a vibrating device, and a display. The devices listed above are by way of example and need not all be present on mobile device 200. In addition, other input/output devices may be attached to or found with mobile device 200.
FIG. 3 illustrates a simplified block diagram of a system 300 illustrating basic components of the embodiments that will be described in detail below. The system 300 includes a logical client 302. Logical client 302 is created during design-time and describes or models how data structures are transformed for use in making a UI form. Logical client 302 can be modeled based on data structures in a plurality of different applications 304 (e.g. applications 304-1, 304-2, 304-3) and can be used to render a UI form on a plurality of different display targets 306 (e.g. display targets 306-1, 306-2, 306-3). Examples of applications 304 include business applications, such as ERP systems and CRM systems that store different types of data. The different types of display targets 306 are configured to capture logical content generated by logical client 302 and render its logical content as a UI form. For example, if a display target is an Internet browser, the Internet browser captures the content of logical client 302 and renders the content as a web form. In some cases, the different types of display targets can display only a subset of the logical intent that is included in the logical client.
Logical client 302 includes at least one builder module 308 and a session module 310. During run-time, one of the display targets 306 (display target 306-3 as illustrated in FIG. 3) initiates a session of session module 310. Session module 310 instantiates the at least one builder module 308. Each application 304 is configured to construct their own builders. The at least one builder module 308 is configured to build a logical user interface (UI) representation 312 that captures the logical intent of a UI form. The creation of a logical UI representation 312 allows the underlying logic and content of a UI form to be reused across multiple different display targets 306 while being based on multiple different applications or backends 304. In other words, logical UI representation 312 is described in non-specific terms or concepts such that it is not specific to any of the given display targets 306 or any of the given applications 304. In FIG. 3, builder module 308 builds logical UI representation 312 based on application 304-2 and allows display target 306-3 to render the UI form. It should be noted, however, that although logical UI representation 312 is based on application 304-2, logical UI representation 312 is independent of a type of application 304-2. In addition, although logical UI representation allows display target 306-3 to render the UI form, logical UI representation is independent of a type of display target 306-3. Logical UI representation 312 is able to allow the rendering of a UI form on other display targets 306, such as display targets 306-1 and 306-2. A method of rendering a UI form on a display target is described in detail in connection with FIGS. 6 and 7 below.
FIG. 4 illustrates a more detailed block diagram of system 300 of FIG. 3 employing an instance of builder module 308 to build logical user interface (UI) representation 312 for rendering a UI form on display target 306-3. In FIG. 4, application 304-2 includes a application source 314, metadata 316 and an interface (not shown) for reacting to user inputs. It should be understood that each of the plurality of applications 304 of FIG. 3 include both metadata and an application source like application 304-2 illustrated in FIG. 4. Application source 314 includes both application data (i.e. business data) located in a database 318 and application logic 320 (i.e. business logic) built on top of database 318. In some business applications, business data is stored as tables in a database. In other business applications, a web service can expose data to the business application in one way or another. It should be understood that a business application can include many different types of data sources. In the embodiment illustrated in FIG. 4, database 318 includes application data or business data that pertains to customers, vendors, sales transactions and etc. On top of this data is application logic or business logic 320. Application logic 320 interacts with instances of data stored in database 318. Metadata 316 includes information related to the intent of how logical client 302 should build a logical UI representation 312. Metadata 316 can exist explicitly or it can be derived from a data model of application 304-2.
During run-time, session module 310 instantiates the at least one builder module 308. Each application 304 includes the ability to construct their own builders that can understand their own metadata. The at least one builder module 308 constructs logical UI representation 312 in accordance with a computer-implemented method illustrated in a flowchart 400 of FIG. 5. Basically, builder 308 transforms metadata 316 into logical UI representation 312 in accordance with flowchart 400. Builder module 308, constructed by its corresponding application 304-2, reflects over metadata 316 of one of the applications 304 such that builder module 308 can build logical UI representation 312 using information from an application source 308 on how the UI form should be constructed.
Referring to both FIGS. 4 and 5, at least one databinder module 322 having a plurality of databinders is created at block 402. The created databinder is generally specialized to bind to the data in a corresponding application 304-2. Although FIG. 4 illustrates a single databinder module 322, it should be understood that builder 308 can create more than one databinder module 322 for logical UI representation 312. In general, a databinder module 322 can be created for each type of application 304-2 that information is being obtained. This step is illustrated at block 410. In FIG. 4, databinder module 322 is configured to represent data from database 318 of application 304-2. Although the data represented in databinder module 322 is based on database 318, data represented in databinder module 322 is independent of a type of application 304-2.
At block 404, an actions module 324 having a plurality of actions is created. Actions module 324 is configured to represent operations available to a user from application 304-2. Although operations represented in actions module 324 are mostly based on application logic 320 in application 304-2, operations represented in actions module 324 are independent of the type of application 304-2. Both databinder module 322 and actions module 324 can be considered to be in a layer of logical UI representation 312 in connection with applications 304 because their content depends on the underlying application 304-2.
At block 406, a logical forms and control module 326 is created. Logical forms and controls module 326 represents an interface between at least one display target 306-3 and databinder module 322 and actions module 324. It should be noted that logical forms and controls module 326 can represent an interface between other display targets 306 and databinder module 322 and actions module 324. Logical forms and controls module 326 handles user interaction from display target 306-3 as well as supplies state events from logical forms and controls module 326 to display target 306-3 for use rendering a UI form to a user. Logical forms and controls module 326 can be considered to be in a layer of logical UI representation 312 in connection with display targets 306 because the rendering of UI forms on display targets 306 is based on the underlying logical forms and controls module 326.
At block 408, the at least one databinder module 322 is configured to access data from the at least one application 304-2. Databinder module 322 accesses data in application source 314, such as in database 318. Databinder module 322 represents the data in application source 314 as a data structure that is independent of a type of application 304-2. The data structure expresses data in terms of how data should be displayed in a UI form. At block 412, the actions module 324 is configured to access logic from the at least one application 304-2. Actions module 324 accesses logic in application logic 320 of application source 314. Actions module 324 represents and includes operations available to a user for performing on the data structure represented by databinder module 322. At block 414, logical forms and controls module 326 are created for use in exposing content of logical UI representation 312 to the at least one display target 306.
FIG. 6 illustrates a more detailed block diagram of system 300 illustrated in FIGS. 3 and 4. System 300 can generate a UI form that can be rendered on different types of display targets 304 during run-time. FIG. 7 is a flowchart 500 illustrating a computer-implemented method of generating a UI form. Run-time is the act of building a logical UI representation 312, rendering a UI form in accordance with logical UI representation and then populating the UI form with data from the application. Referring to both FIGS. 6 and 7, at block 502 of FIG. 7, metadata stored in application 306-2 is transformed to build logical UI representation 312. FIGS. 4 and 5 illustrate and describe the building of logical UI representation 312 by creating at least one databinder module 322, creating actions module 324 and creating logical forms and controls module 326. At block 504, a UI form is rendered on one of the different display targets 306-3 based on logical UI representation 312. For example, UI form can be rendered as a Windows form if the display target is a conventional operating system on a personal computer. The UI form can be rendered as a web form if the display target is an Internet browser. The UI form can be rendered as a mobile device form if the display target is a personal digital assistant, cell phone or other type of mobile device. At block 506, data is accessed from the at least one application 304-2 to be represented in the logical UI representation 312. Data is represented in at least one databinder module 322 and in actions module 324 of logical UI representation 312. As illustrated by the arrows in FIG. 6, builder 308 uses metadata 316 from application 304-2 to build logical UI representation 312. Databinder module 322 accesses application data 330 from application 304-2 to be represented in data structures that is independent of the type of application 304-2. Actions module 324 accesses application logic 320 from application 304-2 to represent operations available to a user of display target 306-3 that is independent of the type of application 304-2. At block 508, the rendered UI form is populated with data represented in logical UI representation 312. This means data in actions module 324 and at least one databinder module 322 is used to populate the UI form that is rendered on display target 306-3. Therefore, a user can interact with this data and the UI form can be updated accordingly based on data accessed by both databinder module 322 and actions module 324. In general, triggering of action module 324 occurs upon a user indication to do so.
To build a logical UI representation 312 using a builder 308 to transform metadata, display target 306-3 first initiates a session using session module 310 as illustrated in block 510. A session of session module 310 is responsible for validating a user's credentials, instantiating a builder or builders and notifying display targets 306 when new UI forms are ready for rendering. Therefore, session module 310 raises an event for notification to a display target before a UI form is to be rendered onto a display target. In other words, session module 310 raises an event prior to step 504 being performed.
Prior to populating the rendered form with data in the logical UI representation 312, the controls of logical forms and controls module 326 can be first exposed to a control adapter 328 as indicated in block 512. Each type of display target 306 includes a control adapter 328. Each control adapter 328 adapts the controls of the logical UI representation 312 into controls in the display target 304 (i.e. native controls or controls native to the display target 304). In other words, control adapter 328 translates the logical UI representation 312 such that the native controls of the display target 304 can understand the content of logical UI representation 312 and populate data on a rendered UI form in accordance with the type of display target that control adapter 328 is adapting for.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

Claims (18)

1. A computer-implemented method of constructing a logical user interface (UI) representation for use in rendering a user interface (UI) form, the computer-implemented method comprising:
initiating a session to validate credentials of a user, instantiate a builder to transform metadata stored in at least one application to construct the logical UI representation and notify at least one display target when the UI form is ready to be rendered by raising an event, the builder configured to:
create at least one databinder module having a plurality of databinders configured to represent application data from the at least one application, after the data is represented in the at least one databinder module the represented data are independent of the at least one application that the data originated from and are used to populate the UI form such that the user can interact with the represented data and the UI form can be updated accordingly;
create an actions module having a plurality of actions configured to represent operations available to a user found in application logic of the at least one application, after the operations are represented in the created actions module the represented operations are independent of the at least one application that the operations originated from and are used to populate the UI form such that the user can interact with the represented operations and the UI form can be updated accordingly; and
create a logical forms and controls module configured to represent an interface between the at least one display target and the at least one databinder module and the actions module, the logical controls and forms module handles user interaction with the at least one display target and is independent of a type of a display target where the UI form is rendered.
2. The computer-implemented method of claim 1, wherein the builder creates the at least one databinder module to access data from the at least one application to represent the data as a data structure independent of the type of application.
3. The computer-implemented method of claim 2, wherein the builder creates the actions module to access logic in the at least one application such that the action module includes operations available to a user for performing on the data structure represented by the databinding module.
4. The computer-implemented method of claim 2, wherein the builder creates a databinder module for each type of application to be accessed.
5. The computer-implemented method of claim 1, wherein builder creates the logical forms and control module for use in exposing content of the logical UI representation to the at least one display target.
6. A computer-implemented method of generating a user interface (UI) form that can be rendered on different types of display targets, the computer-implemented method comprising:
initiating a session to validate credentials of a user, to instantiate a builder to transform metadata stored in at least one application to build a logical user interface (UI) representation and notify at least one display target when the UI form is ready to be rendered by raising an event, the logical UI representation including a first portion in communication with the different types of display targets and a second portion in communication with the at least one application, the second portion configured to represent application data from the at least one application, after the data is represented in the second portion the represented data are independent of the at least one application;
rendering a UI form on at least one of the different types of display targets based on the logical UI representation using the first portion of the logical UI representation;
accessing data represented in the logical UI representation from the second portion of the logical UI representation; and
populating the rendered UI form using the represented data in the second portion of the logical UI representation to provide content for the rendered UI form such that the user can interact with the represented data and the UI form can be updated accordingly.
7. The computer-implemented method of claim 6, wherein, transforming metadata stored in the at least one application to build a logical UI representation comprises creating at least one databinder module having a plurality of databinders configured to represent the data, the databinder module being apart of the second portion of the logical UI representation.
8. The computer-implemented method of claim 7, wherein the at least one databinder module is dependent on a type of the at least one application.
9. The computer-implemented method of claim 7, wherein transforming metadata stored in the at least one application to build the logical UI representation comprises creating an actions module configured to represent operations available to a user of the at least one display target for performing on the represented data, the actions module being apart of the second portion of the logical UI representation.
10. The computer-implemented method of claim 9, wherein the actions module is dependent on a type of the at least one application.
11. The computer-implemented method of claim 9, wherein transforming metadata stored in the at least one application to build the logical UI representation comprises creating a logical forms and controls module configured to represent an interface between the at least one display target and the at least one databinder module and the actions module, the logical forms and controls module being apart of the first portion of the logical UI representation.
12. The computer-implemented method of claim 11, wherein building the logical forms and controls module comprises configuring the logical forms and controls module to handle user interaction from the at least one display target.
13. The computer-implemented method of claim 12, wherein the logical forms and controls module is independent of the different types of display targets.
14. The computer-implemented method of claim 6, further comprising adapting controls of the logical UI representation into controls of the display target using a control adapter.
15. A system for generating a user interface (UI) form, the system comprising:
a display target;
a computer storage medium configured to store at least one application including an application source and metadata, wherein the application source includes application data;
a logical client configured to build a logical user interface (UI) representation from the metadata stored in the at least one application upon the display target initiating a session with the logical client to validate credentials of a user, to instantiate a builder to transform the metadata stored in at least one application to construct the logical UI representation and notify at least one display target when the UI form is ready to be rendered by raising an event, the logical UI representation configured to represent the application data from the at least one application, after the data is represented in the second portion the represented data are independent of the at least one application; and
wherein the at least one display target is configured to render the UI form based on the logical UI representation and to populate the rendered UI form using the represented data such that the user can interact with the represented data and the UI form can be updated accordingly.
16. The system of claim 15, further comprising a control adapter that is configured to adapt the logical UI representation such that the at least one display target can populate data into the rendered UI form.
17. The system of claim 15, wherein the at least one application comprises a business application.
18. The system of claim 15, wherein the logical UI representation comprises at least one databinder module, an actions module and a logical forms and controls module.
US11/358,492 2006-02-21 2006-02-21 Logical representation of a user interface form Active 2027-01-14 US7584416B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/358,492 US7584416B2 (en) 2006-02-21 2006-02-21 Logical representation of a user interface form

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/358,492 US7584416B2 (en) 2006-02-21 2006-02-21 Logical representation of a user interface form

Publications (2)

Publication Number Publication Date
US20070198940A1 US20070198940A1 (en) 2007-08-23
US7584416B2 true US7584416B2 (en) 2009-09-01

Family

ID=38429833

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/358,492 Active 2027-01-14 US7584416B2 (en) 2006-02-21 2006-02-21 Logical representation of a user interface form

Country Status (1)

Country Link
US (1) US7584416B2 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060036634A1 (en) * 2004-06-03 2006-02-16 Microsoft Corporation Method and apparatus for generating forms using form types
US20080126988A1 (en) * 2006-11-24 2008-05-29 Jayprakash Mudaliar Application management tool
US20110185294A1 (en) * 2010-01-22 2011-07-28 Microsoft Corporation Pattern-based user interfaces
US20110202384A1 (en) * 2010-02-17 2011-08-18 Rabstejnek Wayne S Enterprise Rendering Platform
US20130007519A1 (en) * 2011-06-30 2013-01-03 Microsoft Corporation Test Framework Extension for Testing Logic on a Modeled User Interface
US20130290851A1 (en) * 2012-04-30 2013-10-31 Microsoft Corporation User interface web services
US9933931B2 (en) 2015-06-23 2018-04-03 Microsoft Technology Licensing Llc Freeze pane with snap scrolling
US10375074B2 (en) * 2016-03-11 2019-08-06 Postoak. Today Llc Methods and apparatus for establishing shared memory spaces for data access and distribution

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8005930B2 (en) * 2009-06-03 2011-08-23 Microsoft Corporation Add-ins dynamically extending display targets and business-logic programming model
US20120284735A1 (en) * 2011-05-06 2012-11-08 Microsoft Corporation Interaction-Based Interface to a Logical Client
CN109491646B (en) * 2018-10-18 2022-08-05 北京字节跳动网络技术有限公司 Message entry method and device, electronic equipment and readable medium
CN111639071B (en) * 2019-03-01 2023-07-28 贵州白山云科技股份有限公司 Form display method and device
CN111126781A (en) * 2019-11-29 2020-05-08 苏宁云计算有限公司 RPA service flow establishing method and system
CN112131500B (en) * 2020-09-25 2023-11-07 北京锐安科技有限公司 Event response device, method, electronic equipment and storage medium
CN113093965A (en) * 2021-05-07 2021-07-09 中国工商银行股份有限公司 Account registration method, device, computer system and storage medium
CN114741079B (en) * 2022-04-14 2023-07-21 上海携宁计算机科技股份有限公司 Software development method, platform, electronic device and computer readable storage medium
CN115525576B (en) * 2022-10-31 2023-08-25 广州市易鸿智能装备有限公司 MES communication interface device, test method, test equipment and computer storage medium

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999948A (en) * 1997-09-03 1999-12-07 3Com Corporation Dynamic configuration forms in network management software
US6256678B1 (en) * 1994-11-17 2001-07-03 Sterling Software, Inc. Object oriented method and system for providing a common communications interface between software application programs
US20020026461A1 (en) * 2000-06-05 2002-02-28 Ali Kutay System and method for creating a source document and presenting the source document to a user in a target format
US20030084120A1 (en) * 2001-06-15 2003-05-01 Paul Egli Software framework for web-based applications
US6598093B1 (en) * 1998-05-14 2003-07-22 Sun Microsystems, Inc. Method and apparatus for a core application programming interface
US20030167355A1 (en) * 2001-07-10 2003-09-04 Smith Adam W. Application program interface for network software platform
US20030221165A1 (en) * 2002-05-22 2003-11-27 Microsoft Corporation System and method for metadata-driven user interface
US20060004845A1 (en) * 2004-06-03 2006-01-05 Microsoft Corporation Method and apparatus for generating user interfaces based upon automation with full flexibility
US20060136830A1 (en) * 2004-11-03 2006-06-22 Martlage Aaron E System and user interface for creating and presenting forms

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6256678B1 (en) * 1994-11-17 2001-07-03 Sterling Software, Inc. Object oriented method and system for providing a common communications interface between software application programs
US5999948A (en) * 1997-09-03 1999-12-07 3Com Corporation Dynamic configuration forms in network management software
US6598093B1 (en) * 1998-05-14 2003-07-22 Sun Microsystems, Inc. Method and apparatus for a core application programming interface
US20020026461A1 (en) * 2000-06-05 2002-02-28 Ali Kutay System and method for creating a source document and presenting the source document to a user in a target format
US20030084120A1 (en) * 2001-06-15 2003-05-01 Paul Egli Software framework for web-based applications
US20030167355A1 (en) * 2001-07-10 2003-09-04 Smith Adam W. Application program interface for network software platform
US20070100967A1 (en) * 2001-07-10 2007-05-03 Microsoft Corporation Application Program Interface for Network Software Platform
US20030221165A1 (en) * 2002-05-22 2003-11-27 Microsoft Corporation System and method for metadata-driven user interface
US20060004845A1 (en) * 2004-06-03 2006-01-05 Microsoft Corporation Method and apparatus for generating user interfaces based upon automation with full flexibility
US20060136830A1 (en) * 2004-11-03 2006-06-22 Martlage Aaron E System and user interface for creating and presenting forms

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060036634A1 (en) * 2004-06-03 2006-02-16 Microsoft Corporation Method and apparatus for generating forms using form types
US7665014B2 (en) * 2004-06-03 2010-02-16 Microsoft Corporation Method and apparatus for generating forms using form types
US20080126988A1 (en) * 2006-11-24 2008-05-29 Jayprakash Mudaliar Application management tool
US20110185294A1 (en) * 2010-01-22 2011-07-28 Microsoft Corporation Pattern-based user interfaces
US20110202384A1 (en) * 2010-02-17 2011-08-18 Rabstejnek Wayne S Enterprise Rendering Platform
US20130007519A1 (en) * 2011-06-30 2013-01-03 Microsoft Corporation Test Framework Extension for Testing Logic on a Modeled User Interface
US9563543B2 (en) * 2011-06-30 2017-02-07 Microsoft Technology Licensing, Llc Test framework extension for testing logic on a modeled user interface
US20130290851A1 (en) * 2012-04-30 2013-10-31 Microsoft Corporation User interface web services
US9933931B2 (en) 2015-06-23 2018-04-03 Microsoft Technology Licensing Llc Freeze pane with snap scrolling
US10375074B2 (en) * 2016-03-11 2019-08-06 Postoak. Today Llc Methods and apparatus for establishing shared memory spaces for data access and distribution

Also Published As

Publication number Publication date
US20070198940A1 (en) 2007-08-23

Similar Documents

Publication Publication Date Title
US7584416B2 (en) Logical representation of a user interface form
JP4812337B2 (en) Method and apparatus for generating a form using a form type
US7966266B2 (en) Methods and systems for cost estimation based on templates
JP5099982B2 (en) Method and apparatus for generating an automation-based user interface with complete flexibility
US20050203760A1 (en) Project time and expense
US8271998B2 (en) Dynamic discovery and definition of mappings of parameters used by service oriented architecture services at runtime
US10033600B2 (en) Client application integration for workflows
US20070276714A1 (en) Business process map management
US20080147453A1 (en) System and method for end users to create a workflow from unstructured work
US20070276715A1 (en) Distributed activity management
US7363578B2 (en) Method and apparatus for mapping a data model to a user interface model
US20070288258A1 (en) Document instantiation triggering a business action
US11620444B2 (en) Providing action associated with event detected within communication
CN102810057A (en) Log recording method
US20120143677A1 (en) Discoverability Using Behavioral Data
US20130159909A1 (en) Virtual business object node associations
US20130158964A1 (en) Reusable workflows
US20130326470A1 (en) Domain-specific generation of programming interfaces for business objects
US20150081744A1 (en) Metadata model repository
US20210103862A1 (en) Methods and apparatus for exposing workflow process definitions as business objects
CN107534671A (en) The polymerization of Distributed Services entity and association is with combining
US20140282369A1 (en) Software application generator
US10289620B1 (en) Reporting and data governance management
CN110244943B (en) Graphical service design method, system and software memory based on web and mobile terminal
US20090210449A1 (en) Maintenance of Group Shared Inventories in a Virtual Universe

Legal Events

Date Code Title Description
AS Assignment

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BERAN, ERIC B.;MOLLER-PEDERSEN, JENS;SLOTH, PETER;AND OTHERS;REEL/FRAME:017429/0123

Effective date: 20060221

AS Assignment

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BERAN, ERIC B.;MOLLER-PEDERSEN, JENS;SLOTH, PETER;AND OTHERS;REEL/FRAME:017462/0126

Effective date: 20060221

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034543/0001

Effective date: 20141014

FPAY Fee payment

Year of fee payment: 8

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12