US20050160060A1 - Metadata driven customization of a software-implemented business process - Google Patents

Metadata driven customization of a software-implemented business process Download PDF

Info

Publication number
US20050160060A1
US20050160060A1 US10/760,099 US76009904A US2005160060A1 US 20050160060 A1 US20050160060 A1 US 20050160060A1 US 76009904 A US76009904 A US 76009904A US 2005160060 A1 US2005160060 A1 US 2005160060A1
Authority
US
United States
Prior art keywords
entities
metadata
mobile computing
computing device
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.)
Granted
Application number
US10/760,099
Other versions
US7890544B2 (en
Inventor
Tanya Swartz
Dmitry Zhiyanov
Girish Premchandran
Gagan Chopra
Arif Kureshy
Ahmad El Husseini
Jayadev Pillai
Misha St. Lorant
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
Priority to US10/760,099 priority Critical patent/US7890544B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHOPRA, GAGAN, EL HUSSEINI, AHMAD MAHDI, KURESHY, ARIF, PILLAI, JAYADEV, PREMCHANDRAN, GIRISH, ST. LORANT, MISHA H., SWARTZ, TANYA L., ZHIYANOV, DMITRY V.
Priority to US10/867,496 priority patent/US20050177601A1/en
Priority to US10/884,558 priority patent/US7567967B2/en
Publication of US20050160060A1 publication Critical patent/US20050160060A1/en
Priority to US12/984,686 priority patent/US8700677B2/en
Application granted granted Critical
Publication of US7890544B2 publication Critical patent/US7890544B2/en
Priority to US14/188,191 priority patent/US10209847B2/en
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • 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/912Applications of a database

Definitions

  • the present invention generally relates to customization of a software-implemented business process and, more particularly, to a method of customizing a software-implemented business process on a mobile computing device without having to modify the source code.
  • One approach to designing and marketing computer software-related products is to focus on horizontal functionality such that the product is broadly applicable across large industry segments, and across many different countries.
  • Such a system may also desirably promote an aftermarket to meet the unique needs of specific vertical target markets and specific companies.
  • the product may desirably promote a customer's ability to change or customize the product to their individual needs.
  • Such conventional techniques include, for example, source code modification.
  • This technique entails providing customers with copies of the source code for the product. It thus allows a well trained practitioner to change significant amounts of content, and those changes can be made to look as if they are part of the product, because in effect, they are part of the modified source code product.
  • source code modification carries with it significant drawbacks.
  • source code modification costs a significant amount of money prior to using the product, because the user or customer must often hire expensive consultants and developers who have been specifically trained in the nuances of how the product is built. The user must then endure the risk of estimating a problem, which is a very difficult and imprecise task. Even if these problems can be overcome and persevered, the result is modified source code.
  • the manufacturer of the original source code ships additional software, such as bug fixes, updates, and new versions
  • the customer is either forced to again hire talented engineers or developers (and hopefully the same ones who made the original modifications), in order to merge those modifications into the new source code shipped by the manufacturer, and to resolve issues, one-by-one, as they arise in the newly modified source code.
  • the user can simply go without the bug fixes and new features that may benefit the user's business.
  • source code modification makes it extremely difficult to simply purchase add-on modules “off the shelf” from multiple different vendors, because each of those vendors will likely have to modify the source code as well to accommodate their specific off the shelf modules. Consequently, not only must the manufacturer ship the source code of the base product, but each add-on vendor must ship their source as well. The user must then conduct some sort of adhoc merge process or synthesize a single product out of these random sets of source code. Of course, this results in a brittle set of code that is virtually guaranteed to have problems with upgrades or when any one of the vendors ships a bug fix.
  • Source code modification also suffers from the problem that only one organization in the world (the specific developers or engineers who modified the source code) knows how the modified source code product was built. Therefore, it is difficult, if not impossible, to achieve economies of scale and product support for any of the products running at the customer site.
  • the problems with source code modification increase significantly when, even within a single customer, there exists a diverse set of users with a diverse set of needs and preferences. Every time one of those users changes the product through the source code modification strategy in order to accommodate their particular needs, the customer employing those users, in effect, ends up with a new source code base. In other words, the customer does not only have a single custom code base, but it may actually have many custom code bases, depending upon how many specific users or departments within the customer have modified the code base. Again, each time a bug fix is published or a change is made to a customization that applies to all users, the customer must go through some sort of merge process with all other copies of the source which have been made.
  • Another technique which enables some limited modification of a computer program that is based on objects includes the addition of user fields which can be defined by the user.
  • each object which is to be “customizable” is initially defined to have one or more user fields which can be defined or used by the user, as the user wishes. While this does allow some type of customization, it does not solve all the problems mentioned above. It also carries with it a large number of its own problems. For example, the naming convention associated with the user fields makes it non-intuitive and difficult to associate the specific uses of those user fields.
  • the additional user fields are typically named with very general names such as “USERFIELD.1” to “USERFIELD.N” It is difficult, if not impossible, for the users to remember what each user field has been used for.
  • the additional user fields do not solve problems associated with multi-vendors or multiple modifications by different organizations. For example, if one vendor or one user assigns the user fields in a first way, but another vendor or user assigns the same user fields in a different way, then there is inconsistency in how the user fields are defined, and the two products associated with the two vendors or users will not work together without even further modification.
  • customizing can be made by writing custom event code. Then, by using a one-to-one mapping to the original objection in the source code, the “customized” object can be manipulated when an event occurs on the original object.
  • Another technique previously used is to include “property bags” or name-value pairs. Both of these techniques also have significant drawbacks and do not remedy the deficiencies associated with source code modification.
  • Such mobile computing devices include personal digital assistants (PDA's), mobile phones, and other mobile computing devices.
  • PDA's personal digital assistants
  • User's of such systems generally update a database on the mobile computing device through a synching operation with a central database of a server thereby making the data, such as account information, accessible by the user of the mobile computing device.
  • data such as account information
  • a method of customizing a software-implemented business process on a mobile computing device customized metadata defining customizations of the business process are provided.
  • the metadata is deployed to the mobile computing device and stored in a data store of the mobile computing device.
  • the customizations defined by the metadata are then applied to the software-implemented business process.
  • the customized metadata define entities of the software-implemented business process.
  • a subscription list of the entities is provided.
  • the customized metadata corresponding to the entities identified in the subscription list are deployed to the mobile computing device and stored in the data store.
  • FIG. 1 is a block diagram of an environment in which the present invention can be used.
  • FIG. 2 is a block diagram of an example of a system configured to customize a computer-implemented business process, in accordance with embodiments of the invention.
  • FIG. 3 illustrates an embodiment of a metadata structure and customizations in accordance with embodiments of the present invention.
  • FIGS. 4-6 are screen shots illustrating an example of a customization of a system screen in accordance with embodiments of the present invention.
  • FIG. 7 is a flowchart illustrating a method of customizing a software-implemented business process in accordance with an embodiment of the invention.
  • FIGS. 8A-8B are examples of graphical user interfaces in accordance with embodiments of the invention.
  • FIG. 9 is a flowchart illustrating method of customizing a software-implemented business process in accordance with an embodiment of the invention.
  • the present invention generally relates to customization of a software-implemented business process or application.
  • the present invention prior to discussing the present invention in greater detail, one embodiment of an illustrative environment in which the present invention can be used will be discussed.
  • FIG. 1 illustrates an example of a suitable computing system environment 100 on which the invention 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 invention. 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 .
  • the invention is 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 the invention 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, distributed computing environments that include any of the above systems or devices, and the like.
  • the invention 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.
  • the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
  • program modules may be located in both local and remote computer storage media including memory storage devices.
  • an exemplary system for implementing the invention 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.
  • a monitor 191 or other type of display device is also connected to the system bus 12 i 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 may operate 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.
  • One aspect of the method and system of the present invention is generally directed to customizing a software-implemented business process or application that utilizes an object-relational (or entity-relational) data storage system.
  • object-relational or entity-relational
  • Such customization is desirable to allow for affordable business applications to be produced that are specific enough to increase business productivity while, at the same time, are general enough to attract a wide customer base.
  • the method and system of the present invention are particularly useful when used to provide entity customization and filtering for customer relationship management (CRM) applications on mobile computing devices.
  • CRM customer relationship management
  • Such applications are configured to help businesses build profitable customer relationships by allowing, for example, sales and service employees to share information, such as sales leads, customer history, and searchable knowledgebases.
  • a car salesperson may be interested in the mileage of a customer's car, whereas an insurance salesperson would rather know about a customer's age and health history.
  • the present invention provides the tools that are necessary to customize the application to suit the needs of car and insurance salespeople, farmers, and other salespeople.
  • FIG. 2 is a schematic diagram of an example of a system, designated as 200 , in accordance with embodiments of the present invention.
  • System 200 generally includes a central data storage system 202 on server 204 and one or more mobile computing devices 206 , each of which include a business application 208 and a mobile data storage system 210 .
  • application 208 is driven by metadata 212 contained in mobile relational database or data store 214 , which, in accordance with one embodiment of the invention, is a subset of customized metadata 216 contained in relational database or data store 218 of central data storage system 202 .
  • the metadata ( 212 and 216 ) generally define the elements of the data structures of the systems 202 and 210 and control how the application 208 operates and displays itself. This allows the applications 208 on mobile computing devices 206 to be customized, through customization of the metadata 212 , to meet the needs of a vertical industry without requiring modification to the underlying code of the applications 208 .
  • the metadata driven applications 208 on mobile computing devices 206 can be customized by an administrator who does understanding how to code using, for example, graphical user interface tools. Additionally, customizations can be easily deployed onto the server 204 as customized metadata 216 and onto the mobile computing devices 206 (e.g., personal digital assistants (PDA's), mobile phones, etc.) as mobile metadata 212 without recompiling the code for application 208 . Furthermore, the applications 208 can be updated through installation of service packs without losing any of the customizations that have been made. As a result, the applications 208 can easily evolve along with the needs of a business without requiring the intervention of the developer of the business application.
  • PDA's personal digital assistants
  • the data storage systems 202 and 210 are preferably entity-relational (E-R) storage systems. However, it should be noted that the present invention can be used with other types of data storage systems and, therefore, is not limited to E-R systems.
  • the data storage systems 202 and 210 respectively include a set of entities (or objects) 220 and 222 , which correspond to relational data 224 and 226 stored in the corresponding database or data stores 218 and 214 .
  • Data storage systems 202 and 210 also include data accessing systems 228 and 230 , which respectively provide access to the relational data 224 and 226 by matching the data to the entities 220 and 222 using entity-relational (E-R) maps 232 and 234 .
  • E-R entity-relational
  • E-R maps 232 and 234 respectively contain mappings between the entities 220 and 222 and the table entries of data 224 and 226 in the corresponding databases 218 and 214 .
  • Data storage systems 202 and 210 can include additional maps, such as a map defining relationships between individual entities 220 and 222 .
  • Entities 220 and 222 of data storage systems 202 and 210 can be rendered in accordance with metadata 216 and 212 .
  • the metadata 216 and 212 can comprise individual metadata entities, each of which define one of the entities 220 and 222 of the systems 202 and 210 .
  • the customized metadata 216 of central system 202 on server 204 is preferably customizable by the administrator or customizer of system 200 and a subset of the customized metadata 216 is provided to the system 210 of the mobile computing device 206 and stored as metadata 212 .
  • metadata 212 of mobile computing device 206 defining entities 222 is preferably not customizable by the user of the mobile computing device 206 .
  • the customized metadata 216 also operates to customize the business application 208 of the mobile computing device 206 , as will be discussed below in greater detail.
  • the metadata 216 and 212 define basic classes of content for the entities 220 and 222 including data content and user interface content.
  • the data content represents information that the system stores.
  • the data content may include customers, inventor items, orders, etc., each of which is defined by a data field.
  • User interface content includes content that a user sees on a screen or report. It may contain such things as layout information, messages, data field labels, etc. These types of contents, as well as other types, can be customized in accordance with various embodiments of the present invention.
  • Metadata 216 are customized using customization tool 240 based upon input 242 from an administrator or customizer of system 200 .
  • Customization tool 240 generally provides a graphical user interface that assists the customizer 242 through the process of customizing metadata 216 .
  • each new metadata entity may consist of a base metadata entity that contains default data and user interface content settings.
  • the user interface of the customization tool 240 preferably allows the customizer to add, delete, and modify the data and user interface content of the base metadata entity.
  • the customized metadata 216 Once the customized metadata 216 is provided by the customizer, it will be used to customize the application 208 of the mobile computing device 206 . When the application 208 is updated or a new software package is installed on mobile computing device 206 , the customizations are installed and applied automatically without user intervention.
  • FIG. 3 illustrates a metadata structure and metadata customization in accordance with embodiments of the invention.
  • the metadata structure is illustrated by a portion of a metadata structure tree 250 . It will be appreciated that the portion of tree 250 shown in FIG. 3 is illustratively but a very small portion of a much larger tree that defines customized metadata 216 for system 200 . Portions of the metadata structure tree define metadata entities, such as metadata entity 252 , which correspond to entities 220 in data storage system 202 .
  • the portion of metadata structure tree 250 shown in FIG. 3 illustrates that the metadata includes a Form section (user interface content) which itself includes a Customer_Maintenance_Screen.
  • the Customer_Maintenance_Screen includes fields (data content) which have a plurality of Tab controls.
  • Tab control 1 has a Field 1 associated with it.
  • Field 1 has a plurality of properties, including the field name, the background color for the field, whether the field is enabled or disabled, the length of the field, and the data type for the field (which in this case is MaxValue).
  • the field can have a plurality of additional properties as well.
  • the customizer 242 inputs the customization specification through customization tool 240 .
  • Customization of the metadata 216 can be achieved through direct input of the setting, or an addition of a node.
  • the background color for the field having a name “foo” is yellow in metadata structure 250 .
  • a customizer wishes to change the background color to blue. In that case, the customizer makes the change by directly inputting the color change to blue through the graphical user interface provided by the customization tool 240 .
  • customization of metadata 216 can be achieved by using deltas.
  • a delta represents a change in the metadata structure 250 from its original form.
  • a customization can contain any number, n, of deltas, each delta representing a specific change relative to a known instance of a base structure. Further, the delta need not simply represent a change to an existing node, but can represent the addition of a new node in the metadata structure 250 .
  • the customizer will make a single customization containing a single delta.
  • the customization is relative to the field “foo” under Tab 1 of the Customer_Maintenance_Screen.
  • the customization can be stored in a separate part of the metadata store (database or data store 218 ) or in a metadata customization entity 252 which is mapped to the relational database 218 .
  • a metadata customization table 254 in relational database 218 contains a metadata ID identifying the background color property of field 1 under tab 1 of the fields in the Customer_Maintenance_Screen portion of the Forms.
  • Table 254 also includes delta information which identifies the delta, that being that the background color of the field is changed to blue.
  • the delta is not a copy of the source that has been modified. Instead, it is only a specification of which value in structure 250 should be modified. By only tracking deltas, it is possible for many modifications to be dynamically applied to a target entity.
  • FIGS. 4-6 illustrate an example of a customization of application 208 through metadata customization.
  • a car dealership Mortens Autos purchases a financial software package.
  • Mortens Autos customizes the product to add fields (data content) to track each customer car preferences (such as color, engine, make/model, etc.).
  • Mortens Autos also adds new fields to a customer screen for the customer car preferences, and removes a number of unused fields.
  • FIG. 4 illustrates a screen shot 260 of a default customer screen displayed by the financial package purchased by Mortens Autos that has been generated in accordance with a default or base metadata entity. It can be seen that screen 260 includes order summary fields which are not generally used in the car dealer industry. FIG. 4 also shows the same customer screen 262 after customizations to the metadata entity have been implemented. The original order summary fields have been replaced with fields indicating the customer's last purchase and last purchase date. In addition, a car preferences tab has been added to display the customer's car preferences. This is all accomplished simply by customizing the associated metadata 216 using the customization tool 240 of system 200 , as discussed above.
  • Consoto introduces electronic mail notifications for service reminders.
  • the customer entity provided by Consoto also adds a string to the customer entity for the name of the customer's favorite technician and a text box for a new field to the customer screen.
  • An example of Consoto's customer screen is illustrated in FIG. 5 .
  • Mortens Autos buys, from Consoto, a software package to run the service department.
  • Another aspect of the present invention allows for users of the business application 208 on remote or mobile computing devices 206 to control which customized metadata entities will be rendered thereon. This allows the user to avoid loading large amounts of unnecessary data to the mobile computing device 206 , which generally has a limited data storage capacity as compared to non-mobile computing devices, such as desktop computers. Additionally, this aspect of the present invention allows the user to select only those entities that are relevant to his or her business practice. Such filtering of the customized metadata allows the user to operate the application more efficiently by avoiding having to sort through a large number of entities, which the user is not associated with.
  • step 270 of the method customized metadata 216 defining entities 220 ( FIG. 2 ) is provided. This step is preferably performed as described above using customization tool 240 . The customized metadata 216 and data 224 corresponding to the entities 220 are then stored in a first data store 218 of system 202 , at step 272 .
  • a subscription list of the customized metadata entities 216 is provided on the mobile computing device 206 .
  • the subscription list is defined by subscription metadata 276 stored in a subscription data store of mobile computing device 206 , as shown in FIG. 2 .
  • the subscription list or metadata 276 identifies a subset of the customized metadata entities 216 contained in data store 218 of data storage system 202 .
  • the subscription metadata 276 is preferably generated by the user through a subscription interface 278 shown in FIG. 2 .
  • Subscription interface 278 preferably includes a graphical user interface.
  • the graphical user interface provides a list of the customized entities 216 by name that can be selected by the user for inclusion in the subscription list 276 .
  • the graphical user interface preferably organizes the customized metadata entities 216 for presentation to the user or provides options to the user as to how the subscriptions to the customized metadata entities are to be presented.
  • An exemplary graphical user interface 280 is shown in FIG.
  • FIG. 8B is an example of a graphical user interface 286 presenting a list 287 of customized metadata entities 216 or accounts in accordance with the user's selection from the options presented in the graphical user interface 280 shown in FIG. 8A .
  • the user can select individual customized metadata entities 288 or accounts from the presented list 287 in accordance with conventional methods.
  • the user selects individual customized metadata entities 288 or accounts for subscription by highlighting an individual entity 288 and selecting arrow 289 to add the entity 288 to a subscription list 290 .
  • Individual entities 288 can be deselected from the subscription list 290 in a similar manner by highlighting the particular entity 288 and selecting arrow 291 to remove it from the list 290 .
  • the graphical user interface 280 can also provide the user with information as to an estimated amount of memory storage that remains available to the mobile computing device 206 after a synch is performed to load the entities 216 of the subscription list 290 into the device 206 .
  • subscription interface 278 can be generated by subscription interface 278 to provide the user with a means for selecting the desired customized metadata entities 216 , such as drop-down menus and other suitable interfaces.
  • the subscription metadata 276 that defines the subscription list 290 is generated and stored in a subscription data store.
  • the customized metadata or entities 216 corresponding to the entities 282 identified in the subscription list 276 are sent to the mobile computing device 206 .
  • this data transmission is performed using synchronizer 294 , shown in FIG. 2 .
  • Synchronizer 294 includes sync engines 296 and 298 , which are configured to form a communication link between central and mobile data storage systems 202 and 210 and allow system 200 perform a sync operation between central and mobile databases 218 and 214 in accordance with known methods. Such sync operations are preferably substantially performed in the background to allow the user of the mobile computing device 206 to access and operate the application 208 without interruption.
  • the subscription metadata 276 is read to determine which customized metadata entities 216 are to be sent to the mobile computing device 206 .
  • the customized metadata entities 282 identified in the subscription list 276 are sent to mobile computing device 206 , which are then stored in data store 214 , as indicated at step 300 of the method.
  • the synch operation between the central and mobile databases 218 and 214 can simply involve replacing the existing or old customized metadata with the new customized metadata.
  • only the customized metadata 216 contained in central data store that has been updated since the last synching operation is sent to the mobile computing device 206 to either replace the corresponding old customized metadata 212 or be added to the metadata 212 .
  • the data 224 that corresponds to the customized metadata entities 282 identified in the subscription metadata 276 are also transmitted to mobile computing device 206 and stored in data store 214 by data accessing system 230 .
  • the application 208 then renders or populates the entities defined by the customized metadata entities 212 using the corresponding sent data 226 contained in data store 214 .
  • the populated or rendered entities 222 can then be displayed for the user on the mobile computing device 206 in accordance with the form or view defined by the corresponding sent customized metadata 212 .
  • One alternative to transmitting the customized metadata 216 and the corresponding data 224 separately to mobile computing device 206 is to transmit rendered or populated entities 220 that correspond to the customized entities 282 identified in the subscription list 276 .
  • This embodiment of the method of the present invention is illustrated in the flowchart of FIG. 9 . The method initially begins in accordance with steps 270 , 272 , and 274 of the method discussed above. Accordingly, customized metadata 216 is provided at step 302 , the customized metadata and corresponding data are stored at step 304 , and a subscription list of the entities defined by subscription metadata is provided at step 306 .
  • the entities 282 identified in the subscription list 276 are rendered or populated, at step 308 , with the corresponding data 224 in accordance with the customized metadata 216 to form populated entities or objects.
  • the populated entities are sent to the mobile computing device 312 ( FIG. 2 ).
  • the populated entities are stored in an object data store 316 of the mobile computing device 312 , as illustrated in FIG. 2 .
  • the populated entities are sent to mobile computing device 312 to replace old populated entities contained in the object data store 316 or to be added thereto.
  • application 208 of mobile computing device 312 can directly access the populated entities and display them to the user.

Abstract

In a method of customizing a software-implemented business process on a mobile computing device, customized metadata defining customizations of the business process are provided. Next, the metadata is deployed to the mobile computing device and stored in a data store of the mobile computing device. The customizations defined by the metadata are then applied to the software-implemented business process.

Description

    BACKGROUND OF THE INVENTION
  • The present invention generally relates to customization of a software-implemented business process and, more particularly, to a method of customizing a software-implemented business process on a mobile computing device without having to modify the source code.
  • One approach to designing and marketing computer software-related products is to focus on horizontal functionality such that the product is broadly applicable across large industry segments, and across many different countries. Such a system may also desirably promote an aftermarket to meet the unique needs of specific vertical target markets and specific companies. Similarly, the product may desirably promote a customer's ability to change or customize the product to their individual needs.
  • If the product cannot be extended to meet the unique needs of a customer, it essentially requires a customer to change its business to match the software which the customer has just purchased. Of course, these types of systems are resisted by customers, since changes to business activities can be costly and time consuming.
  • There are a number of different techniques which have been conventionally used in order to enable a system to be customized. Such conventional techniques include, for example, source code modification. This technique entails providing customers with copies of the source code for the product. It thus allows a well trained practitioner to change significant amounts of content, and those changes can be made to look as if they are part of the product, because in effect, they are part of the modified source code product.
  • However, source code modification carries with it significant drawbacks. For example, source code modification costs a significant amount of money prior to using the product, because the user or customer must often hire expensive consultants and developers who have been specifically trained in the nuances of how the product is built. The user must then endure the risk of estimating a problem, which is a very difficult and imprecise task. Even if these problems can be overcome and persevered, the result is modified source code. When the manufacturer of the original source code ships additional software, such as bug fixes, updates, and new versions, the customer is either forced to again hire talented engineers or developers (and hopefully the same ones who made the original modifications), in order to merge those modifications into the new source code shipped by the manufacturer, and to resolve issues, one-by-one, as they arise in the newly modified source code. Alternatively, the user can simply go without the bug fixes and new features that may benefit the user's business.
  • In addition, source code modification makes it extremely difficult to simply purchase add-on modules “off the shelf” from multiple different vendors, because each of those vendors will likely have to modify the source code as well to accommodate their specific off the shelf modules. Consequently, not only must the manufacturer ship the source code of the base product, but each add-on vendor must ship their source as well. The user must then conduct some sort of adhoc merge process or synthesize a single product out of these random sets of source code. Of course, this results in a brittle set of code that is virtually guaranteed to have problems with upgrades or when any one of the vendors ships a bug fix.
  • Source code modification also suffers from the problem that only one organization in the world (the specific developers or engineers who modified the source code) knows how the modified source code product was built. Therefore, it is difficult, if not impossible, to achieve economies of scale and product support for any of the products running at the customer site.
  • The problems with source code modification increase significantly when, even within a single customer, there exists a diverse set of users with a diverse set of needs and preferences. Every time one of those users changes the product through the source code modification strategy in order to accommodate their particular needs, the customer employing those users, in effect, ends up with a new source code base. In other words, the customer does not only have a single custom code base, but it may actually have many custom code bases, depending upon how many specific users or departments within the customer have modified the code base. Again, each time a bug fix is published or a change is made to a customization that applies to all users, the customer must go through some sort of merge process with all other copies of the source which have been made.
  • This is only a partial list of the many problems associated with source code modification techniques. These problems can result in a great deal of difficulty for the management of the customer, and the employees themselves.
  • Another technique which enables some limited modification of a computer program that is based on objects includes the addition of user fields which can be defined by the user. In other words, each object which is to be “customizable” is initially defined to have one or more user fields which can be defined or used by the user, as the user wishes. While this does allow some type of customization, it does not solve all the problems mentioned above. It also carries with it a large number of its own problems. For example, the naming convention associated with the user fields makes it non-intuitive and difficult to associate the specific uses of those user fields. For instances, the additional user fields are typically named with very general names such as “USERFIELD.1” to “USERFIELD.N” It is difficult, if not impossible, for the users to remember what each user field has been used for. In addition, the additional user fields do not solve problems associated with multi-vendors or multiple modifications by different organizations. For example, if one vendor or one user assigns the user fields in a first way, but another vendor or user assigns the same user fields in a different way, then there is inconsistency in how the user fields are defined, and the two products associated with the two vendors or users will not work together without even further modification.
  • Other techniques for customizing have been tried as well. For example, customizations can be made by writing custom event code. Then, by using a one-to-one mapping to the original objection in the source code, the “customized” object can be manipulated when an event occurs on the original object. Another technique previously used is to include “property bags” or name-value pairs. Both of these techniques also have significant drawbacks and do not remedy the deficiencies associated with source code modification.
  • It is becoming more common for some business applications, such as customer relationship management applications, to be implemented in mobile computing devices. Such mobile computing devices include personal digital assistants (PDA's), mobile phones, and other mobile computing devices. User's of such systems generally update a database on the mobile computing device through a synching operation with a central database of a server thereby making the data, such as account information, accessible by the user of the mobile computing device. Unfortunately, limitations in the memory capacity of mobile computing devices make it undesirable to perform full uploads of the data contained in the central database, which can be time-consuming as well.
  • SUMMARY OF THE INVENTION
  • In a method of customizing a software-implemented business process on a mobile computing device, customized metadata defining customizations of the business process are provided. Next, the metadata is deployed to the mobile computing device and stored in a data store of the mobile computing device. The customizations defined by the metadata are then applied to the software-implemented business process.
  • In accordance with one embodiment of the method, the customized metadata define entities of the software-implemented business process. A subscription list of the entities is provided. The customized metadata corresponding to the entities identified in the subscription list are deployed to the mobile computing device and stored in the data store.
  • Other features and benefits that characterize embodiments of the present invention will be apparent upon reading the following detailed description and review of the associated drawings.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of an environment in which the present invention can be used.
  • FIG. 2 is a block diagram of an example of a system configured to customize a computer-implemented business process, in accordance with embodiments of the invention.
  • FIG. 3 illustrates an embodiment of a metadata structure and customizations in accordance with embodiments of the present invention.
  • FIGS. 4-6 are screen shots illustrating an example of a customization of a system screen in accordance with embodiments of the present invention.
  • FIG. 7 is a flowchart illustrating a method of customizing a software-implemented business process in accordance with an embodiment of the invention.
  • FIGS. 8A-8B are examples of graphical user interfaces in accordance with embodiments of the invention.
  • FIG. 9 is a flowchart illustrating method of customizing a software-implemented business process in accordance with an embodiment of the invention.
  • DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
  • The present invention generally relates to customization of a software-implemented business process or application. However, prior to discussing the present invention in greater detail, one embodiment of an illustrative environment in which the present invention can be used will be discussed.
  • FIG. 1 illustrates an example of a suitable computing system environment 100 on which the invention 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 invention. 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.
  • The invention is 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 the invention 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, distributed computing environments that include any of the above systems or devices, and the like.
  • The invention 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. The invention may also 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 may be located in both local and remote computer storage media including memory storage devices.
  • With reference to FIG. 1, an exemplary system for implementing the invention 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 12 i 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 may operate 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.
  • One aspect of the method and system of the present invention is generally directed to customizing a software-implemented business process or application that utilizes an object-relational (or entity-relational) data storage system. Such customization is desirable to allow for affordable business applications to be produced that are specific enough to increase business productivity while, at the same time, are general enough to attract a wide customer base.
  • The method and system of the present invention are particularly useful when used to provide entity customization and filtering for customer relationship management (CRM) applications on mobile computing devices. Such applications are configured to help businesses build profitable customer relationships by allowing, for example, sales and service employees to share information, such as sales leads, customer history, and searchable knowledgebases. For example, a car salesperson may be interested in the mileage of a customer's car, whereas an insurance salesperson would rather know about a customer's age and health history. The present invention provides the tools that are necessary to customize the application to suit the needs of car and insurance salespeople, farmers, and other salespeople.
  • FIG. 2 is a schematic diagram of an example of a system, designated as 200, in accordance with embodiments of the present invention. System 200 generally includes a central data storage system 202 on server 204 and one or more mobile computing devices 206, each of which include a business application 208 and a mobile data storage system 210.
  • In accordance with one aspect of the present invention, application 208 is driven by metadata 212 contained in mobile relational database or data store 214, which, in accordance with one embodiment of the invention, is a subset of customized metadata 216 contained in relational database or data store 218 of central data storage system 202. The metadata (212 and 216) generally define the elements of the data structures of the systems 202 and 210 and control how the application 208 operates and displays itself. This allows the applications 208 on mobile computing devices 206 to be customized, through customization of the metadata 212, to meet the needs of a vertical industry without requiring modification to the underlying code of the applications 208.
  • One advantage to this approach is that the metadata driven applications 208 on mobile computing devices 206 can be customized by an administrator who does understanding how to code using, for example, graphical user interface tools. Additionally, customizations can be easily deployed onto the server 204 as customized metadata 216 and onto the mobile computing devices 206 (e.g., personal digital assistants (PDA's), mobile phones, etc.) as mobile metadata 212 without recompiling the code for application 208. Furthermore, the applications 208 can be updated through installation of service packs without losing any of the customizations that have been made. As a result, the applications 208 can easily evolve along with the needs of a business without requiring the intervention of the developer of the business application.
  • The data storage systems 202 and 210 are preferably entity-relational (E-R) storage systems. However, it should be noted that the present invention can be used with other types of data storage systems and, therefore, is not limited to E-R systems. The data storage systems 202 and 210 respectively include a set of entities (or objects) 220 and 222, which correspond to relational data 224 and 226 stored in the corresponding database or data stores 218 and 214. Data storage systems 202 and 210 also include data accessing systems 228 and 230, which respectively provide access to the relational data 224 and 226 by matching the data to the entities 220 and 222 using entity-relational (E-R) maps 232 and 234. E-R maps 232 and 234 respectively contain mappings between the entities 220 and 222 and the table entries of data 224 and 226 in the corresponding databases 218 and 214. Data storage systems 202 and 210 can include additional maps, such as a map defining relationships between individual entities 220 and 222.
  • Entities 220 and 222 of data storage systems 202 and 210 can be rendered in accordance with metadata 216 and 212. Accordingly, the metadata 216 and 212 can comprise individual metadata entities, each of which define one of the entities 220 and 222 of the systems 202 and 210.
  • As mentioned above, the customized metadata 216 of central system 202 on server 204 is preferably customizable by the administrator or customizer of system 200 and a subset of the customized metadata 216 is provided to the system 210 of the mobile computing device 206 and stored as metadata 212. Preferably, metadata 212 of mobile computing device 206 defining entities 222 is preferably not customizable by the user of the mobile computing device 206. As a result, the customized metadata 216 also operates to customize the business application 208 of the mobile computing device 206, as will be discussed below in greater detail.
  • The metadata 216 and 212 define basic classes of content for the entities 220 and 222 including data content and user interface content. The data content represents information that the system stores. For example, the data content may include customers, inventor items, orders, etc., each of which is defined by a data field. User interface content includes content that a user sees on a screen or report. It may contain such things as layout information, messages, data field labels, etc. These types of contents, as well as other types, can be customized in accordance with various embodiments of the present invention.
  • Metadata 216 are customized using customization tool 240 based upon input 242 from an administrator or customizer of system 200. Customization tool 240 generally provides a graphical user interface that assists the customizer 242 through the process of customizing metadata 216. Initially, each new metadata entity may consist of a base metadata entity that contains default data and user interface content settings. The user interface of the customization tool 240 preferably allows the customizer to add, delete, and modify the data and user interface content of the base metadata entity. Once the customized metadata 216 is provided by the customizer, it will be used to customize the application 208 of the mobile computing device 206. When the application 208 is updated or a new software package is installed on mobile computing device 206, the customizations are installed and applied automatically without user intervention.
  • FIG. 3 illustrates a metadata structure and metadata customization in accordance with embodiments of the invention. The metadata structure is illustrated by a portion of a metadata structure tree 250. It will be appreciated that the portion of tree 250 shown in FIG. 3 is illustratively but a very small portion of a much larger tree that defines customized metadata 216 for system 200. Portions of the metadata structure tree define metadata entities, such as metadata entity 252, which correspond to entities 220 in data storage system 202.
  • The portion of metadata structure tree 250 shown in FIG. 3 illustrates that the metadata includes a Form section (user interface content) which itself includes a Customer_Maintenance_Screen. The Customer_Maintenance_Screen includes fields (data content) which have a plurality of Tab controls. Tab control 1 has a Field 1 associated with it. Field 1 has a plurality of properties, including the field name, the background color for the field, whether the field is enabled or disabled, the length of the field, and the data type for the field (which in this case is MaxValue). Of course, the field can have a plurality of additional properties as well.
  • In order to customize a metadata structure 250, the customizer 242 inputs the customization specification through customization tool 240. Customization of the metadata 216 can be achieved through direct input of the setting, or an addition of a node. For example, the background color for the field having a name “foo” is yellow in metadata structure 250. Assume that a customizer wishes to change the background color to blue. In that case, the customizer makes the change by directly inputting the color change to blue through the graphical user interface provided by the customization tool 240.
  • Alternatively, customization of metadata 216 can be achieved by using deltas. A delta represents a change in the metadata structure 250 from its original form. A customization can contain any number, n, of deltas, each delta representing a specific change relative to a known instance of a base structure. Further, the delta need not simply represent a change to an existing node, but can represent the addition of a new node in the metadata structure 250.
  • For example, in order to make the change described above with respect to the field named “foo”, the customizer will make a single customization containing a single delta. The customization is relative to the field “foo” under Tab 1 of the Customer_Maintenance_Screen. The customization can be stored in a separate part of the metadata store (database or data store 218) or in a metadata customization entity 252 which is mapped to the relational database 218. A metadata customization table 254 in relational database 218 contains a metadata ID identifying the background color property of field 1 under tab 1 of the fields in the Customer_Maintenance_Screen portion of the Forms. Table 254 also includes delta information which identifies the delta, that being that the background color of the field is changed to blue. Thus, the delta is not a copy of the source that has been modified. Instead, it is only a specification of which value in structure 250 should be modified. By only tracking deltas, it is possible for many modifications to be dynamically applied to a target entity.
  • FIGS. 4-6 illustrate an example of a customization of application 208 through metadata customization. In the example illustrated in FIGS. 4-6 assume that a car dealership Mortens Autos purchases a financial software package. After installation and running of the application package, Mortens Autos customizes the product to add fields (data content) to track each customer car preferences (such as color, engine, make/model, etc.). Assume that Mortens Autos also adds new fields to a customer screen for the customer car preferences, and removes a number of unused fields.
  • FIG. 4 illustrates a screen shot 260 of a default customer screen displayed by the financial package purchased by Mortens Autos that has been generated in accordance with a default or base metadata entity. It can be seen that screen 260 includes order summary fields which are not generally used in the car dealer industry. FIG. 4 also shows the same customer screen 262 after customizations to the metadata entity have been implemented. The original order summary fields have been replaced with fields indicating the customer's last purchase and last purchase date. In addition, a car preferences tab has been added to display the customer's car preferences. This is all accomplished simply by customizing the associated metadata 216 using the customization tool 240 of system 200, as discussed above.
  • Next, assume that another business solutions provider, Consoto, introduces electronic mail notifications for service reminders. Assume further that the customer entity provided by Consoto also adds a string to the customer entity for the name of the customer's favorite technician and a text box for a new field to the customer screen. An example of Consoto's customer screen is illustrated in FIG. 5. Assume that Mortens Autos buys, from Consoto, a software package to run the service department.
  • After the installation, all previous customizations still work without manual intervention or rework. This is shown in FIG. 6. For instance, the customer's car preferences field is shown on the screen and the original Order fields are removed from the screen. Similarly, Consoto's changes to the customer screen are also provided. Specifically, the new fields on the customer entity and text boxes on the customer screen are included. As is described above, when the new software package is installed, the customizations take effect without automatically, without user intervention.
  • Another aspect of the present invention allows for users of the business application 208 on remote or mobile computing devices 206 to control which customized metadata entities will be rendered thereon. This allows the user to avoid loading large amounts of unnecessary data to the mobile computing device 206, which generally has a limited data storage capacity as compared to non-mobile computing devices, such as desktop computers. Additionally, this aspect of the present invention allows the user to select only those entities that are relevant to his or her business practice. Such filtering of the customized metadata allows the user to operate the application more efficiently by avoiding having to sort through a large number of entities, which the user is not associated with.
  • A method of customizing a software implemented business process or application in accordance with the above-described aspects of the present invention will be discussed with reference to the flowchart of FIG. 7. At step 270 of the method, customized metadata 216 defining entities 220 (FIG. 2) is provided. This step is preferably performed as described above using customization tool 240. The customized metadata 216 and data 224 corresponding to the entities 220 are then stored in a first data store 218 of system 202, at step 272.
  • Next, at step 274, a subscription list of the customized metadata entities 216 is provided on the mobile computing device 206. The subscription list is defined by subscription metadata 276 stored in a subscription data store of mobile computing device 206, as shown in FIG. 2. The subscription list or metadata 276 identifies a subset of the customized metadata entities 216 contained in data store 218 of data storage system 202.
  • The subscription metadata 276 is preferably generated by the user through a subscription interface 278 shown in FIG. 2. Subscription interface 278 preferably includes a graphical user interface. In accordance with one embodiment of the invention, the graphical user interface provides a list of the customized entities 216 by name that can be selected by the user for inclusion in the subscription list 276. The graphical user interface preferably organizes the customized metadata entities 216 for presentation to the user or provides options to the user as to how the subscriptions to the customized metadata entities are to be presented. An exemplary graphical user interface 280 is shown in FIG. 8A, which provides the user options of displaying all of the subscriptions or accounts by selecting check box 281, only the active accounts by selecting check box 282, accounts by Postal/ZIP code by selecting check box 283, or the accounts organized by state by selecting check box 284, for example. The user can also designate the particular accounts that will comprise the main list of customized metadata entities 216 or accounts from which the subscriptions are made, and the particular states or Postal/ZIP codes that are to be used to organize the main list of accounts by selecting, for example, the corresponding arrow icon 285.
  • Once a selection of the desired list of customized metadata entities 216 is made by the user of mobile computing device 206, the customized metadata entities 216 or accounts are presented accordingly. FIG. 8B is an example of a graphical user interface 286 presenting a list 287 of customized metadata entities 216 or accounts in accordance with the user's selection from the options presented in the graphical user interface 280 shown in FIG. 8A. The user can select individual customized metadata entities 288 or accounts from the presented list 287 in accordance with conventional methods. In the present example, the user selects individual customized metadata entities 288 or accounts for subscription by highlighting an individual entity 288 and selecting arrow 289 to add the entity 288 to a subscription list 290. Individual entities 288 can be deselected from the subscription list 290 in a similar manner by highlighting the particular entity 288 and selecting arrow 291 to remove it from the list 290.
  • The graphical user interface 280 can also provide the user with information as to an estimated amount of memory storage that remains available to the mobile computing device 206 after a synch is performed to load the entities 216 of the subscription list 290 into the device 206.
  • It should be understood that many other types of graphical user interfaces can be generated by subscription interface 278 to provide the user with a means for selecting the desired customized metadata entities 216, such as drop-down menus and other suitable interfaces. Once the user makes the selection of the customized entities to be included in the subscription list 290, the subscription metadata 276 that defines the subscription list 290 is generated and stored in a subscription data store.
  • At step 292 of the method of FIG. 7, the customized metadata or entities 216 corresponding to the entities 282 identified in the subscription list 276 are sent to the mobile computing device 206. In accordance with one embodiment of the invention, this data transmission is performed using synchronizer 294, shown in FIG. 2. Synchronizer 294 includes sync engines 296 and 298, which are configured to form a communication link between central and mobile data storage systems 202 and 210 and allow system 200 perform a sync operation between central and mobile databases 218 and 214 in accordance with known methods. Such sync operations are preferably substantially performed in the background to allow the user of the mobile computing device 206 to access and operate the application 208 without interruption.
  • During a sync operation between the central and mobile data storage systems 202 and 210, the subscription metadata 276 is read to determine which customized metadata entities 216 are to be sent to the mobile computing device 206. Next, only the customized metadata entities 282 identified in the subscription list 276 are sent to mobile computing device 206, which are then stored in data store 214, as indicated at step 300 of the method. Alternatively, when mobile computing device 206 already includes customized metadata 212 in data store 214, the synch operation between the central and mobile databases 218 and 214 can simply involve replacing the existing or old customized metadata with the new customized metadata. Preferably, only the customized metadata 216 contained in central data store that has been updated since the last synching operation is sent to the mobile computing device 206 to either replace the corresponding old customized metadata 212 or be added to the metadata 212.
  • Preferably, the data 224 that corresponds to the customized metadata entities 282 identified in the subscription metadata 276 are also transmitted to mobile computing device 206 and stored in data store 214 by data accessing system 230. The application 208 then renders or populates the entities defined by the customized metadata entities 212 using the corresponding sent data 226 contained in data store 214. The populated or rendered entities 222 can then be displayed for the user on the mobile computing device 206 in accordance with the form or view defined by the corresponding sent customized metadata 212.
  • One alternative to transmitting the customized metadata 216 and the corresponding data 224 separately to mobile computing device 206 is to transmit rendered or populated entities 220 that correspond to the customized entities 282 identified in the subscription list 276. This embodiment of the method of the present invention is illustrated in the flowchart of FIG. 9. The method initially begins in accordance with steps 270, 272, and 274 of the method discussed above. Accordingly, customized metadata 216 is provided at step 302, the customized metadata and corresponding data are stored at step 304, and a subscription list of the entities defined by subscription metadata is provided at step 306. However, rather then sending the customized metadata 216 and the corresponding data 224 separately to database 214 of mobile computing device 206, the entities 282 identified in the subscription list 276 are rendered or populated, at step 308, with the corresponding data 224 in accordance with the customized metadata 216 to form populated entities or objects. Next, at step 310, the populated entities are sent to the mobile computing device 312 (FIG. 2). Finally, at step 314, the populated entities are stored in an object data store 316 of the mobile computing device 312, as illustrated in FIG. 2. Preferably, only the populated entities that have changed since the last synching operation are sent to mobile computing device 312 to replace old populated entities contained in the object data store 316 or to be added thereto. As a result, there is no need to render the entities defined by the customized metadata 216 in the mobile computing device 312. Instead, application 208 of mobile computing device 312 can directly access the populated entities and display them to the user.
  • Although the present invention has been described with reference to particular embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention.

Claims (25)

1. The method of customizing a software-implemented business process comprising:
a) providing customized metadata defining entities;
b) storing the customized metadata and data corresponding to the entities in a first data store;
c) providing a subscription list of the entities, the subscription list being defined by subscription metadata stored in a subscription data store of a mobile computing device;
d) sending the customized metadata corresponding to the entities identified in the subscription list to the mobile computing device; and
e) storing the sent customized metadata in a second data store of the mobile computing device.
2. The method of claim 1 including:
sending the data corresponding to the entities identified in the subscription list to the mobile computing device; and
storing the sent data in the second data store.
3. The method of claim 2 including populating an entity defined by the sent customized metadata with the corresponding sent data.
4. The method of claim 3 including displaying the populated entity on the mobile computing device in accordance with a form defined by the sent customized metadata for the populated entity.
5. The method of claim 1, wherein the mobile computing device is selected from a group consisting of a mobile phone and a personal digital assistant (PDA).
6. The method of claim 1, wherein the customized metadata define data fields of the entities.
7. The method of claim 1, wherein the customized metadata define presentation forms for the entities.
8. The method of claim 1, wherein the storing step e) includes replacing old customized metadata stored in the second data store with at least some of the sent customized metadata.
9. A method of customizing a software implemented business process comprising:
a) providing customized metadata defining entities;
b) storing the customized metadata and data corresponding to the entities in a first data store;
c) providing a subscription list of the entities, the subscription list being defined by subscription metadata stored in a subscription data store of a mobile computing device;
d) populating the entities identified by the subscription list with the corresponding data in accordance with the customized metadata;
e) sending the populated entities to the mobile computing device; and
f) storing the populated entities in an object data store of the mobile computing device.
10. The method of claim 9 including displaying one of the populated entities in accordance with a form defined by the sent customized metadata.
11. The method of claim 9, wherein the mobile computing device is selected from a group consisting of a mobile phone and a personal digital assistant (PDA).
12. The method of claim 9, wherein the customized metadata define data fields of the entities.
13. The method of claim 9, wherein the customized metadata define presentation forms for the entities.
14. The method of claim 9, wherein the storing step f) includes replacing old populated entities with at least some of the sent populated entities.
15. A system configured to customize a computer-implemented business process comprising:
a user interface configured to generate customized metadata defining entities in response to user input;
a first data store containing the customized metadata and data corresponding to the data entities;
a first data accessing system configured to access the customized metadata and the data contained in the first data store;
a mobile computing device including:
a subscription metadata store containing subscription metadata defining a subscription list of the entities;
a second data store; and
a second data access system configured to access the subscription metadata and the second data store; and
a synchronizer configured to send the customized metadata corresponding to the entities identified in the subscription list to the mobile computing device for storage in the second data store.
16. The system of claim 15, wherein the mobile computing device is selected from a group consisting of a mobile phone and a personal digital assistant (PDA).
17. The system of claim 15, wherein the customized metadata define data fields of the entities.
18. The system of claim 15, wherein the customized metadata define forms for the entities.
19. A method of customizing a software-implemented business process on a mobile computing device comprising:
a) providing customized metadata defining customizations of the software-implemented business process;
b) deploying the metadata to the mobile computing device;
c) storing the metadata in a data store of the mobile computing device; and
d) applying the customizations defined by the metadata to the software-implemented business process.
20. The method of claim 19 wherein the customized metadata define entities of the software-implemented business process.
21. The method of claim 20 including:
providing a subscription list of the entities;
wherein the deploying step b) includes sending the customized metadata corresponding to the entities identified in the subscription list to the mobile computing device in the deploying step b); and
wherein the storing step c) includes storing the sent customized metadata in the data store of the mobile computing device.
22. The method of claim 21, wherein the subscription list is defined by subscription metadata stored in the data store of the mobile computing device.
23. The method of claim 20, wherein the customized metadata define data content of the entities.
24. The method of claim 20, wherein the customized metadata define a user interface content of the entities.
25. The method of claim 20, wherein the business process is a customer relationship management application and the entities correspond to accounts of the customer relationship management application.
US10/760,099 2004-01-16 2004-01-16 Metadata driven customization of a software-implemented business process Expired - Fee Related US7890544B2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US10/760,099 US7890544B2 (en) 2004-01-16 2004-01-16 Metadata driven customization of a software-implemented business process
US10/867,496 US20050177601A1 (en) 2004-01-16 2004-06-14 Business application entity subscriptions
US10/884,558 US7567967B2 (en) 2004-01-16 2004-07-02 Business application entity subscriptions synch operation management
US12/984,686 US8700677B2 (en) 2004-01-16 2011-01-05 Metadata driven customization of a software-implemented business process
US14/188,191 US10209847B2 (en) 2004-01-16 2014-02-24 Metadata driven customization of a computer application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/760,099 US7890544B2 (en) 2004-01-16 2004-01-16 Metadata driven customization of a software-implemented business process

