US20220156274A1 - Light data integration - Google Patents
Light data integration Download PDFInfo
- Publication number
- US20220156274A1 US20220156274A1 US17/352,635 US202117352635A US2022156274A1 US 20220156274 A1 US20220156274 A1 US 20220156274A1 US 202117352635 A US202117352635 A US 202117352635A US 2022156274 A1 US2022156274 A1 US 2022156274A1
- Authority
- US
- United States
- Prior art keywords
- data
- database
- stored
- data store
- user interface
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
Definitions
- Data integration refers to a process of combining data residing in different sources and providing a unified view of the data. This process becomes significant in a variety of situations, which include both commercial (when two similar companies need to merge their databases) and scientific (combining research results from different bioinformatics repositories, for example) domains.
- one innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving, by a computer device, executing at least part of a functional logic tier of an application, a request from a user for one or more objects present in the functional logic tier.
- the methods include the actions of determining that a type of one of the one or more requested objects is associated with an object representative of instance level security.
- the methods include the actions of determining access is authorized to at least some of the one or more objects in response to determining that the type is associated with the object representative of instance level security, determining access including accessing, by a computer device executing at least part of a data tier of the application, a link data structure in the data tier of the application that links the access authorized user with at least some of the one or more objects.
- the methods also include the actions of providing the at least some of the one or more objects to the access authorized user.
- inventions of this aspect include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the methods.
- a system of one or more computers can be configured to perform particular actions by virtue of having software, firmware, hardware, or a combination of them installed on the system that in operation causes or cause the system to perform the actions.
- One or more computer programs can be configured to perform particular actions by virtue of including instructions that, when executed by data processing apparatus, cause the apparatus to perform the actions.
- Multiple objects representative of instance level security may be associated with the link data structure. Multiple objects representative of instance level security may be associated with the same type of object.
- the object representative of instance level security may be associated with a name and wherein determining the user is authorized to access at least some of the one or more objects is based at least in part on the name. Securing the object using the object representative of instance level security may not require change to a user interface accessing the business object.
- the link data structure may be a table in a relational database.
- the methods may include the actions of storing a key references the first portion of the data in the second portion of the data.
- Objects can be secured at the instance level.
- Row level security can be implemented at the data and object level without requiring adjustment to the presentation tier.
- FIG. 1 illustrates an example of a user interface.
- FIG. 2 illustrates an example of a three-tier architecture.
- FIG. 3 illustrates an example of a user interface operating in a presentation tier accessing objects in a functional logic tier.
- FIG. 4 illustrates an example of a functional logic tier interacting with a data tier.
- FIG. 5 illustrates an example of a data tier.
- FIG. 6 illustrates an example of light integration between data sources.
- FIG. 7 is an example of a user interface integrating data from multiple data sources.
- FIG. 8 is a flowchart for an example process for implementing light integration.
- User interfaces can be implemented using data from multiple data sources.
- Organizations tend to store information in many disparate data sources. These data sources can include relational databases, enterprise products, data warehouses, and cloud based data systems. This use of disparate data sources can arise for many reasons, including the continued use of older systems, the selection of disparate “best in class” systems for different functionality, newer systems potentially being built that use newer technology while older systems remain, third party products being potentially purchased but perhaps not offering the complete suite of functionality desired by an organization, etc.
- FIG. 1 illustrates an example user interface 102 includes a first panel 104 and a second panel 106 .
- the first panel 104 includes a list of items and the second panel 106 displays information about a selected item in the list on the first panel 104 (the selection being graphically represented by an arrow 108 ).
- the example in FIG. 1 illustrates the first panel 104 as containing a list box.
- a list box can be considered a graphical control element that allows a user to select one or more items from a list contained within a static, multiple line text box. Other graphical controls that allow a user to select an item from a predetermined list can be used and are consistent with the example.
- the user may select from a drop-down list, which is a graphical control element similar to a list box that allows the user to choose one value from a list.
- a drop-down list When a drop-down list is inactive, it displays a single value. When it is activated, it displays (drops down) a list of values from which the user may select one value. When the user selects a new value, the control reverts to its inactive state, displaying the selected new value.
- Complexity is introduced when the data used to generate the list in the first panel 104 is stored, at least in part, in a data store that is separate from the data store that contains the information presented in the second panel 106 .
- FIG. 2 illustrates an example of a three-tier architecture.
- a multi-tier architecture can be a client-server architecture in which presentation, application processing, and data management functions are physically separated.
- One often-implemented multi-tier architecture is the three-tier architecture.
- Three-tier architecture is a client-server architecture in which a presentation tier 202 (for example, user interface 204 ), functional logic tier 206 (for example, an object model 208 ), and data architecture tier 210 (for example, data storage systems 212 ) are developed and maintained as independent modules, frequently on separate platforms.
- the presentation tier 202 can be the top-level of an application.
- the main function of the presentation tier can be to translate business processes into a form the user can understand.
- the functional logic tier 206 can coordinate the application, process commands, perform calculations, etc. and make logical decisions, evaluations, etc.
- the data tier 210 often coordinates the storage and retrieval of data from one or more data storage systems.
- each tier of the architecture interacts with one of the other tiers (e.g., one adjacent tier).
- a tier may interaction with the tier that is graphically represented as being directly below it.
- items in a tier can interact with items in the tier directly below.
- the user interface 204 may access the object model 208 .
- the object model 208 can access a function provided by the data storage systems 212 .
- the user interface 204 would generally not interact with the data storage systems 212 directly, as the data storage systems 212 is not directly below the user interface 204 , in this example.
- GUI designers and web developers may focus on the presentation tier 202 .
- Application developers and business architects may focus on the functional logic tier 206 .
- Database administrators and database programmers may focus on the data tier 210 .
- certain types of developers may focus on multiple tiers. For example, security can be an enterprise specialty that influences each of the tiers mentioned above.
- FIG. 3 illustrates an example of a user interface 302 in a presentation tier that is accessing objects in a functional logic tier.
- the user interface 302 includes a first panel 304 and a second panel 306 .
- the first panel 304 and the second panel 306 present pseudo code, which when executed, would then populate panel 304 with a customer list—from which a customer can be selected, and populate panel 306 with information (address, phone number, etc.) for the selected customer.
- a customer object 312 and an address object 314 reside in the functional logic tier of the application, which is located below the presentation tier as graphically represented by an arrow 318 .
- Links can form among objects that reside in these tiers, such as the customer object 314 and the address object 314 .
- a relationship 316 exists between the customer object 312 and the address object 314 , which can be used to identify the billing address of a particular customer.
- Object-oriented programing a class or type of an object represents the object generally (herein referred to a class of type).
- a class of type of the object may be a customer or a product. This is distinguished from an object or instance, which references a particular thing.
- An instance may represent the customer “John Smith” or the product “Pet Rock.” (herein referred to as an object or instance).
- the user interface 302 can access the objects 312 , 314 .
- the first panel 304 (of the user interface 302 which may be user interface 102 of FIG. 1 ) may include pseudo code sufficient to generate a list of customers (for example, the list of customers in the first panel 104 of FIG. 1 ).
- the user interface may access the customer object 312 .
- a GetAllCustomers( ) method on the customer object 312 can be used to obtain a list of all customers.
- the application iterates over the list of returned customers and adds the name of each customer to the list presented in the first panel 304 .
- the pseudo code also allows for a customer to be selected from the list of customers.
- the second panel 306 includes pseudo code sufficient to populate the second panel with information about the customer object 312 .
- the second panel 306 is populated with the name of the customer selected from the customer list in panel 304 .
- the pseudo code 306 includes instructions that use the relationship 316 to navigate from the object 312 of the selected customer to identify a billing address provided by the address object 314 shows the navigation of the billing address relationship 316 in order to identify the billing address 314 for the selected customer.
- the second panel 306 is populated with the street, city, state, and zip code of the billing address.
- the second panel 306 is also populated with the selected customer's phone number and annual revenue.
- Developing a user interface by using these objects allows a developer to produce a user interface without regard for where the underlying data is stored. Instead, coordinating between the objects and the persistent data is relegated to the functional object and data tiers.
- FIG. 4 illustrates an example of a functional logic tier (e.g., the tier 206 of FIG. 2 ) interacting with a data tier (e.g., the tier 210 of FIG. 2 ).
- the arrangements of data on the object may be determined based on the logical location of the data according to the object model (e.g., the object model 208 of FIG. 2 ) and not based on the location of the data in the data storage systems.
- the customer object 312 may include the name, phone, and annual revenue of the customer while the address object 314 may include the street, city, state, and zip code.
- the data may not be persistently stored, however, in a manner consistent with the model, for example, the data for a particular object may be stored across multiple databases.
- the customer list may be available from a relational database 402 , while the attributes of the customers and the customer addresses may be stored on in a cloud data system 404 .
- customer information e.g., customer attribute, address information, etc.
- SALESFORCE database may be stored in an account object of a SALESFORCE database.
- the functional logic tier can provide a mapping that allows the system to convert vendor specific data types to vendor neutral data types.
- the functional logic tier also allows for conversions between some logical datatypes. For example, mapping between a relatively small, finite set of vendor-neutral datatypes is more efficient and requires less programing effort that mapping between a relatively large, unbound set of vendor specific data-types.
- Data storage systems can include, but are not limited to, indexed flat files, relational databases, and NoSQL databases (including but not limited to column data stores (such as HBASE), document databases (such as APACHE COUCHDB), key value databases (such as ORACLE NOSQL DATABASE), graph databases (such as ALLEGRO), and/or a multi-model data stores (such as FOUNDATION DB)).
- the data storage systems may be, for example, located within an organization or may be provided as a cloud based service.
- FIG. 5 illustrates an example of a data tier (e.g., the data tier 210 shown in FIG. 2 ) that includes the database 402 and the cloud data system 404 .
- the database 402 can be, for example, a relational database stored on a data server.
- the cloud data system 404 can be, for example, a third party product, such as SALESFORCE.
- the database 402 includes a table definition of a customer table 502 .
- the table definition customer table includes a table definition that provides the name of two columns in the customer table: a name column and a customer ID column 504 .
- the cloud data system 404 includes an account object 506 .
- the inner workings of the cloud data system 404 may be unknown or hidden. Instead, the cloud data system may be accessed using an application programming interface (API).
- the account object 506 includes account number, annual revenue, billing city, billing state, billing street, billing country, name, and phone fields.
- objects in the cloud data system 404 may not use the same identification fields (sometimes referred to as primary keys) as the database 402 .
- identification fields sometimes referred to as primary keys
- federated query systems may be unable to join data across the database.
- SALESFORCE uses the account object 506 to represent customers.
- the internal account id which identifies an account, is not generally coordinated with the customer ID column 504 .
- One way to associate data records across disparate systems is to store an identifier in one system that references the corresponding record in the other system. For example, values from the customer ID column 504 can be copied (as shown by the customer field 508 ) and stored in the account object 506 , thereby enabling a system to navigate between the account object 506 and the customer table 502 .
- FIG. 6 illustrates an example of light integration between data sources.
- light integration is a technique that can provide the benefits of federated queries without having the same overhead cost.
- the user interface 102 includes the first panel 104 and the second panel 106 .
- Data for the first panel 104 may be provided from the database 402 (from FIG. 4 ).
- Data for the second panel 106 may be provided by the cloud data system 404 (from FIG. 4 ) based on information provided by a user interaction with the first panel 104 . For example, a user may select an item in the first panel (here the “Dragon Toys” item 602 ) and the second panel 106 is then populated with information about “Dragon Toys.”
- the functional logic tier 604 simplifies the light integration of data sources.
- Light integration can include joining data from two different systems based on one or more common values.
- the common values can be (and usually are) stored in different, vendor-specific data types.
- the system is able to map those to vendor-neutral data types and convert the values where necessary.
- the functional logic tier 604 in turn causes commands to be executed against the data sources. For example, to provide the data that the user interface 102 uses to populate the first panel 104 , the functional logic tier 604 can cause a SQL command 606 (e.g., “SELECT NAME, CUSTOMER_ID FROM CUSTOMER”) to be sent to the database 402 .
- the database 402 can process the query provided by the command and return a list of records as results.
- the functional logic tier 604 can provide the details of the results as objects to the user interface 102 , which then can use those details to populate the first panel 104 .
- the user interface 102 interacts with the functional logic tier 604 to obtain more information about the selected item.
- the user interface 102 may execute a method on a customer object that causes the customer object to obtain more detail from the data sources.
- the functional logic tier 604 can cause a query 610 to be executed against the cloud data system 404 .
- a query is executed using a SALESFORCE API:
- cloud data systems include, for example, SOAP calls, remote procedure calls, streaming, OData, REST web services, etc.
- FIG. 7 is an example of a user interface 700 integrating data from multiple data sources.
- the user interface 700 includes a first panel 702 and a second panel 704 .
- the first panel 702 includes a list of items and the second panel 704 displays information about a selected item in the list on the first panel 702 .
- the data displayed in the second panel 704 can be edited.
- the second panel 704 includes an editable box 706 where the user can update the street address.
- the user interface also includes a drop down box 708 where the user may select a state from a list of states.
- the second panel 704 also includes another dropdown box 710 where the user can select a type of customer from a list of customer types.
- the developer of the user interface 700 interacts with objects or data in the functional logic tier 712 .
- the functional logic tier 712 interacts with the data tier in order to obtain and store the data.
- the selectable items in the second panel 704 may be populated using data from different data sources.
- the drop down box 708 may be populated with a list of states from a state data source 718 .
- the state data source 718 may be a look up table in a relational data base or may be obtained from a third-party service, for example, a web service.
- the customer type drop down 710 may be populated with data from a customer type data source 720 .
- the customer type data source 720 may be, for example, a table in a relational database.
- Data values selected from a drop down list can be populated using keys and values.
- the customer type data source 720 may store a unique key for each type of customer.
- the number 1 could represent the small customer type.
- the number 2 could represent the retail customer type.
- the number 3 could represent the wholesale customer type.
- the items in the first panel 702 may be provided from a customer data source 716 and the information about the selected item (e.g. Dragon Toys).
- the customer data source 716 may store that Dragon Toys' Billing Address is 29 Summer Way in Somewhere, N.H.
- the customer data source 716 may also store the phone number, annual revenue, and customer type for Dragon Toys.
- the data from the drop down list boxes, or any other key value selection control may be stored as a key.
- the Dragon Toys customer is associated with the small customer type, which, as described above, is represented by the number 1 in the customer type data source 720 .
- the number 1 may be stored instead of the term “Small” (as represented by the data value 724 ).
- keys originating from the customer type data source 720 may be stored in the customer data source 716 .
- information from the customer data source 716 may require cross reference with another data source (for example, the state data source 718 or the customer type data source 720 ).
- FIG. 8 is a flowchart for an example process 800 for light integration.
- the process 800 may be performed by a computer processing system including one or more computer processors and a non-transitory storage medium storing instructions that cause the computer processing system to execute the process.
- the process 800 can receive 802 a plurality of objects from a functional logic tier of an application, each object representative of data stored in a data tier of the application.
- a first portion of the stored data may be stored in a first persistent data store (for example, a SQL database) and a second portion of the stored data being stored in a second persistent data store (for example, a NoSQL database) different from the first persistent data store.
- a first persistent data store for example, a SQL database
- a second portion of the stored data being stored in a second persistent data store (for example, a NoSQL database) different from the first persistent data store.
- the process 800 can present 804 in a first area of the user interface information from the plurality of objects, the information selected from the first portion of the data.
- the process 800 can receive 806 an indication of an object being selected from the plurality of objects. For example, a user of the user interface may click, touch, or otherwise select a data on the user interface that corresponds to one of the objects in the functional logic tier.
- the process 800 can present 808 in a second area of the user interface information from the second part of data corresponding to the selected business object.
- Embodiments of the subject matter and the operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.
- Embodiments of the subject matter described in this specification can be implemented as one or more computer programs (i.e., one or more modules of computer program instructions), encoded on computer storage medium for execution by, or to control the operation of, data processing apparatus.
- the operations described in this specification can be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.
- the term “data processing apparatus” encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple ones, or combinations, of the foregoing.
- the apparatus can include special purpose logic circuitry (e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit)).
- the apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question (e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them).
- the apparatus and execution environment can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.
- a computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language (including compiled or interpreted languages or declarative or procedural languages) and it can be deployed in any form (including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment).
- a computer program may, but need not, correspond to a file in a file system.
- a program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code).
- a computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
- the processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output.
- the processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry (e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit)).
- special purpose logic circuitry e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit)
- processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer.
- a processor will receive instructions and data from a read-only memory or a random access memory or both.
- the essential elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data.
- a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data (e.g., magnetic, magneto optical disks, or optical disks), however, a computer need not have such devices.
- a computer can be embedded in another device (e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few).
- Devices suitable for storing computer program instructions and data include all forms of non-transitory computer-readable media and memory devices, including by way of example, semiconductor memory devices (e.g., EPROM, EEPROM, and flash memory devices), magnetic disks (e.g., internal hard disks or removable disks), magneto optical disks, and CD ROM and DVD-ROM disks.
- the processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
- a computer that has a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer.
- a display device e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
- a keyboard and a pointing device e.g., a mouse or a trackball
- Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual, auditory, or tactile feedback), and input from the user can be received in any form, including acoustic, speech, or tactile input.
- a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user (for example, by sending web pages to a web browser
- Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back end component (e.g., as a data server), a middleware component (e.g., an application server), or a front end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification), or any combination of one or more such back end, middleware, or front end components.
- the components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network).
- Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
- LAN local area network
- WAN wide area network
- inter-network e.g., the Internet
- peer-to-peer networks e.g., ad hoc peer-to-peer networks.
- the computing system can include clients and servers.
- a client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
- a server transmits data (e.g., an HTML, page) to a user device (e.g., for purposes of displaying data to and receiving user input from a user interacting with the user device).
- Data generated at the user device e.g., a result of the user interaction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Human Computer Interaction (AREA)
Abstract
Description
- This application is a continuation of, and claims priority under 35 USC § 120 to U.S. application Ser. No. 15/475,206, filed on Mar. 31, 2017, which is a continuation of U.S. application Ser. No. 14/963,562, filed on Dec. 9, 2015, now U.S. Pat. No. 9,613,108.
- The contents of each application is hereby incorporated by reference in its entirety.
- Data integration refers to a process of combining data residing in different sources and providing a unified view of the data. This process becomes significant in a variety of situations, which include both commercial (when two similar companies need to merge their databases) and scientific (combining research results from different bioinformatics repositories, for example) domains.
- In general, one innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving, by a computer device, executing at least part of a functional logic tier of an application, a request from a user for one or more objects present in the functional logic tier. The methods include the actions of determining that a type of one of the one or more requested objects is associated with an object representative of instance level security. The methods include the actions of determining access is authorized to at least some of the one or more objects in response to determining that the type is associated with the object representative of instance level security, determining access including accessing, by a computer device executing at least part of a data tier of the application, a link data structure in the data tier of the application that links the access authorized user with at least some of the one or more objects. The methods also include the actions of providing the at least some of the one or more objects to the access authorized user.
- Other embodiments of this aspect include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the methods. A system of one or more computers can be configured to perform particular actions by virtue of having software, firmware, hardware, or a combination of them installed on the system that in operation causes or cause the system to perform the actions. One or more computer programs can be configured to perform particular actions by virtue of including instructions that, when executed by data processing apparatus, cause the apparatus to perform the actions.
- The foregoing and other embodiments can each optionally include one or more of the following features, alone or in combination. Multiple objects representative of instance level security may be associated with the link data structure. Multiple objects representative of instance level security may be associated with the same type of object. The object representative of instance level security may be associated with a name and wherein determining the user is authorized to access at least some of the one or more objects is based at least in part on the name. Securing the object using the object representative of instance level security may not require change to a user interface accessing the business object. The link data structure may be a table in a relational database. The methods may include the actions of storing a key references the first portion of the data in the second portion of the data.
- Particular embodiments of the subject matter described in this specification can be implemented so as to realize one or more of the following advantages. Objects can be secured at the instance level. Row level security can be implemented at the data and object level without requiring adjustment to the presentation tier.
- The details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims.
-
FIG. 1 illustrates an example of a user interface. -
FIG. 2 illustrates an example of a three-tier architecture. -
FIG. 3 illustrates an example of a user interface operating in a presentation tier accessing objects in a functional logic tier. -
FIG. 4 illustrates an example of a functional logic tier interacting with a data tier. -
FIG. 5 illustrates an example of a data tier. -
FIG. 6 illustrates an example of light integration between data sources. -
FIG. 7 is an example of a user interface integrating data from multiple data sources. -
FIG. 8 is a flowchart for an example process for implementing light integration. - Like reference numbers and designations in the various drawings indicate like elements.
- User interfaces can be implemented using data from multiple data sources. Organizations tend to store information in many disparate data sources. These data sources can include relational databases, enterprise products, data warehouses, and cloud based data systems. This use of disparate data sources can arise for many reasons, including the continued use of older systems, the selection of disparate “best in class” systems for different functionality, newer systems potentially being built that use newer technology while older systems remain, third party products being potentially purchased but perhaps not offering the complete suite of functionality desired by an organization, etc.
-
FIG. 1 illustrates anexample user interface 102 includes afirst panel 104 and asecond panel 106. Thefirst panel 104 includes a list of items and thesecond panel 106 displays information about a selected item in the list on the first panel 104 (the selection being graphically represented by an arrow 108). The example inFIG. 1 illustrates thefirst panel 104 as containing a list box. A list box can be considered a graphical control element that allows a user to select one or more items from a list contained within a static, multiple line text box. Other graphical controls that allow a user to select an item from a predetermined list can be used and are consistent with the example. For example, the user may select from a drop-down list, which is a graphical control element similar to a list box that allows the user to choose one value from a list. When a drop-down list is inactive, it displays a single value. When it is activated, it displays (drops down) a list of values from which the user may select one value. When the user selects a new value, the control reverts to its inactive state, displaying the selected new value. - Complexity is introduced when the data used to generate the list in the
first panel 104 is stored, at least in part, in a data store that is separate from the data store that contains the information presented in thesecond panel 106. -
FIG. 2 illustrates an example of a three-tier architecture. In general, a multi-tier architecture can be a client-server architecture in which presentation, application processing, and data management functions are physically separated. One often-implemented multi-tier architecture is the three-tier architecture. Three-tier architecture is a client-server architecture in which a presentation tier 202 (for example, user interface 204), functional logic tier 206 (for example, an object model 208), and data architecture tier 210 (for example, data storage systems 212) are developed and maintained as independent modules, frequently on separate platforms. - In some arrangements, the
presentation tier 202 can be the top-level of an application. The main function of the presentation tier can be to translate business processes into a form the user can understand. Thefunctional logic tier 206 can coordinate the application, process commands, perform calculations, etc. and make logical decisions, evaluations, etc. Thedata tier 210 often coordinates the storage and retrieval of data from one or more data storage systems. - In general, each tier of the architecture interacts with one of the other tiers (e.g., one adjacent tier). In this example, a tier may interaction with the tier that is graphically represented as being directly below it. As such items in a tier can interact with items in the tier directly below. For example, the
user interface 204 may access theobject model 208. Further, theobject model 208 can access a function provided by the data storage systems 212. Theuser interface 204, however, would generally not interact with the data storage systems 212 directly, as the data storage systems 212 is not directly below theuser interface 204, in this example. - Different types of developers may focus on different tiers. For example, GUI designers and web developers may focus on the
presentation tier 202. Application developers and business architects may focus on thefunctional logic tier 206. Database administrators and database programmers may focus on thedata tier 210. In some scenarios, certain types of developers may focus on multiple tiers. For example, security can be an enterprise specialty that influences each of the tiers mentioned above. -
FIG. 3 illustrates an example of auser interface 302 in a presentation tier that is accessing objects in a functional logic tier. Theuser interface 302 includes afirst panel 304 and asecond panel 306. Thefirst panel 304 and thesecond panel 306 present pseudo code, which when executed, would then populatepanel 304 with a customer list—from which a customer can be selected, and populatepanel 306 with information (address, phone number, etc.) for the selected customer. - A
customer object 312 and anaddress object 314 reside in the functional logic tier of the application, which is located below the presentation tier as graphically represented by anarrow 318. Links can form among objects that reside in these tiers, such as thecustomer object 314 and theaddress object 314. For example, arelationship 316 exists between thecustomer object 312 and theaddress object 314, which can be used to identify the billing address of a particular customer. - One technique used in developing applications in the functional logic tier is object-oriented programing. Object-oriented programing a class or type of an object represents the object generally (herein referred to a class of type). A class of type of the object may be a customer or a product. This is distinguished from an object or instance, which references a particular thing. An instance may represent the customer “John Smith” or the product “Pet Rock.” (herein referred to as an object or instance).
- Based upon the presentation tier being position above the functional logic tier in this example, the
user interface 302 can access theobjects user interface 302 which may beuser interface 102 ofFIG. 1 ) may include pseudo code sufficient to generate a list of customers (for example, the list of customers in thefirst panel 104 ofFIG. 1 ). In order to populate thefirst panel 304 of theuser interface 302, the user interface may access thecustomer object 312. In this example, a GetAllCustomers( ) method on thecustomer object 312 can be used to obtain a list of all customers. The application iterates over the list of returned customers and adds the name of each customer to the list presented in thefirst panel 304. The pseudo code also allows for a customer to be selected from the list of customers. - The
second panel 306 includes pseudo code sufficient to populate the second panel with information about thecustomer object 312. In this example, thesecond panel 306 is populated with the name of the customer selected from the customer list inpanel 304. Thepseudo code 306 includes instructions that use therelationship 316 to navigate from theobject 312 of the selected customer to identify a billing address provided by theaddress object 314 shows the navigation of thebilling address relationship 316 in order to identify thebilling address 314 for the selected customer. Thesecond panel 306 is populated with the street, city, state, and zip code of the billing address. Thesecond panel 306 is also populated with the selected customer's phone number and annual revenue. - Developing a user interface by using these objects allows a developer to produce a user interface without regard for where the underlying data is stored. Instead, coordinating between the objects and the persistent data is relegated to the functional object and data tiers.
-
FIG. 4 illustrates an example of a functional logic tier (e.g., thetier 206 ofFIG. 2 ) interacting with a data tier (e.g., thetier 210 ofFIG. 2 ). The arrangements of data on the object may be determined based on the logical location of the data according to the object model (e.g., theobject model 208 ofFIG. 2 ) and not based on the location of the data in the data storage systems. For example, thecustomer object 312 may include the name, phone, and annual revenue of the customer while theaddress object 314 may include the street, city, state, and zip code. The data may not be persistently stored, however, in a manner consistent with the model, for example, the data for a particular object may be stored across multiple databases. In this example, the customer list may be available from arelational database 402, while the attributes of the customers and the customer addresses may be stored on in acloud data system 404. For example, customer information (e.g., customer attribute, address information, etc.) may be stored in an account object of a SALESFORCE database. - The functional logic tier can provide a mapping that allows the system to convert vendor specific data types to vendor neutral data types. The functional logic tier also allows for conversions between some logical datatypes. For example, mapping between a relatively small, finite set of vendor-neutral datatypes is more efficient and requires less programing effort that mapping between a relatively large, unbound set of vendor specific data-types.
- While the following example refers to a relational database and a cloud data system, other data storage systems can be used. For example, one or more key-based storage systems may be employed to provide a data storage system. Data storage systems can include, but are not limited to, indexed flat files, relational databases, and NoSQL databases (including but not limited to column data stores (such as HBASE), document databases (such as APACHE COUCHDB), key value databases (such as ORACLE NOSQL DATABASE), graph databases (such as ALLEGRO), and/or a multi-model data stores (such as FOUNDATION DB)). The data storage systems may be, for example, located within an organization or may be provided as a cloud based service.
-
FIG. 5 illustrates an example of a data tier (e.g., thedata tier 210 shown inFIG. 2 ) that includes thedatabase 402 and thecloud data system 404. Thedatabase 402 can be, for example, a relational database stored on a data server. Thecloud data system 404 can be, for example, a third party product, such as SALESFORCE. - In this example, the
database 402 includes a table definition of a customer table 502. The table definition customer table includes a table definition that provides the name of two columns in the customer table: a name column and acustomer ID column 504. - In this example, the
cloud data system 404 includes anaccount object 506. The inner workings of thecloud data system 404 may be unknown or hidden. Instead, the cloud data system may be accessed using an application programming interface (API). In this example, theaccount object 506 includes account number, annual revenue, billing city, billing state, billing street, billing country, name, and phone fields. - In general, objects in the
cloud data system 404 may not use the same identification fields (sometimes referred to as primary keys) as thedatabase 402. Generally, there may be no mapping between thecloud data system 404 and thedatabase 402. - Furthermore, as many data storage systems do not support the SQL query language, federated query systems may be unable to join data across the database. For example, SALESFORCE uses the
account object 506 to represent customers. The internal account id, which identifies an account, is not generally coordinated with thecustomer ID column 504. - One way to associate data records across disparate systems is to store an identifier in one system that references the corresponding record in the other system. For example, values from the
customer ID column 504 can be copied (as shown by the customer field 508) and stored in theaccount object 506, thereby enabling a system to navigate between theaccount object 506 and the customer table 502. -
FIG. 6 illustrates an example of light integration between data sources. In general, light integration is a technique that can provide the benefits of federated queries without having the same overhead cost. - The
user interface 102, as describe above with respect toFIG. 1 , includes thefirst panel 104 and thesecond panel 106. Data for thefirst panel 104 may be provided from the database 402 (fromFIG. 4 ). Data for thesecond panel 106 may be provided by the cloud data system 404 (fromFIG. 4 ) based on information provided by a user interaction with thefirst panel 104. For example, a user may select an item in the first panel (here the “Dragon Toys” item 602) and thesecond panel 106 is then populated with information about “Dragon Toys.” - As described above, the
user interface 102 interacts with functional logic tier 604 (the details of which are omitted here for clarity). Thefunctional logic tier 604 simplifies the light integration of data sources. Light integration can include joining data from two different systems based on one or more common values. The common values can be (and usually are) stored in different, vendor-specific data types. The system is able to map those to vendor-neutral data types and convert the values where necessary. - The
functional logic tier 604 in turn causes commands to be executed against the data sources. For example, to provide the data that theuser interface 102 uses to populate thefirst panel 104, thefunctional logic tier 604 can cause a SQL command 606 (e.g., “SELECT NAME, CUSTOMER_ID FROM CUSTOMER”) to be sent to thedatabase 402. Thedatabase 402 can process the query provided by the command and return a list of records as results. Thefunctional logic tier 604 can provide the details of the results as objects to theuser interface 102, which then can use those details to populate thefirst panel 104. - When the user selects an item in the first panel 104 (in this example, the “Dragon Toys” item 602), the
user interface 102 interacts with thefunctional logic tier 604 to obtain more information about the selected item. For example, theuser interface 102 may execute a method on a customer object that causes the customer object to obtain more detail from the data sources. In response, thefunctional logic tier 604 can cause aquery 610 to be executed against thecloud data system 404. In this example, a query is executed using a SALESFORCE API: -
- connection. query(“SELECT BILLINGSTREET,
- BILLINGCITY, BILLING STATE, PHONE, ANNUAL
- REVENUE FROM Account WHERE CustomerID=7”);
where ‘7’ is the CustomerID associated with the Dragon Toys. Thecloud data system 404 processes the receivedquery 610 and generates query results 612. The query results 612 are provided to thefunctional logic tier 604 and consequently are used by theuser interface 102 to populate thesecond panel 106.
- Other types of systems that can be used to connect to cloud data systems include, for example, SOAP calls, remote procedure calls, streaming, OData, REST web services, etc.
-
FIG. 7 is an example of auser interface 700 integrating data from multiple data sources. Theuser interface 700 includes afirst panel 702 and asecond panel 704. Thefirst panel 702 includes a list of items and thesecond panel 704 displays information about a selected item in the list on thefirst panel 702. In this example, the data displayed in thesecond panel 704 can be edited. - For example, the
second panel 704 includes aneditable box 706 where the user can update the street address. The user interface also includes a drop downbox 708 where the user may select a state from a list of states. Thesecond panel 704 also includes anotherdropdown box 710 where the user can select a type of customer from a list of customer types. As described above, the developer of theuser interface 700 interacts with objects or data in thefunctional logic tier 712. Thefunctional logic tier 712 interacts with the data tier in order to obtain and store the data. - The selectable items in the
second panel 704 may be populated using data from different data sources. For example, the drop downbox 708 may be populated with a list of states from astate data source 718. Thestate data source 718 may be a look up table in a relational data base or may be obtained from a third-party service, for example, a web service. Similarly, the customer type drop down 710 may be populated with data from a customertype data source 720. The customertype data source 720 may be, for example, a table in a relational database. - Data values selected from a drop down list can be populated using keys and values. For example, the customer
type data source 720 may store a unique key for each type of customer. As represented by the table 722, thenumber 1 could represent the small customer type. Thenumber 2 could represent the retail customer type. Thenumber 3 could represent the wholesale customer type. - The items in the
first panel 702 may be provided from acustomer data source 716 and the information about the selected item (e.g. Dragon Toys). For example, thecustomer data source 716 may store that Dragon Toys' Billing Address is 29 Summer Way in Somewhere, N.H. Thecustomer data source 716 may also store the phone number, annual revenue, and customer type for Dragon Toys. In this example, the data from the drop down list boxes, or any other key value selection control, may be stored as a key. For example, the Dragon Toys customer is associated with the small customer type, which, as described above, is represented by thenumber 1 in the customertype data source 720. When the Dragon Toys information is stored in thecustomer data source 716, thenumber 1 may be stored instead of the term “Small” (as represented by the data value 724). In this manner, keys originating from the customertype data source 720 may be stored in thecustomer data source 716. Similarly, when displaying the customer information, information from thecustomer data source 716 may require cross reference with another data source (for example, thestate data source 718 or the customer type data source 720). -
FIG. 8 is a flowchart for anexample process 800 for light integration. Theprocess 800 may be performed by a computer processing system including one or more computer processors and a non-transitory storage medium storing instructions that cause the computer processing system to execute the process. - The
process 800 can receive 802 a plurality of objects from a functional logic tier of an application, each object representative of data stored in a data tier of the application. A first portion of the stored data may be stored in a first persistent data store (for example, a SQL database) and a second portion of the stored data being stored in a second persistent data store (for example, a NoSQL database) different from the first persistent data store. - The
process 800 can present 804 in a first area of the user interface information from the plurality of objects, the information selected from the first portion of the data. - The
process 800 can receive 806 an indication of an object being selected from the plurality of objects. For example, a user of the user interface may click, touch, or otherwise select a data on the user interface that corresponds to one of the objects in the functional logic tier. - The
process 800 can present 808 in a second area of the user interface information from the second part of data corresponding to the selected business object. - Embodiments of the subject matter and the operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs (i.e., one or more modules of computer program instructions), encoded on computer storage medium for execution by, or to control the operation of, data processing apparatus.
- The operations described in this specification can be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.
- The term “data processing apparatus” encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple ones, or combinations, of the foregoing. The apparatus can include special purpose logic circuitry (e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit)). The apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question (e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them). The apparatus and execution environment can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.
- A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language (including compiled or interpreted languages or declarative or procedural languages) and it can be deployed in any form (including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment). A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
- The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry (e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit)).
- Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data (e.g., magnetic, magneto optical disks, or optical disks), however, a computer need not have such devices. Moreover, a computer can be embedded in another device (e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few). Devices suitable for storing computer program instructions and data include all forms of non-transitory computer-readable media and memory devices, including by way of example, semiconductor memory devices (e.g., EPROM, EEPROM, and flash memory devices), magnetic disks (e.g., internal hard disks or removable disks), magneto optical disks, and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
- To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer that has a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual, auditory, or tactile feedback), and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user (for example, by sending web pages to a web browser on a user's user device in response to requests received from the web browser).
- Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back end component (e.g., as a data server), a middleware component (e.g., an application server), or a front end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification), or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
- The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some embodiments, a server transmits data (e.g., an HTML, page) to a user device (e.g., for purposes of displaying data to and receiving user input from a user interacting with the user device). Data generated at the user device (e.g., a result of the user interaction) can be received from the user device at the server.
- While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can, in some cases, be excised from the combination, and the claimed combination may be directed to a sub combination or variation of a subcombination.
- Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
- Thus, particular embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.
Claims (18)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/352,635 US20220156274A1 (en) | 2015-12-09 | 2021-06-21 | Light data integration |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/963,562 US9613108B1 (en) | 2015-12-09 | 2015-12-09 | Light data integration |
US15/475,206 US11042559B2 (en) | 2015-12-09 | 2017-03-31 | Light data integration |
US17/352,635 US20220156274A1 (en) | 2015-12-09 | 2021-06-21 | Light data integration |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/475,206 Continuation US11042559B2 (en) | 2015-12-09 | 2017-03-31 | Light data integration |
Publications (1)
Publication Number | Publication Date |
---|---|
US20220156274A1 true US20220156274A1 (en) | 2022-05-19 |
Family
ID=58419109
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/963,562 Active US9613108B1 (en) | 2015-12-09 | 2015-12-09 | Light data integration |
US15/475,206 Active US11042559B2 (en) | 2015-12-09 | 2017-03-31 | Light data integration |
US17/352,635 Abandoned US20220156274A1 (en) | 2015-12-09 | 2021-06-21 | Light data integration |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/963,562 Active US9613108B1 (en) | 2015-12-09 | 2015-12-09 | Light data integration |
US15/475,206 Active US11042559B2 (en) | 2015-12-09 | 2017-03-31 | Light data integration |
Country Status (2)
Country | Link |
---|---|
US (3) | US9613108B1 (en) |
WO (1) | WO2017100506A1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9613108B1 (en) | 2015-12-09 | 2017-04-04 | Vinyl Development LLC | Light data integration |
US11216516B2 (en) * | 2018-06-08 | 2022-01-04 | At&T Intellectual Property I, L.P. | Method and system for scalable search using microservice and cloud based search with records indexes |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140122523A1 (en) * | 2012-10-31 | 2014-05-01 | Oracle International Corporation | Point-in-time query system |
US20140149400A1 (en) * | 2012-11-26 | 2014-05-29 | Accenture Global Services Limited | Data consistency management |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6990680B1 (en) * | 1998-01-05 | 2006-01-24 | Gateway Inc. | System for scheduled caching of in-band data services |
US6154750A (en) * | 1998-04-01 | 2000-11-28 | Cyberpulse Llc | Method and system for navigation and data entry in heirarchically-organized database views |
JP3810268B2 (en) * | 2000-04-07 | 2006-08-16 | シャープ株式会社 | Audio visual system |
US20030064705A1 (en) * | 2001-10-02 | 2003-04-03 | Desiderio Piero L. | Communication of real estate information utilizing moving map GPS and wireless telecommunications to access MLS and other property specific information from remote databases |
US20050171934A1 (en) * | 2004-01-30 | 2005-08-04 | Paul Yuknewicz | System and method for generating a parameterized query |
US20060230032A1 (en) * | 2005-04-06 | 2006-10-12 | Brankov Branimir I | Multi-fielded Web browser-based searching of data stored in a database |
US7925201B2 (en) * | 2007-04-13 | 2011-04-12 | Wideorbit, Inc. | Sharing media content among families of broadcast stations |
US8024285B2 (en) * | 2007-12-27 | 2011-09-20 | Microsoft Corporation | Determining quality of tier assignments |
CN101676917A (en) * | 2008-09-18 | 2010-03-24 | 英赛特半导体有限公司 | Method and system for populating a database with bibliographic data from multiple sources |
US8442995B2 (en) * | 2011-01-14 | 2013-05-14 | Microsoft Corporation | Systems and methods for controlling subscribed access to data |
CA2834864C (en) * | 2011-05-05 | 2021-10-26 | Reversinglabs International Gmbh | Database system and method |
WO2013028497A1 (en) * | 2011-08-19 | 2013-02-28 | Hospira, Inc. | Systems and methods for a graphical interface including a graphical representation of medical data |
US8938475B2 (en) * | 2011-12-27 | 2015-01-20 | Sap Se | Managing business objects data sources |
US20130238627A1 (en) * | 2012-03-06 | 2013-09-12 | Microsoft Corporation | Integrating searches |
US9747388B2 (en) * | 2012-08-31 | 2017-08-29 | Salesforce.Com, Inc. | Systems and methods for providing access to external content objects |
US9866537B2 (en) * | 2013-08-02 | 2018-01-09 | Salesforce.Com, Inc. | Systems and methods for long universal resource locator compression |
US20160063119A1 (en) * | 2014-09-03 | 2016-03-03 | Bank Of America Corporation | Test data reservation system |
US9613108B1 (en) | 2015-12-09 | 2017-04-04 | Vinyl Development LLC | Light data integration |
-
2015
- 2015-12-09 US US14/963,562 patent/US9613108B1/en active Active
-
2016
- 2016-12-09 WO PCT/US2016/065720 patent/WO2017100506A1/en active Application Filing
-
2017
- 2017-03-31 US US15/475,206 patent/US11042559B2/en active Active
-
2021
- 2021-06-21 US US17/352,635 patent/US20220156274A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140122523A1 (en) * | 2012-10-31 | 2014-05-01 | Oracle International Corporation | Point-in-time query system |
US20140149400A1 (en) * | 2012-11-26 | 2014-05-29 | Accenture Global Services Limited | Data consistency management |
Also Published As
Publication number | Publication date |
---|---|
US11042559B2 (en) | 2021-06-22 |
WO2017100506A1 (en) | 2017-06-15 |
US9613108B1 (en) | 2017-04-04 |
US20170270173A1 (en) | 2017-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11010031B2 (en) | Creating and/or editing interactions between user interface elements with selections rather than coding | |
US10338896B2 (en) | Systems and methods for developing and using real-time data applications | |
US9519701B2 (en) | Generating information models in an in-memory database system | |
US9898469B1 (en) | Parallel streaming of external data | |
US20160179897A1 (en) | Data extraction using object relationship templates | |
EP2963543B1 (en) | User interface generation using a model layer | |
US20150268936A1 (en) | System and method for testing computing devices in a heterogeneous environment | |
US20110252049A1 (en) | Function execution using sql | |
US10810233B2 (en) | Linking records between datasets to augment query results | |
US20140181004A1 (en) | Common Framework for Definition, Generation, and Management of Metadata Runtime-Loads | |
US20220156274A1 (en) | Light data integration | |
US9679012B1 (en) | Parallel streaming of external data | |
US20140229901A1 (en) | Interactive Treemap User Interface | |
US8650534B2 (en) | Metaobject enhancement objects | |
US10503365B2 (en) | Deep hierarchy navigation | |
US10621374B2 (en) | Reach objects | |
US20190147088A1 (en) | Reporting and data governance management | |
US9280361B2 (en) | Methods and systems for a real time transformation of declarative model and layout into interactive, digital, multi device forms | |
US20150169675A1 (en) | Data access using virtual retrieve transformation nodes | |
US11176204B2 (en) | Application runtime for cloud-based analytics engine | |
US20220100888A1 (en) | Reach objects with comparison techniques | |
US9886520B2 (en) | Exposing relationships between universe objects | |
US12039069B2 (en) | Metadata-driven restricted measures | |
US20240273088A1 (en) | System and method for bulk export of resource data for view parameters | |
US11449493B2 (en) | Persistent and configurable multidimensional data constraints |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: VINYL DEVELOPMENT LLC, FLORIDA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KENNEDY, THOMAS R., JR.;REEL/FRAME:058858/0546 Effective date: 20160808 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
AS | Assignment |
Owner name: JITTERBIT, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:VINYL DEVELOPMENT, LLC;REEL/FRAME:062941/0640 Effective date: 20230303 |
|
AS | Assignment |
Owner name: JITTERBIT, INC., CALIFORNIA Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 062941 FRAME: 0640. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNOR:VINYL DEVELOPMENT LLC;REEL/FRAME:063101/0532 Effective date: 20230303 |
|
AS | Assignment |
Owner name: CRESTLINE DIRECT FINANCE, L.P., TEXAS Free format text: SECURITY INTEREST;ASSIGNOR:JITTERBIT, INC.;REEL/FRAME:063069/0088 Effective date: 20230303 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |