The current application is related to U.S. Patent Application entitled “Collaborative Hub System for Accessing and Managing Shared Business Content” filed on Apr. 25, 2006, and U.S. Patent Application entitled “Checkpoint Flow Processing System for On-Demand Integration of Distributed Applications” filed on Apr. 25, 2006.
Embodiments of the invention relate generally to computer applications, and more specifically, to a system for routing content data among silo applications to make them virtually integrated.
The traditional deployment of enterprise applications is characterized by the implementation and use of separate application programs among different users or teams in the overall organization. For example, in a manufacturing organization, one team may use a CAD/CAM program to design and manage the production of a product, while other teams may use finance programs, inventory management programs, customer relationship management (CRM) programs, and so on to manage their respective aspects of the project. Typically, each application is treated as a separate program with its own set of users, input/output data, business rules, timelines, process flows, and so on. Throughout the entire project lifecycle, business content, in the form of documents, files, databases, contacts and the like is continually created and modified by the people and the processes within the system. However, it is usually the case that a common set of data or content is used by the different teams. The deployment of individual “silo applications” does not facilitate the sharing of common data and often results in little or no cross work team communications, as each user in each application is assigned a specific and unique role, and has little if any access to any other application or the business content of those applications. Because business content data is usually strongly protected by each individual application, little or no data synchronization or true sharing is typically possible. Normally the shared cross team business content information is controlled and managed by different groups of users and groups of silo applications. Thus, when a cross team member needs to synchronize the content or project status, he or she must often dump the shared business content to a flat file/spreadsheet from the application and email or fax it to the team members and partners in order to share this content. This manual and mesh-based communication method is error-prone, lacks integrity, virtually unmanageable, time consuming, and potentially very costly in the context of complicated enterprise projects.
The management of content, user communication, process interactions, and application rules is especially problematic in current deployed enterprise systems that involve several different teams all running disparate applications, yet require some degree of interactivity and access to common business content. This is largely due to the fact that content is usually stored in flat file structures and each team has its own application platform, deployment infrastructure, and defined user roles. As mentioned above, user interaction in this case often requires individual transmission of business content and manual transmission modes, such as fax/phone/e-mail outside of each user's application platform, and is thus an inefficient, insecure, and costly method of communication that results in a lack of synchronization, automation and unmanaged network of communications. Although enterprises can choose to implement the point-to-point integration of applications or users, such integration links typically result in a complicated mesh scheme where every application or user is connected to every other application or user. Moreover, such networks often contain a large number of useless or redundant links. This is because present systems do not tailor the actual communication and process routing based on the specifics of the business content and processes being used, and therefore, worst-case integration structures are put in place, resulting in complicated and expensive mesh schemes.
Embodiments of a system for providing a content-driven routing scheme among a number of different integrated applications and work teams in a distributed enterprise environment is described. Embodiments are directed to an application integration and collaboration hub platform that includes a content-driven routing process. In general, the application integration system receives business application information and generates certain business flow and state information for the application, users based on the shared content within the system. The content-driven routing process facilitates the routing of application processes and user communication on the basis of the business content.
The content-based routing process establishes on-demand integration connections among users and/or applications based on the business content utilized by their respective applications. Content data is encapsulated within a content table that consists of a number of tags that describe various parameters related to the content, such as user profiles, application that use the content, application profile, data details within the content, and the respective business rules and processes, so that it can be properly routed within a hub defined by the collaboration hub platform and processed by the integrated applications, and users in real time.
Embodiments of the present invention are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
Embodiments of a system for providing a content-driven routing scheme among a number of different integrated applications and work teams in a distributed enterprise environment is described. In general, the term “distributed enterprise application environment” refers to cross team and cross company scenarios present in a large scale project involving different networked users. In the following description, numerous specific details are introduced to provide a thorough understanding of, and enabling description for, embodiments of the content driven routing process. One skilled in the relevant art, however, will recognize that these embodiments can be practiced without one or more of the specific details, or with other components, systems, and so on. In other instances, well-known structures or operations are not shown, or are not described in detail, to avoid obscuring aspects of the disclosed embodiments.
Embodiments are directed to a content routing process for an application integration and collaboration hub platform, such as that described in concurrently filed and commonly owned U.S. patent applications entitled, “Collaborative Hub System for Accessing and Managing Shared Business Content” and “Checkpoint Flow Processing System for On-Demand Integration of Distributed Applications,” which are both hereby incorporated by reference in their entirety.
Aspects of the one or more embodiments described herein may be implemented on one or more computers executing software instructions. The computers may be networked in a client-server arrangement or similar distributed computer network.
In one embodiment, the server computer 104 includes an optional World-Wide Web (WWW) server 116 or server clustering environment that stores data in the form of web pages and transmits these pages as Hypertext Markup Language (HTML) files over the Internet 110 to the client computers. For this embodiment, the client computers typically run a web browser program, such as 114 to access the web pages served by server computer 116 and any available content provider or supplemental server 113.
The network client computers are configured to run a business application program, or to run as or as a dummy client which only has, for example, a web browser available. As shown in
Another class of client computers is represented by mobile client 118. Mobile client 118 can be a mobile computing or communication device, such as a notebook computer, personal digital assistant (PDA), mobile phone, game console, or any similar class of mobile computing device with sufficient processing and communication capability. The mobile client 118 generally does not execute server like business applications, but may access the server computers over the network 110. For example, the mobile client may be operated by a user who has temporary access to resources on the server computers through Internet or similar network access.
In one embodiment, server 104 in network system 100 is a server computer that executes a server-side content driven routing process 112. In one embodiment, the content driven routing process can be part of an application integration system and collaboration hub platform that integrates application programs together, or it can be a standalone process executed on network server 104. The content driven routing process includes certain functional components that perform the tasks of integrating different application programs used in the project, defining the parameters related to the applications and users, and providing the hooks to route the content and processes among the applications. For the embodiment illustrated in
The content driven routing process 112 may represent one or more executable programs modules that are stored within network server 104 and executed locally within the server. Alternatively, process 112 may be stored on a remote storage or processing device coupled to server 104 or network 110 and accessed by server 104 to be locally executed. In a further alternative embodiment, the content driven routing process 112 may be implemented in a plurality of different program modules, each of which may be executed by two or more distributed server computers coupled to each other, or to network 110 separately.
For an embodiment in which network 110 is the Internet, network server 104 executes an optional web server process 116 to provide HTML documents, typically in the form of web pages, to client computers coupled to the network. To access the HTML files provided by server 104, client computer 102 executes a web browser process 114 that accesses web pages available on server 104 and resources, such as supplemental server 113. The client computers may access the Internet 110 through an Internet Service Provider (ISP). Content for any of the applications contained within or associated with a business application used by the client computer 102 may be provided by a data store 120 closely or loosely coupled to any of the server 104 and/or each client computer. In one embodiment, only the business content data or references to the content that is commonly shared among the applications and end users are stored at content store 120. In addition, each application may have its own database storage at the client side, and some of this data might not be of interest to other applications and users. A separate content provider 113 may provide some of the data that is included in any business application generated, transmitted, or executed over system 100. Although data store 120 is shown coupled to the network server 104, it should be noted that content data may be stored in one or more data stores coupled to any of the computers of the network, such as network client 102 or to devices within the network 110 itself.
In one embodiment, the users of each client computer 102 and 103 execute one or more business applications 105 and 107 that may be used as part of an overall business or project. For purposes of the following discussion the terms “overall business” or “project” refer to an endeavor that involves a number of different users operating a number of different computers that may execute different business application programs, and the terms “business application,” “application program,” and “enterprise application” all refer to an application program 105 or 107 that is executed on the client computer. In general, a business application is a computer program that may itself involve a number of different users, each of whom may be involved in one or more particular aspects of a business process. The business application, also referred to as an “enterprise application” involves the execution of a number of different task or processes involving the users. The business application typically also involves the creation, modification, storage and use of a number of different business content data used by the application. The overall project may involve the use of several different applications operated by different teams who perform different tasks and contribute to separate aspects of the project.
In one embodiment, the content driven routing process 112 uses specific information pertaining to the users of the system, the process flows of the overall project (referred to as “checkpoint” flows), and the shared business content used among all involved applications and/or users to automate and combine certain aspects of all of the application programs used in the overall business or project, such as the content management and user collaboration aspects of the application. In general, this is accomplished by defining the overall project workflow as a process lifecycle consisting of numerous checkpoints through which the business content transitions. Modification of the business content at each checkpoint is controlled by a versioning mechanism that incorporates role based access controls associated with the various users of the system, and to route the proper actions/events to the appropriate application at the right time. In general all applications generate and/or act on their own or common content within the system. Some content may be restricted to a particular user or application and not intended to be shared. Other content may be accessed by other users or applications within the system. This content is referred to as the “shared content,” and generally refers to the content routed and processed by the content driven routing process 112.
The overall business project implemented by system 100 typically embodies many different users, applications, processes and business content, all interacting with one another over a distributed computer network.
The applications illustrated in
The basic processing performed on the data by the content driven routing process 112 includes establishing the links between the applications and users based on the content from each respective application. Once stored in the collaboration hub platform 191, the content can be considered to be represented by a three-dimensional parameter model. The shared content for each application contains a regular object description (first dimension), a rich object field matrix (second dimension), and a distributed checkpoint model to manage the content being accessed and controlled by the multiple teams and applications over a time period. The rich object field matrix links the content to the application or applications that use it. Thus, in general, the shared content is selected and abstracted from the original (silo) application, and stored in the collaboration hub with the three dimensions of descriptive parameters. The data is then leveraged by the program components of content driven routing process to establish the linkages within the overall project, the checkpoints defined by the application steps, the user role based access control (RBAC) definitions, and so on. In general, the collaboration hub 191 stores the information related to the content, process, and users for each application of the project, and the content driven routing process integrates this information to derive the necessary linkages to create a virtually seamless unified enterprise application from the separate business applications. This overall linkage and routing process are controlled by the profile registry 122 and checkpoint analyzer 124 functions of the routing process 112.
Different applications can impact the same set or type of data constituting the shared content, even though this content may be treated differently by each application. For example, with reference to
In one embodiment, the relationship among the publishers and listeners for particular units or objects of shared content is maintained in a database or table by the content driven routing process. This database correlates the users and/or applications that constitute the publishers and those that constitute the listeners for each shared content object.
As illustrated in
In one embodiment, the business content engine 212 is a programming module that imports, stores and conditions the business content for runtime execution by the content driven routing process. It prepares the hooks that provide the content linkage from the different applications, and hands over the rich content data structures to the other engines of the routing process 210.
In one embodiment, the profile registry comprises an application profile registry and a user profile registry.
As described above with respect to
As illustrated in
Users and/or applications may be associated with different business content created and defined by the system. Each element of business content defined for the multiple applications and the users of that content comprise a “hub” (such as the collaboration hub 191 illustrated in
The business process engine 216 controls the series of critical checkpoints of business content within the content driven routing process 210. The application integration aspect of this process uses the concept of “checkpoints” to mark significant milestones or transition points during the lifecycle of the business content. The business process engine 216 is a content sensitive module that provides dynamic checkpoint control over any item or unit of business content. As business content is processed by the system, it undergoes modification or validation through the use of checkpoints defined by the business process engine. This engine defines and maintains one or more checkpoints, at which the business content undergoes a transition or modification. The transition or modification can be effected by one or more users of the system and/or one or more applications of the system. The transition or modification at each checkpoint can be an act that modifies the business content in some way, validates the content, routes the content within the system, or any other processing step or combination of processing steps that impacts the business content.
In one embodiment, each checkpoint includes a gate or phase control point, a user hook, a content hook, and a transit locking mechanism. The business process engine is configured to learn or define the lifecycle checkpoints of the business content, and create the metadata space for the business content phase hook for each of the content lifecycle checkpoints. The checkpoints can also include any business rule that triggers the automation of the business processes. In general, a business rule is a rule that modifies, validates, routes or otherwise processes the business content depending upon one or more variables or conditions. In one embodiment, the checkpoint analyzer 208 learns the business rules, which define which user or application can do what act and when, the content, the checkpoints, and the derived processes. Rules are translated into event rules and locking rules and passed on to both an event engine and locking engine within the content driven routing process. These rules are also converted into passive read-only and interactive read/write action event components for involved silo applications, and interactive read/write graphical components for display to the end users.
The lifecycle of the process essentially comprises the timeline of the application and includes the one or more checkpoints. The lifecycle can include one or more sub processes or sub-lifecycles, each of which has its own set of checkpoints. Thus, the checkpoint flow of a content comprises one or more sub-checkpoint flows recursively. Each sub checkpoint node (leaf node) consists of the combination of processes and business rules.
The content driven routing process facilitates the routing of application processes and user communication on the basis of the business content. The routing process establishes peer-to-peer connections or communication links on demand between users and or business applications based on the business content utilized by their respective sources.
For the embodiment illustrated in
Thus, as shown in
The content based routing process described above creates a functional remapping of the overall business project network by defining an intermediate “hub and spoke” interface model between the collaboration hub and the individual users and applications, and then builds the virtual direct links on demand between the users and applications based on the content and the current checkpoint process/rules of the content.
The establishment of virtual direct individual peer-to-peer communication links from the hub-and-spoke scheme of the collaboration hub is further illustrated in
In one embodiment, the content driven routing process may be provided as a service that can be used by all involved cross teams without the need for the user to install or maintain any software on the user's computer or network. The content driven routing process is scalable so that the user can define any scope of the business project desired, from a single project to an entire integrated enterprise system involving many distributed processes integration and data synchronizations.
Embodiments of the content driven routing process described herein may be applied to various types of computer applications, enterprise applications, and communications software such as mail, message or content delivery methods utilizing communication over the Internet or similar distributed network. It may be implemented as software or as functionality programmed into any of a variety of circuitry, including programmable logic devices (“PLDs”), such as field programmable gate arrays (“FPGAs”), programmable array logic (“PAL”) devices, electrically programmable logic and memory devices and standard cell-based devices, as well as application specific integrated circuits. Some other possibilities for implementing aspects of the application integration method include: microcontrollers with memory (such as EEPROM), embedded microprocessors, firmware, software, etc. Furthermore, aspects of the described method may be embodied in microprocessors having software-based circuit emulation, discrete logic (sequential and combinatorial), custom devices, fuzzy (neural) logic, quantum devices, and hybrids of any of the above device types. The underlying device technologies may be provided in a variety of component types, e.g., metal-oxide semiconductor field-effect transistor (“MOSFET”) technologies like complementary metal-oxide semiconductor (“CMOS”), bipolar technologies like emitter-coupled logic (“ECL”), polymer technologies (e.g., silicon-conjugated polymer and metal-conjugated polymer-metal structures), mixed analog and digital, and so on.
It should also be noted that the various functions disclosed herein may be described using any number of combinations of hardware, firmware, and/or as data and/or instructions embodied in various machine-readable or computer-readable media, in terms of their behavioral, register transfer, logic component, and/or other characteristics. Computer-readable media in which such formatted data and/or instructions may be embodied include, but are not limited to, non-volatile storage media in various forms (e.g., optical, magnetic or semiconductor storage media) and carrier waves that may be used to transfer such formatted data and/or instructions through wireless, optical, or wired signaling media or any combination thereof. Examples of transfers of such formatted data and/or instructions by carrier waves include, but are not limited to, transfers (uploads, downloads, e-mail, etc.) over the Internet and/or other computer networks via one or more data transfer protocols (e.g., HTTP, FTP, SMTP, and so on).
Unless the context clearly requires otherwise, throughout the description and the claims, the words “comprise,” “comprising,” and the like are to be construed in an inclusive sense as opposed to an exclusive or exhaustive sense; that is to say, in a sense of “including, but not limited to.” Words using the singular or plural number also include the plural or singular number respectively. Additionally, the words “herein,” “hereunder,” “above,” “below,” and words of similar import refer to this application as a whole and not to any particular portions of this application. When the word “or” is used in reference to a list of two or more items, that word covers all of the following interpretations of the word: any of the items in the list, all of the items in the list and any combination of the items in the list.
The above description of illustrated embodiments of the content-based routing process is not intended to be exhaustive or to limit the embodiments to the precise form or instructions disclosed. While specific embodiments of, and examples for, the system are described herein for illustrative purposes, various equivalent modifications are possible within the scope of the described embodiments, as those skilled in the relevant art will recognize.
The elements and acts of the various embodiments described above can be combined to provide further embodiments. These and other changes can be made to the application integration and content-based routing system and process in light of the above detailed description.
In general, in any following claims, the terms used should not be construed to limit the described system to the specific embodiments disclosed in the specification and the claims, but should be construed to include all operations or processes that operate under the claims. Accordingly, the described system is not limited by the disclosure, but instead the scope of the recited method is to be determined entirely by the claims.
While certain aspects of the content-based routing process are presented below in certain claim forms, the inventor contemplates the various aspects of the methodology in any number of claim forms. For example, while only one aspect of the system is recited as embodied in machine-readable medium, other aspects may likewise be embodied in machine-readable medium. Accordingly, the inventor reserves the right to add additional claims after filing the application to pursue such additional claim forms for other aspects of the described systems and methods.