Related Child Applications (3)

Application Number Title Priority Date Filing Date
US10/867,496 Continuation-In-Part US20050177601A1 (en) 2004-01-16 2004-06-14 Business application entity subscriptions
US10/884,558 Continuation-In-Part US7567967B2 (en) 2004-01-16 2004-07-02 Business application entity subscriptions synch operation management
US12/984,686 Continuation US8700677B2 (en) 2004-01-16 2011-01-05 Metadata driven customization of a software-implemented business process

Publications (2)

Publication Number Publication Date
US20050160060A1 true US20050160060A1 (en) 2005-07-21
US7890544B2 US7890544B2 (en) 2011-02-15

Family

ID=34749853

Family Applications (3)

Application Number Title Priority Date Filing Date
US10/760,099 Expired - Fee Related US7890544B2 (en) 2004-01-16 2004-01-16 Metadata driven customization of a software-implemented business process
US12/984,686 Expired - Fee Related US8700677B2 (en) 2004-01-16 2011-01-05 Metadata driven customization of a software-implemented business process
US14/188,191 Active 2027-08-23 US10209847B2 (en) 2004-01-16 2014-02-24 Metadata driven customization of a computer application

Family Applications After (2)

Application Number Title Priority Date Filing Date
US12/984,686 Expired - Fee Related US8700677B2 (en) 2004-01-16 2011-01-05 Metadata driven customization of a software-implemented business process
US14/188,191 Active 2027-08-23 US10209847B2 (en) 2004-01-16 2014-02-24 Metadata driven customization of a computer application

