The present exemplary embodiments pertain to technology compatibility between technology components and, more particularly, pertain to technology compatibility during integration of Information Technology (IT) components.
Migrations, upgrades and transformations (collectively referred to as “transformations”) are ways of keeping technologies up to date in an Enterprise's IT organization. All of these transformation impact not only the technology that is being upgraded, migrated or transformed but have a significant impact on technologies and applications that surround these technologies. It takes a great deal of effort and time to identify technical compatibilities when a large part of an IT Enterprise is to be transformed.
While a vast database of technologies exists today, with their complex inter-relationships there is no one way to identify relationships between changing technology components, their upgrades, security vulnerabilities, licensing, support life cycles etc. which will help business and IT departments decide on what, when and how to begin any technology build or refresh.
The various advantages and purposes of the exemplary embodiments as described above and hereafter are achieved by providing, according to an aspect of the exemplary embodiments, a computer-implemented method of integrating a computing system comprising: identifying component products for the computing system; identifying possible versions of each of the component products; prioritizing the possible versions for each of the component products so as to emphasize those versions that are most important to a user of the computing system; selecting one product as a primary product of the computing system with the remaining products being subsidiary products; forming a technology matrix of possible combinations of primary product, subsidiary products and possible versions of the subsidiary products; selecting the combination of primary product, subsidiary product and subsidiary product version having the highest prioritization; wherein the method is implemented by a processor.
According to another aspect of the exemplary embodiments, there is provided a computer program product for integrating a computing system, the computer program product comprising: a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising: computer readable program code configured to identify component products for the computing system; computer readable program code configured to identify possible versions of each of the component products; computer readable program code configured to prioritize the possible versions for each of the component products so as to emphasize those versions that are most important to a user of the computing system; computer readable program code configured to select one product as a primary product of the computing system with the remaining products being subsidiary products; computer readable program code configured to form a technology matrix of possible combinations of primary product, subsidiary products and possible versions of the subsidiary products; and computer readable program code configured to select the combination of primary product, subsidiary product and subsidiary product version having the highest prioritization.
According to a further aspect of the exemplary embodiments, there is provided a system for integrating a computing system comprising: a processor that executes the instructions to perform the following functions: identify component products for the system; identify possible versions of each of the component products; prioritize the possible versions for each of the component products so as to emphasize those versions that are most important to a user of the system; select one product as a primary product of the system with the remaining products being subsidiary products; form a technology matrix of possible combinations of primary product, subsidiary products and possible versions of the subsidiary products; and select the combination of primary product, subsidiary product and subsidiary product version having the highest prioritization.
The features of the exemplary embodiments believed to be novel and the elements characteristic of the exemplary embodiments are set forth with particularity in the appended claims. The Figures are for illustration purposes only and are not drawn to scale. The exemplary embodiments, both as to organization and method of operation, may best be understood by reference to the detailed description which follows taken in conjunction with the accompanying drawings in which:
There is a need for a way of looking at the mesh of vendor documents across technologies and derive relationships that can both provide guidance for inplace upgrades as well as a roadmap to the future.
The exemplary embodiments provide a vendor agnostic solution which may be used for any specific combination of technologies at any point in time, thereby reducing an enormous amount of time sifting through a maze of documents to identify relationships and compatibilities among technologies.
The exemplary embodiments may be applied or extended to any industry with multiple subcomponents which also has multiple vendors, components and subcomponents. For the purpose of illustration and not limitation, the exemplary embodiments may be applied to manufacturing, automotives, aerospace and retail or any industry whenever there are multiple vendors and products that need to work with each other.
The exemplary embodiments propose a comprehensive framework and model for providing a living persistent store to store technology details across vendor products and services in the IT space, and derive complex compatibility relationships amongst multiple inter-connected technologies.
Referring to the Figures in more detail, there is shown an electronic device 10 for implementing the exemplary embodiments. The electronic device 10 may include a central processing unit (CPU) 12 having memory 14.
Further contained within electronic device 10 may be storage 16. Alternatively, storage 16 may be remotely connected to electronic device 10. Contained within storage 16 may be programs 18 having program instructions to perform various tasks.
The electronic device 10 may further include communications capability instructions 20 to allow electronic device 10 to communicate with the outside world such as by WiFi, cellular, satellite, wired or short range radio capabilities. There may also be search engine instructions 22 to search the Internet and to provide browsing capability to the electronic device.
Additionally, electronic device 10 may have peripherals instructions 24 to operate peripheral components such as a display, keyboard, mouse and printer.
Referring now to
For a variety of technology transformations, data 28 may be collected. The data 28 may be structured data 30 or unstructured data 32. Structured data 30 may be considered to be, for example, published documents/articles from vendors (such as references to test case, user experiences), published vendor technotes, technical information regarding a vendor's products, and other documents from a vendor's technical database. Unstructured data 32 may considered to be, for example, blogs, user forums, vendor-supported user forms and social media in general. The data 28 may be collected by a central repository 34 which may analyze the data 28 for its relevance to the technology transformations and weight the value of the data 28.
For a given technology transformation, it is determined 36 if data relevant to a particular technology transformation exists and also if relationships between technology products for the technology transformation exist. If the answer is “yes”, the method proceeds along the “yes” path to display a matrix table of technology relationships and make recommendations to the end user, 38.
If it is determined that both data and relationships for the technology transformation do not exist, then the “no” path is followed.
At 40, it is determined if data alone exists relevant to the particular technology transformation. If the answer is “no”, the “no” path is followed at 42 to connect to the central repository 34 to collect more data. If data does not exist in the central repository 34, the central repository 34 may reach out to the structured data 30 and unstructured data 32 to pull data into the central repository 34. The central repository 34 may reach out automatically when more data is to be collected or through a manual trigger.
If the answer is “yes”, the “yes” path is followed to determine again if relationships between technology products for the technology transformation exist, 44. If the answer here is “yes”, then the method proceeds along the “yes” path to display a matrix table of technology relationships and make recommendations to the end user, 38.
If the answer is “no”, that relationships between technology products for the technology transformation do not exist, then the “no” path is followed to create relationships for the technology transformation 46 and then to update the relationship maps, 48.
As relationships between technology products are updated, there is also a learning process which improves the weighting of each of the technology products, 50. Outputs of the learning process may be input to the central repository 34.
More particularly,
Relationships may be defined in decreasing order of hierarchy, with relevant weights at each level. For the purpose of limitation,
Extending the concept to multiple products, complex relationships may be built between products based on the same concept. These relationships may be canned (static) or may be built at runtime.
An example may be given of how the process works. Referring to
While the weightage values are qualitative, by following the process the user can end up with a weightage product that is quantitative and helps the choosing of a product set relative to another, similar product set.
In the listing shown in table 58, the requirements for Weblogic server 12c 60, JDk 7 62 and Multi tenant db 64 all have relatively higher weightages and are considered to be strict requirements for the system under consideration.
Referring now to
All of the product information listed in table 66 in
In
As described previously with respect to
The end result of the processes in
Having created the table such as that in
The weightage assigned in the following tables is qualitative and is based on the best information available at the time the transformation is considered. As more transformations will occur, the data may become quantitative due to the greater number of datapoints. For example, with respect to vendor information, there may be few technotes (say ten technotes) in an early technology cycle so that when considering a transformation, the developer may use his best judgement as to what the weightage should be. However, after some time and experience with the technology, there may be a thousand technotes so that it becomes easier to arrive at a quantitative weightage based on the number of users who may have indicated a favorable compatibility of the product.
Weightage Based on Published Vendor Information where X=0 to 1:
Weightage Based on Social Forums where Y=0 to 1:
Weightage Based on Content Usage/References/Feedback where W=0 to 1:
For each combination, an actual score may be determined for ranking and presenting the options to the end user. An example follows below:
Based on the higher ranking, the Product Combination C may be recommended to the end user.
New information, feedback, comments from end users and subject matter experts are passed back to the central repository. New relationships/rules are established and weightage adjusted while keeping the relevancy of information/grouping. The newly integrated information will be presented during information retrieval. Learning takes place when new information is added to the existing knowledge base.
The present invention may be a system, a method, and/or a computer program product at any possible technical detail level of integration. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, configuration data for integrated circuitry, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++, or the like, and procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the Figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
It will be apparent to those skilled in the art having regard to this disclosure that other modifications of the exemplary embodiments beyond those embodiments specifically described here may be made without departing from the spirit of the invention. Accordingly, such modifications are considered within the scope of the invention as limited solely by the appended claims.