DATA EXCHANGE COMMON INTERFACE CONFIGURATION
20180011884 · 2018-01-11
Assignee
Inventors
- Vicent Sos-Munoz (Beverly Hills, CA, US)
- Julian C. Bowden (London, GB)
- John W. Wise (West Hollywood, CA, US)
- Jason A. Nicholls (Los Angeles, CA, US)
Cpc classification
International classification
Abstract
A system comprises a processor that that receives, through a network, a first data structure from a first source system. Further, the processor receives, through the network, a second data structure from a second source system. In addition, the processor normalizes the first data structure and the second data structure according to a common interface such that at least one constituent of the common interface is immutable, the common interface is backward compatible, and the common interface is forward compatible. The first data structure is at least partially distinct from the second data structure.
Claims
1. A system comprising: a processor that receives, through a network, a first data structure from a first source system, receives, through the network, a second data structure from a second source system, and normalizes the first data structure and the second data structure according to a common interface such that at least one constituent of the common interface is immutable, the common interface is backward compatible, and the common interface is forward compatible, the first data structure being at least partially distinct from the second data structure, the common interface being independent of the first data structure and the second data structure.
2. The system of claim 1, wherein the common interface is prescriptive on syntax.
3. The system of claim 1, wherein the processor determines whether the common interface is prescriptive on semantics based on a context of the semantics.
4. The system of claim 1, wherein the processor prevents modification of a constituent of the common interface.
5. The system of claim 4, wherein the constituent is a field of the common interface.
6. The system of claim 1, wherein the processor allows for alteration of a constituent of the common interface.
7. The system of claim 6, wherein the constituent is a field of the common interface.
8. The system of claim 1, wherein the normalization is a translation of the first data structure and the second data structure into a normalized data structure associated with the common interface.
9. The system of claim 1, wherein the common interface is associated with a phase of a life cycle model.
10. The system of claim 9, wherein the processor further normalizes an additional common interface based on an additional phase of the life cycle model.
11. The system of claim 1, wherein the first source system is a legacy system and the second source system is a newer system than the legacy system to which data is transitioned.
12. A computer program product comprising a non-transitory computer useable storage device having a computer readable program, wherein the computer readable program when executed on a computer causes the computer to: receive, with a processor through a network, a first data structure from a first source system; receive, with a processor through the network, a second data structure from a second source system, the second data structure being at least partially distinct from the first data structure; and normalize, with the processor, the first data structure and the second data structure according to a common interface such that at least one constituent of the common interface is immutable, the common interface is backward compatible, and the common interface is forward compatible, the common interface being independent of the first data structure and the second data structure.
13. The computer program product of claim 12, wherein the common interface is prescriptive on syntax.
14. The computer program product of claim 12, wherein the computer is further caused to determine, with the processor, whether the common interface is prescriptive on semantics based on a context of the semantics.
15. The computer program product of claim 12, wherein the computer is further caused, with the processor, to prevent modification of a constituent of the common interface.
16. The computer program product of claim 15, wherein the constituent is a field of the common interface.
17. The computer program product of claim 12, wherein the computer is further caused to allow for alteration of a constituent of the common interface.
18. The computer program product of claim 17, wherein the constituent is a field of the common interface.
19. The computer program product of claim 12, wherein the normalization is a translation of the first data structure and the second data structure into a normalized data structure associated with the common interface.
20. The computer program product of claim 12, wherein the common interface is associated with a phase of a life cycle model.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The above-mentioned features of the present disclosure will become more apparent with reference to the following description taken in conjunction with the accompanying drawings wherein like reference numerals denote like elements and in which:
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
DETAILED DESCRIPTION
[0016] A data exchange CI configuration is provided. The data exchange common interface provides normalization of data received externally from a source system. Further, the data exchange common interface is independent of an underlying data implementation. In other words, the data exchange common interface does not rely on a data structure of data that is received.
[0017]
[0018] The CI engine 102 provides a layer of interaction that allows for a system accessing the CI engine 102 through the normalization system 101 to communicate with external systems such as, for example, source system 104 and source system 106. In other words, the CI engine 102 allows for a system to communicate with external systems having different data structures in a normalized manner, i.e., a standard format.
[0019] The data exchange CI configuration 100 allows for backward compatibility and forward compatibility. By being backward compatible, the data exchange CI configuration 100 ensures that newer versions of the CI engine 102 or updates to the CI engine 102 are compatible with external systems in communication with the CI engine 102. By being forward compatible, the data exchange CI configuration 100 ensures that external systems that are more advanced than the current version of the CI engine 102 are still able to communicate with the CI engine 102. For instance, graceful degradation is an approach that may be utilized to provide the CI engine 102 with at least limited functionality even if the CI engine 102 communicates with an external source system that has a more advanced configuration than that of the CI engine 102. For example, if certain fields or other aspects of the CI engine 102 are unavailable as a result of the difference in technologies between the CI engine 102 and the external source system, the data exchange CI configuration 100 still allows communication to take place between the CI engine 102 and the external source system. The external source system may degrade to provide at least limited functionality even if certain technologies presumed to be available for the CI engine 102 are not available.
[0020]
[0021] Therefore, the data exchange CI configuration 100 illustrated in
[0022] The user device 201 may be a device that is capable of accessing the application provided by the application server 202. For example, the user device 201 may be a personal computer (“PC”), laptop computer, tablet device, smartphone, smart television, smart wearable device, set top box, kiosk, etc.
[0023]
[0024] The mapping 300 may be performed according to syntax and/or semantics. Syntax refers to the ordering of particular constituents of a data structure whereas semantics refer to the meaning of such constituents. In various embodiments, the CI engine 102 is prescriptive on syntax. In other words, constituents of the normalized data structure 301, e.g., fields, have to be known and immutable to provide backward and forward compatibility. By being immutable, such constituents cannot be modified. New constituents may be added to the normalized data structure 301, but existing constituents are immutable. For example, the syntax may necessitate a particular ordering of fields in a table.
[0025] Further, in various embodiments, the CI engine 102 may or may not be prescriptive on semantics. In other words, the CI engine 102 may be prescriptive on semantics for some items whereas the external source system may completely define other items. The context of the data may determine whether or not the CI engine 102 is prescriptive on semantics for a particular item. For instance, the semantics of the terms “buy” and “purchase” may mean the same thing in one type of environment, e.g., ordering a physical product, but may have different meanings in a different environment, e.g., placing an order in a securities environment where the term “buy” has a particular meaning, but the term “purchase” is not necessarily applicable.
[0026] The CI engine 102 performs a normalization process to generate the mapping 300 so that constituents and data points are translated from external source systems to have the same term for the same meaning. The CI engine 102 normalizes data so that each client, e.g., user device 201, has a set of applets. As a result, a user that utilizes the user device 201 illustrated in
[0027] In various embodiments, the mapping 300 defines a set of rules for the translation of constituents and data points. After the mapping is defined, the data from the external source systems may be automatically loaded and/or translated according to the mapping by a processor associated with the CI engine 102. For instance, the CI engine 102 may automatically apply normalization to particular fields via the mapping rules upon receipt of data from an external server. In other words, the CI engine 102 may be notified of new data that has been received and may automatically retrieve that data to automatically apply the mapping. In various other embodiments, the mapping may be automatically defined by an artificial intelligence (“AI”) system.
[0028] Examples of syntax include delimited, fixed length, XML, JSON, YAML, headers/trailers, multi-layout, binary documents, and proprietary formats. Other types of syntactic rules may also be utilized.
[0029] Further, examples of mappings include conditions, cached lookups, resource retrieval, one to many, many to one, many to many, and code snippets. Other types of mappings may also be utilized. The mapping may be referred to as a data dictionary.
[0030]
[0031] Further, the automated transitioning system 400 is not limited to complete removal of a legacy system. The automated transitioning system 400 may also be utilized for the transfer of only some data from one system to another system. For instance, additional systems may be added to help with data storage capacity, bandwidth, etc.
[0032]
[0033] Utilization of the unit of work allows the CI engine 102 to divide work into smaller tasks. Further, such tasks may be distributed to one or more servers to process those tasks.
[0034] Further, the CI engine 102 allows for tracking of dependencies amongst data. An example of a dependency is a condition that one or more transactions cannot be loaded until an account associated with the data is loaded. The transactions may be quantified via units of work so that the amount of data for which dependencies are being tracked may be determined. For instance, a server executing a load and a server managing that load may then understand the amount of data that has been processed so far and the amount of data that remains to be processed. As a result, the unit of work allows for more effective communication between servers to process data, e.g., track dependencies amongst data.
[0035] In various embodiments, each phase of the life cycle model 500 may have a distinct common interface that is accessible by the user associated with the user device 102 illustrated in
[0036]
[0037] The processes described herein may be implemented in a specialized or a general, multi-purpose or single purpose processor. Such a processor will execute instructions, either at the assembly, compiled or machine-level, to perform the processes. Those instructions can be written by one of ordinary skill in the art following the description of the figures corresponding to the processes and stored or transmitted on a computer readable medium. The instructions may also be created using source code, intermediary language or any other known computer-aided design tool. A computer readable medium may be any medium capable of carrying those instructions and include a CD-ROM, DVD, magnetic or other optical disc, tape, silicon memory (e.g., removable, non-removable, volatile or non-volatile), packetized or non-packetized data through wireline or wireless transmissions locally or remotely through a network. A computer is herein intended to include any device that has a specialized or general, multi-purpose or single purpose processor as described above. The CI configurations described herein are device-independent as they may be utilized to send and receive messages for a variety of types of computing devices such as personal computers, laptops, tablet devices, smartphones, kiosks, set top boxes, etc.
[0038]
[0039] The CI generation code 708 may be represented by one or more software applications or a combination of software and hardware where the software is loaded from a storage medium such as a storage device, e.g., a magnetic or optical drive, diskette, or non-volatile memory and operated by the processor 702 in the memory 706 of the computer. As such, the CI generation code 708 and associated data structures of the present disclosure may be stored on a computer readable medium such as a computer readable storage device, e.g., RAM memory, magnetic or optical drive, diskette, etc.
[0040] The system 700 may be utilized to implement any of the configurations. In one embodiment, the CI generation code 708 is stored by the processor 702. In another embodiment, the CI engine 102 illustrated in
[0041] The data exchange CI configuration 100 illustrated in
[0042] It is understood that the processes, systems, apparatuses, and computer program products described herein may also be applied in other types of processes, systems, apparatuses, and computer program products. Those skilled in the art will appreciate that the various adaptations and modifications of the embodiments of the processes, systems, apparatuses, and computer program products described herein may be configured without departing from the scope and spirit of the present processes and systems. Therefore, it is to be understood that, within the scope of the appended claims, the present processes, systems, apparatuses, and computer program products may be practiced other than as specifically described herein.