Country Status (1)

Country Link
US (3) US7890544B2 (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050165803A1 (en) * 2004-01-16 2005-07-28 Microsoft Corporation Business application entity subscriptions synch operation management
US20070203956A1 (en) * 2006-02-28 2007-08-30 Microsoft Corporation Metadata Customization Using Diffgrams
US20080154918A1 (en) * 2003-09-24 2008-06-26 Sony Corporation Database Schemer Update Method
US20090210631A1 (en) * 2006-09-22 2009-08-20 Bea Systems, Inc. Mobile application cache system
US20090327288A1 (en) * 2008-06-29 2009-12-31 Microsoft Corporation Content enumeration techniques for portable devices
US7809663B1 (en) 2006-05-22 2010-10-05 Convergys Cmg Utah, Inc. System and method for supporting the utilization of machine language
EP2418575A1 (en) 2010-08-10 2012-02-15 I&DT Holding B.V. Metadata driven process control platform
US8452668B1 (en) 2006-03-02 2013-05-28 Convergys Customer Management Delaware Llc System for closed loop decisionmaking in an automated care system
WO2014124243A2 (en) * 2013-02-08 2014-08-14 Automatic Data Capture Technologies Group, Inc. Systems and methods for metadata-driven command processor and structured program transfer protocol
US9336013B2 (en) 2013-02-08 2016-05-10 Automatic Data Capture Technologies Group, Inc. Systems and methods for metadata-driven command processor and structured program transfer protocol
USD786887S1 (en) * 2013-04-19 2017-05-16 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
US10209847B2 (en) 2004-01-16 2019-02-19 Microsoft Technology Licensing, Llc Metadata driven customization of a computer application
WO2019173179A1 (en) * 2018-03-05 2019-09-12 Nextworld Llc Customized application architecture utilizing sparse and base metadata layers
US11016984B2 (en) * 2010-12-08 2021-05-25 Yottastor, Llc Method, system, and apparatus for enterprise wide storage and retrieval of large amounts of data
US11416459B2 (en) 2014-04-11 2022-08-16 Douglas T. Migliori No-code, event-driven edge computing platform
US11940999B2 (en) 2013-02-08 2024-03-26 Douglas T. Migliori Metadata-driven computing system

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7249195B2 (en) 2001-03-30 2007-07-24 Minor Ventures, Llc Apparatus and methods for correlating messages sent between services
US7802007B2 (en) 2004-05-19 2010-09-21 Salesforce.Com, Inc. Techniques for providing connections to services in a network environment
US9645712B2 (en) 2004-10-01 2017-05-09 Grand Central Communications, Inc. Multiple stakeholders for a single business process
US7490775B2 (en) 2004-12-30 2009-02-17 Aol Llc, A Deleware Limited Liability Company Intelligent identification of multimedia content for synchronization
US7937422B1 (en) 2005-11-03 2011-05-03 Aol Inc. Digital asset hosting and distribution
US8379830B1 (en) 2006-05-22 2013-02-19 Convergys Customer Management Delaware Llc System and method for automated customer service with contingent live interaction
US10110442B2 (en) * 2015-02-20 2018-10-23 Microsoft Technology Licensing, Llc Hierarchical data surfacing configurations with automatic updates

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020054750A1 (en) * 2000-04-25 2002-05-09 Michael Ficco DVR functions status indicator
US20020194305A1 (en) * 2001-06-18 2002-12-19 Infineon Technologies North America Corp. Systems and methods to facilitate a distribution of information via a dynamically loadable component
US20030079132A1 (en) * 2001-02-23 2003-04-24 International Business Machines Corporation Computer functional architecture and a locked down environment in a client-server architecture
US20030144873A1 (en) * 2002-01-18 2003-07-31 Keshel Michelle L. Mobile marketing system
US20030147369A1 (en) * 2001-12-24 2003-08-07 Singh Ram Naresh Secure wireless transfer of data between different computing devices
US20030159136A1 (en) * 2001-09-28 2003-08-21 Huang Xiao Fei Method and system for server synchronization with a computing device
US20030208543A1 (en) * 2000-07-25 2003-11-06 Noel Enete Video messaging
US20040078464A1 (en) * 1999-09-16 2004-04-22 Rajan Sreeranga P. Method and apparatus for enabling real time monitoring and notification of data updates for WEB-based data synchronization services
US20040117358A1 (en) * 2002-03-16 2004-06-17 Von Kaenel Tim A. Method, system, and program for an improved enterprise spatial system
US20040168184A1 (en) * 2002-12-04 2004-08-26 Jan Steenkamp Multiple content provider user interface
US20050165803A1 (en) * 2004-01-16 2005-07-28 Microsoft Corporation Business application entity subscriptions synch operation management
US20050177601A1 (en) * 2004-01-16 2005-08-11 Microsoft Corporation Business application entity subscriptions

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11196180A (en) 1997-11-07 1999-07-21 Casio Comput Co Ltd Received data management system
JPH11212793A (en) 1998-01-30 1999-08-06 Fuji Xerox Co Ltd Picture processor
US6704733B2 (en) * 2000-10-25 2004-03-09 Lightning Source, Inc. Distributing electronic books over a computer network
CN1304952C (en) 2001-03-16 2007-03-14 夏普株式会社 Data synchronization system, apparatus used for the system, and data synchonization method
JP2003030084A (en) 2001-07-10 2003-01-31 Seiko Epson Corp Data transfer device and data transfer program
JP4506064B2 (en) 2001-09-26 2010-07-21 ブラザー工業株式会社 Display device, display method, and computer program
WO2003102823A1 (en) 2002-05-31 2003-12-11 Fujitsu It Holdings, Inc. Method and system for intelligent storage management
JP2004062425A (en) 2002-07-26 2004-02-26 Brother Ind Ltd Communication terminal device
CN1249597C (en) 2002-09-03 2006-04-05 鸿富锦精密工业(深圳)有限公司 Synchronous system in distributed files and method
US20040177339A1 (en) * 2003-03-07 2004-09-09 Microsoft Corporation Customization of fields in objects in a computing environment
US7085752B2 (en) * 2003-03-12 2006-08-01 Microsoft Corporation Customization of metadata describing objects in a computing environment
US7403956B2 (en) * 2003-08-29 2008-07-22 Microsoft Corporation Relational schema format
US7890544B2 (en) 2004-01-16 2011-02-15 Microsoft Corporation Metadata driven customization of a software-implemented business process
US20060259852A1 (en) * 2005-05-11 2006-11-16 Manish Upendran System, method and framework for universal access to content and services

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040078464A1 (en) * 1999-09-16 2004-04-22 Rajan Sreeranga P. Method and apparatus for enabling real time monitoring and notification of data updates for WEB-based data synchronization services
US20020054750A1 (en) * 2000-04-25 2002-05-09 Michael Ficco DVR functions status indicator
US20030208543A1 (en) * 2000-07-25 2003-11-06 Noel Enete Video messaging
US20030079132A1 (en) * 2001-02-23 2003-04-24 International Business Machines Corporation Computer functional architecture and a locked down environment in a client-server architecture
US20020194305A1 (en) * 2001-06-18 2002-12-19 Infineon Technologies North America Corp. Systems and methods to facilitate a distribution of information via a dynamically loadable component
US20030159136A1 (en) * 2001-09-28 2003-08-21 Huang Xiao Fei Method and system for server synchronization with a computing device
US20030147369A1 (en) * 2001-12-24 2003-08-07 Singh Ram Naresh Secure wireless transfer of data between different computing devices
US20030144873A1 (en) * 2002-01-18 2003-07-31 Keshel Michelle L. Mobile marketing system
US20040117358A1 (en) * 2002-03-16 2004-06-17 Von Kaenel Tim A. Method, system, and program for an improved enterprise spatial system
US20040168184A1 (en) * 2002-12-04 2004-08-26 Jan Steenkamp Multiple content provider user interface
US20050165803A1 (en) * 2004-01-16 2005-07-28 Microsoft Corporation Business application entity subscriptions synch operation management
US20050177601A1 (en) * 2004-01-16 2005-08-11 Microsoft Corporation Business application entity subscriptions

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080154918A1 (en) * 2003-09-24 2008-06-26 Sony Corporation Database Schemer Update Method
US7567967B2 (en) 2004-01-16 2009-07-28 Microsoft Corporation Business application entity subscriptions synch operation management
US10209847B2 (en) 2004-01-16 2019-02-19 Microsoft Technology Licensing, Llc Metadata driven customization of a computer application
US20050165803A1 (en) * 2004-01-16 2005-07-28 Microsoft Corporation Business application entity subscriptions synch operation management
US20070203956A1 (en) * 2006-02-28 2007-08-30 Microsoft Corporation Metadata Customization Using Diffgrams
US8452668B1 (en) 2006-03-02 2013-05-28 Convergys Customer Management Delaware Llc System for closed loop decisionmaking in an automated care system
US7809663B1 (en) 2006-05-22 2010-10-05 Convergys Cmg Utah, Inc. System and method for supporting the utilization of machine language
US20140280771A1 (en) * 2006-09-22 2014-09-18 Oracle International Corporation Mobile applications
US8645973B2 (en) 2006-09-22 2014-02-04 Oracle International Corporation Mobile applications
US20090300656A1 (en) * 2006-09-22 2009-12-03 Bea Systems, Inc. Mobile applications
US20090210631A1 (en) * 2006-09-22 2009-08-20 Bea Systems, Inc. Mobile application cache system
US9398077B2 (en) * 2006-09-22 2016-07-19 Oracle International Corporation Mobile applications
US20090327288A1 (en) * 2008-06-29 2009-12-31 Microsoft Corporation Content enumeration techniques for portable devices
EP2418575A1 (en) 2010-08-10 2012-02-15 I&DT Holding B.V. Metadata driven process control platform
US11449519B2 (en) * 2010-12-08 2022-09-20 Yottastor, Llc Method, system, and apparatus for enterprise wide storage and retrieval of large amounts of data
US11016984B2 (en) * 2010-12-08 2021-05-25 Yottastor, Llc Method, system, and apparatus for enterprise wide storage and retrieval of large amounts of data
US9336013B2 (en) 2013-02-08 2016-05-10 Automatic Data Capture Technologies Group, Inc. Systems and methods for metadata-driven command processor and structured program transfer protocol
US11940999B2 (en) 2013-02-08 2024-03-26 Douglas T. Migliori Metadata-driven computing system
WO2014124243A3 (en) * 2013-02-08 2015-01-15 Automatic Data Capture Technologies Group, Inc. Systems and methods for metadata-driven command processor and structured program transfer protocol
US10223412B2 (en) 2013-02-08 2019-03-05 Douglas T. Migliori Systems and methods for metadata-driven command processor and structured program transfer protocol
WO2014124243A2 (en) * 2013-02-08 2014-08-14 Automatic Data Capture Technologies Group, Inc. Systems and methods for metadata-driven command processor and structured program transfer protocol
US10838955B2 (en) 2013-02-08 2020-11-17 Douglas T. Migliori Systems and methods for metadata-driven command processor and structured program transfer protocol
USD786887S1 (en) * 2013-04-19 2017-05-16 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
USD815658S1 (en) 2013-04-19 2018-04-17 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
US11416459B2 (en) 2014-04-11 2022-08-16 Douglas T. Migliori No-code, event-driven edge computing platform
WO2019173179A1 (en) * 2018-03-05 2019-09-12 Nextworld Llc Customized application architecture utilizing sparse and base metadata layers

Also Published As

Publication number Publication date
US10209847B2 (en) 2019-02-19
US7890544B2 (en) 2011-02-15
US20110106761A1 (en) 2011-05-05
US8700677B2 (en) 2014-04-15
US20140173453A1 (en) 2014-06-19

Similar Documents

Publication Publication Date Title
US10209847B2 (en) Metadata driven customization of a computer application
US11775745B2 (en) Database model which provides management of custom fields and methods and apparatus therfore
US7085752B2 (en) Customization of metadata describing objects in a computing environment
US8255871B1 (en) Computer implemented system and method for the generation of data access applications
US6785689B1 (en) Consolidation of multiple source content schemas into a single target content schema
EP1460534B1 (en) Customization of process logic in a software system
US7430722B2 (en) Method and system for selecting skinnable interfaces for an application
US7505983B2 (en) Extending data flows
EP1471425A2 (en) Extensible customization framework for a software system
US5890132A (en) Associating a physical application to a business operation
EP1580672A2 (en) Business application entity subscriptions synch operation management
US20050165829A1 (en) Systems, Methods and Computer Program Products for Developing Enterprise Software Applications
US9767431B2 (en) Virtual product hierarchies
US20110246535A1 (en) Apparatus and Method for Constructing Data Applications in an Unstructured Data Environment
US6892357B2 (en) Logistics management method and system
US7039648B2 (en) Method and software system for creating customized computerized libraries
US20040177339A1 (en) Customization of fields in objects in a computing environment
US20090313563A1 (en) System and method for providing data links
US20050177601A1 (en) Business application entity subscriptions
US20070061293A1 (en) Method and apparatus to support mass changes to business objects in an integrated computer system
GB2343530A (en) Nested graphical representations of Boolean expressions assist database querying
US20050256902A1 (en) Componentized content delivery
US20090089114A1 (en) Autogeneration of configuration activities

Legal Events

Date Code Title Description
AS Assignment

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SWARTZ, TANYA L.;ZHIYANOV, DMITRY V.;PREMCHANDRAN, GIRISH;AND OTHERS;REEL/FRAME:015356/0023;SIGNING DATES FROM 20040427 TO 20040429

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SWARTZ, TANYA L.;ZHIYANOV, DMITRY V.;PREMCHANDRAN, GIRISH;AND OTHERS;SIGNING DATES FROM 20040427 TO 20040429;REEL/FRAME:015356/0023

REMI Maintenance fee reminder mailed
AS Assignment

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034541/0477

Effective date: 20141014

LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20150215