The present disclosure relates to data model definitions, and in particular, to the display and modification of a data model definition.
In order to manage themselves efficiently, organizations employ systems, such as management information systems, to provide data analysis tools for evaluating an organization's current and future status based on the organizations underlying data systems. For example, many organizations employ enterprise resource planning (ERP) systems which integrate internal and external management of information across an entire organization—embracing finance/accounting, manufacturing, sales and service, customer relationship management, etc. In order to understand the substantial amount of data contained in these systems, tools have been developed to visually display what would otherwise be an overwhelming amount of information.
In recent years, as wireless and network technologies have developed and expanded, business functions have moved from standalone workstations and office desktop computers to mobile and personal devices that can access an organization's systems from practically anywhere in the world. These devices include mobile phones, feature phones, smartphones, tablet computers (such as for example an iPad™), mobile computers, handheld computers, personal desktop computers, laptop computers, in-vehicle (e.g., audio, navigation, etc.) devices, in-appliance devices, Personal Digital Assistants (PDAs), game consoles, Digital Video Recorders (DVRs) or Personal Video Recorders (PVRs), cable systems or other set-top-boxes, and other non-traditional computing devices.
Depicted in
According to framework 100 of
In order to both display a visual data model based on a model definition, and dynamically configure the model definition through the dynamic data model view 112, wireless device 110 first receives a data model definition from service provider 130 through wireless network 140. Service provider 130 may be embodied in one or more of a Wireless Carrier (WC), a Messaging Inter-Carrier Vendor (MICV), an Internet Service Provider (ISP), a data aggregator, a networking facilitator, a corporate entity, and/or others. Network 140 may include both wireless and wired components, including the Internet, public networks, intranets, WC networks, and others.
When the data model definition is initially received by wireless device 110, an internal representation of the data model definition is created by wireless device 110. For example, if the data model definition contains a hierarchical structure, the internal representation of the data model may comprise a structured data file or data element, such as an Extensible Markup Language (XML) file.
With the internal representation of the data model definition in place, wireless device 110 acquires data that will be used to populate the data model definition from data sources 120a and 120b. Specifically, wireless device 110 will access data sources 120a and 120b through data adaptor 114. Data adaptor 114 controls the retrieval and formatting of data according to information contained in the data model definition. For example, while the data model definition may define the source for the data to be retrieved, data adaptor 114 may handle the technical details of connecting to data sources 120a and 120b, construction of the communications used to access data sources 120a and 120b, and formatting the data received from data sources 120a and 120b to meet the requirements of the data model definition.
While data sources 120a and 120b are shown as being external to wireless device 110, other examples may access data stored on data sources which include local and/or remote data sources. Service provider 130 may also function as a data source.
Upon receipt of the data, the layout engine 116 of wireless device 110 will parse the data model for display on wireless device 110. Layout engine 116 intelligently calculates (i.e. determines and arranges) the layout of the display of the model. For example, layout engine 116 ensures that the model is displayed through dynamic data model view 112 without model elements being arranged in an overly complicated or undesirable arrangement. Layout engine 116 may also apply themes to the internal data model, enabling stylistic elements of the model to be quickly changed through the application of different themes.
Once displayed, a user may interact with the visual representation of the data model definition. Through processes described below, users may change either the display, or underlying features of the data mode definition. In response to these changes, expression engine 118 may recalculate and/or redisplay portions of the visual representation of the data model definition in response to user interactions and changes.
With reference now made to
Diagram delegate 220 is a component configured to receive user interactions through the wireless device on which the data model display object 200 resides. Specifically, diagram delegate 220 is configured to translate user interactions on the wireless device into changes to the display data model display object 200 on the wireless device. For example, if a user taps a touch screen of the wireless device in a manner which is intended to move a portion of data model display object 200, diagram delegate 220 may be responsible for interpreting the user's input into the correct instructions for the data model display object 200 to appropriately display the desired move.
Also depicted in
Making reference to
Once received, a visual representation of the model definition is displayed on a display of the wireless device in step 304. The display of the visual representation of the data model definition may comprise the steps taken by a layout engine, such as layout engine 116 of
Interactions of a user with the visual representation of the model definition are recorded at the wireless device in step 306. The interactions of step 306 may be received through the wireless device and influence the data model definition through a diagram delegate, such as diagram delegate 220 of
Alterations made to the visual representation of the model may be stored or recorded in step 308. The altered data model definition may be wirelessly transmitted to another device in step 310. For example, a wireless device may return an altered data model definition to the service provider that initially provided the original data model definition, such as service provider 130 of
With reference now made to
In step 404, the data model definition is passed to the data model display object. Similarly, in step 406, customized themes are assigned to the data model display object. For example, display attributes, such as colors, fonts and images, may be applied to the data model display object through a method call to the diagram theme component 225 of
In step 408, data adaptors, such as data adaptor 114 of
In step 412, the data model definition is parsed, along with the assigned themes, the assigned data adaptors, and the assigned diagram delegates to generate an internal data model. The internal data model will be the basis of the display of the data model on the wireless device, and will allow a user to interact with the data model through the wireless.
In step 414, data is retrieved through the assigned data adaptors and stored within the internal data model. Specifically, a query delegate, such as query delegate 210 of
In step 418, the specific view of the internal data model is passed to a layout engine, such as layout engine 116 of
Once the layout engine determines the positions, sizes, and other exact specifications for the display of the view of the internal data model, the internal data model is displayed on the wireless device in step 420. Once displayed, a user may interact with the view of the internal data model that is displayed on the wireless device, as indicated in step 422. The user input is captured through the expression engine and passed to the data model through a diagram delegate, such as diagram delegate 220 of
In step 428, a new data model definition may be generated from the modified internal data model. Once generated, the new data model definition may be stored at the wireless device, as well as transmitted to another device in step 430.
For example, a user may optionally save aspects of some or all of a model definition (e.g., a specific layout, or combination of node values.). The saved model definition may be stored locally on the wireless device, or may be stored on another device, such as a server. Accordingly, the storing and sending steps of
In order to send the model definition, the wireless device may employ one or more of the following communication techniques: a Short Message Service (SMS), Multimedia Message Service (MMS), Internet Protocol (IP) Multimedia Subsystem (IMS), message exchange, a Wireless Application Protocol (WAP) exchange, a structured or an unstructured data transfer, a data transfer operation atop one or more proprietary or standards-based protocols, an Electronic Message (E-Mail) exchange, an Instant Messaging (IM) exchange, Wi-Fi, a Near Field Communication (NFC) exchange, and others.
With reference now made to
As depicted in
As also shown in
In rendering display 500, the displayed names for the nodes are determined by the descriptive label or “Text” attribute of the “Node Name” field for each entry in definition 600. Accordingly, node 505 of
Similarly, the connections between nodes are rendered based on the “ParentNode” entry in each of the entries in definition 600. For example, entry 620 in
Display 500 is rendered beginning at the center of the left-hand side of a screen and may advance from left to right. Child nodes from a single parent are aligned vertically, meaning nodes 510 and 515, which are both children of node 505, are aligned along a vertical line. The display of a node's label may begin in the center of the node and advance to the left with adjustments to avoid overlapping, cropping, or truncation of labels. Other examples may begin at the top of a screen and advance vertically down. Furthermore, the specific alignment of the model display may be determined based on factors such as the size of a screen, the resolution of a screen, user preferences, and others.
In addition to the nodes and connections, some of the nodes in
Additional data labels may also be applied to nodes. For example, values such as a retrieved value, an initial value, a maximum allowed value, a minimum allowed value, a current value, a previous value (or values), a preferred value, an optimal value, and others may also be displayed.
Also depicted in
In display 500, a user is able to rotate model modifier 525d by rotating it around a pivot point at the center of node 525. By rotating model modifier 525d, the values associated with node 525 may be changed throughout the date model definition. As shown in
With reference now made to
The first change made by the user in
The change to display 500 is reflected in data model definition 600 through entry 820. Where entry 620 of
Another change reflected in
Furthermore, because entry 610 of data model definition references the “Expression” value of entry 815, the change to entry 815 results in a change to the “Expression” value for node 610. Accordingly, expression engine 118 of
A third change made in
With reference now made to
In order to alert the user that these nodes exist,
With reference now made to
Turning to
With reference now made to
Computer system 1300 includes one or more processors, such as processor 1304. Processor 1304 can be a special purpose processor or a general purpose processor. Processor 1304 is connected to a communication infrastructure 1302 (for example, a bus or a network).
Computer system 1300 also includes a main memory 1306, preferably Random Access Memory (RAM), containing possibly inter alia computer software and/or data 1308.
Computer system 1300 may also include a secondary memory 1310. Secondary memory 1310 may include, for example, a hard disk drive 1312, a removable storage drive 1314, a memory stick, etc. A removable storage drive 1314 may comprise a floppy disk drive, a magnetic tape drive, an optical disk drive, a flash memory, or the like. A removable storage drive 1314 reads from and/or writes to a removable storage unit 1316 in a well known manner. A removable storage unit 1316 may comprise a floppy disk, magnetic tape, optical disk, etc. which is read by and written to by removable storage drive 1314. As will be appreciated by persons skilled in the relevant art(s) removable storage unit 1316 includes a computer usable storage medium 1318 having stored therein possibly inter alia computer software and/or data 1320.
In alternative implementations, secondary memory 1310 may include other similar means for allowing computer programs or other instructions to be loaded into computer system 1300. Such means may include, for example, a removable storage unit 1324 and an interface 1322. Examples of such means may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an Erasable Programmable Read-Only Memory (EPROM), or Programmable Read-Only Memory (PROM)) and associated socket, and other removable storage units 1324 and interfaces 1322 which allow software and data to be transferred from the removable storage unit 1324 to computer system 1300.
Computer system 1300 may also include an input interface 1326 and a range of input devices 1328 such as, possibly inter alia, a keyboard, a mouse, etc.
Computer system 1300 may also include an output interface 1330 and a range of output devices 1332 such as, possibly inter alia, a display, one or more speakers, etc.
Computer system 1300 may also include a communications interface 1334. Communications interface 1334 allows software and/or data 1338 to be transferred between computer system 1300 and external devices. Communications interface 1334 may include a modem, a network interface (such as an Ethernet card), a communications port, a Personal Computer Memory Card International Association (PCMCIA) slot and card, or the like. Software and/or data 1338 transferred via communications interface 1334 are in the form of signals 1336 which may be electronic, electromagnetic, optical, or other signals capable of being received by communications interface 1334. These signals 1336 are provided to communications interface 1334 via a communications path 1340. Communications path 1340 carries signals and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, a Radio Frequency (RF) link or other communications channels.
As used in this document, the terms “computer program medium,” “computer usable medium,” and “computer readable medium” generally refer to media such as removable storage unit 1316, removable storage unit 1324, and a hard disk installed in hard disk drive 1312. Signals carried over communications path 1340 can also embody the logic described herein. Computer program medium and computer usable medium can also refer to memories, such as main memory 1306 and secondary memory 1310, which can be memory semiconductors (e.g. Dynamic Random Access Memory (DRAM) elements, etc.). These computer program products are means for providing software to computer system 1300.
Computer programs (also called computer control logic) are stored in main memory 1306 and/or secondary memory 1310. Computer programs may also be received via communications interface 1334. Such computer programs, when executed, enable computer system 1300 to implement the techniques discussed herein. In particular, the computer programs, when executed, enable processor 1304 to implement, e.g., the functions of supplemental information delivery logic 134. Accordingly, such computer programs represent controllers of the computer system 1300. Where the techniques are implemented using software, the software may be stored in a computer program product and loaded into computer system 1300 using removable storage drive 1314, interface 1322, hard drive 1312 or communications interface 1334.
The techniques described herein are also directed to computer program products comprising software stored on any computer useable medium. Such software, when executed in one or more data processing devices, causes data processing device(s) to operate as described herein. Embodiments may employ any computer useable or readable medium, known now or in the future. Examples of computer useable mediums include, but are not limited to, primary storage devices (e.g., any type of random access memory), secondary storage devices (e.g., hard drives, floppy disks, Compact Disc Read-Only Memory (CD-ROM) disks, Zip disks, tapes, magnetic storage devices, optical storage devices, Microelectromechanical Systems (MEMS), nanotechnological storage device, etc.), and communication mediums (e.g., wired and wireless communications networks, local area networks, wide area networks, intranets, etc.).
The above description is intended by way of example only. Various modifications and structural changes may be made therein without departing from the scope of the concepts described herein and within the scope and range of equivalents of the claims.
Number | Name | Date | Kind |
---|---|---|---|
6028602 | Weidenfeller et al. | Feb 2000 | A |
7571426 | Carroll | Aug 2009 | B2 |
7694229 | Stoakley et al. | Apr 2010 | B2 |
7720803 | Unnebrink et al. | May 2010 | B2 |
7730027 | Willenborg et al. | Jun 2010 | B2 |
7904478 | Yu et al. | Mar 2011 | B2 |
7917888 | Chong et al. | Mar 2011 | B2 |
7974992 | Fastabend et al. | Jul 2011 | B2 |
8126937 | Shaburov | Feb 2012 | B2 |
8321556 | Chatterjee et al. | Nov 2012 | B1 |
8484549 | Burr et al. | Jul 2013 | B2 |
8694918 | Mandelstein et al. | Apr 2014 | B2 |
8751543 | Kamenz et al. | Jun 2014 | B2 |
9093050 | Orlov | Jul 2015 | B1 |
20050007383 | Potter et al. | Jan 2005 | A1 |
20070061074 | Safoutin | Mar 2007 | A1 |
20070106515 | Wong | May 2007 | A1 |
20080172407 | Sacks | Jul 2008 | A1 |
20120260215 | Fennel | Oct 2012 | A1 |
20140082512 | Neuert et al. | Mar 2014 | A1 |
20140279865 | Kumar | Sep 2014 | A1 |
20150356160 | Berwick | Dec 2015 | A1 |
20160117372 | Krafft | Apr 2016 | A1 |
Number | Date | Country | |
---|---|---|---|
20150007039 A1 | Jan 2015 | US |