1. Technical Field
The present invention relates generally to computer software and, more particularly, to an improvement.
2. Description of Related Art
Modern corporations and other enterprises rely on data processing systems to perform or aid in performance of many or most of the activities performed by the corporation enterprise. This is even more true of large enterprises that employ thousands of people. The larger the enterprise, the more disparate groups there are within the organization. For example, a single corporation may have divisions that develop computer software, that develop computer hardware, that provides information technology services, that manufactures consumer electronics, and perhaps provide financial services. Each division may also incorporate its own sales and marketing force as well as accounting functions.
Despite the differences between the groups, there may be areas of possible commonality and sharing of information. For example, many of the different areas may deal with the same vendors and use the same software products. However, currently, enterprises with multiple divisions and groups maintain a multitude of internal applications that maintain redundant information. This is an inefficient use of storage resources, which results in a decrease in profits for a corporation because of the money expended on increased storage capacity to store redundant data. Furthermore, there is no current mechanism allowing the different areas within an enterprise to share information, because, even if it were possible to somehow execute a search across all of these applications, the results would be inconsistent and hard to decipher because no standard terminology is enforced across each of these systems. For example, a search for the string of “mobility” might bring back unexpected results because of the varied opinion within an enterprise as to exactly what “mobility” is. Some would argue that the correct word to use would be “wireless communication” rather than mobility.
Therefore, to decrease redundancy in information storage and increase communication between areas of a large enterprise, it would be desirable to have a system that provides central storage of basic enterprise information that enforces standard terminology across an enterprise, thereby assisting in the location of expertise within the enterprise, assisting in impact analysis activities, and helping to raise awareness of corporate-level standards, agreements, capabilities, and offerings.
The present invention provides a centralized repository of enterprise defined basic enterprise concept data and a method, system, and computer program product for accessing and manipulating that data. In one embodiment the system includes a directory of enterprise defined basic enterprise data, a consumer user interface to provide access to the directory; and a data manager interface to provide an interface for managers of basic enterprise data to update and add data to the directory. The directory provides a centralized location for all users and applications utilized within an enterprise to locate and access enterprise defined basic enterprise data thereby facilitating the exchange of expertise across the enterprise and standardizing terminology across the enterprise. The system incorporates security features to prevent unauthorized access to and modification of data within the directory as well as search and reporting features allowing a user or an application to search the directory for desired data as the ability to receive notices, for example, when data or interest to the user or application has been modified.
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
With reference now to the figures, and in particular with reference to
Distributed data processing system 100 is a network of computers in which the present invention may be implemented. Distributed data processing system 100 contains network 102, which is the medium used to provide communications links between various devices and computers connected within distributed data processing system 100. Network 102 may include permanent connections, such as wire or fiber optic cables, or temporary connections made through telephone connections.
In the depicted example, server 104 is connected to network 102, along with storage unit 106. This server 104 and storage unit 106 provide the functionalizty and storage capacity for implementing the concept directory of the present invention. In addition to server 104 and storage unit 106, other servers 114 and storage units 116 may be connected to network 102. These other servers 114 and storage units 116 provide the raw data that is used and arranged by the concept directory to form concepts that may be provided to users and applications within the enterprise. Although storage units 106 and 116 are depicted as separate from servers 104 and 114, in some embodiments, the storage units 106 and 116 are incorporated within respective servers 104 and 114.
In addition, clients 108, 110 and 112 are also connected to network 102. These clients, 108, 110 and 112, may be, for example, personal computers or network computers. For purposes of this application, a network computer is any computer coupled to a network that receives a program or other application from another computer coupled to the network. Distributed data processing system 100 may include additional servers, clients, and other devices not shown. Clients 108, 110, and 112 may be utilized by users and applications to access the concept directory and obtain concepts of interest.
Storage unit 106 contains concepts and other data stored by the concept directory which provides a centralized, official, and definitive place of record for basic information required by numerous software applications and individual users within an enterprise. The information may include information about external companies (e.g., vendors, alliance partners, competitors, clients), standard spellings and addresses for these companies, and contact information. The information may also include commercially available products (e.g., Bluetooth) with lists of enterprise subject matter experts for a given product, a list of enterprise engagement with a given product, and a list of vendors for various products. Additionally, the information may include information about generic technology (e.g., wireless communication) and contain a list of enterprise subject matter experts for a given technology, a list of enterprise engagements with a given technology, and a list of vendors for various technologies. Other information stored in the concept directory may include enterprise portfolio information (i.e., standard capabilities and offerings), industry standards and standards committees, master agreements and corporate licenses, and enterprise organizational structure. The types of information stored in the concept directory may also include other information not listed above, as will be recognized by those skilled in the art.
Server 104 provides an interface and other mechanisms for implementing a concept directory and for allowing users and applications within the enterprise to retrieve and/or update information in the concept directory within storage 106. The concept directory may provide a user with data stored within the concept directory or may obtain raw data from other repositories 116 within the enterprise, arrange the raw data into concepts and provide the concepts to a user in real time. The concept directory may also provide the user with data obtained partly from data stored within the concept directory and partly obtained in real time from other repositories 116 within the enterprise. The interfaces provided by server 104 may include a web application interface and a web service interface allowing users and applications to access the information in the concept directory. The interfaces may also include a web application interface allowing a system administrator to perform normal monitoring and administrative duties on the concept directory. Finally, the interfaces may also include back-end integration, such as, a batch Application Programming Interface (API), a dynamic API, a web service interface, a web application interface, and Enterprise application Interface (EAI), or other custom API, allowing various users, applications, and groups within the enterprise to update the concept directory with information they have. The concept directory and its functioning is described in greater detail below.
In the depicted example, distributed data processing system 100 is a private internet, with network 102 representing an enterprise wide collection of networks and gateways that use the TCP/IP suite of protocols to communicate with one another. At the heart of the private Internet is a backbone of high-speed data communication lines between major nodes or host computers consisting of tens, hundreds, or thousands of computer systems that route data and messages. Of course, distributed data processing system 100 also may be implemented as a number of different types of networks such as, for example, a public Internet, an intranet, a local area network, or a wide area network.
Referring to
Peripheral component interconnect (PCI) bus bridge 214 connected to I/O bus 212 provides an interface to PCI local bus 216. A number of modems 218-220 may be connected to PCI bus 216. Typical PCI bus implementations will support four PCI expansion slots or add-in connectors. Communications links to network computers 108-112 in
Additional PCI bus bridges 222 and 224 provide interfaces for additional PCI buses 226 and 228, from which additional modems or network adapters may be supported. In this manner, server 200 allows connections to multiple network computers. A memory mapped graphics adapter 230 and hard disk 232 may also be connected to I/O bus 212 as depicted, either directly or indirectly.
Server 200 includes web application interfaces and web service interfaces allowing users to access a concept directory. Server 200 also includes a web application interface allowing a system administrator to perform normal monitoring and administrative duties on the concept directory as well as includes back-end integration allowing users, applications, and groups within the enterprise to update and add information to the concept directory. Server 200 may also maintain and enforce security settings on information elements contained in the content directory, thus allowing content owners to collaborate with one another during the development of unreleased content, but doing so undetected by the normal user base.
Those of ordinary skill in the art will appreciate that the hardware depicted in
Data processing system 200 may be implemented as, for example, an AlphaServer GS1280 running a UNIX® operating system. AlphaServer GS1280 is a product of Hewlett-Packard Company of Palo Alto, Calif. “AlphaServer” is a trademark of Hewlett-Packard Company. “UNIX” is a registered trademark of The Open Group in the United States and other countries
With reference now to
An operating system runs on processor 302 and is used to coordinate and provide control of various components within data processing system 300 in
Those of ordinary skill in the art will appreciate that the hardware in
With reference now to
Concepts 434 in the concept directory 402 are kept in a directory 430 that structures the concepts 434 in a hierarchal/tree fashion, organized from general concept (e.g. root of hierarchy) to specific concept (leaf node of hierarchy) by keeping a Hierarchy data 432 and relationships data 436. These various hierarchy 432, concepts 434, and relationships 436 are kept in a relational data base management system (RDMS) 438, thus allowing Boolean and wildcard searches to be performed on the data contained within the concept directory 402. Concepts in the hierarchy can have multiple “organizational parents” and may be arbitrarily interrelated to other concepts irrespective of their organizational hierarchical relationships.
Concept directory 402 includes a meta data unit 431 which contains meta data that is implementation dependent specific to an enterprise that includes, among other items, knowledge of what repositories of data exist within the enterprise, what kind of data reside on each of these other repositories, and how to combine the raw data from the various repositories into concepts. Concept directory 402 also includes an asset repository upload unit 440 allowing data and information stored in the directory 430 to be uploaded from other sites within an enterprise. The concept directory 402 also includes a search facility 420 allowing users to search for data in directory 430 or in other repositories of data within the enterprise. A reporting utility 422 creates reports, alerts, and notifications for events of interest to users as requested by users. These alerts could be, for example, an update of content that is of particular interest to a user. Concept directory 402 also includes a security utility 426 that enforces security policies for the enterprise, such as, for example, as regards access to and updates to data in the concept directory 402, thus preventing data from being inadvertently or maliciously changed and preventing access to certain data elements by certain users within the enterprise as desired by the enterprise. An external link manager 424 manages links to data residing elsewhere in the enterprise. Concept directory 402 includes a user profile unit 442 that manages user identities and user preferences. For example, user profile unit 442 may keep track of and aid reporting utility 422 in providing notices to a user that specific concepts identified by the user as important have been updated or have had data added.
The concept directory 402 also provides two primary interfaces and one system administrative interface. The first primary interface, in one embodiment, takes the form of a web application interface 444 and a web service interface 446. The web application interface 444, accessible through a standard web browser (no Active-X control or Web browser plug-in required), allows users to navigate structured content and to perform predefined or ad-hoc searches on the concept directory 402 content. Users are presented directory information that is structured in a hierarchal/tree fashion, organized from general concept (e.g. root of hierarchy) to specific concept (leaf node of hierarchy). Concepts in the hierarchy, as mentioned above, can have multiple “organizational parents” and may be arbitrarily interrelated to other concepts irrespective of their organizational hierarchical relationships. Powerful searches (e.g. Boolean, wildcard, etc.) can be performed against the content. Users can be assigned to security groups which can dictate their level of access to content. Information can be secured down to the detailed attribute level of a single concept. Users can interact with the information contained in the concept directory, collecting and arranging concepts in their own personal work space, as they see fit. This user-specific customization of the information is persistent across user login sessions. As mentioned above, users can also request alerts and notifications for events of interest, such as the update of content of particular interest to the user.
The web service interface 446 allows applications to programmatically search for and/or retrieve information from the concept directory. Using the web service interface 446 an application could maintain a concept directory ID, in place of separate unique, and redundant information. As necessary, this ID can be dereferenced to supply up-to-date, standard information. In some embodiments, these applications maintain the “last known good value” of a dereferenced concept ID along with the ID itself to safeguard against the eventuality that the concept directory 402 is temporarily unavailable.
Thus, web application interface 444 and web service interface 446 provide a mechanism for consumers of concepts 448, such as a user 410 or applications 412, 414, 416, and 418 to access and utilize information in the concept directory 402.
The second primary interface is the back-end integration 452 to the concept directory 402. The back-end integration may take many forms, such as, for example, a batch Application Programming Interface (API) 454, a dynamic API 456, a web service 458, a web application 460, an Enterprise application Interface (EAI) 462, or a custom API 464. However, the back-end integration 452 may take other forms as will be recognized by those skilled in the art. Through this back-end integration upload and maintenance interface 452, content owners (i.e., people responsible for concept directory content) can perform their normal duties by scheduled task or in real time. Each concept stored in the concept directory 402 may be associated with a particular content owner, enterprise group, or application and modification to the concept limited to the concept owner, group, or application. The enterprise may also organizationally assign various aspects of the concept management to different parties within the enterprise, with that party responsible for determining standard spellings, contact information, lists, etc. for concepts under their management, thereby ensuring standardization of concepts across the enterprise and also facilitating comprehensive impact analysis of corporate-level decisions regarding products, technologies, and external companies, such as vendors and alliance partners.
Data from various content repositories 474, 476, 480, 484, 486, and 488 may be sent to concept directory 402 for example, as a batch process implemented perhaps once a day, as updates or additions to data in the repositories 474, 476, 480, 484, 486, and 488 are made, or as requested by concept directory 402. Concept directory 402 collects the raw data from the various repositories 474, 476, 480, 484, 486, and 488 and organizes the data into concepts based on meta data contained in meta data unit 431.
By employing security settings on information elements contained in the content directory, as described above, content owners can collaborate with one another during the development of unreleased content, doing so undetected by the normal user base. Thus, producers of and repositories for concepts and concept components 470, such as repositories 474, 476, 480, 484, 486, and 488 may update and add information to the concept directory 402 as necessary. Repositories 474, 476, 480, 484, 486, and 488 are examples of typical enterprise repositories. However, the number and type of repositories may vary from enterprise to enterprise.
System administrators 490 can perform normal monitoring and administrative duties on the concept directory through a web application interface 450.
The components depicted in
With reference now to
With reference now to
The attributes, names, descriptions, and examples provided in table 600 are provided merely for illustration purposes only. Those skilled in the art will recognize that many other or different attributes may also be used depending on the requirements of the particular enterprise and implementation.
Although described as though all basic information to the enterprise is “officially” housed in the concept directory, clearly, in some embodiments, some of the information presented by the concept directory would be “officially” housed and maintained in a different system (e.g., organizational structured housed in CAS or SAP). In addition, some of the information presented by the concept directory would be derived from information that is integrated from a number of other sources, an example, of which is depicted in
Furthermore, with the concept directory, future applications of the enterprise can be designed, and existing applications can be retrofitted, to access information contained within the concept directory. This will obviate the need for new and existing applications to internally replicate certain information or to seek out and to integrate with a number of systems that contain the information. The concept directory will greatly reduce the complexity involved in creating/maintaining numerous internal systems and will greatly reduce the probability that creating a new system will mean the creation of yet another redundant island of data. Furthermore, consolidating concepts into a central concept directory will enforce a standard terminology/definition, assist in locating expertise within the enterprise, assist impact analysis activities, and help raise awareness of corporate-level standards/agreements/capabilities/offerings.
It is important to note that while the present invention has been described in the context of a fully functioning data processing system, those of ordinary skill in the art will appreciate that the processes of the present invention are capable of being distributed in the form of a computer readable medium of instructions and a variety of forms and that the present invention applies equally regardless of the particular type of signal bearing media actually used to carry out the distribution. Examples of computer readable media include recordable-type media such a floppy disc, a hard disk drive, a RAM, and CD-ROMs and transmission-type media such as digital and analog communications links.
The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.