The present disclosure relates to computer-implemented methods, software, and systems for automatically identifying reused model artifacts in business process models.
Business process models may be complex and contain several artifacts such as, for example, activities, sub-processes, events, and gateways, and other suitable artifacts. Artifacts may reference various reusable building blocks of the business process models, such as sub-processes, web services, scripting tasks, data mappings, and other suitable reusable building blocks. These reusable building blocks are generally exposed through service interfaces. It is desirable to reuse the artifacts to, among other things, provide increased consistency and efficiency to business process model development and to reduce the time and cost of business process model maintenance. To support desired reuse scenarios for the artifacts, all references to a specific service interface must be identified. This is currently a complicated and time-consuming endeavor in that a single service interface may be multi-dimensionally shared among workspaces, projects, and processes. This relational complexity affects, at a minimum, understanding, maintenance, and modification of the business process models. Currently the references must be identified manually and without the benefit of global or user-defined search operations, which is both inefficient and wasteful of business resources.
The present disclosure relates to computer-implemented methods, software, and systems for automatically identifying reused model artifacts in business process models. One computer-implemented method includes identifying a consumable data object associated with a business process model, selecting a search area associated with the business process model to search for a reference to the consumable data object, searching within the selected search area for the at least one reference to the consumable data object, and determining at least one location of at least one data object that refers to the consumable data object.
While generally described as computer-implemented software embodied on a non-transitory computer readable storage device that processes and transforms respective data, some or all of the aspects may be computer-implemented methods or further included in respective systems or other devices for performing this described functionality. The details of these and other aspects and implementations of the present disclosure are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the disclosure will be apparent from the description and drawings, and from the claims.
This disclosure generally describes computer-implemented methods, software, and systems for automatically identifying reused model artifacts in business process models. Business process models may be complex and contain several artifacts such as, for example, activities, sub-processes, events, and gateways, and other suitable artifacts which may be multi-dimensionally shared among workspaces, projects and processes. Artifacts may also reference various reusable building blocks of the business process models, such as sub-processes, web services, scripting tasks, data mappings, and other suitable reusable building blocks. It is desirable to reuse the artifacts to, among other things, provide increased consistency and efficiency to business process model development and to reduce the time and cost of business process model maintenance. Specifically described are computer-implemented methods, software, and systems for automatically identifying reused model artifacts in business process models using at least a model artifact identification application. The model artifact identification application provides or supports functionality to identify a consumable data object associated with a business process model, select a search area to search for at least one reference to the consumable data object, search within at least one mapping associated with the selected search area for the at least one reference to the consumable data object, and determining at least one location of at least one data object associated with the at least one mapping that refers to the consumable data object.
Identification of all references to a specific service interface may be a time-consuming, cumbersome, and repetitive process, especially among multiple projects where cross-dependencies exist. The advantages of the present disclosure are numerous. First, allowing automatic identification of usage of the specific service interface increases the speed and accuracy of efforts to maintain and upgrade business process models and decreases inefficiency and waste of business resources. Multiple business process models may now be simultaneously modified, whereas prior efforts may require an extended period of time to accomplish the same task. Second, an accurate method of identifying the specific service interface and any inter-project dependencies mitigates potential impacts to data flow in other process models and minimizes business process interruptions and costly downtime. Further, accurate auditing procedures and records may be generated with respect to changes to the specific service interface in order to track and ensure business justifications for the changes. Constraints on deleting or updating reused artifacts may now be enforced.
Turning to the figures,
As used in the present disclosure, the term “computer” is intended to encompass any suitable general purpose processing device. The present disclosure also contemplates computers other than general purpose computers, as well as computers without conventional operating systems. Further, the illustrated client 102 and server 140 may be adapted to execute any physical or virtual operating system, including Linux, UNIX, Windows, Mac OS, WebOS, iOS, Android, or any other suitable operating system.
In general, the client 102 is any computer that provides for automatically identifying reused model artifacts in business process models via a model artifact identification application 112. Although
At a high level, the client 102 comprises an electronic computing device operable to receive, transmit, process, store, or manage data and information associated with the example environment 100. The client 102 illustrated in
In the illustrated implementation of
The interface 104 is used by the client 102 to communicate with other systems in a client-server or other distributed environment (including within example environment 100) connected to the network 130 (e.g., an associated server 140, as well as other systems communicably coupled to the network 130).
As illustrated in
Regardless of the particular implementation, “software” may include computer-readable instructions, firmware, wired or programmed hardware, or any combination thereof on a tangible and non-transitory medium operable when executed to perform at least the processes and operations described herein. Indeed, each software component may be fully or partially written or described in any appropriate computer language including C, C++, C#, Java, Visual Basic, assembler, Perl, any suitable version of 4GL, as well as others. It will be understood that while portions of the software illustrated in
The client 102 also includes a memory 108 for storing data and program instructions. The memory 108 may include any memory or database module and may take the form of volatile or non-volatile memory including, without limitation, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), flash memory, removable media, or any other suitable local or remote memory component. The memory 108 may store various objects or data, including classes, frameworks, applications, backup data, business objects, jobs, web pages, web page templates, database tables, process contexts, repositories storing services local to the client 102, and any other appropriate information including any parameters, variables, algorithms, instructions, rules, constraints, or references thereto associated with the purposes of the client 102, client application 110, and model artifact identification application 112. In some implementations, including a cloud-based system, some or all of the memory 108 can be stored remote from the client 102, and communicably coupled to the client 102 for usage.
At least one client application 110 is illustrated within the client 102. Further, although illustrated as a single client application 110, the client application 110 may be implemented as multiple client applications 110 in the client 102. The client application 110 of the client 102 may retrieve application-related information from a corresponding client 102, or the client application may access a local cached set of client-application-related information (not shown) stored on the client 102. In some implementations, the client application 110 can be a web browser. In some implementations, the client-application 110 can use parameters, metadata, and other information received at launch to access a particular set of data from the client 102. Once a particular client application 110 is launched, a user may interactively process a task, event, or other information associated with the client 102. Further, although illustrated as a single client application 110, the client application 110 may be implemented as multiple client applications in the client 102.
At least one model artifact identification application 112 is illustrated within the client 102. Further, although illustrated as a single model artifact identification application 112, the model artifact identification application 112 may be implemented as multiple model artifact identification applications 112 in the client 102. The model artifact identification application 112 can be any application, program, module, process, or other software that may execute, change, delete, generate, or otherwise manage information associated with a particular client 102 and/or server 140. The model artifact identification application 112 provides functionality for automatically identifying reused model artifacts in business process models. In some implementations, the model artifact identification application 112 may identify a consumable data object associated with a business process model. In some implementations, the model artifact identification application 112 may also be used to select a search area associated with the business process model to search for a reference to the consumable data object. Further, in other implementations, the model artifact identification application 112 may allow searching within at least one mapping associated with the identified search area for the consumable data object. In still other implementations, the model artifact identification application 112 may also allow the determination of at least one location of at least one data object associated with the at least one mapping that consumes the consumable data object and the generation of search results containing at least the at least one determined location. In alternate implementations, a model artifact identification application 112 on server 140 (not shown) may be executed by the server 140 and be accessed by the client 102 via a browser executing on the client 102. In some implementations, each model artifact identification application 112 can represent a Web-based application accessed and executed by a browser or other suitable application associated with client 102 or by remote clients 102 via the network 130 (e.g., through the Internet, or via at least one cloud-based service associated with the model artifact identification application 112). Additionally, a particular model artifact identification application 112 may operate in response to and in connection with at least one request received from other model artifact identification applications 112, including a model artifact identification application 112 associated with another client 102 and/or server 140. Moreover, any or all of a particular model artifact identification application 112 may be a child or sub-module of another software module or enterprise application (not illustrated) without departing from the scope of this disclosure.
The GUI 116 of the client 102 is a graphical user interface operable to allow the user of the client 102 to interface with at least a portion of the system 100 for any suitable purpose, including to allow a user of the client 102 to interact with the client application 110, model artifact identification application 112, and with the client 102. The term “Graphical User Interface”, or GUI, may be used in the singular or plural to describe at least one graphical user interface and each of the displays of a particular graphical user interface. Therefore, the GUI 116 can be any graphical user interface, such as a generic web browser, touch screen, or command line interface (CLI) that processes information in the system 100 and efficiently presents the results to a user. Generally the GUI 116 provides the client 102 with an efficient and user-friendly presentation of data provided by or communicated within the system 100. In particular, the GUI 116 may provide users of the client 102 with visualized representation of the client application 110, model artifact identification application 112, and other client 102 functionality. The GUI 116 may include a plurality of user interface elements such as interactive fields, pull-down lists, buttons, and other suitable user interface elements operable at the client 102.
Generally, the client 102 may be communicably coupled with a network 130 that facilitates wireless or wireline communications between the components of the example environment 100 (i.e., between the client 102 and at least one server 140), as well as with any other local or remote computer, such as additional clients, servers, or other devices communicably coupled to network 130, including those not illustrated in
In general, the server 140 is any computer that provides support to the client 102 for automatically identifying reused model artifacts in business process models via the business application 146, memory 148, and at least one business process model 150. The at least one business process model 150 instance may reside either locally or remote to the server 140. Although
For example, each server 140 may be a Java 2 Platform, Enterprise Edition (J2EE)-compliant application server that includes Java technologies such as Enterprise JavaBeans (EJB), J2EE Connector Architecture (JCA), Java Messaging Service (JMS), Java Naming and Directory Interface (JNDI), and Java Database Connectivity (JDBC). In some implementations, other non-Java based servers and or systems could be used for the server 140. In some implementations, each server 140 can store and execute a plurality of various other applications (not shown), while in other implementations, each server 140 may be a dedicated server meant to store and execute a particular business application 146 and its related functionality. In some implementations, the server 140 can comprise a Web server or be communicably coupled with a Web server, where the business application 146 associated with that server 140 represents a Web-based (or Web-accessible) application accessed and executed on an associated at least one client 102 to perform the programmed tasks or operations of the corresponding business application 146. In still other instances, the business application 146 may be executed on a first system, while the business application 146 manipulates and/or provides information for data located at a remote, second system. In the illustrated example, the business application 146 is local to the server 140.
At a high level, the server 140 comprises an electronic computing device operable to receive, transmit, process, store, or manage data and information associated with the example environment 100. The server 140 illustrated in
In the illustrated implementation of
In some implementations, processor 144 can be similar to processor 106. In other implementations, the processor 144 may be a processor designed specifically for use in server 140. Further, although illustrated as a single processor 144, the processor 144 may be implemented as multiple processors in the server 140. Regardless of the type and number, the processor 144 executes instructions and manipulates data to perform the operations of the server 140, including operations to receive and process requests from client 102 or other suitable request source, access data within memory 148, and execute the business application 146 as well as perform other operations associated with the server 140.
Memory 148 of the server 140 may include any memory or database module and may take the form of volatile or non-volatile memory including, without limitation, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), removable media, or any other suitable local or remote memory component. For example, memory 148 may store a business application 146, backup data, parameters, cookies, variables, algorithms, instruction, rules, or reference thereto. As illustrated, memory 148 can include any suitable components to interpret and decode requests and messages received at the server 140. Further, although illustrated as a single memory 148, the memory 148 may be implemented as multiple memories in the server 140. The memory 148 also store at least one business process model 152.
In various implementations, at least one business process model 152 defines a set of process steps operable to perform a defined business process. Each process step of at least one business process model 152 defines at least one business-related activity and is linked to at least one other process step by at least one process flow rule. The process flow rules define and manage a process flow through the at least one business process model 152.
At least one business application 146 is illustrated within the server 140. The business application 146 can be any application, program, module, process, or other software that may execute, change, delete, generate, or otherwise manage information associated with a particular server 140, and in some cases, a business process performing and executing business process-related events. In particular, business processes communicate with other users, applications, systems, and components to send and receive events. In some implementations, a particular business application 146 can operate in response to and in connection with at least one request received from an associated client 102. Additionally, a particular business application 146 may operate in response to and in connection with at least one request received from other business applications 146, including a business application 146 associated with another server 140. In some implementations, each business application 146 can represent a Web-based application accessed and executed by remote clients 102 via the network 130 (e.g., through the Internet, or via at least one cloud-based service associated with the business application 146). Further, while illustrated as internal to the server 140, the at least one business processes model 150 associated with a particular business application 146 may be stored, referenced, or executed remotely. For example, a portion of a particular business application 146 may be a web service associated with the business application 146 that is remotely called, while another portion of the business application 146 may be an interface object or agent bundled for processing at a remote client 102. Moreover, any or all of a particular business application 146 may be a child or sub-module of another software module or enterprise application (not illustrated) without departing from the scope of this disclosure. Still further, portions of the particular business application 146 may be executed or accessed by a user working directly at the server 140, as well as remotely at a corresponding client 102. In some implementations, the server 140 can execute the at least one business process model 148 using the at least one business application 146.
The interface 152 of the server 140 may be similar to the interface 104 of the client 102, in that it may comprise logic encoded in software and/or hardware in a suitable combination and operable to communicate with the network 130. More specifically, interface 152 may comprise software supporting at least one communication protocol such that the network 130 or hardware is operable to communicate physical signals to and from the server 140. Further, although illustrated as a single interface 152, the interface 152 may be implemented as multiple interfaces in the server 140.
While
Referring now to
At 204, a search area associated with the business process model to search for a reference to the consumable data object is selected. Selecting may be performed using, for example, a computer mouse, keyboard, stylus, touch screen, an algorithm, voice recognition or other suitable selection method and/or tool. For example,
At 206, the selected search area is searched for at least one reference to the identified consumable data object. For example, for a search for an identified process (e.g., MyProcess1) within a project (e.g., Project1) in a workspace, all processes and sub-processes within each project in the workspace may be searched for a reference to the identified process. In some implementations, a search can be performed by one or more calls to services, web services, API's, functions or other suitable search calls. Depending on the identified consumable object and the search area selected, the data searched for references to the identified consumable data object may vary as well as the operations used to perform the search including both public and proprietary techniques. From 206, method 200 proceeds to 208.
At 208, at least one location of at least one data object that refers to the identified consumable data object is determined. For example, a separate project (e.g., Project2) in the workspace may contain a sub-process (e.g., MySubProcess1) that refers to MyProcess1. In some implementations, a location determination can be performed by one or more calls to services, web services, API's, functions or other suitable location determination calls. Depending on the identified consumable object and the search area selected, the locations of data objects referring to the identified consumable data object may vary as well as the operations used to perform the location determination including both public and proprietary techniques. From 208, method 200 proceeds to 210.
At 210, search results containing at least the at least one determined location are generated. For example,
Searching for a sub-process in a project may return search results similar to:
Searching for a sub-process in a process may return search results similar to:
Searching for a service interface in a workspace may return search results similar to:
Searching for a service interface in a project may return search results similar to:
The preceding figures and accompanying description illustrate example processes and computer implementable techniques. But example environment 100 (or its software or other components) contemplates using, implementing, or executing any suitable technique for performing these and other tasks. It will be understood that these processes are for illustration purposes only and that the described or similar techniques may be performed at any appropriate time, including concurrently, individually, in parallel, and/or in combination. In addition, many of the steps in these processes may take place simultaneously, concurrently, in parallel, and/or in different orders than as shown. Moreover, example environment 100 may use processes with additional steps, fewer steps, and/or different steps, so long as the methods remain appropriate.
In other words, although this disclosure has been described in terms of certain implementations and generally associated methods, alterations and permutations of these implementations and methods will be apparent to those skilled in the art. Accordingly, the above description of example implementations does not define or constrain this disclosure. Other changes, substitutions, and alterations are also possible without departing from the spirit and scope of this disclosure.